|
|
@@ -1,8 +1,9 @@
|
|
|
-import React, { memo } from 'react';
|
|
|
+import React, { memo, useMemo } from 'react';
|
|
|
|
|
|
import type { SidebarContentsType } from '~/interfaces/ui';
|
|
|
import { useIsGuestUser, useIsReadOnlyUser } from '~/stores/context';
|
|
|
|
|
|
+import { NotAvailableForReadOnlyUser } from '../../NotAvailableForReadOnlyUser';
|
|
|
import { PageCreateButton } from '../PageCreateButton';
|
|
|
|
|
|
import { PrimaryItems } from './PrimaryItems';
|
|
|
@@ -20,9 +21,26 @@ export const SidebarNav = memo((props: SidebarNavProps) => {
|
|
|
const { data: isGuestUser } = useIsGuestUser();
|
|
|
const { data: isReadOnlyUser } = useIsReadOnlyUser();
|
|
|
|
|
|
+ const renderedPageCreateButton = useMemo(() => {
|
|
|
+ if (isGuestUser) {
|
|
|
+ return <></>;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (isReadOnlyUser) {
|
|
|
+ return (
|
|
|
+ <NotAvailableForReadOnlyUser>
|
|
|
+ <PageCreateButton />
|
|
|
+ </NotAvailableForReadOnlyUser>
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+ return <PageCreateButton />;
|
|
|
+ }, [isGuestUser, isReadOnlyUser]);
|
|
|
+
|
|
|
return (
|
|
|
<div className={`grw-sidebar-nav ${styles['grw-sidebar-nav']}`}>
|
|
|
- {!(isGuestUser || isReadOnlyUser) && <PageCreateButton />}
|
|
|
+
|
|
|
+ {renderedPageCreateButton}
|
|
|
|
|
|
<div className="grw-sidebar-nav-primary-container" data-vrt-blackout-sidebar-nav>
|
|
|
<PrimaryItems onItemHover={onPrimaryItemHover} />
|