diff --git a/services/web/frontend/js/features/ui/components/bootstrap-5/navbar/default-navbar.tsx b/services/web/frontend/js/features/ui/components/bootstrap-5/navbar/default-navbar.tsx
index 80827f9b29..b7a843d99f 100644
--- a/services/web/frontend/js/features/ui/components/bootstrap-5/navbar/default-navbar.tsx
+++ b/services/web/frontend/js/features/ui/components/bootstrap-5/navbar/default-navbar.tsx
@@ -12,6 +12,7 @@ import HeaderLogoOrTitle from '@/features/ui/components/bootstrap-5/navbar/heade
import MaterialIcon from '@/shared/components/material-icon'
import { useContactUsModal } from '@/shared/hooks/use-contact-us-modal'
import { UserProvider } from '@/shared/context/user-context'
+import { X } from '@phosphor-icons/react'
function DefaultNavbar(props: DefaultNavbarMetadata) {
const {
@@ -81,9 +82,11 @@ function DefaultNavbar(props: DefaultNavbarMetadata) {
aria-expanded="false"
aria-label={t('main_navigation')}
>
-
+ {showCloseIcon && expanded ? (
+
+ ) : (
+
+ )}
void
}) {
+ const [show, setShow] = useState(false)
+ const isDsNav = useIsDsNav()
// Can't use a NavDropdown here because it's impossible to render the menu as
// a element using NavDropdown
+ const Caret = show ? CaretUp : CaretDown
return (
-
- {title}
+ {
+ setShow(nextShow)
+ onToggle?.(nextShow)
+ }}
+ >
+
+ {title}
+ {isDsNav && }
+
{children}
diff --git a/services/web/frontend/stylesheets/bootstrap-5/pages/project-list-ds-nav.scss b/services/web/frontend/stylesheets/bootstrap-5/pages/project-list-ds-nav.scss
index 150750e5d3..421ef6394a 100644
--- a/services/web/frontend/stylesheets/bootstrap-5/pages/project-list-ds-nav.scss
+++ b/services/web/frontend/stylesheets/bootstrap-5/pages/project-list-ds-nav.scss
@@ -75,6 +75,10 @@
}
}
+ .navbar-nav > li > .dropdown-toggle::after {
+ display: none;
+ }
+
.project-list-wrapper {
flex-grow: 1;
display: flex;