mirror of
https://github.com/luckfox-eng29/kvm.git
synced 2026-05-25 15:45:10 +02:00
feat(ui): Add feature flag system (#208)
This commit is contained in:
@@ -553,3 +553,19 @@ export const useLocalAuthModalStore = create<LocalAuthModalState>(set => ({
|
||||
modalView: "createPassword",
|
||||
setModalView: view => set({ modalView: view }),
|
||||
}));
|
||||
|
||||
export interface DeviceState {
|
||||
appVersion: string | null;
|
||||
systemVersion: string | null;
|
||||
|
||||
setAppVersion: (version: string) => void;
|
||||
setSystemVersion: (version: string) => void;
|
||||
}
|
||||
|
||||
export const useDeviceStore = create<DeviceState>(set => ({
|
||||
appVersion: null,
|
||||
systemVersion: null,
|
||||
|
||||
setAppVersion: version => set({ appVersion: version }),
|
||||
setSystemVersion: version => set({ systemVersion: version }),
|
||||
}));
|
||||
|
||||
15
ui/src/hooks/useFeatureFlag.ts
Normal file
15
ui/src/hooks/useFeatureFlag.ts
Normal file
@@ -0,0 +1,15 @@
|
||||
import { useContext } from "react";
|
||||
import { FeatureFlagContext } from "../providers/FeatureFlagProvider";
|
||||
|
||||
export const useFeatureFlag = (minAppVersion: string) => {
|
||||
const context = useContext(FeatureFlagContext);
|
||||
|
||||
if (!context) {
|
||||
throw new Error("useFeatureFlag must be used within a FeatureFlagProvider");
|
||||
}
|
||||
|
||||
const { isFeatureEnabled, appVersion } = context;
|
||||
|
||||
const isEnabled = isFeatureEnabled(minAppVersion);
|
||||
return { isEnabled, appVersion };
|
||||
};
|
||||
Reference in New Issue
Block a user