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

59 lines
1.2 KiB
TypeScript
Raw Normal View History

2019-06-19 14:40:52 +00:00
import {
createStyles,
Theme,
withStyles,
WithStyles
} from "@material-ui/core/styles";
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-10-28 16:16:49 +00:00
const styles = theme =>
2019-06-19 14:40:52 +00:00
createStyles({
root: {
display: "grid",
2019-10-28 16:16:49 +00:00
gridColumnGap: theme.spacing(2),
2019-06-19 14:40:52 +00:00
gridTemplateColumns: "5rem 1fr"
}
});
interface PhoneFieldProps extends WithStyles<typeof styles> {
name: string;
prefix: string;
number: string;
prefixes: string[];
label?: string;
onChange(event: React.ChangeEvent<any>);
}
const PhoneField = withStyles(styles, { name: "PhoneField" })(
({
classes,
name,
number: phoneNumber,
prefix,
prefixes,
label,
onChange
}: PhoneFieldProps) => (
<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>
)
);
PhoneField.displayName = "PhoneField";
export default PhoneField;