Spaces:
Sleeping
Sleeping
| import type { UseQueryOptions } from '@tanstack/react-query'; | |
| /** | |
| * React Query共通設定 | |
| * 全APIクライアントで使用する共通のクエリオプション | |
| */ | |
| export const defaultQueryOptions: Partial<UseQueryOptions> = { | |
| // ウィンドウフォーカス時の再フェッチを無効化 | |
| refetchOnWindowFocus: false, | |
| // コンポーネント再マウント時の再フェッチを無効化 | |
| refetchOnMount: false, | |
| // データが古くならない期間(無期限) | |
| staleTime: Infinity, | |
| // ガベージコレクション時間(24時間) | |
| gcTime: 24 * 60 * 60 * 1000, | |
| retry: 0, | |
| // エラー時のリトライ遅延 | |
| retryDelay: (attemptIndex) => Math.min(1000 * 2 ** attemptIndex, 30000), | |
| }; | |
| /** | |
| * 特定のクエリ用のオプションを作成するヘルパー関数 | |
| * @param overrides 上書きしたいオプション | |
| * @returns マージされたクエリオプション | |
| */ | |
| export function createQueryOptions<T = unknown>(overrides?: Partial<UseQueryOptions<T>>): Partial<UseQueryOptions<T>> { | |
| return { ...defaultQueryOptions, ...overrides } as Partial<UseQueryOptions<T>>; | |
| } | |