fix chat quote reader (#4125)

This commit is contained in:
heheer
2025-03-12 18:09:41 +08:00
committed by archer
parent d052d0de53
commit c131c2a7dc
14 changed files with 167 additions and 125 deletions

View File

@@ -6,6 +6,7 @@ import { DatasetErrEnum } from '@fastgpt/global/common/error/code/dataset';
export type GetQuotePermissionResponse =
| {
datasetName: string;
permission: {
hasWritePer: boolean;
hasReadPer: boolean;
@@ -22,7 +23,7 @@ async function handler(req: NextApiRequest): Promise<GetQuotePermissionResponse>
}
try {
const { permission } = await authDataset({
const { permission, dataset } = await authDataset({
req,
authToken: true,
authApiKey: true,
@@ -31,6 +32,7 @@ async function handler(req: NextApiRequest): Promise<GetQuotePermissionResponse>
});
return {
datasetName: dataset.name,
permission: {
hasReadPer: permission.hasReadPer,
hasWritePer: permission.hasWritePer
@@ -39,6 +41,7 @@ async function handler(req: NextApiRequest): Promise<GetQuotePermissionResponse>
} catch (error) {
if (error === DatasetErrEnum.unAuthDataset) {
return {
datasetName: '',
permission: {
hasWritePer: false,
hasReadPer: false

View File

@@ -65,6 +65,14 @@ const Chat = ({ myApps }: { myApps: AppListItemType[] }) => {
const chatRecords = useContextSelector(ChatRecordContext, (v) => v.chatRecords);
const totalRecordsCount = useContextSelector(ChatRecordContext, (v) => v.totalRecordsCount);
const [sidebarFolded, setSidebarFolded] = useState(false);
useEffect(() => {
if (quoteData) {
setSidebarFolded(true);
}
}, [quoteData]);
// Load chat init data
const { loading } = useRequest2(
async () => {
@@ -148,7 +156,9 @@ const Chat = ({ myApps }: { myApps: AppListItemType[] }) => {
);
return isPc || !appId ? (
<SideBar externalTrigger={!!quoteData}>{Children}</SideBar>
<SideBar isFolded={sidebarFolded} onFoldChange={setSidebarFolded}>
{Children}
</SideBar>
) : (
<Drawer
isOpen={isOpenSlider}
@@ -161,7 +171,7 @@ const Chat = ({ myApps }: { myApps: AppListItemType[] }) => {
<DrawerContent maxWidth={'75vw'}>{Children}</DrawerContent>
</Drawer>
);
}, [t, isPc, appId, isOpenSlider, onCloseSlider, quoteData]);
}, [t, isPc, appId, isOpenSlider, onCloseSlider, sidebarFolded]);
return (
<Flex h={'100%'}>

View File

@@ -90,6 +90,14 @@ const OutLink = (props: Props) => {
const totalRecordsCount = useContextSelector(ChatRecordContext, (v) => v.totalRecordsCount);
const isChatRecordsLoaded = useContextSelector(ChatRecordContext, (v) => v.isChatRecordsLoaded);
const [sidebarFolded, setSidebarFolded] = useState(false);
useEffect(() => {
if (quoteData) {
setSidebarFolded(true);
}
}, [quoteData]);
const initSign = useRef(false);
const { data, loading } = useRequest2(
async () => {
@@ -221,7 +229,9 @@ const OutLink = (props: Props) => {
if (showHistory !== '1') return null;
return isPc ? (
<SideBar externalTrigger={!!quoteData}>{Children}</SideBar>
<SideBar isFolded={sidebarFolded} onFoldChange={setSidebarFolded}>
{Children}
</SideBar>
) : (
<Drawer
isOpen={isOpenSlider}
@@ -236,7 +246,7 @@ const OutLink = (props: Props) => {
</DrawerContent>
</Drawer>
);
}, [isOpenSlider, isPc, onCloseSlider, quoteData, showHistory, t]);
}, [isOpenSlider, isPc, onCloseSlider, showHistory, t, sidebarFolded]);
return (
<>

View File

@@ -1,4 +1,4 @@
import React, { useCallback, useEffect, useMemo } from 'react';
import React, { useCallback, useEffect, useMemo, useState } from 'react';
import NextHead from '@/components/common/NextHead';
import { getTeamChatInfo } from '@/web/core/chat/api';
import { useRouter } from 'next/router';
@@ -70,6 +70,14 @@ const Chat = ({ myApps }: { myApps: AppListItemType[] }) => {
const chatRecords = useContextSelector(ChatRecordContext, (v) => v.chatRecords);
const totalRecordsCount = useContextSelector(ChatRecordContext, (v) => v.totalRecordsCount);
const [sidebarFolded, setSidebarFolded] = useState(false);
useEffect(() => {
if (quoteData) {
setSidebarFolded(true);
}
}, [quoteData]);
// get chat app info
const { loading } = useRequest2(
async () => {
@@ -166,7 +174,9 @@ const Chat = ({ myApps }: { myApps: AppListItemType[] }) => {
);
return isPc || !appId ? (
<SideBar externalTrigger={!!quoteData}>{Children}</SideBar>
<SideBar isFolded={sidebarFolded} onFoldChange={setSidebarFolded}>
{Children}
</SideBar>
) : (
<Drawer
isOpen={isOpenSlider}
@@ -179,7 +189,7 @@ const Chat = ({ myApps }: { myApps: AppListItemType[] }) => {
<DrawerContent maxWidth={'75vw'}>{Children}</DrawerContent>
</Drawer>
);
}, [appId, isOpenSlider, isPc, onCloseSlider, quoteData, t]);
}, [appId, isOpenSlider, isPc, onCloseSlider, t, sidebarFolded]);
return (
<Flex h={'100%'}>