saleor-dashboard/src/components/PhoneField/PhoneField.tsx

59 lines
1.2 KiB
TypeScript
Raw Normal View History

2019-10-30 14:34:24 +00:00
import { makeStyles } from "@material-ui/core/styles";
2019-06-19 14:40:52 +00:00
import TextField from "@material-ui/core/TextField";
2019-08-09 10:26:22 +00:00
import React from "react";
2019-06-19 14:40:52 +00:00
import SingleSelectField from "@saleor/components/SingleSelectField";
2019-12-03 15:28:40 +00:00
const useStyles = makeStyles(
theme => ({
root: {
display: "grid",
gridColumnGap: theme.spacing(2),
gridTemplateColumns: "5rem 1fr"
}
}),
{ name: "PhoneField" }
);
2019-06-19 14:40:52 +00:00
2019-10-30 14:34:24 +00:00
interface PhoneFieldProps {
2019-06-19 14:40:52 +00:00
name: string;
prefix: string;
number: string;
prefixes: string[];
label?: string;
onChange(event: React.ChangeEvent<any>);
}
2019-10-30 14:34:24 +00:00
const PhoneField: React.FC<PhoneFieldProps> = props => {
const {
2019-06-19 14:40:52 +00:00
name,
number: phoneNumber,
prefix,
prefixes,
label,
onChange
2019-10-30 14:34:24 +00:00
} = props;
const classes = useStyles(props);
return (
2019-06-19 14:40:52 +00:00
<div className={classes.root}>
<SingleSelectField
name={name + "_prefix"}
choices={prefixes.map(p => ({ label: "+" + p, value: p }))}
onChange={onChange}
value={prefix}
label={label}
/>
<TextField
name={name + "_number"}
onChange={onChange}
value={phoneNumber}
label="&nbsp;"
/>
</div>
2019-10-30 14:34:24 +00:00
);
};
2019-06-19 14:40:52 +00:00
PhoneField.displayName = "PhoneField";
export default PhoneField;