mirror of
https://github.com/voideditor/void
synced 2026-05-24 09:58:23 +00:00
tabs
This commit is contained in:
parent
b30937934a
commit
0072c554fb
3 changed files with 34 additions and 20 deletions
|
|
@ -5,21 +5,25 @@ import { awaitVSCodeResponse, getVSCodeAPI, onMessageFromVSCode, useOnVSCodeMess
|
||||||
import { SidebarThreadSelector } from "./SidebarThreadSelector";
|
import { SidebarThreadSelector } from "./SidebarThreadSelector";
|
||||||
import { useThreads } from "./contextForThreads";
|
import { useThreads } from "./contextForThreads";
|
||||||
import { SidebarChat } from "./SidebarChat";
|
import { SidebarChat } from "./SidebarChat";
|
||||||
|
import { SidebarSettings } from './SidebarSettings';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const Sidebar = () => {
|
const Sidebar = () => {
|
||||||
const [isThreadSelectorOpen, setIsThreadSelectorOpen] = useState(false)
|
const [tab, setTab] = useState<'threadSelector' | 'chat' | 'settings'>('chat')
|
||||||
|
|
||||||
// if they pressed the + to add a new chat
|
// if they pressed the + to add a new chat
|
||||||
useOnVSCodeMessage('startNewThread', (m) => {
|
useOnVSCodeMessage('startNewThread', (m) => {
|
||||||
setIsThreadSelectorOpen(false)
|
setTab('chat')
|
||||||
})
|
})
|
||||||
|
|
||||||
// if they toggled thread selector
|
// if they toggled thread selector
|
||||||
useOnVSCodeMessage('toggleThreadSelector', (m) => {
|
useOnVSCodeMessage('toggleThreadSelector', (m) => {
|
||||||
setIsThreadSelectorOpen(v => !v)
|
if (tab === 'threadSelector')
|
||||||
})
|
setTab('chat')
|
||||||
|
else
|
||||||
|
setTab('threadSelector')
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
// Receive messages from the VSCode extension
|
// Receive messages from the VSCode extension
|
||||||
|
|
@ -33,15 +37,24 @@ const Sidebar = () => {
|
||||||
}, [])
|
}, [])
|
||||||
|
|
||||||
|
|
||||||
return <>
|
|
||||||
<div className="flex flex-col h-screen w-full">
|
|
||||||
{isThreadSelectorOpen && (
|
|
||||||
<div className="mb-2 max-h-[30vh] overflow-y-auto">
|
|
||||||
<SidebarThreadSelector onClose={() => setIsThreadSelectorOpen(false)} />
|
|
||||||
</div>
|
|
||||||
)}
|
|
||||||
|
|
||||||
<SidebarChat />
|
return <>
|
||||||
|
<div className={`flex flex-col h-screen w-full ${tab !== 'threadSelector' ? 'hidden' : ''}`}>
|
||||||
|
|
||||||
|
<div className="mb-2 max-h-[30vh] overflow-y-auto">
|
||||||
|
<SidebarThreadSelector onClose={() => setTab('chat')} />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className={`${tab !== 'chat' ? 'hidden' : ''}`}>
|
||||||
|
<SidebarChat />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className={`${tab !== 'settings' ? 'hidden' : ''}`}>
|
||||||
|
<SidebarSettings />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</>
|
</>
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,10 @@ export const SidebarSettings = () => {
|
||||||
|
|
||||||
// only show the settings relevant to the current field
|
// only show the settings relevant to the current field
|
||||||
|
|
||||||
voidConfig.default.whichApi
|
// voidConfig.default.whichApi
|
||||||
|
|
||||||
|
|
||||||
|
return null
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,6 @@ const configString = (description: string, defaultVal: string) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const configFields = [
|
const configFields = [
|
||||||
'anthropic',
|
'anthropic',
|
||||||
'openAI',
|
'openAI',
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue