From d4738b172a1737395b73f5495446d3138d4045b9 Mon Sep 17 00:00:00 2001 From: bobzel Date: Tue, 16 Mar 2021 13:22:28 -0400 Subject: fixed up leaving pushpins - leave pushpin when moving from one annotated doc to another. --- src/client/views/DocComponent.tsx | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'src/client/views/DocComponent.tsx') diff --git a/src/client/views/DocComponent.tsx b/src/client/views/DocComponent.tsx index f8aede717..876fbac54 100644 --- a/src/client/views/DocComponent.tsx +++ b/src/client/views/DocComponent.tsx @@ -9,6 +9,7 @@ import { DateField } from '../../fields/DateField'; import { ScriptField } from '../../fields/ScriptField'; import { GetEffectiveAcl, SharingPermissions, distributeAcls, denormalizeEmail } from '../../fields/util'; import { CurrentUserUtils } from '../util/CurrentUserUtils'; +import { DocUtils } from '../documents/Documents'; /// DocComponent returns a generic React base class used by views that don't have 'fieldKey' props (e.g.,CollectionFreeFormDocumentView, DocumentView) @@ -127,16 +128,15 @@ export function ViewBoxAnnotatableComponent

effectiveAcl === AclEdit || effectiveAcl === AclAdmin || GetEffectiveAcl(doc) === AclAdmin); if (docs.length) { - const docs = doc instanceof Doc ? [doc] : doc; - docs.map(doc => { + setTimeout(() => docs.map(doc => { // this allows 'addDocument' to see the annotationOn field in order to create a pushin Doc.SetInPlace(doc, "isPushpin", undefined, true); - Doc.SetInPlace(doc, "annotationOn", undefined, true); - }); + doc.annotationOn === this.props.Document && Doc.SetInPlace(doc, "annotationOn", undefined, true); + })); const targetDataDoc = this.dataDoc; const value = DocListCast(targetDataDoc[annotationKey ?? this.annotationKey]); const toRemove = value.filter(v => docs.includes(v)); @@ -144,6 +144,7 @@ export function ViewBoxAnnotatableComponent

{ + leavePushpin && DocUtils.LeavePushpin(doc); Doc.RemoveDocFromList(targetDataDoc, annotationKey ?? this.annotationKey, doc); doc.context = undefined; recent && Doc.AddDocToList(recent, "data", doc, undefined, true, true); @@ -159,7 +160,7 @@ export function ViewBoxAnnotatableComponent

boolean, annotationKey?: string): boolean { - return Doc.AreProtosEqual(this.props.Document, targetCollection) ? true : this.removeDocument(doc, annotationKey) ? addDocument(doc) : false; + return Doc.AreProtosEqual(this.props.Document, targetCollection) ? true : this.removeDocument(doc, annotationKey, true) ? addDocument(doc) : false; } @action.bound addDocument(doc: Doc | Doc[], annotationKey?: string): boolean { -- cgit v1.2.3-70-g09d2