diff --git a/frontend/src/Navigation.tsx b/frontend/src/Navigation.tsx index 4199acf..4ce9461 100644 --- a/frontend/src/Navigation.tsx +++ b/frontend/src/Navigation.tsx @@ -8,11 +8,15 @@ import Link from './assets/link.svg'; import { ActiveState } from './models/misc'; import APIKeyModal from './preferences/APIKeyModal'; import SelectDocsModal from './preferences/SelectDocsModal'; -import { useSelector } from 'react-redux'; +import { useDispatch, useSelector } from 'react-redux'; import { selectApiKeyStatus, + selectSelectedDocs, selectSelectedDocsStatus, + selectSourceDocs, + setSelectedDocs, } from './preferences/preferenceSlice'; +import { setLocalRecentDocs } from './preferences/preferenceApi'; //TODO - Need to replace Chat button to open secondary nav with scrollable past chats option and new chat at top //TODO - Need to add Discord and Github links @@ -24,6 +28,12 @@ export default function Navigation({ navState: ActiveState; setNavState: (val: ActiveState) => void; }) { + const dispatch = useDispatch(); + const docs = useSelector(selectSourceDocs); + const selectedDocs = useSelector(selectSelectedDocs); + + const [isDocsListOpen, setIsDocsListOpen] = useState(false); + const isApiKeySet = useSelector(selectApiKeyStatus); const [apiKeyModalState, setApiKeyModalState] = useState( isApiKeySet ? 'INACTIVE' : 'ACTIVE', @@ -38,9 +48,9 @@ export default function Navigation({
-
+
-
+
+
+
setIsDocsListOpen(!isDocsListOpen)} + > + {selectedDocs && ( +

+ {selectedDocs.name} {selectedDocs.version} +

+ )} +
+ {isDocsListOpen && ( +
+ {docs ? ( + docs.map((doc, index) => { + if (doc.model) { + return ( +
{ + setLocalRecentDocs(doc); + dispatch(setSelectedDocs(doc)); + setIsDocsListOpen(false); + }} + className="h-10 w-full cursor-pointer border-x-2 border-b-2 hover:bg-gray-100" + > +

+ {doc.name} {doc.version} +

+
+ ); + } + }) + ) : ( +
+

No default documentation.

+
+ )} +
+ )} +
+

Source Docs

+
-
+
{ @@ -68,21 +121,9 @@ export default function Navigation({ key

Reset Key

- -
{ - setSelectedDocsModalState('ACTIVE'); - }} - > - key -

- Select Source Documentation -

-
-
+
!!state.preference.selectedDocs; export const selectSourceDocs = (state: RootState) => state.preference.sourceDocs; +export const selectSelectedDocs = (state: RootState) => + state.preference.selectedDocs;