import { Order } from "@medusajs/medusa" import { useAdminRegion } from "medusa-react" import React, { useContext, useEffect, useMemo } from "react" import { Controller, useForm } from "react-hook-form" import { useTranslation } from "react-i18next" import Button from "../../../../components/fundamentals/button" import Input from "../../../../components/molecules/input" import Modal from "../../../../components/molecules/modal" import { LayeredModalContext } from "../../../../components/molecules/modal/layered-modal" import Select from "../../../../components/molecules/select" import { Option } from "../../../../types/shared" import { AddressPayload } from "../claim/create" type RMAEditAddressSubModalProps = { onSubmit: (address: AddressPayload) => void address: AddressPayload order: Omit } type RMAEditAddressSubModalFormData = { first_name: string last_name: string company: string address_1: string address_2: string city: string province: string postal_code: string country_code: Option phone: string } const RMAEditAddressSubModal: React.FC = ({ onSubmit, address, order, }) => { const { t } = useTranslation() const { pop } = useContext(LayeredModalContext) const { register, handleSubmit, control, reset } = useForm() const { region } = useAdminRegion(order.region_id) const countryOptions = useMemo(() => { return ( region?.countries.map((country) => ({ label: country.display_name, value: country.iso_2, })) || [] ) }, [region]) useEffect(() => { if (address && countryOptions) { const option = countryOptions.find( (o) => o.value === address.country_code ) reset({ ...address, country_code: option, }) } }, [countryOptions, address]) const submit = (data: RMAEditAddressSubModalFormData) => { onSubmit({ ...data, country_code: data.country_code.value, }) pop() } return ( <>

{t( "rma-sub-modals-search-for-additional", "Search for additional" )}{" "}

{t("rma-sub-modals-general", "General")}
{t("rma-sub-modals-shipping-address", "Shipping Address")}
{ return (