import { Button, Group, Select, Stack, Switch } from '@mantine/core'; import { useRef, useState } from 'react'; import { Controller } from 'react-hook-form'; import type { FormerAPICallType, FormerProps, FormerRef } from '../Former.types'; import { Former } from '../Former'; import { FormerRestHeadSpecAPI } from '../FormerRestHeadSpecAPI'; import { FormerModel } from '../FormerWrappers'; import { ApiFormData } from './apiFormData'; const StubAPI = (): FormerAPICallType => (mode, request, value) => { console.log('API Call', mode, request, value); if (mode === 'read') { return new Promise((resolve) => { setTimeout(() => { resolve({ a: 'Another Value', test: 'Loaded Value' }); }, 1000); }); } return new Promise((resolve) => { setTimeout(() => { resolve(value || {}); }, 1000); }); }; export const FormTest = () => { const [request, setRequest] = useState('insert'); const [wrapped, setWrapped] = useState(false); const [disableHTML, setDisableHTML] = useState(false); const [apiOptions, setApiOptions] = useState({ authToken: '', type: '', url: '', }); const [layout, setLayout] = useState({ buttonArea: "bottom", buttonAreaGroupProps: { justify: 'center' }, title: 'Custom Former Title', } as FormerProps['layout']); const [open, setOpen] = useState(false); const [formData, setFormData] = useState({ a: 99, rid_usernote: 3047 }); //console.log('formData render', formData); const ref = useRef(null); return ( setLayout({ ...layout, buttonArea: value as 'bottom' | 'none' | 'top' })} value={layout?.buttonArea} /> setApiOptions({ ...apiOptions, type: event.currentTarget.checked ? 'api' : '' }) } /> setOpen(false)} opened={open}>
Test
setOpen(false)} opened={open} primeData={{ a: '66', test: 'primed' }} ref={ref} request={request as any} //wrapper={(children, getState) =>
{children}
} //opened={true} uniqueKeyField="rid_usernote" useFormProps={{ criteriaMode: 'all', shouldUseNativeValidation: false }} values={formData} // wrapper={ // wrapped // ? (children, opened, onClose, _onOpen, getState) => { // const values = getState('values'); // return ( // onClose?.()} // opened={opened ?? false} // title={`Drawer Former - Current A Value: ${values?.a}`} // w={'50%'} // > // // {children} // // // ); // } // : undefined // } > } /> } rules={{ required: 'Field is required' }} /> } rules={{ required: 'Field is required' }} /> {!disableHTML && ( )}
{apiOptions.type === 'api' && ( { setApiOptions({ ...apiOptions, ...values }); }} values={apiOptions} /> )}
); };