feat: DashboardShell for all auth pages, site settings modal from home

- layout-content wraps integrations/pricing in DashboardShell
- GlassTopBar derives title per page (Integrations, Pricing, etc.)
- Site card gear icon opens settings modal with siteId context
- Removed delete button from site cards (accessible via site settings)
- Extended InitialTab to accept optional siteId for cross-page use
This commit is contained in:
Usman Baig
2026-03-28 19:42:42 +01:00
parent c36c1b0696
commit 663abc9b9e
4 changed files with 17 additions and 43 deletions

View File

@@ -33,7 +33,6 @@ export default function HomePage() {
const [siteStats, setSiteStats] = useState<SiteStatsMap>({})
const [subscription, setSubscription] = useState<SubscriptionDetails | null>(null)
const [showFinishSetupBanner, setShowFinishSetupBanner] = useState(true)
const [deleteModalSite, setDeleteModalSite] = useState<Site | null>(null)
const [deletedSites, setDeletedSites] = useState<Site[]>([])
const [permanentDeleteSiteModal, setPermanentDeleteSiteModal] = useState<Site | null>(null)
@@ -119,11 +118,6 @@ export default function HomePage() {
}
}
const handleDelete = (id: string) => {
const site = sites.find((s) => s.id === id)
if (site) setDeleteModalSite(site)
}
const handleRestore = async (id: string) => {
try {
await restoreSite(id)
@@ -312,18 +306,9 @@ export default function HomePage() {
)}
{(sitesLoading || sites.length > 0) && (
<SiteList sites={sites} siteStats={siteStats} loading={sitesLoading} onDelete={handleDelete} />
<SiteList sites={sites} siteStats={siteStats} loading={sitesLoading} />
)}
<DeleteSiteModal
open={!!deleteModalSite}
onClose={() => setDeleteModalSite(null)}
onDeleted={loadSites}
siteName={deleteModalSite?.name || ''}
siteDomain={deleteModalSite?.domain || ''}
siteId={deleteModalSite?.id || ''}
/>
<DeleteSiteModal
open={!!permanentDeleteSiteModal}
onClose={() => setPermanentDeleteSiteModal(null)}