From 7a32e8ba10ef37618486269cde5b83258f52ef0f Mon Sep 17 00:00:00 2001 From: cca313 Date: Sat, 30 Mar 2024 11:16:43 +0800 Subject: [PATCH] add knowledge base tab --- .../src/app/knowledge/(desktop)/index.tsx | 29 +++++++++++++++++++ .../knowledge/(desktop)/layout.desktop.tsx | 23 +++++++++++++++ frontend/src/app/knowledge/page.tsx | 9 ++++++ frontend/src/features/SideBar/TopActions.tsx | 11 ++++++- .../global/slices/common/initialState.ts | 1 + 5 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 frontend/src/app/knowledge/(desktop)/index.tsx create mode 100644 frontend/src/app/knowledge/(desktop)/layout.desktop.tsx create mode 100644 frontend/src/app/knowledge/page.tsx diff --git a/frontend/src/app/knowledge/(desktop)/index.tsx b/frontend/src/app/knowledge/(desktop)/index.tsx new file mode 100644 index 00000000..f3dc3fb8 --- /dev/null +++ b/frontend/src/app/knowledge/(desktop)/index.tsx @@ -0,0 +1,29 @@ +'use client'; + +import dynamic from 'next/dynamic'; +import { FC, memo } from 'react'; +import { Flexbox } from 'react-layout-kit'; + +import ResponsiveIndex from '@/components/ResponsiveIndex'; + +import PageTitle from '../features/PageTitle'; +import ChatHeader from './features/ChatHeader'; +import Conversation from './features/Conversation'; +import SideBar from './features/SideBar'; +import Layout from './layout.desktop'; + +const Mobile: FC = dynamic(() => import('../(mobile)'), { ssr: false }) as FC; + +const DesktopPage = memo(() => ( + + + + + + + + + + +)); +export default DesktopPage; diff --git a/frontend/src/app/knowledge/(desktop)/layout.desktop.tsx b/frontend/src/app/knowledge/(desktop)/layout.desktop.tsx new file mode 100644 index 00000000..94e2a462 --- /dev/null +++ b/frontend/src/app/knowledge/(desktop)/layout.desktop.tsx @@ -0,0 +1,23 @@ +'use client'; + +import { PropsWithChildren, memo } from 'react'; +import { Flexbox } from 'react-layout-kit'; + +import AppLayoutDesktop from '@/layout/AppLayout.desktop'; +import { SidebarTabKey } from '@/store/global/initialState'; + + +export default memo(({ children }: PropsWithChildren) => { + return ( + + + {children} + + + ); +}); diff --git a/frontend/src/app/knowledge/page.tsx b/frontend/src/app/knowledge/page.tsx new file mode 100644 index 00000000..2fbc496a --- /dev/null +++ b/frontend/src/app/knowledge/page.tsx @@ -0,0 +1,9 @@ +const Page = () => { + // const mobile = isMobileDevice(); + + // const Page = mobile ? MobilePage : DesktopPage; + + return
321
; +}; + +export default Page; diff --git a/frontend/src/features/SideBar/TopActions.tsx b/frontend/src/features/SideBar/TopActions.tsx index 66f5a0ab..df1a4c07 100644 --- a/frontend/src/features/SideBar/TopActions.tsx +++ b/frontend/src/features/SideBar/TopActions.tsx @@ -1,5 +1,5 @@ import { ActionIcon } from '@lobehub/ui'; -import { Compass, MessageSquare } from 'lucide-react'; +import { Compass, Library, MessageSquare } from 'lucide-react'; import Link from 'next/link'; import { memo } from 'react'; import { useTranslation } from 'react-i18next'; @@ -43,6 +43,15 @@ const TopActions = memo(({ tab }) => { title={t('tab.market')} /> + + + ); }); diff --git a/frontend/src/store/global/slices/common/initialState.ts b/frontend/src/store/global/slices/common/initialState.ts index dcdb2b82..77a9f0da 100644 --- a/frontend/src/store/global/slices/common/initialState.ts +++ b/frontend/src/store/global/slices/common/initialState.ts @@ -2,6 +2,7 @@ import { AppRouterInstance } from 'next/dist/shared/lib/app-router-context.share export enum SidebarTabKey { Chat = 'chat', + Knowledge = 'knowledge', Market = 'market', Setting = 'settings', }