From 260e328cc1ad5a6641b52483d76044231dd40cd5 Mon Sep 17 00:00:00 2001 From: TomasMatarazzo Date: Mon, 22 Apr 2024 14:41:59 -0300 Subject: [PATCH] first change --- frontend/package.json | 1 - frontend/src/Navigation.tsx | 33 ++++++++++----------- frontend/src/preferences/preferenceSlice.ts | 9 ++++++ frontend/src/settings/General.tsx | 22 ++++++++++++++ 4 files changed, 46 insertions(+), 19 deletions(-) diff --git a/frontend/package.json b/frontend/package.json index 6e8d8e6..af29561 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -14,7 +14,6 @@ }, "lint-staged": { "**/*.{js,jsx,ts,tsx}": [ - "npm run lint-fix", "npm run format" ] }, diff --git a/frontend/src/Navigation.tsx b/frontend/src/Navigation.tsx index a13b37a..e669ea2 100644 --- a/frontend/src/Navigation.tsx +++ b/frontend/src/Navigation.tsx @@ -19,8 +19,8 @@ import SettingGearDark from './assets/settingGear-dark.svg'; import Add from './assets/add.svg'; import UploadIcon from './assets/upload.svg'; import { ActiveState } from './models/misc'; -import Trash from '../src/assets/trash.svg'; import APIKeyModal from './preferences/APIKeyModal'; +import DeleteConvModal from './preferences/DeleteConvModal'; import { selectApiKeyStatus, @@ -31,6 +31,7 @@ import { selectConversations, setConversations, selectConversationId, + selectModalState, } from './preferences/preferenceSlice'; import { setConversation, @@ -43,7 +44,6 @@ import SelectDocsModal from './preferences/SelectDocsModal'; import ConversationTile from './conversation/ConversationTile'; import { useDarkTheme } from './hooks'; import SourceDropdown from './components/SourceDropdown'; -import DeleteConvModal from './preferences/DeleteConvModal'; interface NavigationProps { navOpen: boolean; @@ -69,7 +69,9 @@ export default function Navigation({ navOpen, setNavOpen }: NavigationProps) { const docs = useSelector(selectSourceDocs); const selectedDocs = useSelector(selectSelectedDocs); const conversations = useSelector(selectConversations); + const modalState = useSelector(selectModalState); const conversationId = useSelector(selectConversationId); + const { isMobile } = useMediaQuery(); const [isDarkTheme] = useDarkTheme(); const [isDocsListOpen, setIsDocsListOpen] = useState(false); @@ -98,18 +100,24 @@ export default function Navigation({ navOpen, setNavOpen }: NavigationProps) { fetchConversations(); } }, [conversations, dispatch]); + + useEffect(() => { + console.log(modalState); + }, [modalState]); + async function fetchConversations() { return await getConversations() .then((fetchedConversations) => { dispatch(setConversations(fetchedConversations)); + console.log(conversations); }) .catch((error) => { console.error('Failed to fetch conversations: ', error); }); } - const handleDeleteConversation = (id: string) => { - fetch(`${apiHost}/api/delete_conversation?id=${id}`, { + const handleDeleteAllConversations = () => { + fetch(`${apiHost}/api/delete_all_conversations`, { method: 'POST', }) .then(() => { @@ -118,8 +126,8 @@ export default function Navigation({ navOpen, setNavOpen }: NavigationProps) { .catch((error) => console.error(error)); }; - const handleDeleteAllConversations = () => { - fetch(`${apiHost}/api/delete_all_conversations`, { + const handleDeleteConversation = (id: string) => { + fetch(`${apiHost}/api/delete_conversation?id=${id}`, { method: 'POST', }) .then(() => { @@ -278,17 +286,6 @@ export default function Navigation({ navOpen, setNavOpen }: NavigationProps) {

Chats

- setDeleteConvState('ACTIVE')} - />
{conversations?.map((conversation) => ( @@ -410,7 +407,7 @@ export default function Navigation({ navOpen, setNavOpen }: NavigationProps) { isCancellable={isApiKeySet} /> diff --git a/frontend/src/preferences/preferenceSlice.ts b/frontend/src/preferences/preferenceSlice.ts index dc72fae..2d9bcb8 100644 --- a/frontend/src/preferences/preferenceSlice.ts +++ b/frontend/src/preferences/preferenceSlice.ts @@ -5,6 +5,7 @@ import { } from '@reduxjs/toolkit'; import { Doc, setLocalApiKey, setLocalRecentDocs } from './preferenceApi'; import { RootState } from '../store'; +import { ActiveState } from '../models/misc'; interface Preference { apiKey: string; @@ -13,6 +14,7 @@ interface Preference { chunks: string; sourceDocs: Doc[] | null; conversations: { name: string; id: string }[] | null; + modalState: ActiveState; } const initialState: Preference = { @@ -32,6 +34,7 @@ const initialState: Preference = { } as Doc, sourceDocs: null, conversations: null, + modalState: 'ACTIVE', }; export const prefSlice = createSlice({ @@ -56,6 +59,9 @@ export const prefSlice = createSlice({ setChunks: (state, action) => { state.chunks = action.payload; }, + setModalStateDeleteConv: (state, action) => { + state.modalState = action.payload; + }, }, }); @@ -66,6 +72,7 @@ export const { setConversations, setPrompt, setChunks, + setModalStateDeleteConv, } = prefSlice.actions; export default prefSlice.reducer; @@ -114,6 +121,8 @@ export const selectSelectedDocsStatus = (state: RootState) => !!state.preference.selectedDocs; export const selectSourceDocs = (state: RootState) => state.preference.sourceDocs; +export const selectModalState = (state: RootState) => + state.preference.modalState; export const selectSelectedDocs = (state: RootState) => state.preference.selectedDocs; export const selectConversations = (state: RootState) => diff --git a/frontend/src/settings/General.tsx b/frontend/src/settings/General.tsx index 215628e..ef35b4f 100644 --- a/frontend/src/settings/General.tsx +++ b/frontend/src/settings/General.tsx @@ -8,7 +8,9 @@ import { setPrompt, setChunks, selectChunks, + setModalStateDeleteConv, } from '../preferences/preferenceSlice'; +import Trash from '../assets/trash.svg'; const apiHost = import.meta.env.VITE_API_HOST || 'https://docsapi.arc53.com'; @@ -43,6 +45,7 @@ const General: React.FC = () => { }; fetchPrompts(); }, []); + return (
@@ -93,6 +96,25 @@ const General: React.FC = () => { apiHost={apiHost} />
+
+

+ Delete all conversations +

+ +
); };