diff --git a/src/common/panel/chat.ts b/src/common/panel/chat.ts index d9f3539..8750f51 100644 --- a/src/common/panel/chat.ts +++ b/src/common/panel/chat.ts @@ -257,11 +257,14 @@ export class ChatPanel implements vscode.WebviewViewProvider { const sesssion = await supabase.auth.getSession(); const userLoggined = sesssion.data.session ? true : false; - const chatEnabled = - (localChatUsing && chatServerIsWorking) || (cloudUsing && cloudChatUsing); + const chatEnabled = localChatUsing || (cloudUsing && cloudChatUsing); + const chatIsWorking = + (cloudUsing && cloudChatUsing && userLoggined) || + (chatServerIsWorking && localChatUsing); return { chatEnabled: chatEnabled, + chatIsWorking: chatIsWorking, userLoggined: userLoggined, }; } diff --git a/webviews/src/hooks/useSettings.tsx b/webviews/src/hooks/useSettings.tsx index fd1879c..fb59e27 100644 --- a/webviews/src/hooks/useSettings.tsx +++ b/webviews/src/hooks/useSettings.tsx @@ -4,6 +4,7 @@ import { vscode } from "../utilities/vscode"; type ConfigurationType = { chatEnabled: boolean; userLoggined: boolean; + chatIsWorking: boolean; }; interface SettingsContextType { @@ -26,19 +27,21 @@ export const SettingsProvider = ({ const settings = await vscode.getSettings(); if ( settings.chatEnabled !== lastSettings?.chatEnabled || + settings.chatIsWorking !== lastSettings?.chatIsWorking || settings.userLoggined !== lastSettings?.userLoggined ) { lastSettings = settings; setConfiguration({ chatEnabled: settings.chatEnabled, + chatIsWorking: settings.chatIsWorking, userLoggined: settings.userLoggined, }); } }; getSettings(); - const interval = setInterval(getSettings, 5000); + const interval = setInterval(getSettings, 1000); return () => { clearInterval(interval); }; diff --git a/webviews/src/routes/chat/index.tsx b/webviews/src/routes/chat/index.tsx index 2730a1d..7f764ec 100644 --- a/webviews/src/routes/chat/index.tsx +++ b/webviews/src/routes/chat/index.tsx @@ -7,9 +7,10 @@ import { useMessageListener } from "../../hooks/messageListener"; import TextArea from "../../components/text-area"; import { useChat } from "../../hooks/useChat"; import styles from "./style.module.css"; +import { useSettings } from "../../hooks/useSettings"; export const ChatInstance = () => { - let { chatId } = useParams() as { chatId?: string }; + const { chatId } = useParams() as { chatId?: string }; const { handleSubmit, @@ -21,6 +22,8 @@ export const ChatInstance = () => { stop, } = useChat(chatId === "new-chat" ? undefined : chatId); + const settings = useSettings(); + useMessageListener("start-new-chat", () => { startNewChat(); }); @@ -59,15 +62,22 @@ export const ChatInstance = () => {