| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- import type { DefaultNavbarMetadata } from '@/features/ui/components/types/default-navbar-metadata'
- import NavDropdownMenu from '@/features/ui/components/bootstrap-5/navbar/nav-dropdown-menu'
- import NavDropdownLinkItem from '@/features/ui/components/bootstrap-5/navbar/nav-dropdown-link-item'
- import { useSendProjectListMB } from '@/features/project-list/components/project-list-events'
- export default function AdminMenu({
- canDisplayAdminMenu,
- canDisplayAdminRedirect,
- canDisplaySplitTestMenu,
- canDisplaySurveyMenu,
- canDisplayScriptLogMenu,
- adminUrl,
- }: Pick<
- DefaultNavbarMetadata,
- | 'canDisplayAdminMenu'
- | 'canDisplayAdminRedirect'
- | 'canDisplaySplitTestMenu'
- | 'canDisplaySurveyMenu'
- | 'canDisplayScriptLogMenu'
- | 'adminUrl'
- >) {
- const sendProjectListMB = useSendProjectListMB()
- return (
- <NavDropdownMenu
- title="Admin"
- className="subdued"
- onToggle={nextShow => {
- if (nextShow) {
- sendProjectListMB('menu-expand', {
- item: 'admin',
- location: 'top-menu',
- })
- }
- }}
- >
- {canDisplayAdminMenu ? (
- <>
- <NavDropdownLinkItem href="/admin">Manage Site</NavDropdownLinkItem>
- <NavDropdownLinkItem href="/admin/user">
- Manage Users
- </NavDropdownLinkItem>
- <NavDropdownLinkItem href="/admin/project">
- Project URL lookup
- </NavDropdownLinkItem>
- </>
- ) : null}
- {canDisplayAdminRedirect && adminUrl ? (
- <NavDropdownLinkItem href={adminUrl}>
- Switch to Admin
- </NavDropdownLinkItem>
- ) : null}
- {canDisplaySplitTestMenu ? (
- <NavDropdownLinkItem href="/admin/split-test">
- Manage Feature Flags
- </NavDropdownLinkItem>
- ) : null}
- {canDisplaySurveyMenu ? (
- <NavDropdownLinkItem href="/admin/survey">
- Manage Surveys
- </NavDropdownLinkItem>
- ) : null}
- {canDisplayScriptLogMenu ? (
- <NavDropdownLinkItem href="/admin/script-logs">
- View Script Logs
- </NavDropdownLinkItem>
- ) : null}
- </NavDropdownMenu>
- )
- }
|