// 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}} ); }
{spacesText.emptyText}