import { TextField, Typography } from "@material-ui/core"; import HorizontalSpacer from "@saleor/apps/components/HorizontalSpacer"; import VerticalSpacer from "@saleor/apps/components/VerticalSpacer"; import ControlledCheckbox from "@saleor/components/ControlledCheckbox"; import RadioGroupField from "@saleor/components/RadioGroupField"; import { GiftCardError } from "@saleor/fragments/types/GiftCardError"; import TimePeriodField from "@saleor/giftCards/components/TimePeriodField"; import { GiftCardExpiryType } from "@saleor/giftCards/GiftCardCreateDialog/types"; import { getExpiryPeriodTerminationDate } from "@saleor/giftCards/GiftCardCreateDialog/utils"; import { getGiftCardErrorMessage } from "@saleor/giftCards/GiftCardUpdate/messages"; import useCurrentDate from "@saleor/hooks/useCurrentDate"; import { FormChange } from "@saleor/hooks/useForm"; import { TimePeriodTypeEnum } from "@saleor/types/globalTypes"; import React from "react"; import { FormattedMessage } from "react-intl"; import { MessageDescriptor, useIntl } from "react-intl"; import { giftCardCreateExpirySelectMessages as messages } from "./messages"; import { useGiftCardCreateExpirySelectStyles as useStyles } from "./styles"; interface UntranslatedOption { label: MessageDescriptor; value: GiftCardExpiryType; } const options: UntranslatedOption[] = [ { label: messages.expiryPeriodLabel, value: "EXPIRY_PERIOD" }, { label: messages.expiryDateLabel, value: "EXPIRY_DATE" } ]; interface GiftCardCreateExpirySelectProps { change: FormChange; expirySelected: boolean; expiryPeriodType: TimePeriodTypeEnum; expiryPeriodAmount: number; expiryType: GiftCardExpiryType; customOptions?: UntranslatedOption[]; errors?: Record<"expiryDate", GiftCardError>; expiryDate?: string; } const GiftCardCreateExpirySelect: React.FC = ({ errors, change, expirySelected, expiryPeriodType, expiryPeriodAmount, expiryType, expiryDate }) => { const intl = useIntl(); const classes = useStyles({}); const translatedOptions = options.map(({ label, value }) => ({ value, label: intl.formatMessage(label) })); const currentDate = useCurrentDate(); return ( <> {expirySelected && ( <> {expiryType === "EXPIRY_DATE" && ( )} {expiryType === "EXPIRY_PERIOD" && (
{getExpiryPeriodTerminationDate( currentDate, expiryPeriodType, expiryPeriodAmount )?.format("L")}
)} )} ); }; export default GiftCardCreateExpirySelect;