aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFawn <fangrui_tong@brown.edu>2020-01-09 15:29:47 -0500
committerFawn <fangrui_tong@brown.edu>2020-01-09 15:29:47 -0500
commite0a8d325d601d305a166c1683dccfcc67e91fe95 (patch)
treea6e2144d9d316ccb9d42d4eb019f8a9ed4d438f2 /src
parent47700705b6e0304eaed00843959561b5baa0a31a (diff)
code cleaning richtextmenu
Diffstat (limited to 'src')
-rw-r--r--src/client/util/RichTextMenu.tsx18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/client/util/RichTextMenu.tsx b/src/client/util/RichTextMenu.tsx
index da5979f57..454afe3b7 100644
--- a/src/client/util/RichTextMenu.tsx
+++ b/src/client/util/RichTextMenu.tsx
@@ -155,6 +155,7 @@ export default class RichTextMenu extends AntimodeMenu {
const activeSizes = active && active.get("sizes");
console.log("active families", activeFamilies);
+ console.log("other active families", this.activeFontFamilyOnSelection());
this.activeFontFamily = !activeFamilies || activeFamilies.length === 0 ? "Arial" : activeFamilies.length === 1 ? String(activeFamilies[0]) : "various";
this.activeFontSize = !activeSizes || activeSizes.length === 0 ? "13pt" : activeSizes.length === 1 ? String(activeSizes[0]) + "pt" : "various";
@@ -184,10 +185,26 @@ export default class RichTextMenu extends AntimodeMenu {
}
}
+ activeFontFamilyOnSelection() {
+ if (!this.view) return;
+
+ //current selection
+ const state = this.view.state;
+ const activeFamilies: string[] = [];
+ const pos = this.view.state.selection.$from;
+ const ref_node: ProsNode | null = this.reference_node(pos);
+ if (ref_node && ref_node !== this.view.state.doc && ref_node.isText) {
+ ref_node.marks.forEach(m => m.type === state.schema.marks.pFontFamily && activeFamilies.push(m.attrs.family));
+ }
+ return activeFamilies;
+ }
+
// finds font sizes and families in selection
getActiveFontStylesOnSelection() {
if (!this.view) return;
+ console.log("\nget active font styles");
+
const activeFamilies: string[] = [];
const activeSizes: string[] = [];
const state = this.view.state;
@@ -195,6 +212,7 @@ export default class RichTextMenu extends AntimodeMenu {
const ref_node = this.reference_node(pos);
if (ref_node && ref_node !== this.view.state.doc && ref_node.isText) {
ref_node.marks.forEach(m => {
+ console.log("attribute", m.attrs);
m.type === state.schema.marks.pFontFamily && activeFamilies.push(m.attrs.family);
m.type === state.schema.marks.pFontSize && activeSizes.push(String(m.attrs.fontSize) + "pt");
});