feat: add simple columns block in editor (#1038)

* feat: add simple columns block in editor

* feat: add divider between column block

* fix: add fallback logic in calculate selection function

* feat: add column width resizer

* feat: integrate columns block in editor on desktop
This commit is contained in:
Lucas 2025-02-21 12:05:56 +08:00 • committed by GitHub
commit c1e9d15572
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -136,6 +136,10 @@ class _DesktopEditorState extends State<DesktopEditor> {
Map<String, BlockComponentBuilder> _buildBlockComponentBuilders() {
final map = {
...standardBlockComponentBuilderMap,
// columns block
ColumnBlockKeys.type: ColumnBlockComponentBuilder(),
ColumnsBlockKeys.type: ColumnsBlockComponentBuilder(),
};
// customize the image block component to show a menu
map[ImageBlockKeys.type] = ImageBlockComponentBuilder(
@ -165,7 +169,13 @@ class _DesktopEditorState extends State<DesktopEditor> {
// customize the padding
map.forEach((key, value) {
value.configuration = value.configuration.copyWith(
padding: (_) => const EdgeInsets.symmetric(vertical: 8.0),
padding: (node) {
if (node.type == ColumnsBlockKeys.type ||
node.type == ColumnBlockKeys.type) {
return EdgeInsets.zero;
}
return const EdgeInsets.symmetric(vertical: 8.0);
},
blockSelectionAreaMargin: (_) => const EdgeInsets.symmetric(
vertical: 1.0,
),