Просмотр исходного кода

Merge pull request #6266 from weseek/feat/gw7831-add-bookmarks-item-on-sidebar

feat: add bookmark item on the sidebar
cao 3 лет назад
Родитель
Сommit
a7ddbec3b8

+ 18 - 0
packages/app/src/components/Sidebar/Bookmarks.tsx

@@ -0,0 +1,18 @@
+import React, { FC } from 'react';
+
+import { useTranslation } from 'react-i18next';
+
+const Bookmarks: FC = () => {
+  const { t } = useTranslation('');
+
+  // TODO Add bookmarks item
+
+  return (
+    <div className="grw-sidebar-content-header p-3">
+      <h3 className="mb-0">{t('Bookmarks')}</h3>
+    </div>
+  );
+
+};
+
+export default Bookmarks;

+ 6 - 1
packages/app/src/components/Sidebar/SidebarContents.tsx

@@ -2,9 +2,11 @@ import React, { FC } from 'react';
 
 
 import { SidebarContentsType } from '~/interfaces/ui';
 import { SidebarContentsType } from '~/interfaces/ui';
 import { useCurrentSidebarContents } from '~/stores/ui';
 import { useCurrentSidebarContents } from '~/stores/ui';
-import RecentChanges from './RecentChanges';
+
+import Bookmarks from './Bookmarks';
 import CustomSidebar from './CustomSidebar';
 import CustomSidebar from './CustomSidebar';
 import PageTree from './PageTree';
 import PageTree from './PageTree';
+import RecentChanges from './RecentChanges';
 import Tag from './Tag';
 import Tag from './Tag';
 
 
 type Props = {
 type Props = {
@@ -24,6 +26,9 @@ const SidebarContents: FC<Props> = (props: Props) => {
     case SidebarContentsType.TAG:
     case SidebarContentsType.TAG:
       Contents = Tag;
       Contents = Tag;
       break;
       break;
+    case SidebarContentsType.BOOKMARKS:
+      Contents = Bookmarks;
+      break;
     default:
     default:
       Contents = PageTree;
       Contents = PageTree;
   }
   }

+ 1 - 0
packages/app/src/components/Sidebar/SidebarNav.tsx

@@ -89,6 +89,7 @@ const SidebarNav: FC<Props> = (props: Props) => {
         <PrimaryItem contents={SidebarContentsType.TAG} label="Tags" iconName="local_offer" onItemSelected={onItemSelected} />
         <PrimaryItem contents={SidebarContentsType.TAG} label="Tags" iconName="local_offer" onItemSelected={onItemSelected} />
         {/* <PrimaryItem id="favorite" label="Favorite" iconName="icon-star" /> */}
         {/* <PrimaryItem id="favorite" label="Favorite" iconName="icon-star" /> */}
         {/* eslint-enable max-len */}
         {/* eslint-enable max-len */}
+        <PrimaryItem contents={SidebarContentsType.BOOKMARKS} label="Bookmarks" iconName="bookmark" onItemSelected={onItemSelected} />
       </div>
       </div>
       <div className="grw-sidebar-nav-secondary-container">
       <div className="grw-sidebar-nav-secondary-container">
         {isAdmin && <SecondaryItem label="Admin" iconName="settings" href="/admin" />}
         {isAdmin && <SecondaryItem label="Admin" iconName="settings" href="/admin" />}

+ 1 - 0
packages/app/src/interfaces/ui.ts

@@ -5,6 +5,7 @@ export const SidebarContentsType = {
   RECENT: 'recent',
   RECENT: 'recent',
   TREE: 'tree',
   TREE: 'tree',
   TAG: 'tag',
   TAG: 'tag',
+  BOOKMARKS: 'bookmarks',
 } as const;
 } as const;
 export const AllSidebarContentsType = Object.values(SidebarContentsType);
 export const AllSidebarContentsType = Object.values(SidebarContentsType);
 export type SidebarContentsType = typeof SidebarContentsType[keyof typeof SidebarContentsType];
 export type SidebarContentsType = typeof SidebarContentsType[keyof typeof SidebarContentsType];