diff options
Diffstat (limited to 'src/client/util/LinkManager.ts')
| -rw-r--r-- | src/client/util/LinkManager.ts | 11 | 
1 files changed, 7 insertions, 4 deletions
| diff --git a/src/client/util/LinkManager.ts b/src/client/util/LinkManager.ts index 9445533dc..2100b1195 100644 --- a/src/client/util/LinkManager.ts +++ b/src/client/util/LinkManager.ts @@ -1,3 +1,4 @@ +import { validationResult } from "express-validator/check";  import { action, observable, observe } from "mobx";  import { computedFn } from "mobx-utils";  import { DirectLinksSym, Doc, DocListCast, Field, Opt } from "../../fields/Doc"; @@ -241,10 +242,12 @@ export class LinkManager {                      } else {                          const containerAnnoDoc = Cast(target.annotationOn, Doc, null);                          const containerDoc = containerAnnoDoc || target; -                        const containerDocContext = Cast(containerDoc?.context, Doc, null); -                        const targetContext = LightboxView.LightboxDoc ? containerAnnoDoc || containerDocContext : containerDocContext; -                        const targetNavContext = !Doc.AreProtosEqual(targetContext, currentContext) ? targetContext : undefined; -                        DocumentManager.Instance.jumpToDocument(target, zoom, (doc, finished) => createViewFunc(doc, StrCast(linkDoc.followLinkLocation, "lightbox"), finished), targetNavContext, linkDoc, undefined, sourceDoc, allFinished); +                        var containerDocContext = containerDoc?.context ? [Cast(containerDoc?.context, Doc, null)] : [] as Doc[]; +                        while (containerDocContext.length && !DocumentManager.Instance.getDocumentView(containerDocContext[0]) && containerDocContext[0].context) { +                            containerDocContext = [Cast(containerDocContext[0].context, Doc, null), ...containerDocContext]; +                        } +                        const targetContexts = LightboxView.LightboxDoc ? [containerAnnoDoc || containerDocContext[0]].filter(a => a) : containerDocContext; +                        DocumentManager.Instance.jumpToDocument(target, zoom, (doc, finished) => createViewFunc(doc, StrCast(linkDoc.followLinkLocation, "lightbox"), finished), targetContexts, linkDoc, undefined, sourceDoc, allFinished);                      }                  } else {                      allFinished(); | 
