diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000000..81a914b8ee --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "i18n-ally.localesPaths": ["public/locales"] +} diff --git a/components/Chat/Chat.tsx b/components/Chat/Chat.tsx index fa6b69d436..fbd5591dbb 100644 --- a/components/Chat/Chat.tsx +++ b/components/Chat/Chat.tsx @@ -33,6 +33,7 @@ import { ModelSelect } from './ModelSelect'; import { SystemPrompt } from './SystemPrompt'; import { TemperatureSlider } from './Temperature'; import { MemoizedChatMessage } from './MemoizedChatMessage'; +import { ChatSettings } from "./ChatSettings" interface Props { stopConversationRef: MutableRefObject; @@ -411,35 +412,15 @@ export const Chat = memo(({ stopConversationRef }: Props) => { {models.length > 0 && (
- - - - handleUpdateConversation(selectedConversation, { - key: 'prompt', - value: prompt, - }) - } - /> - - - handleUpdateConversation(selectedConversation, { - key: 'temperature', - value: temperature, - }) - } - /> +
)} ) : ( <> -
+
+
{t('Model')}: {selectedConversation?.model.name} | {t('Temp')} : {selectedConversation?.temperature} |
{showSettings && (
-
+ {/*
-
+
*/} +
)} +
{selectedConversation?.messages.map((message, index) => ( { + const { t } = useTranslation('chat') + + const { + state: { selectedConversation, prompts }, + handleUpdateConversation, + } = useContext(HomeContext); + if (!selectedConversation) return null; + return ( +
+ + + handleUpdateConversation(selectedConversation, { + key: 'prompt', + value: prompt, + }) + } + /> + + + handleUpdateConversation(selectedConversation, { + key: 'temperature', + value: temperature, + }) + } + /> +
+ ); +}; diff --git a/components/Chatbar/Chatbar.tsx b/components/Chatbar/Chatbar.tsx index 300fb21da2..c09771b01b 100644 --- a/components/Chatbar/Chatbar.tsx +++ b/components/Chatbar/Chatbar.tsx @@ -186,6 +186,12 @@ export const Chatbar = () => { } }; + const beforeCreate = () => { + const folderName = prompt(t('Enter folder name: ') || "", t('New folder') || "") + if (folderName) + handleCreateFolder(folderName, 'chat') + } + useEffect(() => { if (searchTerm) { chatDispatch({ @@ -232,7 +238,7 @@ export const Chatbar = () => { } toggleOpen={handleToggleChatbar} handleCreateItem={handleNewConversation} - handleCreateFolder={() => handleCreateFolder(t('New folder'), 'chat')} + handleCreateFolder={beforeCreate} handleDrop={handleDrop} footerComponent={} /> diff --git a/components/Folder/Folder.tsx b/components/Folder/Folder.tsx index 183261e009..ac532068c6 100644 --- a/components/Folder/Folder.tsx +++ b/components/Folder/Folder.tsx @@ -11,6 +11,7 @@ import { ReactElement, useContext, useEffect, + useMemo, useState, } from 'react'; @@ -33,13 +34,26 @@ const Folder = ({ handleDrop, folderComponent, }: Props) => { - const { handleDeleteFolder, handleUpdateFolder } = useContext(HomeContext); + const { + handleDeleteFolder, + handleUpdateFolder, + dispatch: homeDispatch, + state: { selectedFolder }, + } = useContext(HomeContext); const [isDeleting, setIsDeleting] = useState(false); const [isRenaming, setIsRenaming] = useState(false); const [renameValue, setRenameValue] = useState(''); const [isOpen, setIsOpen] = useState(false); + const isFolderSelected = useMemo(() => currentFolder.id === selectedFolder?.id, [currentFolder, selectedFolder]) + + const handleSelect = () => { + setIsOpen(!isOpen); + const selectedFolder = isOpen ? undefined : currentFolder + homeDispatch({ field: 'selectedFolder', value: selectedFolder }); + }; + const handleEnterDown = (e: KeyboardEvent) => { if (e.key === 'Enter') { e.preventDefault(); @@ -112,8 +126,8 @@ const Folder = ({
) : (