diff options
Diffstat (limited to 'src/client/views/MarqueeAnnotator.tsx')
| -rw-r--r-- | src/client/views/MarqueeAnnotator.tsx | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/src/client/views/MarqueeAnnotator.tsx b/src/client/views/MarqueeAnnotator.tsx index a241e3a2b..3f0db4258 100644 --- a/src/client/views/MarqueeAnnotator.tsx +++ b/src/client/views/MarqueeAnnotator.tsx @@ -1,12 +1,12 @@ -import { action, computed, observable, ObservableMap } from 'mobx'; +import { action, computed, makeObservable, observable, ObservableMap } from 'mobx'; import { observer } from 'mobx-react'; +import * as React from 'react'; import { Doc, Opt } from '../../fields/Doc'; import { AclAdmin, AclAugment, AclEdit, AclSelfEdit, DocData } from '../../fields/DocSymbols'; -import { Id } from '../../fields/FieldSymbols'; import { List } from '../../fields/List'; import { NumCast } from '../../fields/Types'; import { GetEffectiveAcl } from '../../fields/util'; -import { unimplementedFunction, Utils } from '../../Utils'; +import { copyProps, unimplementedFunction, Utils } from '../../Utils'; import { Docs, DocUtils } from '../documents/Documents'; import { DragManager } from '../util/DragManager'; import { FollowLinkScript } from '../util/LinkFollower'; @@ -15,7 +15,6 @@ import './MarqueeAnnotator.scss'; import { DocumentView } from './nodes/DocumentView'; import { FormattedTextBox } from './nodes/formattedText/FormattedTextBox'; import { AnchorMenu } from './pdf/AnchorMenu'; -import * as React from 'react'; const _global = (window /* browser */ || global) /* node */ as any; export interface MarqueeAnnotatorProps { @@ -46,6 +45,17 @@ export class MarqueeAnnotator extends React.Component<MarqueeAnnotatorProps> { @computed get top() { return Math.min(this._start.y, this._start.y + this._height); } // prettier-ignore @computed get left() { return Math.min(this._start.x, this._start.x + this._width);} // prettier-ignore + _prevProps: React.PropsWithChildren<MarqueeAnnotatorProps>; + @observable _props: React.PropsWithChildren<MarqueeAnnotatorProps>; + constructor(props: React.PropsWithChildren<MarqueeAnnotatorProps>) { + super(props); + this._props = this._prevProps = props; + makeObservable(this); + } + componentDidMount() { + copyProps(this); + } + @action static clearAnnotations(savedAnnotations: ObservableMap<number, HTMLDivElement[]>) { AnchorMenu.Instance.Status = 'marquee'; @@ -56,7 +66,6 @@ export class MarqueeAnnotator extends React.Component<MarqueeAnnotatorProps> { } @undoBatch - @action makeAnnotationDocument = (color: string, isLinkButton?: boolean, savedAnnotations?: ObservableMap<number, HTMLDivElement[]>): Opt<Doc> => { const savedAnnoMap = savedAnnotations?.values() && Array.from(savedAnnotations?.values()).length ? savedAnnotations : this.props.savedAnnotations(); if (savedAnnoMap.size === 0) return undefined; |
