Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | 4x 4x 4x 4x | import { useState, useEffect, cloneElement } from 'react'
export default function BackofficeEntityPage({ sidebar, children, selectedId }) {
const [collapsed, setCollapsed] = useState(!!selectedId)
useEffect(() => {
setCollapsed(!!selectedId)
}, [selectedId])
return (
<div className="-m-3 sm:-m-6 h-[calc(100vh-4rem)] lg:h-screen flex">
{/* Sidebar de sélection d'items - collée à la sidebar backoffice */}
<div className={`${collapsed ? 'w-12' : 'w-64 sm:w-[32rem]'} border-r border-gray-200 bg-gray-50 flex-shrink-0 transition-all duration-300`}>
{cloneElement(sidebar, {
collapsed,
onCollapsedChange: () => setCollapsed(!collapsed),
})}
</div>
{/* Fonction principale */}
<div className="flex-1 min-h-0 flex flex-col">{children}</div>
</div>
)
} |