20 lines
815 B
TypeScript
20 lines
815 B
TypeScript
import { useMutation, useQueryClient } from '@tanstack/react-query';
|
|
import { catalogApi } from '../apis';
|
|
import { catalogKeys } from '../keys';
|
|
import type { OptionGroupInput } from '../types';
|
|
|
|
/**
|
|
* Adds a pricing dimension — invalidates every cached category's option-groups (admin + public), not
|
|
* just the current one, because a cross-category group (`serviceCategoryId: null`) affects all of them.
|
|
*/
|
|
export function useCreateOptionGroup() {
|
|
const queryClient = useQueryClient();
|
|
return useMutation({
|
|
mutationFn: (input: OptionGroupInput) => catalogApi.createOptionGroup(input),
|
|
onSuccess: () => {
|
|
queryClient.invalidateQueries({ queryKey: catalogKeys.adminOptionGroupsAll() });
|
|
queryClient.invalidateQueries({ queryKey: catalogKeys.categoryOptionGroupsAll() });
|
|
},
|
|
});
|
|
}
|