import { MutationCache, QueryClient } from '@tanstack/react-query'; import { toast } from 'sonner'; export const queryClient = new QueryClient({ mutationCache: new MutationCache({ onError: (_error, _variables, _context, mutation) => { if (mutation.meta?.ignoreToast === true) { return; } toast.error('저장하지 못했어요. 잠시 후 다시 시도해주세요.'); }, }), defaultOptions: { queries: { retry: false, refetchOnWindowFocus: false, throwOnError: () => false, }, }, }); /** @public 연결 대기 스텁 — query-factory 스킬의 표준 유틸 */ export const invalidateEachQueries = async ( keys: readonly (readonly unknown[])[] ) => { return queryClient.invalidateQueries({ predicate: (query) => keys.some((keyParts) => keyParts.every((keyPart, index) => query.queryKey[index] === keyPart) ), type: 'all', }); };