Parcourir la source

Add bookmark item on the sidebar

https://youtrack.weseek.co.jp/issue/GW-7831
- Add bookmarks to SidebarContentsType
- Add bookmarks button to sidebar
- Add bookmark item to sidebar content
- Create Bookmarks component (empty item but has a title)
Mudana-Grune il y a 3 ans
Parent
commit
0629f02b37

+ 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];