From e7e18cab35b70cc85962528bd4848b09be0a53eb Mon Sep 17 00:00:00 2001 From: moonrailgun Date: Sat, 25 Sep 2021 15:03:24 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=B8=AA=E4=BA=BA=E5=A4=B4=E5=83=8F?= =?UTF-8?q?=E5=A4=84=E6=9C=AA=E8=AF=BB=E6=B6=88=E6=81=AF=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- shared/api/socket.ts | 2 +- web/src/routes/Main/Navbar/PersonalNav.tsx | 34 ++++++++++++++++++++++ web/src/routes/Main/Navbar/index.tsx | 15 ++-------- 3 files changed, 37 insertions(+), 14 deletions(-) create mode 100644 web/src/routes/Main/Navbar/PersonalNav.tsx diff --git a/shared/api/socket.ts b/shared/api/socket.ts index efcc0aaf..872eb1db 100644 --- a/shared/api/socket.ts +++ b/shared/api/socket.ts @@ -158,7 +158,7 @@ export function createSocket(token: string): Promise { if (isDevelopment) { _socket.onAny((...args) => { - console.log('Receive Notify:', args); + console.debug('Receive Notify:', args); }); } }); diff --git a/web/src/routes/Main/Navbar/PersonalNav.tsx b/web/src/routes/Main/Navbar/PersonalNav.tsx new file mode 100644 index 00000000..dfa5e14f --- /dev/null +++ b/web/src/routes/Main/Navbar/PersonalNav.tsx @@ -0,0 +1,34 @@ +import { Avatar } from '@/components/Avatar'; +import React from 'react'; +import { t, useDMConverseList, useUserInfo } from 'tailchat-shared'; +import { useUnread } from 'tailchat-shared/redux/hooks/useUnread'; +import { NavbarNavItem } from './NavItem'; + +function usePersonalUnread(): boolean { + const converse = useDMConverseList(); + const unreads = useUnread(converse.map((converse) => String(converse._id))); + + return unreads.some((u) => u === true); +} + +export const PersonalNav: React.FC = React.memo(() => { + const userInfo = useUserInfo(); + const unread = usePersonalUnread(); + + return ( + + + + ); +}); +PersonalNav.displayName = 'PersonalNav'; diff --git a/web/src/routes/Main/Navbar/index.tsx b/web/src/routes/Main/Navbar/index.tsx index 1766e6cb..298110c3 100644 --- a/web/src/routes/Main/Navbar/index.tsx +++ b/web/src/routes/Main/Navbar/index.tsx @@ -1,32 +1,21 @@ import React from 'react'; -import { t, useAppSelector } from 'tailchat-shared'; -import { Avatar } from '@/components/Avatar'; -import { NavbarNavItem } from './NavItem'; import { GroupNav } from './GroupNav'; import { MobileMenuBtn } from './MobileMenuBtn'; import { SettingBtn } from './SettingBtn'; import { Divider } from 'antd'; +import { PersonalNav } from './PersonalNav'; /** * 导航栏组件 */ export const Navbar: React.FC = React.memo(() => { - const userInfo = useAppSelector((state) => state.user.info); - return (
{/* Navbar */}
- - - +