chore(release): snapshot 1.4.2
This commit is contained in:
@@ -39,7 +39,7 @@ interface SidebarRailProps {
|
||||
export const SidebarRail: React.FC<SidebarRailProps> = ({
|
||||
isExpanded,
|
||||
onToggle,
|
||||
menuItems,
|
||||
menuItems
|
||||
}) => {
|
||||
const pathname = usePathname();
|
||||
const router = useRouter();
|
||||
@@ -167,7 +167,11 @@ export const SidebarRail: React.FC<SidebarRailProps> = ({
|
||||
const showLabels = isExpanded && !openSubmenu;
|
||||
|
||||
return (
|
||||
<div className={`flex h-full relative z-20 transition-all duration-300 ${openSubmenu ? 'shadow-xl' : 'shadow-lg'} rounded-2xl`} ref={sidebarRef}>
|
||||
<div className={`
|
||||
flex h-full relative z-20 transition-all duration-300
|
||||
${openSubmenu ? 'shadow-xl' : 'shadow-lg'}
|
||||
rounded-2xl
|
||||
`} ref={sidebarRef}>
|
||||
{/* Rail Principal (Ícones + Labels Opcionais) */}
|
||||
<div
|
||||
className={`
|
||||
@@ -182,7 +186,7 @@ export const SidebarRail: React.FC<SidebarRailProps> = ({
|
||||
{!openSubmenu && (
|
||||
<button
|
||||
onClick={onToggle}
|
||||
className="absolute -right-3 top-8 z-50 flex h-6 w-6 items-center justify-center rounded-full border border-gray-200 bg-white text-gray-500 shadow-sm hover:bg-gray-50 hover:text-gray-700 dark:border-zinc-700 dark:bg-zinc-800 dark:text-zinc-400 dark:hover:bg-zinc-700 dark:hover:text-zinc-200 transition-colors"
|
||||
className="absolute -right-3 top-8 z-50 h-6 w-6 flex items-center justify-center rounded-full border border-gray-200 bg-white text-gray-500 shadow-sm hover:bg-gray-50 hover:text-gray-700 dark:border-zinc-700 dark:bg-zinc-800 dark:text-zinc-400 dark:hover:bg-zinc-700 dark:hover:text-zinc-200 transition-colors"
|
||||
aria-label={isExpanded ? 'Recolher menu' : 'Expandir menu'}
|
||||
>
|
||||
{isExpanded ? (
|
||||
@@ -223,22 +227,13 @@ export const SidebarRail: React.FC<SidebarRailProps> = ({
|
||||
active={pathname === item.href || (item.href !== '/dashboard' && pathname?.startsWith(item.href))}
|
||||
onClick={(e: any) => {
|
||||
if (item.subItems) {
|
||||
// Se já estiver aberto, fecha e previne navegação (opcional)
|
||||
// Se já estiver aberto, fecha e previne navegação
|
||||
if (openSubmenu === item.id) {
|
||||
// Se quisermos permitir fechar sem navegar:
|
||||
// e.preventDefault();
|
||||
// setOpenSubmenu(null);
|
||||
|
||||
// Mas se o usuário quer ir para a home do módulo, deixamos navegar.
|
||||
// O useEffect vai reabrir se a rota for do módulo.
|
||||
// Para forçar o fechamento, teríamos que ter lógica mais complexa.
|
||||
// Vamos assumir que clicar no pai sempre leva pra home do pai.
|
||||
// E o useEffect cuida de abrir o menu.
|
||||
// Então NÃO fazemos nada aqui se for abrir.
|
||||
e.preventDefault();
|
||||
setOpenSubmenu(null);
|
||||
} else {
|
||||
// Se for abrir, deixamos o Link navegar.
|
||||
// O useEffect vai abrir o menu quando a rota mudar.
|
||||
// NÃO setamos o estado aqui para evitar conflito com a navegação.
|
||||
// Se estiver fechado, abre o submenu
|
||||
setOpenSubmenu(item.id);
|
||||
}
|
||||
} else {
|
||||
setOpenSubmenu(null);
|
||||
|
||||
Reference in New Issue
Block a user