Files
MoonTVPlus/src/components/VersionCheckProvider.tsx
2025-12-05 21:12:15 +08:00

46 lines
1.1 KiB
TypeScript

'use client';
import { createContext, useContext, useEffect, useState } from 'react';
import { checkForUpdates, UpdateStatus } from '@/lib/version_check';
interface VersionCheckContextType {
updateStatus: UpdateStatus | null;
isChecking: boolean;
}
const VersionCheckContext = createContext<VersionCheckContextType>({
updateStatus: null,
isChecking: true,
});
export const useVersionCheck = () => useContext(VersionCheckContext);
export const VersionCheckProvider: React.FC<{ children: React.ReactNode }> = ({
children,
}) => {
const [updateStatus, setUpdateStatus] = useState<UpdateStatus | null>(null);
const [isChecking, setIsChecking] = useState(true);
useEffect(() => {
const checkUpdate = async () => {
try {
const status = await checkForUpdates();
setUpdateStatus(status);
} catch (error) {
console.warn('版本检查失败:', error);
} finally {
setIsChecking(false);
}
};
checkUpdate();
}, []);
return (
<VersionCheckContext.Provider value={{ updateStatus, isChecking }}>
{children}
</VersionCheckContext.Provider>
);
};