// Rôle : répartit les modules de l'espace actif dans leurs colonnes et cibles de dépôt. import { useMemo } from "react"; import { encodeSpaceColumn } from "../toolboxSpaceUtils.js"; import { ModuleShell } from "./ModuleShell.jsx"; const MODULE_COLUMN_IDS = ["left", "right"]; function getModulesByIds(modules, ids) { const moduleMap = new Map(modules.map((module) => [module.id, module])); return (Array.isArray(ids) ? ids : []).map((id) => moduleMap.get(id)).filter(Boolean); } export function ToolboxModules({ toolbox, space, moduleColumns, context, reorder, spacesText, configurationText, scrollToModuleId = "", onModuleScrolled, onRename, onUpdateModule, onDelete, onMoveToSpace }) { const twoColumnOrder = useMemo(() => space.moduleOrder?.two || [[], []], [space.moduleOrder?.two]); const orderedModules = useMemo(() => getModulesByIds(toolbox.modules, space.moduleOrder?.one || []), [toolbox.modules, space.moduleOrder?.one]); const columns = useMemo(() => [ getModulesByIds(toolbox.modules, twoColumnOrder[0]), getModulesByIds(toolbox.modules, twoColumnOrder[1]) ], [toolbox.modules, twoColumnOrder]); if (moduleColumns === 1) { return (
{!orderedModules.length &&

{spacesText.emptyText}

} {orderedModules.map((module) => ( ))}
); } const hasEmptyColumn = orderedModules.length > 1 && columns.some((modules) => modules.length === 0); return (
{columns.map((modules, index) => (
{modules.map((module) => ( ))}
))} {!orderedModules.length &&

{spacesText.emptyText}

}
); }