feat: enhance import/export functionality with detailed results dialog and improved data handling
This commit is contained in:
@@ -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,
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user