mirror of
https://github.com/KuekHaoYang/KVideo.git
synced 2026-05-13 09:39:13 +08:00
34 lines
933 B
TypeScript
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);
|
|
}
|