feat: services kits table in service page
This commit is contained in:
@ -0,0 +1,51 @@
|
||||
import { useCrudOperations } from "@/hooks/cruds/baseCrud";
|
||||
import {
|
||||
CreateServicesKitSchema,
|
||||
ServicesKitSchema,
|
||||
UpdateServicesKitSchema,
|
||||
} from "@/lib/client";
|
||||
import {
|
||||
createServicesKitMutation,
|
||||
deleteServicesKitMutation,
|
||||
updateServicesKitMutation,
|
||||
} from "@/lib/client/@tanstack/react-query.gen";
|
||||
|
||||
type Props = {
|
||||
queryKey: any[];
|
||||
};
|
||||
|
||||
export type ServicesKitsCrud = {
|
||||
onCreate: (data: Partial<CreateServicesKitSchema>) => void;
|
||||
onUpdate: (
|
||||
servicesKitId: number,
|
||||
servicesKit: UpdateServicesKitSchema
|
||||
) => void;
|
||||
onDelete: (servicesKit: ServicesKitSchema, onSuccess?: () => void) => void;
|
||||
};
|
||||
|
||||
export const useServicesKitsCrud = ({ queryKey }: Props): ServicesKitsCrud => {
|
||||
return useCrudOperations<
|
||||
ServicesKitSchema,
|
||||
UpdateServicesKitSchema,
|
||||
CreateServicesKitSchema
|
||||
>({
|
||||
key: "getServicesKits",
|
||||
queryKey,
|
||||
mutations: {
|
||||
create: createServicesKitMutation(),
|
||||
update: updateServicesKitMutation(),
|
||||
delete: deleteServicesKitMutation(),
|
||||
},
|
||||
getCreateEntity: data => ({
|
||||
name: data.name!,
|
||||
serviceType: data.serviceType!,
|
||||
services: data.services!,
|
||||
}),
|
||||
getUpdateEntity: (old, update) => ({
|
||||
...old,
|
||||
name: update.name ?? old.name,
|
||||
serviceType: update.serviceType ?? old.serviceType,
|
||||
}),
|
||||
getDeleteConfirmTitle: () => "Удаление набора услуг",
|
||||
});
|
||||
};
|
||||
@ -5,7 +5,15 @@ import {
|
||||
getServicesKitsQueryKey,
|
||||
} from "@/lib/client/@tanstack/react-query.gen";
|
||||
|
||||
const useServicesKitsList = () => {
|
||||
export type ServicesKitsList = {
|
||||
servicesKits: ServicesKitSchema[];
|
||||
setServicesKits: (servicesKits: ServicesKitSchema[]) => void;
|
||||
refetch: () => void;
|
||||
queryKey: any[];
|
||||
isLoading: boolean;
|
||||
};
|
||||
|
||||
const useServicesKitsList = (): ServicesKitsList => {
|
||||
const queryClient = useQueryClient();
|
||||
const { data, refetch, isLoading } = useQuery(getServicesKitsOptions());
|
||||
|
||||
|
||||
@ -5,8 +5,15 @@ import {
|
||||
getServicesQueryKey,
|
||||
} from "@/lib/client/@tanstack/react-query.gen";
|
||||
|
||||
export type ServicesList = {
|
||||
services: ServiceSchema[];
|
||||
setServices: (services: ServiceSchema[]) => void;
|
||||
refetch: () => void;
|
||||
queryKey: any[];
|
||||
isLoading: boolean;
|
||||
};
|
||||
|
||||
const useServicesList = () => {
|
||||
const useServicesList = (): ServicesList => {
|
||||
const queryClient = useQueryClient();
|
||||
const { data, refetch, isLoading } = useQuery(getServicesOptions());
|
||||
|
||||
|
||||
Reference in New Issue
Block a user