import { useMutation, useQueryClient, type UseMutationResult } from "@tanstack/react-query"; import { useNavigate } from "react-router"; import { toast } from "react-toastify"; import { assetsApi } from "@/domain/assets/api/assets-api"; import type { AssetFormValues } from "@/domain/assets/schemas/asset-schema"; import type { Asset } from "@/domain/assets/types/asset"; import { queryKeys } from "@/infra/query-key/query-key"; export function useCreateAsset(): UseMutationResult { const navigate = useNavigate(); const queryClient = useQueryClient(); return useMutation({ mutationFn: (values: AssetFormValues) => assetsApi.create(values), onSuccess: () => { void queryClient.invalidateQueries({ queryKey: queryKeys.assets.all }); toast.success("Asset created successfully!"); navigate("/assets"); }, onError: (error: Error) => { toast.error(error.message || "Failed to create asset"); }, }); }