Spaces:
Sleeping
Sleeping
File size: 1,136 Bytes
68f7925 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
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>>;
}
|