import { __ } from '@wordpress/i18n'; import { Button, Modal } from '@wordpress/components'; import { useCallback, useMemo, useState } from '@wordpress/element'; import { useFormBuilderContext } from '@admin/context/FormBuilderContext'; import OptionList from '@admin/components/OptionList'; import type { SelectField, OptionItem } from '../consts'; const CountrySettings = ({ defaultCountries = [], }: { defaultCountries?: OptionItem[]; }) => { const { formBuilderFields, updateFormBuilderFields } = useFormBuilderContext(); const [editCountryList, setEditCountryList] = useState(false); const initialCountryList = useMemo(() => { if ( (formBuilderFields['country'] as SelectField)?.options?.length > 0 ) { return (formBuilderFields['country'] as SelectField)?.options; } return defaultCountries; }, [formBuilderFields['country'], defaultCountries]); const [countryList, setCountryList] = useState(initialCountryList); const onSave = useCallback(() => { updateFormBuilderFields('country', { ...formBuilderFields['country'], options: countryList, } as SelectField); /* Country is always a select field */ setEditCountryList(false); }, [countryList, formBuilderFields['country'], updateFormBuilderFields]); const onCancel = useCallback(() => { setCountryList(initialCountryList); setEditCountryList(false); }, [initialCountryList]); const onResetToDefault = useCallback(() => { setCountryList(defaultCountries); }, [defaultCountries]); return ( <> {editCountryList && ( {__('Save', 'petitioner')} } > setCountryList(newOrder)} /> )} ); }; export default CountrySettings;