diff --git a/src/app/(pages)/dashboard/org/status-pages/page.tsx b/src/app/(pages)/dashboard/org/status-pages/page.tsx index 06ddb4a..3de1115 100644 --- a/src/app/(pages)/dashboard/org/status-pages/page.tsx +++ b/src/app/(pages)/dashboard/org/status-pages/page.tsx @@ -1,4 +1,9 @@ import { ReactElement } from "react"; +import DashboardHeader from "@/components/dashboard/dashboard-header"; -const StatusPagesPage = (): ReactElement =>
BOB?
; +const StatusPagesPage = (): ReactElement => ( +
+ +
+); export default StatusPagesPage; diff --git a/src/app/(pages)/dashboard/user/billing/page.tsx b/src/app/(pages)/dashboard/user/billing/page.tsx index 8233f4f..d679b76 100644 --- a/src/app/(pages)/dashboard/user/billing/page.tsx +++ b/src/app/(pages)/dashboard/user/billing/page.tsx @@ -2,7 +2,7 @@ import { ReactElement } from "react"; import { Separator } from "@/components/ui/separator"; -import UserSettingsHeader from "@/components/dashboard/user/user-settings-header"; +import DashboardHeader from "@/components/dashboard/dashboard-header"; /** * The user billing page. @@ -11,7 +11,7 @@ import UserSettingsHeader from "@/components/dashboard/user/user-settings-header */ const UserBillingPage = (): ReactElement => (
- + {/* Content */}
diff --git a/src/app/(pages)/dashboard/user/profile/page.tsx b/src/app/(pages)/dashboard/user/profile/page.tsx index 989307b..b81c52d 100644 --- a/src/app/(pages)/dashboard/user/profile/page.tsx +++ b/src/app/(pages)/dashboard/user/profile/page.tsx @@ -6,7 +6,7 @@ import AvatarSetting from "@/components/dashboard/user/profile/avatar-setting"; import UsernameSetting from "@/components/dashboard/user/profile/username-setting"; import EmailSetting from "@/components/dashboard/user/profile/email-setting"; import TierSetting from "@/components/dashboard/user/profile/tier-setting"; -import UserSettingsHeader from "@/components/dashboard/user/user-settings-header"; +import DashboardHeader from "@/components/dashboard/dashboard-header"; /** * The user profile page. @@ -15,7 +15,7 @@ import UserSettingsHeader from "@/components/dashboard/user/user-settings-header */ const UserProfilePage = (): ReactElement => (
- + {/* Content */}
diff --git a/src/app/(pages)/dashboard/user/settings/page.tsx b/src/app/(pages)/dashboard/user/settings/page.tsx index 966ccdc..6386814 100644 --- a/src/app/(pages)/dashboard/user/settings/page.tsx +++ b/src/app/(pages)/dashboard/user/settings/page.tsx @@ -3,8 +3,8 @@ import { ReactElement } from "react"; import { Separator } from "@/components/ui/separator"; import TFASetting from "@/components/dashboard/user/settings/tfa/tfa-setting"; -import UserSettingsHeader from "@/components/dashboard/user/user-settings-header"; import DevicesSetting from "@/components/dashboard/user/settings/device/devices-setting"; +import DashboardHeader from "@/components/dashboard/dashboard-header"; /** * The user settings page. @@ -13,7 +13,7 @@ import DevicesSetting from "@/components/dashboard/user/settings/device/devices- */ const UserSettingsPage = (): ReactElement => (
- + {/* Content */}
diff --git a/src/components/dashboard/dashboard-header.tsx b/src/components/dashboard/dashboard-header.tsx index 7c77098..4f8cf89 100644 --- a/src/components/dashboard/dashboard-header.tsx +++ b/src/components/dashboard/dashboard-header.tsx @@ -12,6 +12,19 @@ import { BreadcrumbPage, BreadcrumbSeparator, } from "@/components/ui/breadcrumb"; +import { Organization } from "@/app/types/org/organization"; +import { useOrganizationContext } from "@/app/provider/organization-provider"; +import { OrganizationState } from "@/app/store/organization-store"; +import { usePathname } from "next/navigation"; +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuTrigger, +} from "@/components/ui/dropdown-menu"; +import { ChevronDownIcon } from "@heroicons/react/24/outline"; +import UserMenuLinks from "@/components/dashboard/sidebar/user-menu/user-menu-links"; +import OrganizationLogo from "@/components/org/organization-logo"; +import UserAvatar from "@/components/user/user-avatar"; /** * The props for this header. @@ -21,11 +34,6 @@ type DashboardHeaderProps = { * The title of this header. */ title: string; - - /** - * The breadcrumb of this header. - */ - breadcrumb: ReactElement; }; /** @@ -35,13 +43,15 @@ type DashboardHeaderProps = { * @param props the header props * @return the header jsx */ -const DashboardHeader = ({ - title, - breadcrumb, -}: DashboardHeaderProps): ReactElement => { +const DashboardHeader = ({ title }: DashboardHeaderProps): ReactElement => { + const path: string = usePathname(); + const user: User | undefined = useUserContext( (state: UserState) => state.user ); + const selectedOrganization: Organization | undefined = + useOrganizationContext((state: OrganizationState) => state.selected); + return (

{title}

@@ -54,7 +64,13 @@ const DashboardHeader = ({ - {breadcrumb} + {path.startsWith("/dashboard/org") ? ( + + ) : ( + + )} {title} @@ -64,4 +80,31 @@ const DashboardHeader = ({
); }; + +const UserBreadcrumb = ({ user }: { user: User }): ReactElement => ( + + + + + @{user?.username} + + + + + + + +); + +const OrganizationBreadcrumb = ({ + organization, +}: { + organization: Organization; +}): ReactElement => ( + + + {organization.name} + +); + export default DashboardHeader; diff --git a/src/components/dashboard/user/user-settings-header.tsx b/src/components/dashboard/user/user-settings-header.tsx deleted file mode 100644 index bae084c..0000000 --- a/src/components/dashboard/user/user-settings-header.tsx +++ /dev/null @@ -1,64 +0,0 @@ -import { ReactElement } from "react"; -import { User } from "@/app/types/user/user"; -import { useUserContext } from "@/app/provider/user-provider"; -import { UserState } from "@/app/store/user-store"; -import { - Breadcrumb, - BreadcrumbItem, - BreadcrumbLink, - BreadcrumbList, - BreadcrumbPage, - BreadcrumbSeparator, -} from "@/components/ui/breadcrumb"; -import { - DropdownMenu, - DropdownMenuContent, - DropdownMenuTrigger, -} from "@/components/ui/dropdown-menu"; -import { ChevronDownIcon } from "@heroicons/react/24/outline"; -import UserMenuLinks from "@/components/dashboard/sidebar/user-menu/user-menu-links"; - -/** - * The header to display - * on user settings pages. - * - * @param title the title of this header - * @return the header jsx - */ -const UserSettingsHeader = ({ title }: { title: string }): ReactElement => { - const user: User | undefined = useUserContext( - (state: UserState) => state.user - ); - return ( -
-

{title}

- - - - - - Dashboard - - - - - - - @{user?.username} - - - - - - - - - - {title} - - - -
- ); -}; -export default UserSettingsHeader;