All files / apps/web/src/backoffice/components BackofficeEntityPage.jsx

80% Statements 4/5
100% Branches 2/2
66.66% Functions 2/3
80% Lines 4/5

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>
  )
}