import { getQueryKey } from "@trpc/react-query"; import { api, RouterOutputs } from "../trpc"; // Adjust path as necessary import { useQueryClient, UseMutationResult } from "@tanstack/react-query"; import { ObjectType } from "@nice/common"; import { CrudOperation, emitDataChange } from "../../event"; interface SportOperation { createSportProject: UseMutationResult[0], unknown>; createSportStandard: UseMutationResult>[0], unknown>; } export function useSport(): SportOperation { const queryClient = useQueryClient(); const queryKey = getQueryKey(api.sportProject); const queryKeyStandard = getQueryKey(api.sportStandard.createStandard); const createSportProject = api.sportProject.create.useMutation({ onSuccess: (result) => { queryClient.invalidateQueries({ queryKey }); emitDataChange(ObjectType.SPORT_PROJECT, result, CrudOperation.CREATED); }, }); const createSportStandard = api.sportStandard.createStandard.useMutation({ onSuccess: (result) => { queryClient.invalidateQueries({ queryKey: queryKeyStandard }); emitDataChange(ObjectType.SPORT_STANDARD, result, CrudOperation.CREATED); }, }); return { createSportProject: createSportProject as any as UseMutationResult[0], unknown>, createSportStandard: createSportStandard as any as UseMutationResult>[0], unknown>, }; }