Arqivos não salvos antes

This commit is contained in:
joao_pedro 2025-10-31 20:13:50 -03:00
parent ce3f8e23dd
commit 30af16708e
2 changed files with 113 additions and 0 deletions

View File

@ -0,0 +1,9 @@
.toggle-title{
color:#25396f;
font-weight: 1000;
font-size: 20px;
}
.container-title{
display: flex;
}

View File

@ -0,0 +1,104 @@
import React from 'react'
import {useState} from 'react'
import { Link } from 'react-router-dom'
import "./Estilo/Toggle.css"
const ToggleSidebar = ({perfil, items}) => {
const [isOpen, setOpen] = useState(false)
const [openSubmenu, setOpenSubmenu] = useState(null);
console.log(items)
const renderLink = (item) => {
if (item.url && item.url.startsWith("/")) {
return (
<Link to={item.url} className="sidebar-link">
{item.icon && <i className={`bi bi-${item.icon}`}></i>}
<span>{item.name}</span>
</Link>
);
}
return (
<a href={item.url} className="sidebar-link" target="_blank" rel="noreferrer">
{item.icon && <i className={`bi bi-${item.icon}`}></i>}
<span>{item.name}</span>
</a>
);
};
const OpenClose = () => {
if(isOpen){
setOpen(false)
}else if(!isOpen){
setOpen(true)
}
}
return (
<div>
<div className='container-title'>
<p onClick={() => OpenClose()} className='toggle-title' > {perfil}</p>
{isOpen ? <i class="bi bi-caret-down"></i> : <i class="bi bi-caret-left"></i>}
</div>
{isOpen &&
<div>
{items.map((item, index) => {
if (item.isTitle)
return (
<li key={index} className="sidebar-title">
{null}
</li>
);
if (item.submenu)
return (
<li
key={index}
className={`sidebar-item has-sub ${
openSubmenu === item.key ? "active" : ""
}`}
>
<button
type="button"
className="sidebar-link btn"
//onClick={() => handleSubmenuClick(item.key)}
>
<i className={`bi bi-${item.icon}`}></i>
<span>{item.name}</span>
</button>
<ul
className={`submenu ${
openSubmenu === item.key ? "active" : ""
}`}
>
{item.submenu.map((subItem, subIndex) => (
<li key={subIndex} className="submenu-item">
{renderLink(subItem)}
</li>
))}
</ul>
</li>
);
return (
<li key={index} className="sidebar-item">
{renderLink(item)}
</li>
);
})}
</div>
}
</div>
)
}
export default ToggleSidebar