Feat: Load the dialog page, prohibit calling the dialog/get interface #6798 (#6799)

### What problem does this PR solve?

Feat: Load the dialog page, prohibit calling the dialog/get interface
#6798

### Type of change


- [x] New Feature (non-breaking change which adds functionality)
This commit is contained in:
balibabu 2025-04-03 18:04:40 +08:00 committed by GitHub
parent 57e760883e
commit f49588756e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 22 additions and 12 deletions

View File

@ -84,7 +84,7 @@ export const useGetChatSearchParams = () => {
//#region dialog
export const useFetchNextDialogList = () => {
export const useFetchNextDialogList = (pureFetch = false) => {
const { handleClickDialog } = useClickDialogCard();
const { dialogId } = useGetChatSearchParams();
@ -103,12 +103,14 @@ export const useFetchNextDialogList = () => {
if (data.code === 0) {
const list: IDialog[] = data.data;
if (list.length > 0) {
if (list.every((x) => x.id !== dialogId)) {
handleClickDialog(data.data[0].id);
if (!pureFetch) {
if (list.length > 0) {
if (list.every((x) => x.id !== dialogId)) {
handleClickDialog(data.data[0].id);
}
} else {
history.push('/chat');
}
} else {
history.push('/chat');
}
}

View File

@ -6,6 +6,7 @@ import {
useFetchNextConversation,
useFetchNextConversationList,
useFetchNextDialog,
useFetchNextDialogList,
useGetChatSearchParams,
useRemoveNextConversation,
useRemoveNextDialog,
@ -202,15 +203,24 @@ export const useEditDialog = () => {
//#region conversation
const useFindPrologueFromDialogList = () => {
const { dialogId } = useGetChatSearchParams();
const { data: dialogList } = useFetchNextDialogList(true);
const prologue = useMemo(() => {
return dialogList.find((x) => x.id === dialogId)?.prompt_config.prologue;
}, [dialogId, dialogList]);
return prologue;
};
export const useSelectDerivedConversationList = () => {
const { t } = useTranslate('chat');
const [list, setList] = useState<Array<IConversation>>([]);
const { data: currentDialog } = useFetchNextDialog();
const { data: conversationList, loading } = useFetchNextConversationList();
const { dialogId } = useGetChatSearchParams();
const prologue = currentDialog?.prompt_config?.prologue ?? '';
const { setNewConversationRouteParams } = useSetNewConversationRouteParams();
const prologue = useFindPrologueFromDialogList();
const addTemporaryConversation = useCallback(() => {
const conversationId = getConversationId();
@ -291,13 +301,11 @@ export const useSelectNextMessages = () => {
removeMessagesAfterCurrentMessage,
} = useSelectDerivedMessages();
const { data: conversation, loading } = useFetchNextConversation();
const { data: dialog } = useFetchNextDialog();
const { conversationId, dialogId, isNew } = useGetChatSearchParams();
const prologue = useFindPrologueFromDialogList();
const addPrologue = useCallback(() => {
if (dialogId !== '' && isNew === 'true') {
const prologue = dialog.prompt_config?.prologue;
const nextMessage = {
role: MessageType.Assistant,
content: prologue,
@ -306,7 +314,7 @@ export const useSelectNextMessages = () => {
setDerivedMessages([nextMessage]);
}
}, [isNew, dialog, dialogId, setDerivedMessages]);
}, [dialogId, isNew, prologue, setDerivedMessages]);
useEffect(() => {
addPrologue();