Skip to main content

SelectAndMoveDesignLayer

The SelectAndMoveDesignLayer is an IDA framework DesignLayer which renders ClickHandlerBoxes for all items on the provided panel. Each SelectAndMoveInteraction component within SelectAndMoveDesignLayer wires up all event handlers for click and drag to manage selection and movement of items.

Required Extensions

The following extensions should be registerd to the Interactive Design Engine in order for this layer to function as intended:

  • ItemSelectionExtension
  • ItemPermissionsExtension
    • ItemTemplateExtension
    • ItemLocksExtension
    • ItemMetadataExtension
  • IDAItemLayoutExtension (Needed for the connected ItemPosition component)

Example Usage

import {
DesignEngineProvider,
SelectArea,
DesignArea,
SelectAndMoveDesignLayer,
IDAItemLayoutExtension
} from '@design-stack-ct/design-engine-react-components';
import {
InteractiveDesignEngine
ItemSelectionExtension,
ItemPermissionsExtension,
ItemTemplateExtension,
ItemLocksExtension,
ItemMetadataExtension,
} from '@design-stack-ct/interactive-design-engine-core';

const extensions = [ItemSelectionExtension, ItemPermissionsExtension, ItemTemplateExtension, ItemLocksExtension, ItemMetadataExtension, IDAItemLayoutExtension];

export function ExampleDesignExperience() {
const [designEngine, setDesignEngine] = useState(() => new InteractiveDesignEngine(...));

useEffect(() => {
extensions.forEach((extension) => designEngine.designExtensionSystem.addExtension(extension));
}, []);

return (
<DesignEngineProvider designEngine={designEngine}>
<SelectArea>
{designEngine.layoutStore.visiblePanels.map((panel) => (
<DesignArea panel={panel}>
<SelectAndMoveDesignLayer panel={panel} />
</DesignArea>
))}
</SelectArea>
</DesignEngineProvider>
);
}