import { getApiPath } from '../config/paths'; export interface FeatureFlags { backups: boolean; calendar: boolean; habits: boolean; } let cachedFeatureFlags: FeatureFlags | null = null; export const getFeatureFlags = async (): Promise => { if (cachedFeatureFlags) { return cachedFeatureFlags; } try { const response = await fetch(getApiPath('feature-flags'), { credentials: 'include', }); if (!response.ok) { console.error('Failed to fetch feature flags'); return { backups: false, calendar: false, habits: false, }; } const data = await response.json(); const defaultFlags: FeatureFlags = { backups: false, calendar: false, habits: false, }; cachedFeatureFlags = { ...defaultFlags, ...data.featureFlags, }; return cachedFeatureFlags; } catch (error) { console.error('Error fetching feature flags:', error); return { backups: false, calendar: false, habits: false, }; } }; export const clearFeatureFlagsCache = () => { cachedFeatureFlags = null; };