feat: replace settings page with SettingsModal

- Add SettingsModalProvider context and SettingsModalWrapper
- Wire Header onOpenSettings callback via LayoutInner pattern
- Remove old /settings page and SettingsPageClient
- Bump @ciphera-net/ui to ^0.0.88
This commit is contained in:
Usman Baig
2026-03-05 22:16:36 +01:00
parent f469d0d755
commit 48cf9a1f62
7 changed files with 241 additions and 557 deletions

View File

@@ -0,0 +1,31 @@
'use client'
import { createContext, useContext, useState, useCallback } from 'react'
interface SettingsModalContextType {
isOpen: boolean
openSettings: () => void
closeSettings: () => void
}
const SettingsModalContext = createContext<SettingsModalContextType>({
isOpen: false,
openSettings: () => {},
closeSettings: () => {},
})
export function SettingsModalProvider({ children }: { children: React.ReactNode }) {
const [isOpen, setIsOpen] = useState(false)
const openSettings = useCallback(() => setIsOpen(true), [])
const closeSettings = useCallback(() => setIsOpen(false), [])
return (
<SettingsModalContext.Provider value={{ isOpen, openSettings, closeSettings }}>
{children}
</SettingsModalContext.Provider>
)
}
export function useSettingsModal() {
return useContext(SettingsModalContext)
}