fix: share chat

This commit is contained in:
archer
2023-06-27 21:00:15 +08:00
parent 3d2043c16f
commit 62489ef12f
3 changed files with 30 additions and 21 deletions

View File

@@ -51,7 +51,7 @@ const Layout = ({ children }: { children: JSX.Element }) => {
return () => { return () => {
window.removeEventListener('resize', resize); window.removeEventListener('resize', resize);
}; };
}, [setScreenWidth]); }, []);
const { data: unread = 0 } = useQuery(['getUnreadCount'], getUnreadCount, { const { data: unread = 0 } = useQuery(['getUnreadCount'], getUnreadCount, {
enabled: !!userInfo, enabled: !!userInfo,
@@ -64,8 +64,8 @@ const Layout = ({ children }: { children: JSX.Element }) => {
h={'100%'} h={'100%'}
bgGradient={'linear(to-t,rgba(173, 206, 255, 0.05) 0%, rgba(173, 206, 255, 0.12) 100%)'} bgGradient={'linear(to-t,rgba(173, 206, 255, 0.05) 0%, rgba(173, 206, 255, 0.12) 100%)'}
> >
{isPc ? ( <Box h={'100%'} display={['none', 'block']}>
pcUnShowLayoutRoute[router.pathname] ? ( {pcUnShowLayoutRoute[router.pathname] ? (
<Auth>{children}</Auth> <Auth>{children}</Auth>
) : ( ) : (
<> <>
@@ -76,19 +76,22 @@ const Layout = ({ children }: { children: JSX.Element }) => {
<Auth>{children}</Auth> <Auth>{children}</Auth>
</Box> </Box>
</> </>
) )}
) : phoneUnShowLayoutRoute[router.pathname] || isChatPage ? ( </Box>
<Auth>{children}</Auth> <Box h={'100%'} display={['block', 'none']}>
) : ( {phoneUnShowLayoutRoute[router.pathname] || isChatPage ? (
<Flex h={'100%'} flexDirection={'column'}> <Auth>{children}</Auth>
<Box flex={'1 0 0'} h={0} overflow={'overlay'}> ) : (
<Auth>{children}</Auth> <Flex h={'100%'} flexDirection={'column'}>
</Box> <Box flex={'1 0 0'} h={0} overflow={'overlay'}>
<Box h={'50px'} borderTop={'1px solid rgba(0,0,0,0.1)'}> <Auth>{children}</Auth>
<NavbarPhone unread={unread} /> </Box>
</Box> <Box h={'50px'} borderTop={'1px solid rgba(0,0,0,0.1)'}>
</Flex> <NavbarPhone unread={unread} />
)} </Box>
</Flex>
)}
</Box>
</Box> </Box>
<Loading loading={loading} /> <Loading loading={loading} />
</> </>

View File

@@ -1,7 +1,7 @@
import React, { useMemo } from 'react'; import React, { useMemo } from 'react';
import { useRouter } from 'next/router'; import { useRouter } from 'next/router';
import MyIcon from '../Icon'; import MyIcon from '../Icon';
import { Flex } from '@chakra-ui/react'; import { Flex, Box } from '@chakra-ui/react';
import { useChatStore } from '@/store/chat'; import { useChatStore } from '@/store/chat';
import Badge from '../Badge'; import Badge from '../Badge';
@@ -11,24 +11,28 @@ const NavbarPhone = ({ unread }: { unread: number }) => {
const navbarList = useMemo( const navbarList = useMemo(
() => [ () => [
{ {
label: '聊天',
icon: 'tabbarChat', icon: 'tabbarChat',
link: `/chat?modelId=${lastChatModelId}&chatId=${lastChatId}`, link: `/chat?modelId=${lastChatModelId}&chatId=${lastChatId}`,
activeLink: ['/chat'], activeLink: ['/chat'],
unread: 0 unread: 0
}, },
{ {
label: '应用',
icon: 'tabbarModel', icon: 'tabbarModel',
link: `/model`, link: `/model`,
activeLink: ['/model'], activeLink: ['/model'],
unread: 0 unread: 0
}, },
{ {
label: '工具',
icon: 'tabbarMore', icon: 'tabbarMore',
link: '/tools', link: '/tools',
activeLink: ['/tools'], activeLink: ['/tools'],
unread: 0 unread: 0
}, },
{ {
label: '我的',
icon: 'tabbarMe', icon: 'tabbarMe',
link: '/number', link: '/number',
activeLink: ['/number'], activeLink: ['/number'],
@@ -57,7 +61,9 @@ const NavbarPhone = ({ unread }: { unread: number }) => {
textAlign={'center'} textAlign={'center'}
alignItems={'center'} alignItems={'center'}
h={'100%'} h={'100%'}
pt={1}
px={3} px={3}
transform={'scale(0.9)'}
{...(item.activeLink.includes(router.asPath) {...(item.activeLink.includes(router.asPath)
? { ? {
color: '#7089f1' color: '#7089f1'
@@ -89,6 +95,7 @@ const NavbarPhone = ({ unread }: { unread: number }) => {
> >
<Badge isDot count={item.unread}> <Badge isDot count={item.unread}>
<MyIcon name={item.icon as any} width={'20px'} height={'20px'} /> <MyIcon name={item.icon as any} width={'20px'} height={'20px'} />
<Box fontSize={'12px'}>{item.label}</Box>
</Badge> </Badge>
</Flex> </Flex>
))} ))}

View File

@@ -62,7 +62,7 @@ const textareaMinH = '22px';
const Chat = () => { const Chat = () => {
const router = useRouter(); const router = useRouter();
const { shareId = '', historyId = '' } = router.query as { shareId: string; historyId: string }; const { shareId = '', historyId } = router.query as { shareId: string; historyId: string };
const theme = useTheme(); const theme = useTheme();
const ChatBox = useRef<HTMLDivElement>(null); const ChatBox = useRef<HTMLDivElement>(null);
@@ -491,14 +491,13 @@ const Chat = () => {
]); ]);
// 初始化聊天框 // 初始化聊天框
useQuery(['init', historyId], () => { useQuery(['init', shareId, historyId], () => {
if (!shareId) { if (!shareId) {
return null; return null;
} }
if (!historyId) { if (!historyId) {
router.replace(`/chat/share?shareId=${shareId}&historyId=${new Types.ObjectId()}`); return router.replace(`/chat/share?shareId=${shareId}&historyId=${new Types.ObjectId()}`);
return null;
} }
return loadChatInfo(); return loadChatInfo();