.refine check status
This commit is contained in:
@@ -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,
|
||||
};
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user