Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 20s
Build & Deploy / 🧪 QA (push) Failing after 34s
Build & Deploy / 🏗️ Build (push) Has started running
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Smoke Test (push) Has been cancelled
Build & Deploy / ⚡ Lighthouse (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
183 lines
4.4 KiB
Plaintext
183 lines
4.4 KiB
Plaintext
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
import { Logout } from '@payloadcms/ui';
|
|
import { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent';
|
|
import { EntityType, groupNavItems } from '@payloadcms/ui/shared';
|
|
import React from 'react';
|
|
import { NavHamburger } from './NavHamburger/index.js';
|
|
import { NavWrapper } from './NavWrapper/index.js';
|
|
import { SettingsMenuButton } from './SettingsMenuButton/index.js';
|
|
const baseClass = 'nav';
|
|
import { getNavPrefs } from './getNavPrefs.js';
|
|
import { DefaultNavClient } from './index.client.js';
|
|
export const DefaultNav = async props => {
|
|
const {
|
|
documentSubViewType,
|
|
i18n,
|
|
locale,
|
|
params,
|
|
payload,
|
|
permissions,
|
|
req,
|
|
searchParams,
|
|
user,
|
|
viewType,
|
|
visibleEntities
|
|
} = props;
|
|
if (!payload?.config) {
|
|
return null;
|
|
}
|
|
const {
|
|
admin: {
|
|
components: {
|
|
afterNav,
|
|
afterNavLinks,
|
|
beforeNav,
|
|
beforeNavLinks,
|
|
logout,
|
|
settingsMenu
|
|
}
|
|
},
|
|
collections,
|
|
globals
|
|
} = payload.config;
|
|
const groups = groupNavItems([...collections.filter(({
|
|
slug
|
|
}) => visibleEntities.collections.includes(slug)).map(collection => ({
|
|
type: EntityType.collection,
|
|
entity: collection
|
|
})), ...globals.filter(({
|
|
slug
|
|
}) => visibleEntities.globals.includes(slug)).map(global => ({
|
|
type: EntityType.global,
|
|
entity: global
|
|
}))], permissions, i18n);
|
|
const navPreferences = await getNavPrefs(req);
|
|
const LogoutComponent = RenderServerComponent({
|
|
clientProps: {
|
|
documentSubViewType,
|
|
viewType
|
|
},
|
|
Component: logout?.Button,
|
|
Fallback: Logout,
|
|
importMap: payload.importMap,
|
|
serverProps: {
|
|
i18n,
|
|
locale,
|
|
params,
|
|
payload,
|
|
permissions,
|
|
searchParams,
|
|
user
|
|
}
|
|
});
|
|
const RenderedSettingsMenu = settingsMenu && Array.isArray(settingsMenu) ? settingsMenu.map((item, index) => RenderServerComponent({
|
|
clientProps: {
|
|
documentSubViewType,
|
|
viewType
|
|
},
|
|
Component: item,
|
|
importMap: payload.importMap,
|
|
key: `settings-menu-item-${index}`,
|
|
serverProps: {
|
|
i18n,
|
|
locale,
|
|
params,
|
|
payload,
|
|
permissions,
|
|
searchParams,
|
|
user
|
|
}
|
|
})) : [];
|
|
const RenderedBeforeNav = RenderServerComponent({
|
|
clientProps: {
|
|
documentSubViewType,
|
|
viewType
|
|
},
|
|
Component: beforeNav,
|
|
importMap: payload.importMap,
|
|
serverProps: {
|
|
i18n,
|
|
locale,
|
|
params,
|
|
payload,
|
|
permissions,
|
|
searchParams,
|
|
user
|
|
}
|
|
});
|
|
const RenderedBeforeNavLinks = RenderServerComponent({
|
|
clientProps: {
|
|
documentSubViewType,
|
|
viewType
|
|
},
|
|
Component: beforeNavLinks,
|
|
importMap: payload.importMap,
|
|
serverProps: {
|
|
i18n,
|
|
locale,
|
|
params,
|
|
payload,
|
|
permissions,
|
|
searchParams,
|
|
user
|
|
}
|
|
});
|
|
const RenderedAfterNavLinks = RenderServerComponent({
|
|
clientProps: {
|
|
documentSubViewType,
|
|
viewType
|
|
},
|
|
Component: afterNavLinks,
|
|
importMap: payload.importMap,
|
|
serverProps: {
|
|
i18n,
|
|
locale,
|
|
params,
|
|
payload,
|
|
permissions,
|
|
searchParams,
|
|
user
|
|
}
|
|
});
|
|
const RenderedAfterNav = RenderServerComponent({
|
|
clientProps: {
|
|
documentSubViewType,
|
|
viewType
|
|
},
|
|
Component: afterNav,
|
|
importMap: payload.importMap,
|
|
serverProps: {
|
|
i18n,
|
|
locale,
|
|
params,
|
|
payload,
|
|
permissions,
|
|
searchParams,
|
|
user
|
|
}
|
|
});
|
|
return /*#__PURE__*/_jsxs(NavWrapper, {
|
|
baseClass: baseClass,
|
|
children: [RenderedBeforeNav, /*#__PURE__*/_jsxs("nav", {
|
|
className: `${baseClass}__wrap`,
|
|
children: [RenderedBeforeNavLinks, /*#__PURE__*/_jsx(DefaultNavClient, {
|
|
groups: groups,
|
|
navPreferences: navPreferences
|
|
}), RenderedAfterNavLinks, /*#__PURE__*/_jsxs("div", {
|
|
className: `${baseClass}__controls`,
|
|
children: [/*#__PURE__*/_jsx(SettingsMenuButton, {
|
|
settingsMenu: RenderedSettingsMenu
|
|
}), LogoutComponent]
|
|
})]
|
|
}), RenderedAfterNav, /*#__PURE__*/_jsx("div", {
|
|
className: `${baseClass}__header`,
|
|
children: /*#__PURE__*/_jsx("div", {
|
|
className: `${baseClass}__header-content`,
|
|
children: /*#__PURE__*/_jsx(NavHamburger, {
|
|
baseClass: baseClass
|
|
})
|
|
})
|
|
})]
|
|
});
|
|
};
|
|
//# sourceMappingURL=index.js.map |