first commit
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
import { PageSkeleton } from "@/components/hexa/page-skeleton"
|
||||
|
||||
export default function Loading() {
|
||||
return <PageSkeleton variant="chart-list" />
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
import { AttendanceView } from "@/components/hexa/views/attendance-view"
|
||||
|
||||
export default function AttendancePage() {
|
||||
return <AttendanceView />
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
import { BookingsView } from "@/components/hexa/views/bookings-view"
|
||||
|
||||
export default function BookingsPage() {
|
||||
return <BookingsView />
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
import { PageSkeleton } from "@/components/hexa/page-skeleton"
|
||||
|
||||
export default function Loading() {
|
||||
return <PageSkeleton variant="stats-table" />
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
import { CustomerPaymentsView } from "@/components/hexa/views/customer-payments-view"
|
||||
|
||||
export default function CustomerPaymentsPage() {
|
||||
return <CustomerPaymentsView />
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
import { PageSkeleton } from "@/components/hexa/page-skeleton"
|
||||
|
||||
export default function Loading() {
|
||||
return <PageSkeleton variant="stats-cards" />
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
import { FeedView } from "@/components/hexa/views/feed-view"
|
||||
|
||||
export default function FeedPage() {
|
||||
return <FeedView />
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
"use client"
|
||||
|
||||
import * as React from "react"
|
||||
import { usePathname, useRouter } from "next/navigation"
|
||||
|
||||
import { isLoggedIn } from "@/lib/auth/token-service"
|
||||
import { Spinner } from "@/components/ui/spinner"
|
||||
import { DashboardShell } from "@/components/hexa/dashboard-shell"
|
||||
import { ClientProfileProvider } from "@/components/hexa/client-profile-context"
|
||||
|
||||
export default function DashboardLayout({ children }: { children: React.ReactNode }) {
|
||||
const router = useRouter()
|
||||
const pathname = usePathname()
|
||||
const [checked, setChecked] = React.useState(false)
|
||||
|
||||
React.useEffect(() => {
|
||||
if (!isLoggedIn()) {
|
||||
router.replace(`/login?next=${encodeURIComponent(pathname || "/dashboard")}`)
|
||||
return
|
||||
}
|
||||
// eslint-disable-next-line react-hooks/set-state-in-effect -- one-time auth-gate check against localStorage, not derived from props/state
|
||||
setChecked(true)
|
||||
}, [router, pathname])
|
||||
|
||||
if (!checked) {
|
||||
return (
|
||||
<div className="flex min-h-screen items-center justify-center">
|
||||
<Spinner className="size-6" />
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
return (
|
||||
<ClientProfileProvider>
|
||||
<DashboardShell notificationCount={3}>{children}</DashboardShell>
|
||||
</ClientProfileProvider>
|
||||
)
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
import { PageSkeleton } from "@/components/hexa/page-skeleton"
|
||||
|
||||
export default function Loading() {
|
||||
return <PageSkeleton variant="chart-list" />
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
import { PageSkeleton } from "@/components/hexa/page-skeleton"
|
||||
|
||||
export default function Loading() {
|
||||
return <PageSkeleton variant="stats-table" />
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
import { MealPlansView } from "@/components/hexa/views/meal-plans-view"
|
||||
|
||||
export default function MealPlansPage() {
|
||||
return <MealPlansView />
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
import { PageSkeleton } from "@/components/hexa/page-skeleton"
|
||||
|
||||
export default function Loading() {
|
||||
return <PageSkeleton variant="stats-table" />
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
import { MembersView } from "@/components/hexa/views/members-view"
|
||||
|
||||
export default function MembersPage() {
|
||||
return <MembersView />
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
import { PageSkeleton } from "@/components/hexa/page-skeleton"
|
||||
|
||||
export default function Loading() {
|
||||
return <PageSkeleton variant="stats-cards" />
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
import { MembershipsView } from "@/components/hexa/views/memberships-view"
|
||||
|
||||
export default function MembershipsPage() {
|
||||
return <MembershipsView />
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
import { DashboardOverviewView } from "@/components/hexa/views/dashboard-overview-view"
|
||||
|
||||
export default function DashboardOverviewPage() {
|
||||
return <DashboardOverviewView />
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
import { PageSkeleton } from "@/components/hexa/page-skeleton"
|
||||
|
||||
export default function Loading() {
|
||||
return <PageSkeleton variant="chart-list" />
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
import { ReportsView } from "@/components/hexa/views/reports-view"
|
||||
|
||||
export default function ReportsPage() {
|
||||
return <ReportsView />
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
import * as React from "react"
|
||||
|
||||
import { SettingsView } from "@/components/hexa/views/settings-view"
|
||||
|
||||
export default function SettingsPage() {
|
||||
return (
|
||||
<React.Suspense fallback={null}>
|
||||
<SettingsView />
|
||||
</React.Suspense>
|
||||
)
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
import { PageSkeleton } from "@/components/hexa/page-skeleton"
|
||||
|
||||
export default function Loading() {
|
||||
return <PageSkeleton variant="stats-table" />
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
import { StaffView } from "@/components/hexa/views/staff-view"
|
||||
|
||||
export default function StaffPage() {
|
||||
return <StaffView />
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
import { PageSkeleton } from "@/components/hexa/page-skeleton"
|
||||
|
||||
export default function Loading() {
|
||||
return <PageSkeleton variant="stats-table" />
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
import { TicketsView } from "@/components/hexa/views/tickets-view"
|
||||
|
||||
export default function TicketsPage() {
|
||||
return <TicketsView />
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
import { PageSkeleton } from "@/components/hexa/page-skeleton"
|
||||
|
||||
export default function Loading() {
|
||||
return <PageSkeleton variant="stats-table" />
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
import { WorkoutPlansView } from "@/components/hexa/views/workout-plans-view"
|
||||
|
||||
export default function WorkoutPlansPage() {
|
||||
return <WorkoutPlansView />
|
||||
}
|
||||
Reference in New Issue
Block a user