import { Discount } from "@medusajs/medusa" import clsx from "clsx" import React, { useEffect, useState } from "react" import { Controller } from "react-hook-form" import { useTranslation } from "react-i18next" import DatePicker from "../../../../../components/atoms/date-picker/date-picker" import TimePicker from "../../../../../components/atoms/date-picker/time-picker" import Switch from "../../../../../components/atoms/switch" import AvailabilityDuration from "../../../../../components/molecules/availability-duration" import InputField from "../../../../../components/molecules/input" import Accordion from "../../../../../components/organisms/accordion" import { useDiscountForm } from "../form/discount-form-context" type SettingsProps = { isEdit?: boolean promotion?: Discount } const getActiveTabs = (promotion: Discount) => { const activeTabs: string[] = [] if (promotion.usage_limit !== null) { activeTabs.push("usage_limit") } if (promotion.starts_at !== null) { activeTabs.push("starts_at") } if (promotion.ends_at !== null) { activeTabs.push("ends_at") } if (promotion.valid_duration !== null) { activeTabs.push("valid_duration") } return activeTabs } const Settings: React.FC = ({ promotion, isEdit = false }) => { const { register, control, isDynamic, hasExpiryDate, handleConfigurationChanged, } = useDiscountForm() const { t } = useTranslation() const [openItems, setOpenItems] = React.useState( isEdit && promotion ? getActiveTabs(promotion) : [...(hasExpiryDate ? ["ends_at"] : [])] ) const marginTransition = "transition-[margin] duration-300 ease-[cubic-bezier(0.87, 0, 0.13, 1) forwards]" const [render, setRender] = useState(false) useEffect(() => { setTimeout(() => setRender(true), 300) }, []) return (
{ handleConfigurationChanged(values) setOpenItems(values) }} > {render && ( <> -1} /> } >
-1, } )} > { const date = value || new Date() return ( <> ) }} />
-1} /> } >
-1, } )} > { const date = value || new Date(new Date().getTime() + 7 * 24 * 60 * 60 * 1000) return ( <> ) }} />
-1} /> } >
-1, })} >
{isDynamic && ( -1} /> } >
-1, })} > { return ( ) }} />
)} )}
) } export default Settings