From de4cc95e406b10bd92975abd5eef8f708cbf8f02 Mon Sep 17 00:00:00 2001
From: bobzel <zzzman@gmail.com>
Date: Thu, 10 Oct 2024 22:32:52 -0400
Subject: fixed being able to use text menu on text in comparison box.  Allow
 TextDocuments to be created with a RichText field.  Changed comparisonBox to
 horizontally center flashcard text.

---
 src/client/views/nodes/formattedText/RichTextMenu.tsx | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

(limited to 'src/client/views/nodes/formattedText/RichTextMenu.tsx')

diff --git a/src/client/views/nodes/formattedText/RichTextMenu.tsx b/src/client/views/nodes/formattedText/RichTextMenu.tsx
index 88e2e4248..55e6a3a5b 100644
--- a/src/client/views/nodes/formattedText/RichTextMenu.tsx
+++ b/src/client/views/nodes/formattedText/RichTextMenu.tsx
@@ -76,6 +76,10 @@ export class RichTextMenu extends AntimodeMenu<AntimodeMenuProps> {
         });
     }
 
+    @computed get RootSelected() {
+        return this.TextView?._props.rootSelected?.() || this.TextView?._props.isContentActive();
+    }
+
     @computed get noAutoLink() {
         return this._noLinkActive;
     }
@@ -183,7 +187,7 @@ export class RichTextMenu extends AntimodeMenu<AntimodeMenuProps> {
 
     // finds font sizes and families in selection
     getActiveAlignment = () => {
-        if (this.view && this.TextView?._props.rootSelected?.()) {
+        if (this.view && this.RootSelected) {
             const from = this.view.state.selection.$from;
             for (let i = from.depth; i >= 0; i--) {
                 const node = from.node(i);
@@ -216,7 +220,7 @@ export class RichTextMenu extends AntimodeMenu<AntimodeMenuProps> {
         const activeSizes = new Set<string>();
         const activeColors = new Set<string>();
         const activeHighlights = new Set<string>();
-        if (this.view && this.TextView?._props.rootSelected?.()) {
+        if (this.view && this.RootSelected) {
             const { state } = this.view;
             const pos = this.view.state.selection.$from;
             let marks: Mark[] = [...(state.storedMarks ?? [])];
@@ -252,7 +256,7 @@ export class RichTextMenu extends AntimodeMenu<AntimodeMenuProps> {
 
     // finds all active marks on selection in given group
     getActiveMarksOnSelection() {
-        if (!this.view || !this.TextView?._props.rootSelected?.()) return [] as MarkType[];
+        if (!this.view || !this.RootSelected) return [] as MarkType[];
 
         const { state } = this.view;
         let marks: Mark[] = [...(state.storedMarks ?? [])];
@@ -409,7 +413,7 @@ export class RichTextMenu extends AntimodeMenu<AntimodeMenuProps> {
         this.layoutDoc && (this.layoutDoc._layout_centered = !this.layoutDoc._layout_centered);
     };
     align = (view: EditorView, dispatch: (tr: Transaction) => void, alignment: 'left' | 'right' | 'center') => {
-        if (this.TextView?._props.rootSelected?.()) {
+        if (this.RootSelected) {
             let { tr } = view.state;
             view.state.doc.nodesBetween(view.state.selection.from, view.state.selection.to, (node, pos) => {
                 if ([schema.nodes.paragraph, schema.nodes.heading].includes(node.type)) {
-- 
cgit v1.2.3-70-g09d2

