FE_Dev / hooks /use-api-status-tracker.ts
GitHub Actions
Deploy from GitHub Actions [dev] - 2025-10-31 07:28:50
68f7925
import { useCallback } from 'react';
import { useStateStore } from '@/store/state';
export function useApiStatusTracker() {
const { updateApiStatus } = useStateStore();
const trackApi = useCallback(
async <T>(apiName: string, apiCall: () => Promise<T>): Promise<T> => {
const startTime = Date.now();
updateApiStatus(apiName, { status: 'loading', duration: 0 });
try {
const result = await apiCall();
const duration = (Date.now() - startTime) / 1000;
updateApiStatus(apiName, { status: 'success', duration });
return result;
} catch (error) {
const duration = (Date.now() - startTime) / 1000;
updateApiStatus(apiName, { status: 'error', duration });
throw error;
}
},
[updateApiStatus]
);
return { trackApi };
}