shoc-frontend-new/src/domain/settings/dropdown-options/use-cases/use-create-dropdown-option.ts

27 lines
952 B
TypeScript

import { useMutation, useQueryClient, type UseMutationResult } from "@tanstack/react-query";
import { toast } from "react-toastify";
import { dropdownOptionsApi } from "@/domain/settings/dropdown-options/api/dropdown-options-api";
import type {
CreateDropdownOptionInput,
DropdownOption,
} from "@/domain/settings/dropdown-options/types/dropdown-option";
import { queryKeys } from "@/infra/query-key/query-key";
export function useCreateDropdownOption(): UseMutationResult<
DropdownOption,
Error,
CreateDropdownOptionInput
> {
const queryClient = useQueryClient();
return useMutation({
mutationFn: (input: CreateDropdownOptionInput) => dropdownOptionsApi.create(input),
onSuccess: () => {
void queryClient.invalidateQueries({ queryKey: queryKeys.dropdownOptions.all });
toast.success("Option added");
},
onError: (error: Error) => {
toast.error(error.message || "Failed to add option");
},
});
}