restore old chats

This commit is contained in:
Jing Hua 2023-03-06 00:35:18 +08:00
parent 72a89ada1f
commit 46642e24c2

View file

@ -5,14 +5,55 @@ import Chat from './components/Chat';
import Menu from './components/Menu'; import Menu from './components/Menu';
import useInitialiseNewChat from '@hooks/useInitialiseNewChat'; import useInitialiseNewChat from '@hooks/useInitialiseNewChat';
import { ChatInterface } from '@type/chat';
import { Theme } from '@type/theme';
function App() { function App() {
const initialiseNewChat = useInitialiseNewChat(); const initialiseNewChat = useInitialiseNewChat();
const setChats = useStore((state) => state.setChats);
const setTheme = useStore((state) => state.setTheme);
const setApiKey = useStore((state) => state.setApiKey);
const setCurrentChatIndex = useStore((state) => state.setCurrentChatIndex);
useEffect(() => { useEffect(() => {
const chats = useStore.getState().chats; // legacy local storage
if (!chats || chats.length === 0) { const oldChats = localStorage.getItem('chats');
initialiseNewChat(); const apiKey = localStorage.getItem('apiKey');
const theme = localStorage.getItem('theme');
if (apiKey) {
// legacy local storage
setApiKey(apiKey);
localStorage.removeItem('apiKey');
}
if (theme) {
// legacy local storage
setTheme(theme as Theme);
localStorage.removeItem('theme');
}
if (oldChats) {
// legacy local storage
try {
const chats: ChatInterface[] = JSON.parse(oldChats);
if (chats.length > 0) {
setChats(chats);
setCurrentChatIndex(0);
} else {
initialiseNewChat();
}
} catch (e: unknown) {
console.log(e);
initialiseNewChat();
}
localStorage.removeItem('chats');
} else {
// existing local storage
const chats = useStore.getState().chats;
if (!chats || chats.length === 0) {
initialiseNewChat();
}
} }
}, []); }, []);