fitst commit

This commit is contained in:
Samandar Turgunboyev
2026-01-28 18:26:50 +05:00
parent 166a55b1e9
commit 124798419b
196 changed files with 26627 additions and 421 deletions

View File

@@ -0,0 +1,37 @@
import { useQueryClient } from '@tanstack/react-query';
import { createContext, useCallback, useContext, useState } from 'react';
type RefreshContextType = {
refreshing: boolean;
onRefresh: () => Promise<void>;
};
const RefreshContext = createContext<RefreshContextType | null>(null);
export function RefreshProvider({ children }: { children: React.ReactNode }) {
const queryClient = useQueryClient();
const [refreshing, setRefreshing] = useState(false);
const onRefresh = useCallback(async () => {
if (refreshing) return;
setRefreshing(true);
try {
await queryClient.refetchQueries();
} catch (err) {
console.error('Global refresh error:', err);
} finally {
setRefreshing(false);
}
}, [queryClient, refreshing]);
return (
<RefreshContext.Provider value={{ refreshing, onRefresh }}>{children}</RefreshContext.Provider>
);
}
export function useGlobalRefresh() {
const ctx = useContext(RefreshContext);
if (!ctx) throw new Error('useGlobalRefresh must be used inside RefreshProvider');
return ctx;
}