saleor-dashboard/src/components/AppLayout/AppChannelSelect.tsx

52 lines
1.2 KiB
TypeScript
Raw Normal View History

import makeStyles from "@material-ui/core/styles/makeStyles";
import { ChannelDetailsFragment } from "@saleor/fragments/types/ChannelDetailsFragment";
import { ChannelProps } from "@saleor/types";
import { mapNodeToChoice } from "@saleor/utils/maps";
import React from "react";
import SingleSelectField from "../SingleSelectField";
const useStyles = makeStyles(
theme => ({
root: {
"&& fieldset": {
borderColor: theme.palette.divider
},
marginRight: theme.spacing(2),
width: 192
}
}),
{
name: "AppChannelSelect"
}
);
export interface AppChannelSelectProps extends ChannelProps {
channels: ChannelDetailsFragment[];
disabled: boolean;
onChannelSelect: (id: string) => void;
}
const AppChannelSelect: React.FC<AppChannelSelectProps> = ({
channels,
disabled,
onChannelSelect,
selectedChannelId
}) => {
const classes = useStyles({});
return (
<div className={classes.root}>
<SingleSelectField
choices={mapNodeToChoice(channels)}
disabled={disabled}
value={selectedChannelId}
onChange={event => onChannelSelect(event.target.value)}
/>
</div>
);
};
AppChannelSelect.displayName = "AppChannelSelect";
export default AppChannelSelect;