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

View File

@@ -7,7 +7,7 @@ import Link from 'next/link'
import { usePathname, useRouter } from 'next/navigation'
import { listSites, type Site } from '@/lib/api/sites'
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'
// `,` shortcut handled globally by UnifiedSettingsModal
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 pathname = usePathname()
const router = useRouter()
const { openSettings } = useSettingsModal()
const { openUnifiedSettings } = useUnifiedSettings()
const [sites, setSites] = useState<Site[]>([])
const [orgs, setOrgs] = useState<OrganizationMember[]>([])
const [pendingHref, setPendingHref] = useState<string | null>(null)
@@ -532,7 +532,7 @@ export default function Sidebar({
auth={auth}
orgs={orgs}
onSwitchOrganization={handleSwitchOrganization}
openSettings={openSettings}
openSettings={() => openUnifiedSettings({ context: 'account', tab: 'profile' })}
/>
</aside>
@@ -575,7 +575,7 @@ export default function Sidebar({
auth={auth}
orgs={orgs}
onSwitchOrganization={handleSwitchOrganization}
openSettings={openSettings}
openSettings={() => openUnifiedSettings({ context: 'account', tab: 'profile' })}
/>
</aside>
</>