mirror of
https://github.com/tiennm99/DocsGPT.git
synced 2026-10-17 10:13:57 +00:00
Fix: Minimise sidebar on nav item click on Mobile
This commit is contained in:
1 parent
5b01664d53
commit
989d6eee0f
2 files changed
+42
-18
No files matched your search
+39
-18
@@ -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
|
||||||
|
|||||||
Reference in new issue
Block a user