import { RecordPageSectionType } from '../..'; import { BadRequestError } from '../../pages/errors'; import { BaseResource } from '../../pages/types'; import { FieldError, RecordPageType } from './types'; import type { ExecuteSaveType, FetchErrorType, GetNestedValue, NestedKeyOf } from '../../types'; export type UseRecordEditReturn = NestedKeyOf, V extends GetNestedValue = GetNestedValue> = { resource: R; updateEditingResource: (keyValues: { key: K; value: V; }[], options?: { skipUpdateIsFieldEdited?: boolean; }) => void; errorFields: FieldError[] | undefined; setErrorFields: (errorFields?: FieldError[]) => void; isFieldEdited: boolean; onRequestSave: (sectionId?: string) => Promise<{ data: R | undefined; error: BadRequestError | undefined; }>; resetFormState: () => void; }; export declare const partialResourceToKeyValues: = NestedKeyOf, V extends GetNestedValue = GetNestedValue>(partialResource: Partial, parentKey?: K | undefined) => { key: K; value: V; }[]; /** * 編集に関するロジックをまとめたカスタムフック */ export declare const useRecordEdit: = NestedKeyOf, V extends GetNestedValue = GetNestedValue>({ page, initialResource, resource: resourceProps, dirtyOnly, createMainSections, executeSave: executeSavePropFunc, onFieldEdit, }: { page: RecordPageType; initialResource?: Partial | (() => Partial | undefined) | undefined; resource?: R | undefined; dirtyOnly?: boolean | undefined; createMainSections?: ((resource?: R | undefined, options?: { page?: RecordPageType | undefined; } | undefined) => RecordPageSectionType[]) | undefined; executeSave?: ExecuteSaveType | undefined; onFieldEdit?: ((isFieldEdited: boolean) => void) | undefined; }) => UseRecordEditReturn;