diff options
Diffstat (limited to 'src/client/views/nodes/formattedText')
| -rw-r--r-- | src/client/views/nodes/formattedText/FormattedTextBox.tsx | 36 | 
1 files changed, 23 insertions, 13 deletions
| diff --git a/src/client/views/nodes/formattedText/FormattedTextBox.tsx b/src/client/views/nodes/formattedText/FormattedTextBox.tsx index cfbd1962e..e61f96852 100644 --- a/src/client/views/nodes/formattedText/FormattedTextBox.tsx +++ b/src/client/views/nodes/formattedText/FormattedTextBox.tsx @@ -124,7 +124,7 @@ export class FormattedTextBox extends ViewBoxAnnotatableComponent<(FieldViewProp      @computed get sidebarWidthPercent() { return this._showSidebar ? "20%" : StrCast(this.layoutDoc._sidebarWidthPercent, "0%"); }      @computed get sidebarColor() { return StrCast(this.layoutDoc.sidebarColor, StrCast(this.layoutDoc[this.props.fieldKey + "-backgroundColor"], "#e4e4e4")); } -    @computed get autoHeight() { return this.layoutDoc._autoHeight && !this.props.ignoreAutoHeight; } +    @computed get autoHeight() { return (this.props.forceAutoHeight || this.layoutDoc._autoHeight) && !this.props.ignoreAutoHeight; }      @computed get textHeight() { return NumCast(this.rootDoc[this.fieldKey + "-height"]); }      @computed get scrollHeight() { return NumCast(this.rootDoc[this.fieldKey + "-scrollHeight"]); }      @computed get sidebarHeight() { return !this.sidebarWidth() ? 0 : NumCast(this.rootDoc[this.SidebarKey + "-height"]); } @@ -1141,10 +1141,16 @@ export class FormattedTextBox extends ViewBoxAnnotatableComponent<(FieldViewProp                  clipboardTextSerializer: this.clipboardTextSerializer,                  handlePaste: this.handlePaste,              }); -            const startupText = !rtfField && this._editorView && Field.toString(this.dataDoc[fieldKey] as Field); -            if (startupText) { -                const { state: { tr }, dispatch } = this._editorView; -                dispatch(tr.insertText(startupText)); +            const { state, dispatch } = this._editorView; +            if (!rtfField) { +                const startupText = Field.toString(this.dataDoc[fieldKey] as Field); +                if (startupText) { +                    dispatch(state.tr.insertText(startupText)); +                } else if (!FormattedTextBox.LiveTextUndo) { +                    selectAll(this._editorView.state, (tr) => { +                        this._editorView!.dispatch(tr.replaceSelectionWith(state.schema.nodes.paragraph.create({ align: "center" }))); +                    }); +                }              }              (this._editorView as any).TextView = this;          } @@ -1175,8 +1181,8 @@ export class FormattedTextBox extends ViewBoxAnnotatableComponent<(FieldViewProp              ...(Doc.UserDoc().fontColor !== "transparent" && Doc.UserDoc().fontColor ? [schema.mark(schema.marks.pFontColor, { color: StrCast(Doc.UserDoc().fontColor) })] : []),              ...(Doc.UserDoc().fontStyle === "italics" ? [schema.mark(schema.marks.em)] : []),              ...(Doc.UserDoc().textDecoration === "underline" ? [schema.mark(schema.marks.underline)] : []), -            ...(Doc.UserDoc().fontFamily ? [schema.mark(schema.marks.pFontFamily, { family: StrCast(Doc.UserDoc().fontFamily) })] : []), -            ...(Doc.UserDoc().fontSize ? [schema.mark(schema.marks.pFontSize, { fontSize: StrCast(Doc.UserDoc().fontSize, "") })] : []), +            ...(Doc.UserDoc().fontFamily ? [schema.mark(schema.marks.pFontFamily, { family: this.props.styleProvider?.(this.rootDoc, this.props, StyleProp.FontFamily) })] : []), +            ...(Doc.UserDoc().fontSize ? [schema.mark(schema.marks.pFontSize, { fontSize: this.props.styleProvider?.(this.rootDoc, this.props, StyleProp.FontSize) })] : []),              ...(Doc.UserDoc().fontWeight === "bold" ? [schema.mark(schema.marks.strong)] : [])];          }      } @@ -1570,7 +1576,7 @@ export class FormattedTextBox extends ViewBoxAnnotatableComponent<(FieldViewProp                      setHeight={this.setSidebarHeight}                      fitContentsToDoc={this.fitToBox}                      noSidebar={true} -                    fieldKey={this.layoutDoc.sidebarViewType === "translation" ? `${this.fieldKey}-translation` : this.SidebarKey} />; +                    fieldKey={this.layoutDoc.sidebarViewType === "translation" ? `${this.fieldKey}-translation` : `${this.fieldKey}-annotations`} />;          };          return <div className={"formattedTextBox-sidebar" + (CurrentUserUtils.SelectedTool !== InkTool.None ? "-inking" : "")}              style={{ width: `${this.sidebarWidthPercent}`, backgroundColor: `${this.sidebarColor}` }}> @@ -1586,10 +1592,10 @@ export class FormattedTextBox extends ViewBoxAnnotatableComponent<(FieldViewProp          const interactive = (CurrentUserUtils.SelectedTool === InkTool.None || SnappingManager.GetIsDragging()) && (this.layoutDoc.z || this.props.layerProvider?.(this.layoutDoc) !== false);          if (!selected && FormattedTextBoxComment.textBox === this) setTimeout(FormattedTextBoxComment.Hide);          const minimal = this.props.ignoreAutoHeight; -        const margins = NumCast(this.layoutDoc._yMargin, this.props.yPadding || 0); -        const selPad = Math.min(margins, 10); -        const padding = Math.max(margins + ((selected && !this.layoutDoc._singleLine) || minimal ? -selPad : 0), 0); -        const selPaddingClass = selected && !this.layoutDoc._singleLine && margins >= 10 ? "-selected" : ""; +        const paddingX = NumCast(this.layoutDoc._xMargin, this.props.xPadding || 0); +        const paddingY = NumCast(this.layoutDoc._yMargin, this.props.yPadding || 0); +        const selPad = ((selected && !this.layoutDoc._singleLine) || minimal ? Math.min(paddingY, Math.min(paddingX, 10)) : 0); +        const selPaddingClass = selected && !this.layoutDoc._singleLine && paddingY >= 10 ? "-selected" : "";          const styleFromString = this.styleFromLayoutString(scale);   // this converts any expressions in the format string to style props.  e.g., <FormattedTextBox height='{this._headerHeight}px' >          return (styleFromString?.height === "0px" ? (null) :              <div className="formattedTextBox-cont" @@ -1633,7 +1639,11 @@ export class FormattedTextBox extends ViewBoxAnnotatableComponent<(FieldViewProp                          onScroll={this.onScroll} onDrop={this.ondrop} >                          <div className={minimal ? "formattedTextBox-minimal" : `formattedTextBox-inner${rounded}${selPaddingClass}`} ref={this.createDropTarget}                              style={{ -                                padding: StrCast(this.layoutDoc._textBoxPadding, `${padding}px`), +                                padding: StrCast(this.layoutDoc._textBoxPadding), +                                paddingLeft: StrCast(this.layoutDoc._textBoxPaddingX, `${paddingX - selPad}px`), +                                paddingRight: StrCast(this.layoutDoc._textBoxPaddingX, `${paddingX - selPad}px`), +                                paddingTop: StrCast(this.layoutDoc._textBoxPaddingY, `${paddingY - selPad}px`), +                                paddingBottom: StrCast(this.layoutDoc._textBoxPaddingY, `${paddingY - selPad}px`),                                  pointerEvents: !active && !SnappingManager.GetIsDragging() ? (this.layoutDoc.isLinkButton ? "none" : undefined) : undefined                              }}                          /> | 
