@gaddario98/react-core 2.1.5 → 2.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +630 -4
- package/dist/form/index.js +23 -50
- package/dist/form/index.js.map +1 -1
- package/dist/form/index.mjs +23 -50
- package/dist/form/index.mjs.map +1 -1
- package/dist/pages/index.d.ts +527 -682
- package/dist/pages/index.js +235 -254
- package/dist/pages/index.js.map +1 -1
- package/dist/pages/index.mjs +235 -254
- package/dist/pages/index.mjs.map +1 -1
- package/dist/queries/index.d.ts +25 -4
- package/dist/queries/index.js +211 -216
- package/dist/queries/index.js.map +1 -1
- package/dist/queries/index.mjs +211 -216
- package/dist/queries/index.mjs.map +1 -1
- package/dist/utiles/index.js +204 -39
- package/dist/utiles/index.js.map +1 -1
- package/dist/utiles/index.mjs +204 -39
- package/dist/utiles/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/form/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../form/config.ts","../../form/containers.tsx","../../form/hooks/useJotaiForm.ts","../../form/FormField.tsx","../../form/atoms/formAtom.ts","../../form/hooks/useFormValues.ts","../../node_modules/@tanstack/react-store/dist/esm/index.js","../../form/hooks/useFormManager.tsx","../../form/FormManager.tsx"],"sourcesContent":["import { atomStateGenerator } from \"@gaddario98/react-state\";\nimport type { PropsWithChildren } from \"react\";\nimport { ViewSettingsContainerProps } from \"./types\";\n\nexport interface FormNotificationMessage {\n message: string;\n type: \"success\" | \"error\" | \"info\" | \"warning\";\n autoHideDuration?: number;\n textTransOption?: Record<string, unknown>;\n ns?: string;\n id?: string;\n}\nexport interface FormTranslationOptions {\n [key: string]: string | number | boolean | undefined;\n ns?: string;\n}\nexport interface FormConfigProps {\n container?: React.ComponentType<ViewSettingsContainerProps>;\n submitContainer?: React.ComponentType<ViewSettingsContainerProps>;\n bodyContainer?: React.ComponentType<ViewSettingsContainerProps>;\n formFieldContainer: React.FC<PropsWithChildren>;\n showNotification?: (notification: FormNotificationMessage) => void;\n translateText?: (key: string, options?: FormTranslationOptions) => string;\n}\n\nconst DefaultContainer = ({ children }: PropsWithChildren) => {\n return children;\n};\n// Lazy initialization to avoid side effects at module load time\nconst _formConfig: FormConfigProps = {\n formFieldContainer: DefaultContainer,\n};\n\nexport const {\n atom: formConfigAtom,\n useValue: useFormConfigValue,\n useState: useFormConfigState,\n useReset: useFormConfigReset,\n} = atomStateGenerator<FormConfigProps>({\n key: \"formConfig\",\n defaultValue: _formConfig,\n persist: false,\n});\n","import { useCallback } from 'react'\nimport type { FieldValues, ViewSettingsContainerProps } from './types'\n\nexport interface DefaultFormContainerProps {\n children: React.ReactNode\n}\n\nconst createDefaultContainer = () => {\n return ({ children }: ViewSettingsContainerProps) => {\n return children\n }\n}\n\nlet DefaultContainer = createDefaultContainer()\n\nconst setDefaultFormContainer = (\n val: ({\n children,\n }: ViewSettingsContainerProps) => React.ReactNode,\n) => {\n DefaultContainer = val\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst DefaultFormContainer = <_T extends FieldValues = FieldValues>({\n children,\n}: ViewSettingsContainerProps) => {\n const handleSubmit = useCallback((e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault()\n const form = e.currentTarget\n const submitButton = form.querySelector('button[type=\"submit\"]') as\n | HTMLButtonElement\n | undefined\n submitButton?.click()\n }, [])\n\n return (\n <form onSubmit={handleSubmit} className=\"gap-3 flex flex-col\">\n {children}\n </form>\n )\n}\n\nexport { DefaultContainer, setDefaultFormContainer, DefaultFormContainer }\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useForm } from '@tanstack/react-form'\nimport type {FormOptions} from '@tanstack/react-form';\nimport type { FieldValues } from '../types'\n\nexport interface UseCustomFormOptions<TData extends FieldValues>\n extends FormOptions<\n TData,\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any\n > {\n formId?: string\n}\n\nexport function useJotaiForm<TData extends FieldValues>(formOptions: UseCustomFormOptions<TData>) {\n const form = useForm<\n TData,\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any\n >(formOptions)\n\n return form\n}\n","/* eslint-disable react-hooks/refs */\nimport { useCallback, useEffect, useMemo, useRef } from 'react'\nimport { useFormConfigValue } from './config'\nimport type { FieldValues, FormFieldProps } from './types'\n\nexport const FormField = <T extends FieldValues>({\n config,\n onFieldChange,\n ns: globalNs,\n globalErrorNs,\n}: FormFieldProps<T>) => {\n const ns = config.ns ?? globalNs\n const errorNs = config.errorNs ?? globalErrorNs\n const { formFieldContainer, translateText } = useFormConfigValue()\n\n // TanStack Form uses field.state.meta.errors which is an array of ValidationError\n const firstError =\n config.field.state.meta.errors.length > 0\n ? config.field.state.meta.errors[0]\n : undefined\n const errorMessageStr = firstError ? String(firstError) : undefined\n\n const errorMessage = useMemo(() => {\n if (!errorMessageStr) return undefined\n return errorNs\n ? translateText?.(errorMessageStr, {\n ns: errorNs || '',\n defaultValue: '',\n })\n : errorMessageStr\n }, [errorMessageStr, errorNs, translateText])\n\n const label = useMemo(\n () => (ns ? translateText?.(config.label ?? '') : config.label),\n [ns, config.label, translateText],\n )\n\n const helperMessage = useMemo(\n () =>\n config.helper?.text\n ? translateText?.(config.helper.text, config.helper.translationOption)\n : '',\n [config.helper, translateText],\n )\n\n const ref = useRef({ onFieldChange, handleChange: config.field.handleChange })\n\n useEffect(() => {\n ref.current = {\n onFieldChange,\n handleChange: config.field.handleChange,\n }\n }, [config.field.handleChange, onFieldChange])\n\n const handleChange = useCallback((value: T) => {\n // TanStack Form handleChange usually expects just the value for input\n // but if we are manually calling it we should pass the value.\n ref.current.handleChange(value)\n ref.current.onFieldChange?.(value)\n }, [])\n\n const handleBlur = useCallback(() => {\n config.field.handleBlur()\n }, [config.field])\n\n const baseProps = useMemo(\n () => ({\n value: config.field.state.value,\n onChange: handleChange,\n onBlur: handleBlur,\n error: config.field.state.meta.errors.length > 0,\n errorMessage,\n label,\n helperMessage,\n }),\n [\n config.field.state.value,\n handleChange,\n handleBlur,\n config.field.state.meta.errors.length,\n errorMessage,\n label,\n helperMessage,\n ],\n )\n\n const ConfigContainer = useMemo(() => config.container, [config.container])\n const FormFieldContainer = useMemo(\n () => formFieldContainer,\n [formFieldContainer],\n )\n\n if (ConfigContainer) {\n return (\n <ConfigContainer>\n {config.component(baseProps)}\n </ConfigContainer>\n )\n }\n return (\n <FormFieldContainer>\n {config.component(baseProps)}\n </FormFieldContainer>\n )\n}\n","import { atom, useAtom, useAtomValue, useSetAtom } from 'jotai'\nimport { selectAtom } from 'jotai/utils'\nimport { useCallback, useMemo } from 'react'\nimport type { FieldValues, SetValueFunction } from '../types'\n\nexport interface FormStoreEntry<F extends FieldValues = FieldValues> {\n formValues: F\n setValue: SetValueFunction<F>\n}\n\nexport const DEFAULT_FORM_ENTRY: FormStoreEntry<FieldValues> = Object.freeze({\n formValues: {} as FieldValues,\n setValue: () => {},\n})\n\n/**\n * Global atom storing all form state.\n * Key format: \"scopeId:formId\" or just \"formId\" for backward compatibility.\n */\nexport const formAtom = atom<Record<string, FormStoreEntry>>({})\n\n/**\n * Helper to generate composite keys for forms.\n */\nexport const getFormCompositeKey = (scopeId: string, key: string): string =>\n `${scopeId}:${key}`\n\n/**\n * Creates a derived atom for accessing forms of a specific scope.\n */\nexport const createScopeFormsAtom = (scopeId: string) =>\n atom(\n (get) => {\n const allForms = get(formAtom)\n const prefix = `${scopeId}:`\n const scopeForms: Record<string, FormStoreEntry> = {}\n\n for (const [key, value] of Object.entries(allForms)) {\n if (key.startsWith(prefix)) {\n scopeForms[key.slice(prefix.length)] = value\n }\n }\n\n return scopeForms\n },\n (get, set, update: Record<string, FormStoreEntry>) => {\n const allForms = get(formAtom)\n const prefix = `${scopeId}:`\n const newForms = { ...allForms }\n\n // Remove old scope entries\n for (const key of Object.keys(newForms)) {\n if (key.startsWith(prefix)) {\n delete newForms[key]\n }\n }\n\n // Add new scope entries\n for (const [key, value] of Object.entries(update)) {\n newForms[`${prefix}${key}`] = value\n }\n\n set(formAtom, newForms)\n },\n )\n\nexport const createFormSelector = <F extends FieldValues = FieldValues>(\n formId: string,\n) =>\n selectAtom(\n formAtom,\n (forms) => {\n const entry = forms[formId] as FormStoreEntry<F> | undefined\n return entry ?? (DEFAULT_FORM_ENTRY as unknown as FormStoreEntry<F>)\n },\n (a, b) =>\n a === b || (a.formValues === b.formValues && a.setValue === b.setValue),\n )\n\nexport const useFormValue = <F extends FieldValues>(formId: string) => {\n const selectorAtom = useMemo(() => createFormSelector<F>(formId), [formId])\n return useAtomValue(selectorAtom)\n}\n\nexport const useFormState = <F extends FieldValues>() => {\n return useAtom(formAtom) as unknown as [\n Record<string, FormStoreEntry<F>>,\n (value: Record<string, FormStoreEntry<F>>) => void,\n ]\n}\n\nexport const useSetFormState = <F extends FieldValues>(formId: string) => {\n const setForms = useSetAtom(formAtom)\n\n return useCallback(\n (val: Partial<FormStoreEntry<F>>) => {\n setForms((prev) => {\n const prevEntry =\n (prev[formId] as FormStoreEntry<FieldValues> | undefined) ??\n DEFAULT_FORM_ENTRY\n\n return {\n ...prev,\n [formId]: {\n ...(prevEntry as unknown as FormStoreEntry<F>),\n ...(val as unknown as Partial<FormStoreEntry<FieldValues>>),\n } as unknown as FormStoreEntry<FieldValues>,\n }\n })\n },\n [formId, setForms],\n )\n}\n","import { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport equal from 'fast-deep-equal'\nimport { useFormValue } from '../atoms'\nimport type {\n FieldValues,\n FormFunctionProps,\n GetFormValuesFunction,\n} from '../types'\nimport type { DeepKeys, DeepValue } from '@tanstack/react-form'\n\nconst getValueAtPath = (\n obj: unknown,\n path: string,\n defaultObj?: unknown,\n): unknown => {\n if (!path) return undefined\n const normalized = path.replace(/\\[(\\d+)\\]/g, '.$1')\n const parts = normalized.split('.').filter(Boolean)\n let current: unknown = obj\n for (const part of parts) {\n if (!current || !Object.keys(current).length) {\n if (!defaultObj) return undefined\n current = { [part]: defaultObj }\n }\n if (typeof current !== 'object') return undefined\n current = (current as Record<string, unknown>)[part]\n }\n\n return current\n}\n\nexport interface UseFormValuesProps {\n formId: string\n scopeId?: string\n}\n\nexport const useFormValues = <F extends FieldValues>({\n formId,\n}: UseFormValuesProps): FormFunctionProps<F> => {\n // We subscribe to the specific form entry in the atoms\n // Note: This subscription is a bit coarse (entire form entry), but we optimize re-renders locally\n // Ideally we would want to subscribe only to specific paths, but Jotai atoms are per-form.\n const formEntry = useFormValue(formId)\n const currentValues = useMemo(\n () => formEntry.formValues,\n [formEntry.formValues],\n )\n\n const subscriptions = useRef(new Map<string, unknown>())\n // trigger state is used to force re-render when a subscribed value changes\n const [trigger, setTrigger] = useState(0)\n\n // Ref to hold the latest values without causing re-renders itself\n const formRef = useRef({\n formValues: formEntry.formValues,\n setValue: formEntry.setValue,\n })\n\n useEffect(() => {\n formRef.current.setValue = formEntry.setValue\n }, [formEntry.setValue])\n\n useEffect(() => {\n let shouldTrigger = false\n subscriptions.current.forEach((_, path) => {\n const newValue = getValueAtPath(currentValues, path)\n const oldValue = getValueAtPath(formRef.current.formValues, path)\n if (!equal(newValue, oldValue)) {\n shouldTrigger = true\n }\n })\n\n formRef.current.formValues = currentValues\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (shouldTrigger) {\n setTrigger((c) => c + 1)\n }\n }, [currentValues])\n\n const get = useCallback(\n (key: string, defaultValue?: unknown) => {\n const val =\n getValueAtPath(formRef.current.formValues, key) ?? defaultValue\n subscriptions.current.set(key, val)\n return subscriptions.current.get(key)\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [trigger],\n ) as GetFormValuesFunction<F>\n\n const set = useCallback(\n <TField extends DeepKeys<F>>(\n field: TField,\n value: DeepValue<F, TField>,\n ) => {\n formRef.current.setValue(field, value)\n },\n [],\n )\n\n return { get, set }\n}\n","import { useSyncExternalStoreWithSelector } from \"use-sync-external-store/shim/with-selector.js\";\nexport * from \"@tanstack/store\";\nfunction useStore(store, selector = (d) => d, options = {}) {\n const equal = options.equal ?? shallow;\n const slice = useSyncExternalStoreWithSelector(\n store.subscribe,\n () => store.state,\n () => store.state,\n selector,\n equal\n );\n return slice;\n}\nfunction shallow(objA, objB) {\n if (Object.is(objA, objB)) {\n return true;\n }\n if (typeof objA !== \"object\" || objA === null || typeof objB !== \"object\" || objB === null) {\n return false;\n }\n if (objA instanceof Map && objB instanceof Map) {\n if (objA.size !== objB.size) return false;\n for (const [k, v] of objA) {\n if (!objB.has(k) || !Object.is(v, objB.get(k))) return false;\n }\n return true;\n }\n if (objA instanceof Set && objB instanceof Set) {\n if (objA.size !== objB.size) return false;\n for (const v of objA) {\n if (!objB.has(v)) return false;\n }\n return true;\n }\n if (objA instanceof Date && objB instanceof Date) {\n if (objA.getTime() !== objB.getTime()) return false;\n return true;\n }\n const keysA = getOwnKeys(objA);\n if (keysA.length !== getOwnKeys(objB).length) {\n return false;\n }\n for (let i = 0; i < keysA.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !Object.is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n return true;\n}\nfunction getOwnKeys(obj) {\n return Object.keys(obj).concat(\n Object.getOwnPropertySymbols(obj)\n );\n}\nexport {\n shallow,\n useStore\n};\n//# sourceMappingURL=index.js.map\n","import { useCallback, useEffect, useMemo, useRef } from \"react\";\nimport { FormField } from \"../FormField\";\nimport { useSetFormState } from \"../atoms\";\nimport { useFormConfigValue } from \"../config\";\nimport { useFormValues } from \"./useFormValues\";\nimport { useJotaiForm } from \"./useJotaiForm\";\nimport { useStore } from \"@tanstack/react-store\";\nimport type { FormNotificationMessage } from \"../config\";\nimport type { DeepKeys, DeepValue, Updater } from \"@tanstack/react-form\";\nimport type {\n FieldValues,\n FormFieldConfig,\n FormManagerConfig,\n FormManagerProps,\n GenericFieldApi,\n GenericFieldState,\n GenericFormApi,\n SetValueFunction,\n Submit,\n SubmitKeysArg,\n SubmitPayload,\n UseFormManagerProps,\n} from \"../types\";\nimport type { JSX } from \"react\";\n\nexport interface FormElements {\n index: number;\n element: JSX.Element;\n renderInFooter: boolean;\n renderInHeader: boolean;\n isSubmit?: boolean;\n}\n\ntype PayloadOf<\n F extends FieldValues,\n S extends Submit<F, SubmitKeysArg<F>>,\n> = SubmitPayload<F, S extends Submit<F, infer K> ? K : undefined>;\n\nconst trimObject = <T extends object>(obj?: T): T =>\n Object.entries(obj ?? {}).reduce(\n (prev, [key, val]) => ({\n ...prev,\n [key]:\n typeof val === \"string\" && ![\"password\", \"pPassword\"].includes(key)\n ? val.trim()\n : val,\n }),\n {} as T,\n );\nconst RenderField = <F extends FieldValues = FieldValues>({\n field,\n fieldState,\n fieldProps,\n onFieldChange,\n}: {\n field: GenericFieldApi<F>;\n fieldState: GenericFieldState<F>;\n fieldProps: FormManagerConfig<F>;\n onFieldChange?: (value: F) => void;\n}) => {\n const config: FormFieldConfig<F> = useMemo(\n () => ({\n ...fieldProps,\n field,\n fieldState,\n }),\n [fieldProps, field, fieldState],\n );\n return (\n <FormField<F>\n config={config}\n ns={fieldProps.ns}\n globalErrorNs={fieldProps.errorNs}\n onFieldChange={onFieldChange}\n />\n );\n};\n\nconst DynamicFieldItem = <F extends FieldValues>({\n item,\n form,\n globalErrorNs,\n formId,\n}: {\n item: FormManagerProps<F>[\"data\"][number];\n form: GenericFormApi<F>;\n globalErrorNs?: string;\n formId: string;\n}) => {\n const { get, set } = useFormValues<F>({ formId });\n\n const fieldProps = useMemo(() => {\n if (typeof item === \"function\") {\n return item({ get, set });\n } else {\n return item;\n }\n }, [get, set, item]);\n\n const isHidden = useMemo(() => {\n if (!fieldProps.hidden) {\n return false;\n } else if (typeof fieldProps.hidden === \"function\") {\n return fieldProps.hidden({ get, set });\n } else {\n return !!fieldProps.hidden;\n }\n }, [get, set, fieldProps]);\n\n const rules = useMemo(() => {\n if (!fieldProps.rules) {\n return undefined;\n } else if (typeof fieldProps.rules === \"function\") {\n return fieldProps.rules({ get, set });\n } else {\n return fieldProps.rules;\n }\n }, [get, set, fieldProps]);\n\n const props = useMemo(() => {\n return {\n ...fieldProps,\n errorNs: fieldProps.errorNs ?? globalErrorNs,\n };\n }, [fieldProps, globalErrorNs]);\n\n if (isHidden) {\n return <></>;\n }\n\n return (\n <form.Field\n name={props.name}\n validators={rules}\n // eslint-disable-next-line react/no-children-prop\n children={(field) => (\n <RenderField<F>\n field={field}\n fieldState={field.state}\n fieldProps={props}\n onFieldChange={props.onFieldChange}\n />\n )}\n />\n );\n};\n\nconst SubmitItem = <F extends FieldValues>({\n item,\n index,\n handlersRef,\n}: {\n item: Submit<F>;\n index: number;\n handlersRef: React.MutableRefObject<{\n formControl: GenericFormApi<F>;\n onInvalidHandle: (err: unknown, submitConfig: Submit<F>) => void;\n createSubmitHandler: (\n submitConfig: Submit<F>,\n ) => (data: F) => Promise<unknown>;\n values: F;\n errors: unknown;\n }>;\n}) => {\n const handleClick = useCallback(async () => {\n const { formControl, createSubmitHandler, onInvalidHandle } =\n handlersRef.current;\n\n // Partial or full validation logic\n let isValid = true;\n\n const keys = item.values as ReadonlyArray<string> | undefined;\n if (keys && keys.length > 0) {\n // Validate only specific fields\n await Promise.all(\n keys.map((key) => formControl.validateField(key, \"change\")),\n );\n const hasError = keys.some((key) => {\n // This is a simplified check. TanStack form errors might be structured differently.\n // You might need deep checking if errors are nested objects.\n // For now assume flat or use lodash get if possible, but state.errors is usually flat-ish map in newer versions or object.\n // Checking standard TanStack: form.state.fieldMeta[key]?.errors\n const meta = formControl.getFieldMeta(key);\n return meta?.errors && meta.errors.length > 0;\n });\n isValid = !hasError;\n } else {\n // Validate all\n await formControl.validateAllFields(\"submit\");\n isValid = formControl.state.isValid;\n }\n\n if (!isValid) {\n onInvalidHandle(handlersRef.current.errors, item);\n return;\n }\n\n const values = handlersRef.current.values;\n // Call handlers\n await createSubmitHandler(item)(values);\n }, [item, handlersRef]);\n\n const Component = useMemo(() => item.component, [item]);\n if (item.hidden || !Component) return <></>;\n\n return (\n <Component\n onClick={handleClick}\n index={index}\n key={`submit-${index}`}\n type={item.type || \"button\"}\n />\n );\n};\n\nexport const useFormManager = <F extends FieldValues = FieldValues>({\n data,\n onInvalid,\n submit = [],\n notification,\n formOptions,\n onValuesChange,\n globalErrorNs,\n id = \"form-manager\",\n}: UseFormManagerProps<F>) => {\n const formControl = useJotaiForm<F>(formOptions);\n const errors = useStore(formControl.store, (state) => state.errors);\n const values = useStore(formControl.store, (state) => state.values);\n const setFormState = useSetFormState<F>(id);\n const { showNotification } = useFormConfigValue();\n\n const setValue = useCallback(\n <TField extends DeepKeys<F>>(\n field: TField,\n updater: Updater<DeepValue<F, TField>>,\n ) => formControl.setFieldValue(field, updater),\n [formControl],\n ) as SetValueFunction<F>;\n\n useEffect(() => {\n setFormState({\n setValue,\n formValues: values,\n });\n }, [setFormState, setValue, values]);\n\n const handleNotification = useCallback(\n (props: FormNotificationMessage) => {\n if (props.message) {\n showNotification?.(props);\n }\n },\n [showNotification],\n );\n\n const filterFormData = useCallback(\n <S extends Submit<F, SubmitKeysArg<F>>>(\n v: F,\n submitConfig: S,\n ): PayloadOf<F, S> => {\n const keys = submitConfig.values as ReadonlyArray<keyof F> | undefined;\n if (!keys || keys.length === 0) {\n return v as PayloadOf<F, S>;\n }\n\n const out = {} as Record<keyof F, F[keyof F]>;\n for (const key of keys) {\n if (key in v) {\n out[key] = v[key];\n }\n }\n return out as PayloadOf<F, S>;\n },\n [],\n );\n\n const processSubmit = useCallback(\n async <S extends Submit<F, SubmitKeysArg<F>>>(d: F, submitConfig: S) => {\n const filteredData = filterFormData(d, submitConfig);\n if (submitConfig.onSuccess) {\n return await submitConfig.onSuccess(filteredData);\n }\n throw new Error(\"No submit handler provided\");\n },\n [filterFormData],\n );\n\n const handleError = useCallback(\n <S extends Submit<F, SubmitKeysArg<F>>>(\n error: unknown,\n submitConfig: S,\n ) => {\n if (submitConfig.onError) {\n submitConfig.onError(error as Error);\n }\n const notificationProps =\n typeof notification?.error === \"function\"\n ? notification.error((error as Error).message)\n : notification?.error;\n if (notificationProps?.message) {\n handleNotification(notificationProps);\n }\n },\n [handleNotification, notification],\n );\n\n const createSubmitHandler = useCallback(\n <S extends Submit<F, SubmitKeysArg<F>>>(submitConfig: S) =>\n async (dataSubmit: F) => {\n try {\n const res = await processSubmit(\n trimObject<F>(dataSubmit),\n submitConfig,\n );\n const notificationProps =\n typeof notification?.success === \"function\"\n ? notification.success(res)\n : notification?.success;\n if (notificationProps?.message) {\n handleNotification(notificationProps);\n }\n return res;\n } catch (error) {\n handleError(error, submitConfig);\n throw error;\n }\n },\n [processSubmit, notification, handleNotification, handleError],\n );\n\n const onInvalidHandle = useCallback(\n (err: unknown, submitConfig: Submit<F>) => {\n onInvalid?.(err);\n handleError(new Error(\"invalidData\"), submitConfig);\n },\n [handleError, onInvalid],\n );\n\n const handlersRef = useRef({\n formControl,\n onInvalidHandle,\n createSubmitHandler,\n setValue: formControl.setFieldValue,\n trigger: formControl.validateField,\n onValuesChange,\n values,\n errors,\n });\n\n useEffect(() => {\n handlersRef.current.onInvalidHandle = onInvalidHandle;\n handlersRef.current.createSubmitHandler = createSubmitHandler;\n handlersRef.current.setValue = formControl.setFieldValue;\n handlersRef.current.trigger = formControl.validateField;\n handlersRef.current.onValuesChange = onValuesChange;\n }, [onInvalidHandle, createSubmitHandler, formControl, onValuesChange]);\n\n useEffect(() => {\n handlersRef.current.values = values;\n handlersRef.current.errors = errors;\n }, [values, errors]);\n\n const fields = useMemo(\n () =>\n data.map((item, index): FormElements => {\n const staticItem = typeof item === \"function\" ? null : item;\n return {\n index: staticItem?.index ?? index,\n element: (\n <DynamicFieldItem<F>\n key={staticItem?.name ?? index}\n item={item}\n form={formControl}\n globalErrorNs={globalErrorNs}\n formId={id}\n />\n ),\n renderInFooter: !!staticItem?.renderInFooter,\n renderInHeader: !!staticItem?.renderInHeader,\n };\n }),\n [data, formControl, globalErrorNs, id],\n );\n\n const submits = useMemo(\n () =>\n submit.map((submitConfig, index): FormElements => {\n return {\n index: submitConfig.index === undefined ? index : submitConfig.index,\n element: (\n <SubmitItem<F>\n key={`submit-${index}`}\n item={submitConfig}\n index={index}\n handlersRef={handlersRef}\n />\n ),\n renderInFooter: !!submitConfig.renderInFooter,\n renderInHeader: !!submitConfig.renderInHeader,\n isSubmit: true,\n };\n }),\n [submit],\n );\n\n const elements = useMemo(\n (): Array<FormElements> => fields.concat(submits),\n [fields, submits],\n );\n\n const formContents = useMemo(() => [...data, ...submit], [data, submit]);\n\n useEffect(() => {\n handlersRef.current.onValuesChange?.(values, handlersRef.current.setValue);\n }, [values]);\n\n return {\n elements,\n formContents,\n errors,\n formValues: values,\n setValue,\n };\n};\n","import { useMemo } from \"react\";\nimport { useFormManager } from \"./hooks\";\nimport { DefaultContainer, DefaultFormContainer } from \"./containers\";\nimport type { FieldValues, FormManagerProps } from \"./types\";\nimport { useFormConfigValue } from \"./config\";\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const FormManager = <T extends Record<string, any> = FieldValues>({\n data,\n defaultValues,\n onInvalid,\n submit = [],\n ns,\n globalErrorNs,\n notification,\n formSettings,\n viewSettings,\n onValuesChange,\n id = \"form-manager\",\n}: FormManagerProps<T>) => {\n const { elements = [] } = useFormManager({\n data,\n globalErrorNs,\n notification,\n ns,\n onInvalid,\n submit,\n onValuesChange,\n id,\n formOptions: {\n defaultValues: defaultValues,\n ...formSettings,\n formId: id,\n },\n });\n\n // Render logic remains similar\n const render = useMemo(\n () =>\n elements\n .filter((el) => !el.isSubmit)\n .sort((a, b) => a.index - b.index)\n .map((el) => el.element),\n [elements],\n );\n const renderSubmit = useMemo(\n () =>\n elements\n .filter((el) => el.isSubmit)\n .sort((a, b) => a.index - b.index)\n .map((el) => el.element),\n [elements],\n );\n const { container, bodyContainer, submitContainer } = useFormConfigValue();\n\n const Container =\n viewSettings?.container || container || DefaultFormContainer<T>;\n const BodyContainer =\n viewSettings?.bodyContainer || bodyContainer || DefaultContainer;\n const SubmitContainer =\n viewSettings?.submitContainer || submitContainer || DefaultContainer;\n\n return (\n <Container {...(viewSettings?.containerProps || {})}>\n <BodyContainer {...(viewSettings?.bodyContainerProps || {})}>\n {render}\n </BodyContainer>\n <SubmitContainer {...(viewSettings?.submitContainerProps || {})}>\n {renderSubmit}\n </SubmitContainer>\n </Container>\n );\n};\n"],"names":["DefaultContainer","children","_formConfig","formFieldContainer","atom","formConfigAtom","useValue","useFormConfigValue","useState","useFormConfigState","useReset","useFormConfigReset","atomStateGenerator","key","defaultValue","persist","createDefaultContainer","setDefaultFormContainer","val","DefaultFormContainer","t0","$","_c","handleSubmit","_temp","t1","_jsx","onSubmit","className","e","preventDefault","form","currentTarget","submitButton","querySelector","click","useJotaiForm","formOptions","useForm","FormField","config","onFieldChange","ns","globalNs","globalErrorNs","_a","errorNs","_b","translateText","firstError","field","state","meta","errors","length","undefined","errorMessageStr","String","errorMessage","useMemo","label","helperMessage","helper","text","translationOption","ref","useRef","handleChange","useEffect","current","useCallback","value","call","handleBlur","baseProps","onChange","onBlur","error","ConfigContainer","container","FormFieldContainer","component","DEFAULT_FORM_ENTRY","Object","freeze","formValues","setValue","formAtom","getFormCompositeKey","scopeId","createScopeFormsAtom","get","allForms","prefix","scopeForms","entries","startsWith","slice","set","update","newForms","assign","keys","createFormSelector","formId","selectAtom","forms","entry","a","b","useFormValue","selectorAtom","useAtomValue","useFormState","useAtom","useSetFormState","setForms","useSetAtom","prev","prevEntry","getValueAtPath","obj","path","defaultObj","normalized","replace","parts","split","filter","Boolean","part","useFormValues","formEntry","currentValues","subscriptions","Map","trigger","setTrigger","formRef","shouldTrigger","forEach","_","newValue","oldValue","equal","c","trimObject","reduce","includes","trim","RenderField","fieldState","fieldProps","t2","DynamicFieldItem","item","isHidden","hidden","rules","props","Field","name","validators","SubmitItem","index","handlersRef","handleClick","formControl","createSubmitHandler","onInvalidHandle","isValid","values","Promise","all","map","validateField","hasError","some","getFieldMeta","validateAllFields","Component","onClick","type","useFormManager","data","onInvalid","submit","notification","onValuesChange","id","useStore","store","setFormState","showNotification","updater","setFieldValue","handleNotification","message","filterFormData","v","submitConfig","out","processSubmit","d","filteredData","onSuccess","Error","handleError","onError","notificationProps","dataSubmit","res","success","err","fields","staticItem","element","renderInFooter","renderInHeader","submits","isSubmit","elements","concat","formContents","FormManager","defaultValues","formSettings","viewSettings","t3","t4","t5","t6","t7","t8","sort","_temp2","_temp3","render","t9","_temp4","_temp5","_temp6","renderSubmit","bodyContainer","submitContainer","Container","BodyContainer","SubmitContainer","t10","_jsxs","containerProps","bodyContainerProps","submitContainerProps","el","el_0","el_1","a_0","b_0","el_2"],"mappings":"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","x_google_ignoreList":[6]}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../form/config.ts","../../form/containers.tsx","../../form/hooks/useJotaiForm.ts","../../form/FormField.tsx","../../form/atoms/formAtom.ts","../../form/hooks/useFormValues.ts","../../node_modules/@tanstack/react-store/dist/esm/useStore.js","../../form/hooks/useFormManager.tsx","../../form/FormManager.tsx"],"sourcesContent":["import { atomStateGenerator } from \"@gaddario98/react-state\";\nimport type { PropsWithChildren } from \"react\";\nimport { ViewSettingsContainerProps } from \"./types\";\n\nexport interface FormNotificationMessage {\n message: string;\n type: \"success\" | \"error\" | \"info\" | \"warning\";\n autoHideDuration?: number;\n textTransOption?: Record<string, unknown>;\n ns?: string;\n id?: string;\n}\nexport interface FormTranslationOptions {\n [key: string]: string | number | boolean | undefined;\n ns?: string;\n}\nexport interface FormConfigProps {\n container?: React.ComponentType<ViewSettingsContainerProps>;\n submitContainer?: React.ComponentType<ViewSettingsContainerProps>;\n bodyContainer?: React.ComponentType<ViewSettingsContainerProps>;\n formFieldContainer: React.FC<PropsWithChildren>;\n showNotification?: (notification: FormNotificationMessage) => void;\n translateText?: (key: string, options?: FormTranslationOptions) => string;\n}\n\nconst DefaultContainer = ({ children }: PropsWithChildren) => {\n return children;\n};\n// Lazy initialization to avoid side effects at module load time\nconst _formConfig: FormConfigProps = {\n formFieldContainer: DefaultContainer,\n};\n\nexport const {\n atom: formConfigAtom,\n useValue: useFormConfigValue,\n useState: useFormConfigState,\n useReset: useFormConfigReset,\n} = atomStateGenerator<FormConfigProps>({\n key: \"formConfig\",\n defaultValue: _formConfig,\n persist: false,\n});\n","import { useCallback } from 'react'\nimport type { FieldValues, ViewSettingsContainerProps } from './types'\n\nexport interface DefaultFormContainerProps {\n children: React.ReactNode\n}\n\nconst createDefaultContainer = () => {\n return ({ children }: ViewSettingsContainerProps) => {\n return children\n }\n}\n\nlet DefaultContainer = createDefaultContainer()\n\nconst setDefaultFormContainer = (\n val: ({\n children,\n }: ViewSettingsContainerProps) => React.ReactNode,\n) => {\n DefaultContainer = val\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst DefaultFormContainer = <_T extends FieldValues = FieldValues>({\n children,\n}: ViewSettingsContainerProps) => {\n const handleSubmit = useCallback((e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault()\n const form = e.currentTarget\n const submitButton = form.querySelector('button[type=\"submit\"]') as\n | HTMLButtonElement\n | undefined\n submitButton?.click()\n }, [])\n\n return (\n <form onSubmit={handleSubmit} className=\"gap-3 flex flex-col\">\n {children}\n </form>\n )\n}\n\nexport { DefaultContainer, setDefaultFormContainer, DefaultFormContainer }\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useForm } from '@tanstack/react-form'\nimport type {FormOptions} from '@tanstack/react-form';\nimport type { FieldValues } from '../types'\n\nexport interface UseCustomFormOptions<TData extends FieldValues>\n extends FormOptions<\n TData,\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any\n > {\n formId?: string\n}\n\nexport function useJotaiForm<TData extends FieldValues>(formOptions: UseCustomFormOptions<TData>) {\n const form = useForm<\n TData,\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any\n >(formOptions)\n\n return form\n}\n","/* eslint-disable react-hooks/refs */\nimport { useCallback, useEffect, useMemo, useRef } from 'react'\nimport { useFormConfigValue } from './config'\nimport type { FieldValues, FormFieldProps } from './types'\n\nexport const FormField = <T extends FieldValues>({\n config,\n onFieldChange,\n ns: globalNs,\n globalErrorNs,\n}: FormFieldProps<T>) => {\n const ns = config.ns ?? globalNs\n const errorNs = config.errorNs ?? globalErrorNs\n const { formFieldContainer, translateText } = useFormConfigValue()\n\n // TanStack Form uses field.state.meta.errors which is an array of ValidationError\n const firstError =\n config.field.state.meta.errors.length > 0\n ? config.field.state.meta.errors[0]\n : undefined\n const errorMessageStr = firstError ? String(firstError) : undefined\n\n const errorMessage = useMemo(() => {\n if (!errorMessageStr) return undefined\n return errorNs\n ? translateText?.(errorMessageStr, {\n ns: errorNs || '',\n defaultValue: '',\n })\n : errorMessageStr\n }, [errorMessageStr, errorNs, translateText])\n\n const label = useMemo(\n () => (ns ? translateText?.(config.label ?? '') : config.label),\n [ns, config.label, translateText],\n )\n\n const helperMessage = useMemo(\n () =>\n config.helper?.text\n ? translateText?.(config.helper.text, config.helper.translationOption)\n : '',\n [config.helper, translateText],\n )\n\n const ref = useRef({ onFieldChange, handleChange: config.field.handleChange })\n\n useEffect(() => {\n ref.current = {\n onFieldChange,\n handleChange: config.field.handleChange,\n }\n }, [config.field.handleChange, onFieldChange])\n\n const handleChange = useCallback((value: T) => {\n // TanStack Form handleChange usually expects just the value for input\n // but if we are manually calling it we should pass the value.\n ref.current.handleChange(value)\n ref.current.onFieldChange?.(value)\n }, [])\n\n const handleBlur = useCallback(() => {\n config.field.handleBlur()\n }, [config.field])\n\n const baseProps = useMemo(\n () => ({\n value: config.field.state.value,\n onChange: handleChange,\n onBlur: handleBlur,\n error: config.field.state.meta.errors.length > 0,\n errorMessage,\n label,\n helperMessage,\n }),\n [\n config.field.state.value,\n handleChange,\n handleBlur,\n config.field.state.meta.errors.length,\n errorMessage,\n label,\n helperMessage,\n ],\n )\n\n const ConfigContainer = useMemo(() => config.container, [config.container])\n const FormFieldContainer = useMemo(\n () => formFieldContainer,\n [formFieldContainer],\n )\n\n if (ConfigContainer) {\n return (\n <ConfigContainer>\n {config.component(baseProps)}\n </ConfigContainer>\n )\n }\n return (\n <FormFieldContainer>\n {config.component(baseProps)}\n </FormFieldContainer>\n )\n}\n","import { atom, useAtom, useAtomValue, useSetAtom } from 'jotai'\nimport { selectAtom } from 'jotai/utils'\nimport { useCallback, useMemo } from 'react'\nimport type { FieldValues, SetValueFunction } from '../types'\n\nexport interface FormStoreEntry<F extends FieldValues = FieldValues> {\n formValues: F\n setValue: SetValueFunction<F>\n}\n\nexport const DEFAULT_FORM_ENTRY: FormStoreEntry<FieldValues> = Object.freeze({\n formValues: {} as FieldValues,\n setValue: () => {},\n})\n\n/**\n * Global atom storing all form state.\n * Key format: \"scopeId:formId\" or just \"formId\" for backward compatibility.\n */\nexport const formAtom = atom<Record<string, FormStoreEntry>>({})\n\n/**\n * Helper to generate composite keys for forms.\n */\nexport const getFormCompositeKey = (scopeId: string, key: string): string =>\n `${scopeId}:${key}`\n\n/**\n * Creates a derived atom for accessing forms of a specific scope.\n */\nexport const createScopeFormsAtom = (scopeId: string) =>\n atom(\n (get) => {\n const allForms = get(formAtom)\n const prefix = `${scopeId}:`\n const scopeForms: Record<string, FormStoreEntry> = {}\n\n for (const [key, value] of Object.entries(allForms)) {\n if (key.startsWith(prefix)) {\n scopeForms[key.slice(prefix.length)] = value\n }\n }\n\n return scopeForms\n },\n (get, set, update: Record<string, FormStoreEntry>) => {\n const allForms = get(formAtom)\n const prefix = `${scopeId}:`\n const newForms = { ...allForms }\n\n // Remove old scope entries\n for (const key of Object.keys(newForms)) {\n if (key.startsWith(prefix)) {\n delete newForms[key]\n }\n }\n\n // Add new scope entries\n for (const [key, value] of Object.entries(update)) {\n newForms[`${prefix}${key}`] = value\n }\n\n set(formAtom, newForms)\n },\n )\n\nexport const createFormSelector = <F extends FieldValues = FieldValues>(\n formId: string,\n) =>\n selectAtom(\n formAtom,\n (forms) => {\n const entry = forms[formId] as FormStoreEntry<F> | undefined\n return entry ?? (DEFAULT_FORM_ENTRY as unknown as FormStoreEntry<F>)\n },\n (a, b) =>\n a === b || (a.formValues === b.formValues && a.setValue === b.setValue),\n )\n\nexport const useFormValue = <F extends FieldValues>(formId: string) => {\n const selectorAtom = useMemo(() => createFormSelector<F>(formId), [formId])\n return useAtomValue(selectorAtom)\n}\n\nexport const useFormState = <F extends FieldValues>() => {\n return useAtom(formAtom) as unknown as [\n Record<string, FormStoreEntry<F>>,\n (value: Record<string, FormStoreEntry<F>>) => void,\n ]\n}\n\nexport const useSetFormState = <F extends FieldValues>(formId: string) => {\n const setForms = useSetAtom(formAtom)\n\n return useCallback(\n (val: Partial<FormStoreEntry<F>>) => {\n setForms((prev) => {\n const prevEntry =\n (prev[formId] as FormStoreEntry<FieldValues> | undefined) ??\n DEFAULT_FORM_ENTRY\n\n return {\n ...prev,\n [formId]: {\n ...(prevEntry as unknown as FormStoreEntry<F>),\n ...(val as unknown as Partial<FormStoreEntry<FieldValues>>),\n } as unknown as FormStoreEntry<FieldValues>,\n }\n })\n },\n [formId, setForms],\n )\n}\n","import { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport equal from 'fast-deep-equal'\nimport { useFormValue } from '../atoms'\nimport type {\n FieldValues,\n FormFunctionProps,\n GetFormValuesFunction,\n} from '../types'\nimport type { DeepKeys, DeepValue } from '@tanstack/react-form'\n\nconst getValueAtPath = (\n obj: unknown,\n path: string,\n defaultObj?: unknown,\n): unknown => {\n if (!path) return undefined\n const normalized = path.replace(/\\[(\\d+)\\]/g, '.$1')\n const parts = normalized.split('.').filter(Boolean)\n let current: unknown = obj\n for (const part of parts) {\n if (!current || !Object.keys(current).length) {\n if (!defaultObj) return undefined\n current = { [part]: defaultObj }\n }\n if (typeof current !== 'object') return undefined\n current = (current as Record<string, unknown>)[part]\n }\n\n return current\n}\n\nexport interface UseFormValuesProps {\n formId: string\n scopeId?: string\n}\n\nexport const useFormValues = <F extends FieldValues>({\n formId,\n}: UseFormValuesProps): FormFunctionProps<F> => {\n // We subscribe to the specific form entry in the atoms\n // Note: This subscription is a bit coarse (entire form entry), but we optimize re-renders locally\n // Ideally we would want to subscribe only to specific paths, but Jotai atoms are per-form.\n const formEntry = useFormValue(formId)\n const currentValues = useMemo(\n () => formEntry.formValues,\n [formEntry.formValues],\n )\n\n const subscriptions = useRef(new Map<string, unknown>())\n // trigger state is used to force re-render when a subscribed value changes\n const [trigger, setTrigger] = useState(0)\n\n // Ref to hold the latest values without causing re-renders itself\n const formRef = useRef({\n formValues: formEntry.formValues,\n setValue: formEntry.setValue,\n })\n\n useEffect(() => {\n formRef.current.setValue = formEntry.setValue\n }, [formEntry.setValue])\n\n useEffect(() => {\n let shouldTrigger = false\n subscriptions.current.forEach((_, path) => {\n const newValue = getValueAtPath(currentValues, path)\n const oldValue = getValueAtPath(formRef.current.formValues, path)\n if (!equal(newValue, oldValue)) {\n shouldTrigger = true\n }\n })\n\n formRef.current.formValues = currentValues\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (shouldTrigger) {\n setTrigger((c) => c + 1)\n }\n }, [currentValues])\n\n const get = useCallback(\n (key: string, defaultValue?: unknown) => {\n const val =\n getValueAtPath(formRef.current.formValues, key) ?? defaultValue\n subscriptions.current.set(key, val)\n return subscriptions.current.get(key)\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [trigger],\n ) as GetFormValuesFunction<F>\n\n const set = useCallback(\n <TField extends DeepKeys<F>>(\n field: TField,\n value: DeepValue<F, TField>,\n ) => {\n formRef.current.setValue(field, value)\n },\n [],\n )\n\n return { get, set }\n}\n","import { useCallback } from \"react\";\nimport { useSyncExternalStoreWithSelector } from \"use-sync-external-store/shim/with-selector\";\nfunction defaultCompare(a, b) {\n return a === b;\n}\nfunction useStore(atom, selector, compare = defaultCompare) {\n const subscribe = useCallback(\n (handleStoreChange) => {\n if (!atom) {\n return () => {\n };\n }\n const { unsubscribe } = atom.subscribe(handleStoreChange);\n return unsubscribe;\n },\n [atom]\n );\n const boundGetSnapshot = useCallback(() => atom?.get(), [atom]);\n const selectedSnapshot = useSyncExternalStoreWithSelector(\n subscribe,\n boundGetSnapshot,\n boundGetSnapshot,\n selector,\n compare\n );\n return selectedSnapshot;\n}\nexport {\n useStore\n};\n//# sourceMappingURL=useStore.js.map\n","import { useCallback, useEffect, useMemo, useRef } from \"react\";\nimport { FormField } from \"../FormField\";\nimport { useSetFormState } from \"../atoms\";\nimport { useFormConfigValue } from \"../config\";\nimport { useFormValues } from \"./useFormValues\";\nimport { useJotaiForm } from \"./useJotaiForm\";\nimport { useStore } from \"@tanstack/react-store\";\nimport type { FormNotificationMessage } from \"../config\";\nimport type { DeepKeys, DeepValue, Updater } from \"@tanstack/react-form\";\nimport type {\n FieldValues,\n FormFieldConfig,\n FormManagerConfig,\n FormManagerProps,\n GenericFieldApi,\n GenericFieldState,\n GenericFormApi,\n SetValueFunction,\n Submit,\n SubmitKeysArg,\n SubmitPayload,\n UseFormManagerProps,\n} from \"../types\";\nimport type { JSX } from \"react\";\n\nexport interface FormElements {\n index: number;\n element: JSX.Element;\n renderInFooter: boolean;\n renderInHeader: boolean;\n isSubmit?: boolean;\n}\n\ntype PayloadOf<\n F extends FieldValues,\n S extends Submit<F, SubmitKeysArg<F>>,\n> = SubmitPayload<F, S extends Submit<F, infer K> ? K : undefined>;\n\nconst trimObject = <T extends object>(obj?: T): T =>\n Object.entries(obj ?? {}).reduce(\n (prev, [key, val]) => ({\n ...prev,\n [key]:\n typeof val === \"string\" && ![\"password\", \"pPassword\"].includes(key)\n ? val.trim()\n : val,\n }),\n {} as T,\n );\nconst RenderField = <F extends FieldValues = FieldValues>({\n field,\n fieldState,\n fieldProps,\n onFieldChange,\n}: {\n field: GenericFieldApi<F>;\n fieldState: GenericFieldState<F>;\n fieldProps: FormManagerConfig<F>;\n onFieldChange?: (value: F) => void;\n}) => {\n const config: FormFieldConfig<F> = useMemo(\n () => ({\n ...fieldProps,\n field,\n fieldState,\n }),\n [fieldProps, field, fieldState],\n );\n return (\n <FormField<F>\n config={config}\n ns={fieldProps.ns}\n globalErrorNs={fieldProps.errorNs}\n onFieldChange={onFieldChange}\n />\n );\n};\n\nconst DynamicFieldItem = <F extends FieldValues>({\n item,\n form,\n globalErrorNs,\n formId,\n}: {\n item: FormManagerProps<F>[\"data\"][number];\n form: GenericFormApi<F>;\n globalErrorNs?: string;\n formId: string;\n}) => {\n const { get, set } = useFormValues<F>({ formId });\n\n const fieldProps = useMemo(() => {\n if (typeof item === \"function\") {\n return item({ get, set });\n } else {\n return item;\n }\n }, [get, set, item]);\n\n const isHidden = useMemo(() => {\n if (!fieldProps.hidden) {\n return false;\n } else if (typeof fieldProps.hidden === \"function\") {\n return fieldProps.hidden({ get, set });\n } else {\n return !!fieldProps.hidden;\n }\n }, [get, set, fieldProps]);\n\n const rules = useMemo(() => {\n if (!fieldProps.rules) {\n return undefined;\n } else if (typeof fieldProps.rules === \"function\") {\n return fieldProps.rules({ get, set });\n } else {\n return fieldProps.rules;\n }\n }, [get, set, fieldProps]);\n\n const props = useMemo(() => {\n return {\n ...fieldProps,\n errorNs: fieldProps.errorNs ?? globalErrorNs,\n };\n }, [fieldProps, globalErrorNs]);\n\n if (isHidden) {\n return <></>;\n }\n\n return (\n <form.Field\n name={props.name}\n validators={rules}\n // eslint-disable-next-line react/no-children-prop\n children={(field) => (\n <RenderField<F>\n field={field}\n fieldState={field.state}\n fieldProps={props}\n onFieldChange={props.onFieldChange}\n />\n )}\n />\n );\n};\n\nconst SubmitItem = <F extends FieldValues>({\n item,\n index,\n handlersRef,\n}: {\n item: Submit<F>;\n index: number;\n handlersRef: React.MutableRefObject<{\n formControl: GenericFormApi<F>;\n onInvalidHandle: (err: unknown, submitConfig: Submit<F>) => void;\n createSubmitHandler: (\n submitConfig: Submit<F>,\n ) => (data: F) => Promise<unknown>;\n values: F;\n errors: unknown;\n }>;\n}) => {\n const handleClick = useCallback(async () => {\n const { formControl, createSubmitHandler, onInvalidHandle } =\n handlersRef.current;\n\n // Partial or full validation logic\n let isValid = true;\n\n const keys = item.values as ReadonlyArray<string> | undefined;\n if (keys && keys.length > 0) {\n // Validate only specific fields\n await Promise.all(\n keys.map((key) => formControl.validateField(key, \"change\")),\n );\n const hasError = keys.some((key) => {\n // This is a simplified check. TanStack form errors might be structured differently.\n // You might need deep checking if errors are nested objects.\n // For now assume flat or use lodash get if possible, but state.errors is usually flat-ish map in newer versions or object.\n // Checking standard TanStack: form.state.fieldMeta[key]?.errors\n const meta = formControl.getFieldMeta(key);\n return meta?.errors && meta.errors.length > 0;\n });\n isValid = !hasError;\n } else {\n // Validate all\n await formControl.validateAllFields(\"submit\");\n isValid = formControl.state.isValid;\n }\n\n if (!isValid) {\n onInvalidHandle(handlersRef.current.errors, item);\n return;\n }\n\n const values = handlersRef.current.values;\n // Call handlers\n await createSubmitHandler(item)(values);\n }, [item, handlersRef]);\n\n const Component = useMemo(() => item.component, [item]);\n if (item.hidden || !Component) return <></>;\n\n return (\n <Component\n onClick={handleClick}\n index={index}\n key={`submit-${index}`}\n type={item.type || \"button\"}\n />\n );\n};\n\nexport const useFormManager = <F extends FieldValues = FieldValues>({\n data,\n onInvalid,\n submit = [],\n notification,\n formOptions,\n onValuesChange,\n globalErrorNs,\n id = \"form-manager\",\n}: UseFormManagerProps<F>) => {\n const formControl = useJotaiForm<F>(formOptions);\n const errors = useStore(formControl.store, (state) => state.errors);\n const values = useStore(formControl.store, (state) => state.values);\n const setFormState = useSetFormState<F>(id);\n const { showNotification } = useFormConfigValue();\n\n const setValue = useCallback(\n <TField extends DeepKeys<F>>(\n field: TField,\n updater: Updater<DeepValue<F, TField>>,\n ) => formControl.setFieldValue(field, updater),\n [formControl],\n ) as SetValueFunction<F>;\n\n useEffect(() => {\n setFormState({\n setValue,\n formValues: values,\n });\n }, [setFormState, setValue, values]);\n\n const handleNotification = useCallback(\n (props: FormNotificationMessage) => {\n if (props.message) {\n showNotification?.(props);\n }\n },\n [showNotification],\n );\n\n const filterFormData = useCallback(\n <S extends Submit<F, SubmitKeysArg<F>>>(\n v: F,\n submitConfig: S,\n ): PayloadOf<F, S> => {\n const keys = submitConfig.values as ReadonlyArray<keyof F> | undefined;\n if (!keys || keys.length === 0) {\n return v as PayloadOf<F, S>;\n }\n\n const out = {} as Record<keyof F, F[keyof F]>;\n for (const key of keys) {\n if (key in v) {\n out[key] = v[key];\n }\n }\n return out as PayloadOf<F, S>;\n },\n [],\n );\n\n const processSubmit = useCallback(\n async <S extends Submit<F, SubmitKeysArg<F>>>(d: F, submitConfig: S) => {\n const filteredData = filterFormData(d, submitConfig);\n if (submitConfig.onSuccess) {\n return await submitConfig.onSuccess(filteredData);\n }\n throw new Error(\"No submit handler provided\");\n },\n [filterFormData],\n );\n\n const handleError = useCallback(\n <S extends Submit<F, SubmitKeysArg<F>>>(\n error: unknown,\n submitConfig: S,\n ) => {\n if (submitConfig.onError) {\n submitConfig.onError(error as Error);\n }\n const notificationProps =\n typeof notification?.error === \"function\"\n ? notification.error((error as Error).message)\n : notification?.error;\n if (notificationProps?.message) {\n handleNotification(notificationProps);\n }\n },\n [handleNotification, notification],\n );\n\n const createSubmitHandler = useCallback(\n <S extends Submit<F, SubmitKeysArg<F>>>(submitConfig: S) =>\n async (dataSubmit: F) => {\n try {\n const res = await processSubmit(\n trimObject<F>(dataSubmit),\n submitConfig,\n );\n const notificationProps =\n typeof notification?.success === \"function\"\n ? notification.success(res)\n : notification?.success;\n if (notificationProps?.message) {\n handleNotification(notificationProps);\n }\n return res;\n } catch (error) {\n handleError(error, submitConfig);\n throw error;\n }\n },\n [processSubmit, notification, handleNotification, handleError],\n );\n\n const onInvalidHandle = useCallback(\n (err: unknown, submitConfig: Submit<F>) => {\n onInvalid?.(err);\n handleError(new Error(\"invalidData\"), submitConfig);\n },\n [handleError, onInvalid],\n );\n\n const handlersRef = useRef({\n formControl,\n onInvalidHandle,\n createSubmitHandler,\n setValue: formControl.setFieldValue,\n trigger: formControl.validateField,\n onValuesChange,\n values,\n errors,\n });\n\n useEffect(() => {\n handlersRef.current.onInvalidHandle = onInvalidHandle;\n handlersRef.current.createSubmitHandler = createSubmitHandler;\n handlersRef.current.setValue = formControl.setFieldValue;\n handlersRef.current.trigger = formControl.validateField;\n handlersRef.current.onValuesChange = onValuesChange;\n }, [onInvalidHandle, createSubmitHandler, formControl, onValuesChange]);\n\n useEffect(() => {\n handlersRef.current.values = values;\n handlersRef.current.errors = errors;\n }, [values, errors]);\n\n const fields = useMemo(\n () =>\n data.map((item, index): FormElements => {\n const staticItem = typeof item === \"function\" ? null : item;\n return {\n index: staticItem?.index ?? index,\n element: (\n <DynamicFieldItem<F>\n key={staticItem?.name ?? index}\n item={item}\n form={formControl}\n globalErrorNs={globalErrorNs}\n formId={id}\n />\n ),\n renderInFooter: !!staticItem?.renderInFooter,\n renderInHeader: !!staticItem?.renderInHeader,\n };\n }),\n [data, formControl, globalErrorNs, id],\n );\n\n const submits = useMemo(\n () =>\n submit.map((submitConfig, index): FormElements => {\n return {\n index: submitConfig.index === undefined ? index : submitConfig.index,\n element: (\n <SubmitItem<F>\n key={`submit-${index}`}\n item={submitConfig}\n index={index}\n handlersRef={handlersRef}\n />\n ),\n renderInFooter: !!submitConfig.renderInFooter,\n renderInHeader: !!submitConfig.renderInHeader,\n isSubmit: true,\n };\n }),\n [submit],\n );\n\n const elements = useMemo(\n (): Array<FormElements> => fields.concat(submits),\n [fields, submits],\n );\n\n const formContents = useMemo(() => [...data, ...submit], [data, submit]);\n\n useEffect(() => {\n handlersRef.current.onValuesChange?.(values, handlersRef.current.setValue);\n }, [values]);\n\n return {\n elements,\n formContents,\n errors,\n formValues: values,\n setValue,\n };\n};\n","import { useMemo } from \"react\";\nimport { useFormManager } from \"./hooks\";\nimport { DefaultContainer, DefaultFormContainer } from \"./containers\";\nimport type { FieldValues, FormManagerProps } from \"./types\";\nimport { useFormConfigValue } from \"./config\";\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const FormManager = <T extends Record<string, any> = FieldValues>({\n data,\n defaultValues,\n onInvalid,\n submit = [],\n ns,\n globalErrorNs,\n notification,\n formSettings,\n viewSettings,\n onValuesChange,\n id = \"form-manager\",\n}: FormManagerProps<T>) => {\n const { elements = [] } = useFormManager({\n data,\n globalErrorNs,\n notification,\n ns,\n onInvalid,\n submit,\n onValuesChange,\n id,\n formOptions: {\n defaultValues: defaultValues,\n ...formSettings,\n formId: id,\n },\n });\n\n // Render logic remains similar\n const render = useMemo(\n () =>\n elements\n .filter((el) => !el.isSubmit)\n .sort((a, b) => a.index - b.index)\n .map((el) => el.element),\n [elements],\n );\n const renderSubmit = useMemo(\n () =>\n elements\n .filter((el) => el.isSubmit)\n .sort((a, b) => a.index - b.index)\n .map((el) => el.element),\n [elements],\n );\n const { container, bodyContainer, submitContainer } = useFormConfigValue();\n\n const Container =\n viewSettings?.container || container || DefaultFormContainer<T>;\n const BodyContainer =\n viewSettings?.bodyContainer || bodyContainer || DefaultContainer;\n const SubmitContainer =\n viewSettings?.submitContainer || submitContainer || DefaultContainer;\n\n return (\n <Container {...(viewSettings?.containerProps || {})}>\n <BodyContainer {...(viewSettings?.bodyContainerProps || {})}>\n {render}\n </BodyContainer>\n <SubmitContainer {...(viewSettings?.submitContainerProps || {})}>\n {renderSubmit}\n </SubmitContainer>\n </Container>\n );\n};\n"],"names":["DefaultContainer","children","_formConfig","formFieldContainer","atom","formConfigAtom","useValue","useFormConfigValue","useState","useFormConfigState","useReset","useFormConfigReset","atomStateGenerator","key","defaultValue","persist","createDefaultContainer","setDefaultFormContainer","val","DefaultFormContainer","t0","$","_c","handleSubmit","_temp","t1","_jsx","onSubmit","className","e","preventDefault","form","currentTarget","submitButton","querySelector","click","useJotaiForm","formOptions","useForm","FormField","config","onFieldChange","ns","globalNs","globalErrorNs","_a","errorNs","_b","translateText","firstError","field","state","meta","errors","length","undefined","errorMessageStr","String","errorMessage","useMemo","label","helperMessage","helper","text","translationOption","ref","useRef","handleChange","useEffect","current","useCallback","value","call","handleBlur","baseProps","onChange","onBlur","error","ConfigContainer","container","FormFieldContainer","component","DEFAULT_FORM_ENTRY","Object","freeze","formValues","setValue","formAtom","getFormCompositeKey","scopeId","createScopeFormsAtom","get","allForms","prefix","scopeForms","entries","startsWith","slice","set","update","newForms","assign","keys","createFormSelector","formId","selectAtom","forms","entry","a","b","useFormValue","selectorAtom","useAtomValue","useFormState","useAtom","useSetFormState","setForms","useSetAtom","prev","prevEntry","getValueAtPath","obj","path","defaultObj","normalized","replace","parts","split","filter","Boolean","part","useFormValues","formEntry","currentValues","subscriptions","Map","trigger","setTrigger","formRef","shouldTrigger","forEach","_","newValue","oldValue","equal","c","trimObject","reduce","includes","trim","RenderField","fieldState","fieldProps","t2","DynamicFieldItem","item","isHidden","hidden","rules","props","Field","name","validators","SubmitItem","index","handlersRef","handleClick","formControl","createSubmitHandler","onInvalidHandle","isValid","values","Promise","all","map","validateField","hasError","some","getFieldMeta","validateAllFields","Component","onClick","type","useFormManager","data","onInvalid","submit","notification","onValuesChange","id","useStore","store","setFormState","showNotification","updater","setFieldValue","handleNotification","message","filterFormData","v","submitConfig","out","processSubmit","d","filteredData","onSuccess","Error","handleError","onError","notificationProps","dataSubmit","res","success","err","fields","staticItem","element","renderInFooter","renderInHeader","submits","isSubmit","elements","concat","formContents","FormManager","defaultValues","formSettings","viewSettings","t3","t4","t5","t6","t7","t8","sort","_temp2","_temp3","render","t9","_temp4","_temp5","_temp6","renderSubmit","bodyContainer","submitContainer","Container","BodyContainer","SubmitContainer","t10","_jsxs","containerProps","bodyContainerProps","submitContainerProps","el","el_0","el_1","a_0","b_0","el_2"],"mappings":"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","x_google_ignoreList":[6]}
|