import Card from "@material-ui/core/Card"; import CardContent from "@material-ui/core/CardContent"; import InputAdornment from "@material-ui/core/InputAdornment"; import TextField from "@material-ui/core/TextField"; import Typography from "@material-ui/core/Typography"; import CardSpacer from "@saleor/components/CardSpacer"; import CardTitle from "@saleor/components/CardTitle"; import FormSpacer from "@saleor/components/FormSpacer"; import SingleAutocompleteSelectField, { SingleAutocompleteChoiceType } from "@saleor/components/SingleAutocompleteSelectField"; import { ChannelErrorFragment } from "@saleor/fragments/types/ChannelErrorFragment"; import useClipboard from "@saleor/hooks/useClipboard"; import { ChangeEvent } from "@saleor/hooks/useForm"; import { FormChange } from "@saleor/hooks/useForm"; import { commonMessages } from "@saleor/intl"; import { getFormErrors } from "@saleor/utils/errors"; import getChannelsErrorMessage from "@saleor/utils/errors/channels"; import React from "react"; import { FormattedMessage, useIntl } from "react-intl"; import { useStyles } from "../styles"; import { ExtendedFormHelperTextProps } from "./types"; export interface FormData { name: string; currencyCode: string; slug: string; shippingZonesIdsToAdd: string[]; shippingZonesIdsToRemove: string[]; } export interface ChannelFormProps { data: FormData; disabled: boolean; currencyCodes?: SingleAutocompleteChoiceType[]; errors: ChannelErrorFragment[]; selectedCurrencyCode?: string; onChange: FormChange; onCurrencyCodeChange?: (event: ChangeEvent) => void; } export const ChannelForm: React.FC = ({ currencyCodes, data, disabled, errors, selectedCurrencyCode, onChange, onCurrencyCodeChange }) => { const intl = useIntl(); const [copied, copy] = useClipboard(); const formErrors = getFormErrors( ["name", "slug", "currencyCode"], errors ); const classes = useStyles({}); return ( <> copy(data.slug)} > {copied ? ( ) : ( )} ) }} /> {!!currencyCodes ? ( ) : ( <> {data.currencyCode} )} ); }; ChannelForm.displayName = "ChannelForm"; export default ChannelForm;