.refine check status

This commit is contained in:
afkarxyz
2026-04-02 08:55:24 +07:00
parent 6066278fe6
commit 264b474903
8 changed files with 276 additions and 94 deletions
+25
View File
@@ -0,0 +1,25 @@
import { useEffect, useState } from "react";
import {
API_SOURCES,
checkAllApiStatuses,
ensureApiStatusCheckStarted,
getApiStatusState,
subscribeApiStatus,
} from "@/lib/api-status";
export function useApiStatus() {
const [state, setState] = useState(getApiStatusState);
useEffect(() => {
ensureApiStatusCheckStarted();
return subscribeApiStatus(() => {
setState(getApiStatusState());
});
}, []);
return {
...state,
sources: API_SOURCES,
refreshAll: checkAllApiStatuses,
};
}
+6 -1
View File
@@ -2,6 +2,7 @@ import { useState, useCallback } from "react";
import { CheckTrackAvailability } from "../../wailsjs/go/main/App";
import type { TrackAvailability } from "@/types/api";
import { logger } from "@/lib/logger";
import { CHECK_TIMEOUT_MS, withTimeout } from "@/lib/async-timeout";
export function useAvailability() {
const [checking, setChecking] = useState(false);
const [checkingTrackId, setCheckingTrackId] = useState<string | null>(null);
@@ -20,7 +21,11 @@ export function useAvailability() {
setError(null);
try {
logger.info(`Checking availability for track: ${spotifyId}`);
const response = await CheckTrackAvailability(spotifyId);
const response = await withTimeout(
CheckTrackAvailability(spotifyId),
CHECK_TIMEOUT_MS,
`Availability check timed out after 10 seconds for ${spotifyId}`,
);
const availability: TrackAvailability = JSON.parse(response);
setAvailabilityMap((prev) => {
const newMap = new Map(prev);