]> BookStack Code Mirror - bookstack/blobdiff - resources/js/wysiwyg/ui/defaults/buttons/alignments.ts
Lexical: Added custom alignment handling for blocks
[bookstack] / resources / js / wysiwyg / ui / defaults / buttons / alignments.ts
index 40d9c89dce8c95cbdd3ba5b8c2e92201ddf473aa..78de3c9a243590de8d83ddf4f483003731b2df5d 100644 (file)
@@ -1,4 +1,4 @@
-import {$getSelection, BaseSelection, ElementFormatType} from "lexical";
+import {$getSelection, BaseSelection} from "lexical";
 import {EditorButtonDefinition} from "../../framework/buttons";
 import alignLeftIcon from "@icons/editor/align-left.svg";
 import {EditorUiContext} from "../../framework/core";
@@ -6,13 +6,17 @@ import alignCenterIcon from "@icons/editor/align-center.svg";
 import alignRightIcon from "@icons/editor/align-right.svg";
 import alignJustifyIcon from "@icons/editor/align-justify.svg";
 import {$getBlockElementNodesInSelection, $selectionContainsElementFormat} from "../../../utils/selection";
+import {CommonBlockAlignment} from "../../../nodes/_common";
+import {nodeHasAlignment} from "../../../utils/nodes";
 
 
-function setAlignmentForSection(alignment: ElementFormatType): void {
+function setAlignmentForSection(alignment: CommonBlockAlignment): void {
     const selection = $getSelection();
     const elements = $getBlockElementNodesInSelection(selection);
     for (const node of elements) {
-        node.setFormat(alignment);
+        if (nodeHasAlignment(node)) {
+            node.setAlignment(alignment)
+        }
     }
 }