This commit is contained in:
2026-04-25 16:36:34 +08:00
commit db90e7579b
1876 changed files with 189777 additions and 0 deletions

30
client/shared/cache/useCache.ts vendored Normal file
View File

@@ -0,0 +1,30 @@
import { useQuery, useQueryClient } from '@tanstack/react-query';
import { getUserOnlineStatus } from '../model/user';
export { useQuery, useQueryClient };
/**
* 用户登录状态
*/
export function useCachedOnlineStatus(
ids: string[],
onOnlineStatusUpdate?: (onlineStatus: boolean[]) => void
): boolean[] {
const staleTime = 20 * 1000; // 缓存20s
const { data, isSuccess } = useQuery(
['onlineStatus', ids.join(',')],
() => getUserOnlineStatus(ids),
{
staleTime,
}
);
if (isSuccess && Array.isArray(data)) {
if (typeof onOnlineStatusUpdate === 'function' && data) {
onOnlineStatusUpdate(data);
}
}
return data ?? ids.map(() => false);
}