Files
KVideo/components/RuntimeFeaturesProvider.tsx
2026-04-02 21:42:00 +08:00

34 lines
933 B
TypeScript

'use client';
import { createContext, useContext, type ReactNode } from 'react';
import type { RuntimeFeatures } from '@/lib/config/runtime-features';
const defaultRuntimeFeatures: RuntimeFeatures = {
deploymentProvider: 'self-hosted',
deploymentProviderLabel: '自托管',
restrictedManagedDeployment: false,
mediaProxyEnabled: true,
iptvEnabled: true,
restrictionSummary: null,
};
const RuntimeFeaturesContext = createContext<RuntimeFeatures>(defaultRuntimeFeatures);
interface RuntimeFeaturesProviderProps {
initialFeatures: RuntimeFeatures;
children: ReactNode;
}
export function RuntimeFeaturesProvider({ initialFeatures, children }: RuntimeFeaturesProviderProps) {
return (
<RuntimeFeaturesContext.Provider value={initialFeatures}>
{children}
</RuntimeFeaturesContext.Provider>
);
}
export function useRuntimeFeatures(): RuntimeFeatures {
return useContext(RuntimeFeaturesContext);
}