From a46dfde6d24d491d73f33fc477b64e303325aa73 Mon Sep 17 00:00:00 2001 From: Thibault Pouch Date: Tue, 17 Mar 2026 16:43:45 +0100 Subject: [PATCH] feat: add SettingsContext for managing forum and bug reporting settings --- nest-front/src/contexts/SettingsContext.tsx | 31 +++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 nest-front/src/contexts/SettingsContext.tsx diff --git a/nest-front/src/contexts/SettingsContext.tsx b/nest-front/src/contexts/SettingsContext.tsx new file mode 100644 index 0000000..6fbd450 --- /dev/null +++ b/nest-front/src/contexts/SettingsContext.tsx @@ -0,0 +1,31 @@ +import React, { createContext, useContext, useEffect, useState } from 'react'; +import { settingsApi } from '../utils/api'; + +interface SettingsContextValue { + forumEnabled: boolean; + bugsEnabled: boolean; + loaded: boolean; +} + +const SettingsContext = createContext({ + forumEnabled: true, + bugsEnabled: true, + loaded: false, +}); + +export function SettingsProvider({ children }: { children: React.ReactNode }) { + const [value, setValue] = useState({ forumEnabled: true, bugsEnabled: true, loaded: false }); + + useEffect(() => { + settingsApi + .get() + .then((s) => setValue({ forumEnabled: s.forumEnabled, bugsEnabled: s.bugsEnabled, loaded: true })) + .catch(() => setValue({ forumEnabled: true, bugsEnabled: true, loaded: true })); + }, []); + + return {children}; +} + +export function useSettings(): SettingsContextValue { + return useContext(SettingsContext); +}