| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- import React, { memo, useMemo } from 'react';
- import { AiAssistant } from '~/features/openai/client/components/AiAssistant/Sidebar/AiAssistant';
- import { SidebarContentsType } from '~/interfaces/ui';
- import { useCollapsedContentsOpened, useCurrentSidebarContents, useSidebarMode } from '~/stores/ui';
- import { Bookmarks } from './Bookmarks';
- import { CustomSidebar } from './Custom';
- import { InAppNotification } from './InAppNotification';
- import { PageTree } from './PageTree';
- import { RecentChanges } from './RecentChanges';
- import Tag from './Tag';
- import styles from './SidebarContents.module.scss';
- export const SidebarContents = memo(() => {
- const { isCollapsedMode } = useSidebarMode();
- const { data: isCollapsedContentsOpened } = useCollapsedContentsOpened();
- const { data: currentSidebarContents } = useCurrentSidebarContents();
- const Contents = useMemo(() => {
- switch (currentSidebarContents) {
- case SidebarContentsType.RECENT:
- return RecentChanges;
- case SidebarContentsType.CUSTOM:
- return CustomSidebar;
- case SidebarContentsType.TAG:
- return Tag;
- case SidebarContentsType.BOOKMARKS:
- return Bookmarks;
- case SidebarContentsType.NOTIFICATION:
- return InAppNotification;
- case SidebarContentsType.AI_ASSISTANT:
- return AiAssistant;
- default:
- return PageTree;
- }
- }, [currentSidebarContents]);
- const isHidden = isCollapsedMode() && !isCollapsedContentsOpened;
- const classToHide = isHidden ? 'd-none' : '';
- return (
- <div className={`grw-sidebar-contents ${styles['grw-sidebar-contents']} ${classToHide}`} data-testid="grw-sidebar-contents">
- <Contents />
- </div>
- );
- });
- SidebarContents.displayName = 'SidebarContents';
|