import { Button, Dialog, DialogActions, DialogContent, DialogTitle, TextField } from "@material-ui/core"; import { getAttributeValueErrorMessage } from "@saleor/attributes/errors"; import ConfirmButton, { ConfirmButtonTransitionState } from "@saleor/components/ConfirmButton"; import Form from "@saleor/components/Form"; import { AttributeErrorFragment } from "@saleor/fragments/types/AttributeErrorFragment"; import useModalDialogErrors from "@saleor/hooks/useModalDialogErrors"; import { buttonMessages } from "@saleor/intl"; import { AttributeInputTypeEnum } from "@saleor/types/globalTypes"; import { getFormErrors } from "@saleor/utils/errors"; import React from "react"; import { FormattedMessage, useIntl } from "react-intl"; import { AttributeValueEditDialogFormData } from "../../utils/data"; import AttributeSwatchField from "../AttributeSwatchField"; export interface AttributeValueEditDialogProps { attributeValue: AttributeValueEditDialogFormData | null; confirmButtonState: ConfirmButtonTransitionState; disabled: boolean; errors: AttributeErrorFragment[]; open: boolean; onSubmit: (data: AttributeValueEditDialogFormData) => void; onClose: () => void; inputType?: AttributeInputTypeEnum; } const AttributeValueEditDialog: React.FC = ({ attributeValue, confirmButtonState, disabled, errors: apiErrors, onClose, onSubmit, open, inputType }) => { const intl = useIntl(); const attributeValueFields = attributeValue?.fileUrl ? { fileUrl: attributeValue?.fileUrl, contentType: attributeValue?.contentType } : { value: attributeValue?.value ?? "" }; const initialForm: AttributeValueEditDialogFormData = { name: attributeValue?.name ?? "", ...attributeValueFields }; const errors = useModalDialogErrors(apiErrors, open); const formErrors = getFormErrors(["name"], errors); const isSwatch = inputType === AttributeInputTypeEnum.SWATCH; return ( {attributeValue === null ? ( ) : ( )}
{({ errors, set, change, clearErrors, setError, data, submit }) => ( <> {isSwatch && ( )} )}
); }; AttributeValueEditDialog.displayName = "AttributeValueEditDialog"; export default AttributeValueEditDialog;