import { CurrencyInput, DatePicker, Heading, Input, RadioGroup, Select, Text, Textarea, } from "@medusajs/ui" import { useEffect } from "react" import { useWatch } from "react-hook-form" import { useTranslation } from "react-i18next" import { Form } from "../../../../../components/common/form" import { useStore } from "../../../../../hooks/api/store" import { useDocumentDirection } from "../../../../../hooks/use-document-direction" import { currencies, getCurrencySymbol, } from "../../../../../lib/data/currencies" import { Combobox } from "../../../../../components/inputs/combobox" export const CreateCampaignFormFields = ({ form, fieldScope = "", }: { form: any fieldScope?: string }) => { const { t } = useTranslation() const { store } = useStore() const direction = useDocumentDirection() const watchValueType = useWatch({ control: form.control, name: `${fieldScope}budget.type`, }) const isTypeSpend = watchValueType === "spend" const currencyValue = useWatch({ control: form.control, name: `${fieldScope}budget.currency_code`, }) const promotionCurrencyValue = useWatch({ control: form.control, name: `application_method.currency_code`, }) const currency = currencyValue || promotionCurrencyValue useEffect(() => { form.setValue(`${fieldScope}budget.limit`, null) if (isTypeSpend) { form.setValue(`campaign.budget.currency_code`, promotionCurrencyValue) } else { form.setValue(`campaign.budget.currency_code`, null) } }, [promotionCurrencyValue, isTypeSpend]) if (promotionCurrencyValue) { const formCampaignBudget = form.getValues().campaign?.budget const formCampaignCurrency = formCampaignBudget?.currency_code if ( formCampaignBudget?.type === "spend" && formCampaignCurrency !== promotionCurrencyValue ) { form.setValue("campaign.budget.currency_code", promotionCurrencyValue) } } return (
{t("campaigns.create.header")} {t("campaigns.create.hint")}
{ return ( {t("fields.name")} ) }} /> { return ( {t("campaigns.fields.identifier")} ) }} />
{ return ( {t("fields.description")}