From f14742b3122a42a08c0b248b85fd3da2ac6717a7 Mon Sep 17 00:00:00 2001 From: Gabriel Santana de Menezes Date: Sun, 3 May 2026 21:47:57 -0400 Subject: [PATCH] ajustes no menu --- frontend/src/components/AppShell.tsx | 307 +++++++++++++++++++++------ 1 file changed, 243 insertions(+), 64 deletions(-) diff --git a/frontend/src/components/AppShell.tsx b/frontend/src/components/AppShell.tsx index a1c01b4..daa9dc6 100644 --- a/frontend/src/components/AppShell.tsx +++ b/frontend/src/components/AppShell.tsx @@ -27,11 +27,21 @@ const navLinkClassName = ({ isActive }: { isActive: boolean }) => : "text-text-muted hover:bg-surface-muted hover:text-text-main", ); +const dropdownItemClassName = ({ isActive }: { isActive: boolean }) => + cn( + "flex w-full items-center gap-3 rounded-xl px-3 py-2.5 text-sm font-bold transition-all duration-200", + isActive + ? "bg-brand/10 text-brand" + : "text-text-muted hover:bg-surface-muted hover:text-text-main" + ); + export function AppShell() { const { user, isAuthenticated, isLoading, logout, activeOrg, setActiveOrg } = useAuth(); const [showOrgModal, setShowOrgModal] = useState(false); const [showOrgSwitcher, setShowOrgSwitcher] = useState(false); + const [showTasksDropdown, setShowTasksDropdown] = useState(false); + const [showOrgDropdown, setShowOrgDropdown] = useState(false); React.useEffect(() => { if (isAuthenticated && user && user.organizations.length === 0) { @@ -170,53 +180,142 @@ export function AppShell() {
- {user?.name} - - {user?.name} - + + {showTasksDropdown && ( + <> +
setShowTasksDropdown(false)} + /> + + setShowTasksDropdown(false)} + className={dropdownItemClassName} + > + + Lista + + setShowTasksDropdown(false)} + className={(props) => cn(dropdownItemClassName(props), "mt-1")} + > + + Quadro + + + + )} +
Projetos - - - Pedidos - - - - Criar - - - - Org - - {user?.organizations.some( - (org) => org.roles.includes("OWNER") || org.roles.includes("ADMIN"), - ) && ( - - - Gestão - - )} + + {/* Mobile Organizações Group */} +
+ + + {showOrgDropdown && ( + <> +
setShowOrgDropdown(false)} + /> + + setShowOrgDropdown(false)} + className={dropdownItemClassName} + > + + Minhas Orgs + + setShowOrgDropdown(false)} + className={(props) => cn(dropdownItemClassName(props), "mt-1")} + > + + Pedidos + + {user?.organizations.some( + (org) => org.roles.includes("OWNER") || org.roles.includes("ADMIN") + ) && ( + setShowOrgDropdown(false)} + className={(props) => cn(dropdownItemClassName(props), "mt-1")} + > + + Gestão + + )} + + + )} +