mirror of
https://github.com/danny-avila/LibreChat.git
synced 2026-02-17 07:58:08 +01:00
feature: ChatGPT style show/hide panel button, panel state saving in local storage (#575)
* Add nav bar state saving to local storage * Add ChatGPT style hide side panel button
This commit is contained in:
parent
88683b9cc5
commit
8e1473c3d8
5 changed files with 61 additions and 44 deletions
|
|
@ -1,19 +1,24 @@
|
|||
/* eslint-disable react-hooks/exhaustive-deps */
|
||||
import { useEffect, useState } from 'react';
|
||||
import { Outlet } from 'react-router-dom';
|
||||
import MessageHandler from '../components/MessageHandler';
|
||||
import Nav from '../components/Nav';
|
||||
import MobileNav from '../components/Nav/MobileNav';
|
||||
import {
|
||||
useGetSearchEnabledQuery,
|
||||
useGetEndpointsQuery,
|
||||
useGetPresetsQuery
|
||||
useGetPresetsQuery,
|
||||
useGetSearchEnabledQuery
|
||||
} from '~/data-provider';
|
||||
|
||||
import MessageHandler from '../components/MessageHandler';
|
||||
import MobileNav from '../components/Nav/MobileNav';
|
||||
import Nav from '../components/Nav';
|
||||
import { Outlet } from 'react-router-dom';
|
||||
import store from '~/store';
|
||||
import { useSetRecoilState } from 'recoil';
|
||||
import { useAuthContext } from '~/hooks/AuthContext';
|
||||
import { useSetRecoilState } from 'recoil';
|
||||
|
||||
export default function Root() {
|
||||
const [navVisible, setNavVisible] = useState(false);
|
||||
const [navVisible, setNavVisible] = useState(() => {
|
||||
const savedNavVisible = localStorage.getItem('navVisible');
|
||||
return savedNavVisible !== null ? JSON.parse(savedNavVisible) : false;
|
||||
});
|
||||
|
||||
const setIsSearchEnabled = useSetRecoilState(store.isSearchEnabled);
|
||||
const setEndpointsConfig = useSetRecoilState(store.endpointsConfig);
|
||||
|
|
@ -24,6 +29,10 @@ export default function Root() {
|
|||
const endpointsQuery = useGetEndpointsQuery();
|
||||
const presetsQuery = useGetPresetsQuery({ enabled: !!user });
|
||||
|
||||
useEffect(() => {
|
||||
localStorage.setItem('navVisible', JSON.stringify(navVisible));
|
||||
}, [navVisible]);
|
||||
|
||||
useEffect(() => {
|
||||
if (endpointsQuery.data) {
|
||||
setEndpointsConfig(endpointsQuery.data);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue