@appello/common
Version:
Common package with many useful features for web and mobile development
24 lines (23 loc) • 948 B
TypeScript
import { UseFormProps } from 'react-hook-form';
import { AnyObject } from '../../types';
type SyncPolicyLiteral = 'default-values-first' | 'storage-first';
interface WebStorage {
getItem(key: string, ...args: any[]): any;
setItem(key: string, value: any, ...args: any[]): any;
removeItem(key: string, ...args: any[]): any;
}
export interface FormPersistProps<T extends AnyObject = AnyObject> {
key: string;
storage?: WebStorage;
excludeFields?: (keyof T)[];
includeFields?: (keyof T)[];
}
export declare const useHookFormPersist: <T extends AnyObject = AnyObject>({ key: keyStorage, storage, excludeFields, includeFields, }: FormPersistProps<T>) => {
syncFromStorage: ({ defaultValues, syncPolicy, }: {
defaultValues?: UseFormProps<T>['defaultValues'];
syncPolicy?: SyncPolicyLiteral;
}) => Promise<T>;
syncToStorage: (watchedValues: T) => void;
clear: () => Promise<void>;
};
export {};