add new reducer to ensure conversations are renewed on model change

This commit is contained in:
Daniel Avila 2023-03-09 18:57:37 -05:00
parent 30936573ac
commit 0ba92c4c03
7 changed files with 53 additions and 24 deletions

View file

@ -3,7 +3,7 @@ import TrashIcon from '../svg/TrashIcon';
import CrossIcon from '../svg/CrossIcon';
import manualSWR from '~/utils/fetchers';
import { useDispatch } from 'react-redux';
import { setConversation, removeConvo } from '~/store/convoSlice';
import { setNewConvo, removeConvo } from '~/store/convoSlice';
import { setMessages } from '~/store/messageSlice';
export default function DeleteButton({ conversationId, renaming, cancelHandler }) {
@ -14,7 +14,8 @@ export default function DeleteButton({ conversationId, renaming, cancelHandler }
() => {
dispatch(setMessages([]));
dispatch(removeConvo(conversationId));
dispatch(setConversation({ title: 'New chat', conversationId: null, parentMessageId: null }));
// dispatch(setConversation({ title: 'New chat', conversationId: null, parentMessageId: null }));
dispatch(setNewConvo());
}
);

View file

@ -2,6 +2,7 @@ import React, { useState, useRef } from 'react';
import TextareaAutosize from 'react-textarea-autosize';
import { useSelector, useDispatch } from 'react-redux';
import { setModel, setCustomGpt } from '~/store/submitSlice';
import { setNewConvo } from '~/store/convoSlice';
import manualSWR from '~/utils/fetchers';
import { Button } from '../ui/Button.tsx';
import { Input } from '../ui/Input.tsx';
@ -36,6 +37,16 @@ export default function ModelDialog({ mutate, setModelSave, handleSaveState }) {
dispatch(setCustomGpt({ chatGptLabel, promptPrefix }));
dispatch(setModel('chatgptCustom'));
handleSaveState(chatGptLabel.toLowerCase());
// Set new conversation
dispatch(setNewConvo());
// dispatch(
// setConversation({
// title: 'New Chat',
// error: false,
// conversationId: null,
// parentMessageId: null
// })
// );
// dispatch(setDisabled(false));
};

View file

@ -1,7 +1,7 @@
import React, { useState, useEffect } from 'react';
import { useSelector, useDispatch } from 'react-redux';
import { setModel, setDisabled, setCustomGpt, setCustomModel } from '~/store/submitSlice';
import { setConversation } from '~/store/convoSlice';
import { setNewConvo } from '~/store/convoSlice';
import ModelDialog from './ModelDialog';
import MenuItems from './MenuItems';
import manualSWR from '~/utils/fetchers';
@ -76,14 +76,15 @@ export default function ModelMenu() {
}
// Set new conversation
dispatch(
setConversation({
title: 'New Chat',
error: false,
conversationId: null,
parentMessageId: null
})
);
dispatch(setNewConvo());
// dispatch(
// setConversation({
// title: 'New Chat',
// error: false,
// conversationId: null,
// parentMessageId: null
// })
// );
};
const onOpenChange = (open) => {

View file

@ -3,7 +3,7 @@ import TrashIcon from '../svg/TrashIcon';
import { useSWRConfig } from 'swr';
import manualSWR from '~/utils/fetchers';
import { useDispatch } from 'react-redux';
import { setConversation, removeAll } from '~/store/convoSlice';
import { setNewConvo, removeAll } from '~/store/convoSlice';
import { setMessages } from '~/store/messageSlice';
export default function ClearConvos() {
@ -12,14 +12,15 @@ export default function ClearConvos() {
const { trigger } = manualSWR(`http://localhost:3080/api/convos/clear`, 'post', () => {
dispatch(setMessages([]));
dispatch(
setConversation({
error: false,
title: 'New chat',
conversationId: null,
parentMessageId: null
})
);
dispatch(setNewConvo());
// dispatch(
// setConversation({
// error: false,
// title: 'New chat',
// conversationId: null,
// parentMessageId: null
// })
// );
mutate(`http://localhost:3080/api/convos`);
});

View file

@ -1,6 +1,6 @@
import React from 'react';
import { useDispatch } from 'react-redux';
import { setConversation } from '~/store/convoSlice';
import { setNewConvo } from '~/store/convoSlice';
import { setMessages } from '~/store/messageSlice';
import { setText } from '~/store/textSlice';
@ -10,7 +10,8 @@ export default function NewChat() {
const clickHandler = () => {
dispatch(setText(''));
dispatch(setMessages([]));
dispatch(setConversation({ title: 'New Chat', error: false, conversationId: null, parentMessageId: null }));
dispatch(setNewConvo());
// dispatch(setConversation({ title: 'New Chat', error: false, conversationId: null, parentMessageId: null }));
};
return (