mirror of
https://github.com/labring/FastGPT.git
synced 2025-07-24 22:03:54 +00:00
fix: mobile history slider records disappear (#2806)
* fix: mobile history slider records disappear * change h
This commit is contained in:
@@ -53,14 +53,12 @@ const ChatHistorySlider = ({
|
|||||||
onChangeChatId,
|
onChangeChatId,
|
||||||
chatId: activeChatId,
|
chatId: activeChatId,
|
||||||
isLoading,
|
isLoading,
|
||||||
ScrollList,
|
ScrollData,
|
||||||
historyList,
|
|
||||||
histories
|
histories
|
||||||
} = useContextSelector(ChatContext, (v) => v);
|
} = useContextSelector(ChatContext, (v) => v);
|
||||||
|
|
||||||
const concatHistory = useMemo(() => {
|
const concatHistory = useMemo(() => {
|
||||||
const formatHistories: HistoryItemType[] = historyList.map((data) => {
|
const formatHistories: HistoryItemType[] = histories.map((item) => {
|
||||||
const item = data.data;
|
|
||||||
return { id: item.chatId, title: item.title, customTitle: item.customTitle, top: item.top };
|
return { id: item.chatId, title: item.title, customTitle: item.customTitle, top: item.top };
|
||||||
});
|
});
|
||||||
const newChat: HistoryItemType = {
|
const newChat: HistoryItemType = {
|
||||||
@@ -70,7 +68,7 @@ const ChatHistorySlider = ({
|
|||||||
const activeChat = histories.find((item) => item.chatId === activeChatId);
|
const activeChat = histories.find((item) => item.chatId === activeChatId);
|
||||||
|
|
||||||
return !activeChat ? [newChat].concat(formatHistories) : formatHistories;
|
return !activeChat ? [newChat].concat(formatHistories) : formatHistories;
|
||||||
}, [activeChatId, histories, historyList, t]);
|
}, [activeChatId, histories, t]);
|
||||||
|
|
||||||
// custom title edit
|
// custom title edit
|
||||||
const { onOpenModal, EditModal: EditTitleModal } = useEditTitle({
|
const { onOpenModal, EditModal: EditTitleModal } = useEditTitle({
|
||||||
@@ -173,7 +171,7 @@ const ChatHistorySlider = ({
|
|||||||
)}
|
)}
|
||||||
</Flex>
|
</Flex>
|
||||||
|
|
||||||
<ScrollList flex={'1 0 0'} h={0} px={[2, 5]} overflow={'overlay'}>
|
<ScrollData flex={'1 0 0'} h={0} px={[2, 5]} overflow={'overlay'}>
|
||||||
{/* chat history */}
|
{/* chat history */}
|
||||||
<>
|
<>
|
||||||
{concatHistory.map((item, i) => (
|
{concatHistory.map((item, i) => (
|
||||||
@@ -283,7 +281,7 @@ const ChatHistorySlider = ({
|
|||||||
</Flex>
|
</Flex>
|
||||||
))}
|
))}
|
||||||
</>
|
</>
|
||||||
</ScrollList>
|
</ScrollData>
|
||||||
|
|
||||||
{/* exec */}
|
{/* exec */}
|
||||||
{!isPc && isUserChatPage && (
|
{!isPc && isUserChatPage && (
|
||||||
|
@@ -13,7 +13,7 @@ import { ClearHistoriesProps, DelHistoryProps, UpdateHistoryProps } from '@/glob
|
|||||||
import { BoxProps, useDisclosure } from '@chakra-ui/react';
|
import { BoxProps, useDisclosure } from '@chakra-ui/react';
|
||||||
import { useChatStore } from './storeChat';
|
import { useChatStore } from './storeChat';
|
||||||
import { getNanoid } from '@fastgpt/global/common/string/tools';
|
import { getNanoid } from '@fastgpt/global/common/string/tools';
|
||||||
import { useVirtualScrollPagination } from '@fastgpt/web/hooks/useScrollPagination';
|
import { useScrollPagination } from '@fastgpt/web/hooks/useScrollPagination';
|
||||||
|
|
||||||
type ChatContextValueType = {
|
type ChatContextValueType = {
|
||||||
params: Record<string, string | number>;
|
params: Record<string, string | number>;
|
||||||
@@ -30,7 +30,7 @@ type ChatContextType = {
|
|||||||
forbidLoadChat: React.MutableRefObject<boolean>;
|
forbidLoadChat: React.MutableRefObject<boolean>;
|
||||||
onChangeChatId: (chatId?: string, forbid?: boolean) => void;
|
onChangeChatId: (chatId?: string, forbid?: boolean) => void;
|
||||||
loadHistories: () => void;
|
loadHistories: () => void;
|
||||||
ScrollList: ({
|
ScrollData: ({
|
||||||
children,
|
children,
|
||||||
EmptyChildren,
|
EmptyChildren,
|
||||||
isLoading,
|
isLoading,
|
||||||
@@ -42,10 +42,6 @@ type ChatContextType = {
|
|||||||
} & BoxProps) => ReactNode;
|
} & BoxProps) => ReactNode;
|
||||||
onChangeAppId: (appId: string) => void;
|
onChangeAppId: (appId: string) => void;
|
||||||
isLoading: boolean;
|
isLoading: boolean;
|
||||||
historyList: {
|
|
||||||
index: number;
|
|
||||||
data: ChatHistoryItemType;
|
|
||||||
}[];
|
|
||||||
histories: ChatHistoryItemType[];
|
histories: ChatHistoryItemType[];
|
||||||
onUpdateHistoryTitle: ({ chatId, newTitle }: { chatId: string; newTitle: string }) => void;
|
onUpdateHistoryTitle: ({ chatId, newTitle }: { chatId: string; newTitle: string }) => void;
|
||||||
};
|
};
|
||||||
@@ -53,12 +49,11 @@ type ChatContextType = {
|
|||||||
export const ChatContext = createContext<ChatContextType>({
|
export const ChatContext = createContext<ChatContextType>({
|
||||||
chatId: '',
|
chatId: '',
|
||||||
// forbidLoadChat: undefined,
|
// forbidLoadChat: undefined,
|
||||||
historyList: [],
|
|
||||||
histories: [],
|
histories: [],
|
||||||
onUpdateHistoryTitle: function (): void {
|
onUpdateHistoryTitle: function (): void {
|
||||||
throw new Error('Function not implemented.');
|
throw new Error('Function not implemented.');
|
||||||
},
|
},
|
||||||
ScrollList: function (): ReactNode {
|
ScrollData: function (): ReactNode {
|
||||||
throw new Error('Function not implemented.');
|
throw new Error('Function not implemented.');
|
||||||
},
|
},
|
||||||
loadHistories: function (): void {
|
loadHistories: function (): void {
|
||||||
@@ -105,17 +100,14 @@ const ChatContextProvider = ({
|
|||||||
const { isOpen: isOpenSlider, onClose: onCloseSlider, onOpen: onOpenSlider } = useDisclosure();
|
const { isOpen: isOpenSlider, onClose: onCloseSlider, onOpen: onOpenSlider } = useDisclosure();
|
||||||
|
|
||||||
const {
|
const {
|
||||||
scrollDataList: historyList,
|
ScrollData,
|
||||||
ScrollList,
|
|
||||||
isLoading: isPaginationLoading,
|
isLoading: isPaginationLoading,
|
||||||
setData: setHistories,
|
setData: setHistories,
|
||||||
fetchData: loadHistories,
|
fetchData: loadHistories,
|
||||||
totalData: histories
|
data: histories
|
||||||
} = useVirtualScrollPagination(getChatHistories, {
|
} = useScrollPagination(getChatHistories, {
|
||||||
overscan: 30,
|
pageSize: 20,
|
||||||
pageSize: 30,
|
params,
|
||||||
itemHeight: 52,
|
|
||||||
defaultParams: params,
|
|
||||||
refreshDeps: [params]
|
refreshDeps: [params]
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -229,9 +221,8 @@ const ChatContextProvider = ({
|
|||||||
onChangeChatId,
|
onChangeChatId,
|
||||||
onChangeAppId,
|
onChangeAppId,
|
||||||
isLoading,
|
isLoading,
|
||||||
historyList,
|
|
||||||
setHistories,
|
setHistories,
|
||||||
ScrollList,
|
ScrollData,
|
||||||
loadHistories,
|
loadHistories,
|
||||||
histories,
|
histories,
|
||||||
onUpdateHistoryTitle
|
onUpdateHistoryTitle
|
||||||
|
Reference in New Issue
Block a user