feat: enhance import/export functionality with detailed results dialog and improved data handling

This commit is contained in:
2026-05-15 11:34:23 +04:00
parent fcbba6247d
commit 54d11f01b4
18 changed files with 312 additions and 59 deletions
@@ -16,11 +16,12 @@ type UseResourceFormOptions<TFormValues extends FieldValues, TApiData = unknown>
queryKey?: QueryKey
}
type UseResourceFormReturn<TFormValues extends FieldValues> = {
type UseResourceFormReturn<TFormValues extends FieldValues, TApiData = unknown> = {
form: UseFormReturn<TFormValues>
isEditing: boolean
isInitializing: boolean
invalidate: () => void
data: TApiData | undefined
}
export function useResourceForm<TFormValues extends FieldValues, TApiData = unknown>({
@@ -31,7 +32,7 @@ export function useResourceForm<TFormValues extends FieldValues, TApiData = unkn
mapToFormValues,
initialData,
queryKey,
}: UseResourceFormOptions<TFormValues, TApiData>): UseResourceFormReturn<TFormValues> {
}: UseResourceFormOptions<TFormValues, TApiData>): UseResourceFormReturn<TFormValues, TApiData> {
const isEditing = !!resourceId
const queryClient = useQueryClient()
const resolvedQueryKey = queryKey ?? ["resource", resourceId]
@@ -44,7 +45,8 @@ export function useResourceForm<TFormValues extends FieldValues, TApiData = unkn
refetchOnMount: "always",
})
const resolvedData = queriedData ?? (isEditing ? initialData : undefined)
const resolvedData: TApiData | undefined =
queriedData ?? (isEditing ? (initialData ?? undefined) : undefined)
const form = useForm<TFormValues>({
resolver: zodResolver(schema) as any,
@@ -70,5 +72,11 @@ export function useResourceForm<TFormValues extends FieldValues, TApiData = unkn
queryClient.invalidateQueries({ queryKey: resolvedQueryKey })
}
return { form, isEditing, isInitializing: isEditing && !!initialize && isQueryLoading, invalidate }
return {
form,
isEditing,
isInitializing: isEditing && !!initialize && isQueryLoading,
invalidate,
data: resolvedData,
}
}