feature: version one notification feature implemented.

This commit is contained in:
2026-07-18 01:09:54 +03:30
parent 0740493384
commit 9f6ec193d2
40 changed files with 1679 additions and 224 deletions

View File

@@ -9,7 +9,9 @@ import { storeAuthRedirectFromPath } from '@/lib/auth/postAuthRedirect';
import Sidebar from '@/components/ui/shared/Sidebar';
import { TopBarControls } from '@/components/ui/shared/TopBarControls';
import { DashboardAccountMenu } from '@/components/ui/dashboard/DashboardAccountMenu';
import { NotificationBell } from '@/components/ui/notifications/NotificationBell';
import { ToastProvider } from '@/components/ui/shared/ToastProvider';
import { RealtimeProvider } from '@/lib/realtime/RealtimeProvider';
import {
canAccessDashboardRoute,
firstAccessibleDashboardPath,
@@ -87,6 +89,7 @@ export default function DashboardLayout({ children }: { children: React.ReactNod
return (
<ToastProvider>
<RealtimeProvider>
<div className="app-dashboard-shell flex h-[100dvh] app-web-bg text-text-primary">
{sidebarOpen ? (
<button
@@ -112,6 +115,7 @@ export default function DashboardLayout({ children }: { children: React.ReactNod
</main>
</div>
</div>
</RealtimeProvider>
</ToastProvider>
);
}
@@ -141,6 +145,7 @@ const DashboardHeader = memo(function DashboardHeader({
<div className="flex items-center gap-2 sm:gap-3 shrink-0">
<TopBarControls />
<NotificationBell />
<DashboardAccountMenu />
</div>
</header>

View File

@@ -0,0 +1,7 @@
'use client';
import { NotificationsPage } from '@/components/ui/notifications/NotificationsPage';
export default function NotificationsRoutePage() {
return <NotificationsPage />;
}

View File

@@ -10,6 +10,7 @@ export default function TreatmentPage() {
const { user, currentOrganization, isAuthReady } = useAuth();
const searchParams = useSearchParams();
const initialAppointmentId = searchParams.get('appointmentId');
const initialLabCaseId = searchParams.get('labCaseId');
if (!isAuthReady || !user) {
return (
@@ -22,6 +23,7 @@ export default function TreatmentPage() {
userId={user.id}
currentOrganization={currentOrganization}
initialAppointmentId={initialAppointmentId}
initialLabCaseId={initialLabCaseId}
/>
);
}