refactor(settings): wire all settings entry points to unified modal

This commit is contained in:
Usman Baig
2026-03-25 18:10:42 +01:00
parent 8bef4b7c9f
commit 0cb13e08fd
2 changed files with 8 additions and 12 deletions

View File

@@ -15,9 +15,8 @@ import { getUserOrganizations, switchContext, type OrganizationMember } from '@/
import { setSessionAction } from '@/app/actions/auth' import { setSessionAction } from '@/app/actions/auth'
import { LoadingOverlay } from '@ciphera-net/ui' import { LoadingOverlay } from '@ciphera-net/ui'
import { useRouter } from 'next/navigation' import { useRouter } from 'next/navigation'
import { SettingsModalProvider, useSettingsModal } from '@/lib/settings-modal-context' import { SettingsModalProvider } from '@/lib/settings-modal-context'
import { UnifiedSettingsProvider } from '@/lib/unified-settings-context' import { UnifiedSettingsProvider, useUnifiedSettings } from '@/lib/unified-settings-context'
import SettingsModalWrapper from '@/components/settings/SettingsModalWrapper'
import UnifiedSettingsModal from '@/components/settings/unified/UnifiedSettingsModal' import UnifiedSettingsModal from '@/components/settings/unified/UnifiedSettingsModal'
const ORG_SWITCH_KEY = 'pulse_switching_org' const ORG_SWITCH_KEY = 'pulse_switching_org'
@@ -54,7 +53,7 @@ function LayoutInner({ children }: { children: React.ReactNode }) {
const router = useRouter() const router = useRouter()
const pathname = usePathname() const pathname = usePathname()
const isOnline = useOnlineStatus() const isOnline = useOnlineStatus()
const { openSettings } = useSettingsModal() const { openUnifiedSettings } = useUnifiedSettings()
const [orgs, setOrgs] = useState<OrganizationMember[]>([]) const [orgs, setOrgs] = useState<OrganizationMember[]>([])
const [isSwitchingOrg, setIsSwitchingOrg] = useState(() => { const [isSwitchingOrg, setIsSwitchingOrg] = useState(() => {
if (typeof window === 'undefined') return false if (typeof window === 'undefined') return false
@@ -110,7 +109,6 @@ function LayoutInner({ children }: { children: React.ReactNode }) {
<> <>
{showOfflineBar && <OfflineBanner isOnline={isOnline} />} {showOfflineBar && <OfflineBanner isOnline={isOnline} />}
{children} {children}
<SettingsModalWrapper />
<UnifiedSettingsModal /> <UnifiedSettingsModal />
</> </>
) )
@@ -138,12 +136,11 @@ function LayoutInner({ children }: { children: React.ReactNode }) {
rightSideActions={<NotificationCenter />} rightSideActions={<NotificationCenter />}
apps={CIPHERA_APPS} apps={CIPHERA_APPS}
currentAppId="pulse" currentAppId="pulse"
onOpenSettings={openSettings} onOpenSettings={() => openUnifiedSettings({ context: 'account', tab: 'profile' })}
/> />
<main className="flex-1 pb-8"> <main className="flex-1 pb-8">
{children} {children}
</main> </main>
<SettingsModalWrapper />
<UnifiedSettingsModal /> <UnifiedSettingsModal />
</div> </div>
) )
@@ -161,7 +158,6 @@ function LayoutInner({ children }: { children: React.ReactNode }) {
appName="Pulse" appName="Pulse"
isAuthenticated={false} isAuthenticated={false}
/> />
<SettingsModalWrapper />
</div> </div>
) )
} }

View File

@@ -7,7 +7,7 @@ import Link from 'next/link'
import { usePathname, useRouter } from 'next/navigation' import { usePathname, useRouter } from 'next/navigation'
import { listSites, type Site } from '@/lib/api/sites' import { listSites, type Site } from '@/lib/api/sites'
import { useAuth } from '@/lib/auth/context' import { useAuth } from '@/lib/auth/context'
import { useSettingsModal } from '@/lib/settings-modal-context' import { useUnifiedSettings } from '@/lib/unified-settings-context'
import { useSidebar } from '@/lib/sidebar-context' import { useSidebar } from '@/lib/sidebar-context'
// `,` shortcut handled globally by UnifiedSettingsModal // `,` shortcut handled globally by UnifiedSettingsModal
import { getUserOrganizations, switchContext, type OrganizationMember } from '@/lib/api/organization' import { getUserOrganizations, switchContext, type OrganizationMember } from '@/lib/api/organization'
@@ -461,7 +461,7 @@ export default function Sidebar({
const canEdit = user?.role === 'owner' || user?.role === 'admin' const canEdit = user?.role === 'owner' || user?.role === 'admin'
const pathname = usePathname() const pathname = usePathname()
const router = useRouter() const router = useRouter()
const { openSettings } = useSettingsModal() const { openUnifiedSettings } = useUnifiedSettings()
const [sites, setSites] = useState<Site[]>([]) const [sites, setSites] = useState<Site[]>([])
const [orgs, setOrgs] = useState<OrganizationMember[]>([]) const [orgs, setOrgs] = useState<OrganizationMember[]>([])
const [pendingHref, setPendingHref] = useState<string | null>(null) const [pendingHref, setPendingHref] = useState<string | null>(null)
@@ -532,7 +532,7 @@ export default function Sidebar({
auth={auth} auth={auth}
orgs={orgs} orgs={orgs}
onSwitchOrganization={handleSwitchOrganization} onSwitchOrganization={handleSwitchOrganization}
openSettings={openSettings} openSettings={() => openUnifiedSettings({ context: 'account', tab: 'profile' })}
/> />
</aside> </aside>
@@ -575,7 +575,7 @@ export default function Sidebar({
auth={auth} auth={auth}
orgs={orgs} orgs={orgs}
onSwitchOrganization={handleSwitchOrganization} onSwitchOrganization={handleSwitchOrganization}
openSettings={openSettings} openSettings={() => openUnifiedSettings({ context: 'account', tab: 'profile' })}
/> />
</aside> </aside>
</> </>