aboutsummaryrefslogtreecommitdiff
path: root/src/client/views/nodes/LabelBox.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/views/nodes/LabelBox.tsx')
-rw-r--r--src/client/views/nodes/LabelBox.tsx38
1 files changed, 20 insertions, 18 deletions
diff --git a/src/client/views/nodes/LabelBox.tsx b/src/client/views/nodes/LabelBox.tsx
index e1ecc2018..c5948cbbd 100644
--- a/src/client/views/nodes/LabelBox.tsx
+++ b/src/client/views/nodes/LabelBox.tsx
@@ -169,6 +169,25 @@ export class LabelBox extends ViewBoxBaseComponent<FieldViewProps>() {
}
};
+ setRef = (r: HTMLDivElement | null) => {
+ this._divRef?.removeEventListener('beforeinput', this.beforeInput);
+ this._divRef = r;
+ if (this._divRef) {
+ this._divRef.addEventListener('beforeinput', this.beforeInput);
+
+ if (DocumentView.SelectOnLoad === this.Document) {
+ DocumentView.SetSelectOnLoad(undefined);
+ this._liveTextUndo = FormattedTextBox.LiveTextUndo;
+ FormattedTextBox.LiveTextUndo = undefined;
+ this._divRef.focus();
+ }
+ this.fitTextToBox(this._divRef);
+ if (this.Title) {
+ this.resetCursor();
+ }
+ } else this._timeout && clearTimeout(this._timeout);
+ };
+
render() {
TraceMobx();
const boxParams = this.fitTextToBox(undefined); // this causes mobx to trigger re-render when data changes
@@ -228,24 +247,7 @@ export class LabelBox extends ViewBoxBaseComponent<FieldViewProps>() {
__html: `<span class="textFitted textFitAlignVert" style="display: inline-block; text-align: center; font-size: 100px; height: 0px;">${this.Title?.startsWith('#') ? '' : (this.Title ?? '')}</span>`,
}}
contentEditable={this._props.onClickScript?.() ? undefined : true}
- ref={r => {
- this._divRef?.removeEventListener('beforeinput', this.beforeInput);
- this._divRef = r;
- if (this._divRef) {
- this._divRef.addEventListener('beforeinput', this.beforeInput);
-
- if (DocumentView.SelectOnLoad === this.Document) {
- DocumentView.SetSelectOnLoad(undefined);
- this._liveTextUndo = FormattedTextBox.LiveTextUndo;
- FormattedTextBox.LiveTextUndo = undefined;
- this._divRef.focus();
- }
- this.fitTextToBox(this._divRef);
- if (this.Title) {
- this.resetCursor();
- }
- } else this._timeout && clearTimeout(this._timeout);
- }}
+ ref={this.setRef}
/>
</div>
</div>