Ver código fonte

manually close the dropdown

moekumasaka 1 ano atrás
pai
commit
3ab8713379

+ 7 - 0
apps/app/src/client/components/CustomNavigation/CustomNav.tsx

@@ -44,6 +44,8 @@ export const CustomNavDropdown = (props: CustomNavDropdownProps): JSX.Element =>
 
 
   const [isDropdownOpen, setIsDropdownOpen] = useState(false);
   const [isDropdownOpen, setIsDropdownOpen] = useState(false);
 
 
+  const dropdownButtonRef = useRef<HTMLButtonElement>(null);
+
   const handleDropdownToggle = () => {
   const handleDropdownToggle = () => {
     setIsDropdownOpen(prev => !prev);
     setIsDropdownOpen(prev => !prev);
   };
   };
@@ -52,12 +54,17 @@ export const CustomNavDropdown = (props: CustomNavDropdownProps): JSX.Element =>
     if (onNavSelected != null) {
     if (onNavSelected != null) {
       onNavSelected(key);
       onNavSelected(key);
     }
     }
+    // Manually close the dropdown
     setIsDropdownOpen(false);
     setIsDropdownOpen(false);
+    if (dropdownButtonRef.current) {
+      dropdownButtonRef.current.classList.remove('show');
+    }
   }, [onNavSelected]);
   }, [onNavSelected]);
 
 
   return (
   return (
     <div className="btn-group">
     <div className="btn-group">
       <button
       <button
+        ref={dropdownButtonRef}
         className="btn btn-outline-primary btn-lg dropdown-toggle text-end"
         className="btn btn-outline-primary btn-lg dropdown-toggle text-end"
         type="button"
         type="button"
         data-bs-toggle="dropdown"
         data-bs-toggle="dropdown"