Fix: Minimise sidebar on nav item click on Mobile

This commit is contained in:
shatanikmahanty committed 2024-10-06 11:56:26 +05:30
1 parent 5b01664d53
commit 989d6eee0f
2 files changed
+42 -18

No files matched your search

+39 -18
View File
@@ -199,22 +199,24 @@ export default function Navigation({ navOpen, setNavOpen }: NavigationProps) {
<img <img
src={Expand} src={Expand}
alt="menu toggle" alt="menu toggle"
className={`${ className={`${!navOpen ? 'rotate-180' : 'rotate-0'
!navOpen ? 'rotate-180' : 'rotate-0' } m-auto transition-all duration-200`}
} m-auto transition-all duration-200`}
/> />
</button> </button>
)} )}
<div <div
ref={navRef} ref={navRef}
className={`${ className={`${!navOpen && '-ml-96 md:-ml-[18rem]'
!navOpen && '-ml-96 md:-ml-[18rem]' } duration-20 fixed top-0 z-20 flex h-full w-72 flex-col border-r-[1px] border-b-0 bg-white transition-all dark:border-r-purple-taupe dark:bg-chinese-black dark:text-white`}
} duration-20 fixed top-0 z-20 flex h-full w-72 flex-col border-r-[1px] border-b-0 bg-white transition-all dark:border-r-purple-taupe dark:bg-chinese-black dark:text-white`}
> >
<div <div
className={'visible mt-2 flex h-[6vh] w-full justify-between md:h-12'} className={'visible mt-2 flex h-[6vh] w-full justify-between md:h-12'}
> >
<div className="my-auto mx-4 flex cursor-pointer gap-1.5"> <div className="my-auto mx-4 flex cursor-pointer gap-1.5" onClick={() => {
if (isMobile) {
setNavOpen(!navOpen);
}
}}>
<img className="mb-2 h-10" src={DocsGPT3} alt="" /> <img className="mb-2 h-10" src={DocsGPT3} alt="" />
<p className="my-auto text-2xl font-semibold">DocsGPT</p> <p className="my-auto text-2xl font-semibold">DocsGPT</p>
</div> </div>
@@ -227,15 +229,17 @@ export default function Navigation({ navOpen, setNavOpen }: NavigationProps) {
<img <img
src={Expand} src={Expand}
alt="menu toggle" alt="menu toggle"
className={`${ className={`${!navOpen ? 'rotate-180' : 'rotate-0'
!navOpen ? 'rotate-180' : 'rotate-0' } m-auto transition-all duration-200`}
} m-auto transition-all duration-200`}
/> />
</button> </button>
</div> </div>
<NavLink <NavLink
to={'/'} to={'/'}
onClick={() => { onClick={() => {
if (isMobile) {
setNavOpen(!navOpen);
}
dispatch(setConversation([])); dispatch(setConversation([]));
dispatch( dispatch(
updateConversationId({ updateConversationId({
@@ -244,8 +248,7 @@ export default function Navigation({ navOpen, setNavOpen }: NavigationProps) {
); );
}} }}
className={({ isActive }) => className={({ isActive }) =>
`${ `${isActive ? 'bg-gray-3000 dark:bg-transparent' : ''
isActive ? 'bg-gray-3000 dark:bg-transparent' : ''
} group sticky mx-4 mt-4 flex cursor-pointer gap-2.5 rounded-3xl border border-silver p-3 hover:border-rainy-gray hover:bg-gray-3000 dark:border-purple-taupe dark:text-white dark:hover:bg-transparent` } group sticky mx-4 mt-4 flex cursor-pointer gap-2.5 rounded-3xl border border-silver p-3 hover:border-rainy-gray hover:bg-gray-3000 dark:border-purple-taupe dark:text-white dark:hover:bg-transparent`
} }
> >
@@ -293,21 +296,35 @@ export default function Navigation({ navOpen, setNavOpen }: NavigationProps) {
isDocsListOpen={isDocsListOpen} isDocsListOpen={isDocsListOpen}
setIsDocsListOpen={setIsDocsListOpen} setIsDocsListOpen={setIsDocsListOpen}
handleDeleteClick={handleDeleteClick} handleDeleteClick={handleDeleteClick}
handlePostDocumentSelect={(doc) => {
if (isMobile) {
setNavOpen(!navOpen)
}
}}
/> />
<img <img
className="mt-2 h-9 w-9 hover:cursor-pointer" className="mt-2 h-9 w-9 hover:cursor-pointer"
src={UploadIcon} src={UploadIcon}
onClick={() => setUploadModalState('ACTIVE')} onClick={() => {
></img> setUploadModalState('ACTIVE')
if (isMobile) {
setNavOpen(!navOpen);
}
}
}></img>
</div> </div>
<p className="ml-5 mt-3 text-sm font-semibold">{t('sourceDocs')}</p> <p className="ml-5 mt-3 text-sm font-semibold">{t('sourceDocs')}</p>
</div> </div>
<div className="flex flex-col gap-2 border-b-[1px] py-2 dark:border-b-purple-taupe"> <div className="flex flex-col gap-2 border-b-[1px] py-2 dark:border-b-purple-taupe">
<NavLink <NavLink
onClick={() => {
if (isMobile) {
setNavOpen(!navOpen);
}
}}
to="/settings" to="/settings"
className={({ isActive }) => className={({ isActive }) =>
`my-auto mx-4 flex h-9 cursor-pointer gap-4 rounded-3xl hover:bg-gray-100 dark:hover:bg-[#28292E] ${ `my-auto mx-4 flex h-9 cursor-pointer gap-4 rounded-3xl hover:bg-gray-100 dark:hover:bg-[#28292E] ${isActive ? 'bg-gray-3000 dark:bg-transparent' : ''
isActive ? 'bg-gray-3000 dark:bg-transparent' : ''
}` }`
} }
> >
@@ -323,10 +340,14 @@ export default function Navigation({ navOpen, setNavOpen }: NavigationProps) {
</div> </div>
<div className="flex justify-between gap-2 border-b-[1.5px] py-2 dark:border-b-purple-taupe"> <div className="flex justify-between gap-2 border-b-[1.5px] py-2 dark:border-b-purple-taupe">
<NavLink <NavLink
onClick={() => {
if (isMobile) {
setNavOpen(!navOpen);
}
}}
to="/about" to="/about"
className={({ isActive }) => className={({ isActive }) =>
`my-auto mx-4 flex h-9 cursor-pointer gap-4 rounded-3xl hover:bg-gray-100 dark:hover:bg-[#28292E] ${ `my-auto mx-4 flex h-9 cursor-pointer gap-4 rounded-3xl hover:bg-gray-100 dark:hover:bg-[#28292E] ${isActive ? 'bg-gray-3000 dark:bg-[#28292E]' : ''
isActive ? 'bg-gray-3000 dark:bg-[#28292E]' : ''
}` }`
} }
> >
@@ -11,6 +11,7 @@ type Props = {
isDocsListOpen: boolean; isDocsListOpen: boolean;
setIsDocsListOpen: React.Dispatch<React.SetStateAction<boolean>>; setIsDocsListOpen: React.Dispatch<React.SetStateAction<boolean>>;
handleDeleteClick: any; handleDeleteClick: any;
handlePostDocumentSelect: any;
}; };
function SourceDropdown({ function SourceDropdown({
@@ -20,6 +21,7 @@ function SourceDropdown({
setIsDocsListOpen, setIsDocsListOpen,
isDocsListOpen, isDocsListOpen,
handleDeleteClick, handleDeleteClick,
handlePostDocumentSelect, // Callback function fired after a document is selected
}: Props) { }: Props) {
const dispatch = useDispatch(); const dispatch = useDispatch();
const { t } = useTranslation(); const { t } = useTranslation();
@@ -85,6 +87,7 @@ function SourceDropdown({
onClick={() => { onClick={() => {
dispatch(setSelectedDocs(option)); dispatch(setSelectedDocs(option));
setIsDocsListOpen(false); setIsDocsListOpen(false);
handlePostDocumentSelect(option);
}} }}
> >
<span <span