aboutsummaryrefslogtreecommitdiff
path: root/src/client/views/collections/CollectionDockingView.tsx
diff options
context:
space:
mode:
authorbobzel <zzzman@gmail.com>2025-03-10 16:13:04 -0400
committerbobzel <zzzman@gmail.com>2025-03-10 16:13:04 -0400
commitb7989dded8bb001876de6cbca59bf77935f0daf7 (patch)
tree0dba0665674db7bb84770833df0a4100d0520701 /src/client/views/collections/CollectionDockingView.tsx
parent4979415d4604d280e81a162bf9a9d39c731d3738 (diff)
parent5bf944035c0ba94ad15245416f51ca0329a51bde (diff)
Merge branch 'master' into alyssa-starter
Diffstat (limited to 'src/client/views/collections/CollectionDockingView.tsx')
-rw-r--r--src/client/views/collections/CollectionDockingView.tsx27
1 files changed, 14 insertions, 13 deletions
diff --git a/src/client/views/collections/CollectionDockingView.tsx b/src/client/views/collections/CollectionDockingView.tsx
index e1786d2c9..e51bc18ef 100644
--- a/src/client/views/collections/CollectionDockingView.tsx
+++ b/src/client/views/collections/CollectionDockingView.tsx
@@ -48,8 +48,7 @@ export class CollectionDockingView extends CollectionSubView() {
// eslint-disable-next-line no-use-before-define
@observable public static Instance: CollectionDockingView | undefined = undefined;
- private _reactionDisposer?: IReactionDisposer;
- private _lightboxReactionDisposer?: IReactionDisposer;
+ private _disposers: { [key: string]: IReactionDisposer } = {};
private _containerRef = React.createRef<HTMLDivElement>();
private _flush: UndoManager.Batch | undefined;
private _unmounting = false;
@@ -341,12 +340,12 @@ export class CollectionDockingView extends CollectionSubView() {
this._unmounting = false;
SetPropSetterCb('title', this.titleChanged); // this overrides any previously assigned callback for the property
if (this._containerRef.current) {
- this._lightboxReactionDisposer = reaction(
+ this._disposers.lightbox = reaction(
() => DocumentView.LightboxDoc(),
doc => setTimeout(() => !doc && this.onResize())
);
new ResizeObserver(this.onResize).observe(this._containerRef.current);
- this._reactionDisposer = reaction(
+ this._disposers.docking = reaction(
() => StrCast(this.Document.dockingConfig),
config => {
if (!this._goldenLayout || this._ignoreStateChange !== config) {
@@ -356,12 +355,16 @@ export class CollectionDockingView extends CollectionSubView() {
this._ignoreStateChange = '';
}
);
- reaction(
+ this._disposers.panel = reaction(
() => this._props.PanelWidth(),
- width => !this._goldenLayout && width > 20 && setTimeout(() => this.setupGoldenLayout()), // need to wait for the collectiondockingview-container to have it's width/height since golden layout reads that to configure its windows
+ width => {
+ if (!this._goldenLayout && width > 20) {
+ setTimeout(() => this.setupGoldenLayout());
+ }
+ }, // need to wait for the collectiondockingview-container to have it's width/height since golden layout reads that to configure its windows
{ fireImmediately: true }
);
- reaction(
+ this._disposers.color = reaction(
() => [SnappingManager.userBackgroundColor, SnappingManager.userBackgroundColor],
() => {
clearStyleSheetRules(CollectionDockingView._highlightStyleSheet);
@@ -376,18 +379,16 @@ export class CollectionDockingView extends CollectionSubView() {
componentWillUnmount: () => void = () => {
this._unmounting = true;
+ Object.values(this._disposers).forEach(d => d());
try {
this._goldenLayout.unbind('stackCreated', this.stackCreated);
this._goldenLayout.unbind('tabDestroyed', this.tabDestroyed);
} catch {
/* empty */
}
- this._goldenLayout?.destroy();
+ setTimeout(() => this._goldenLayout?.destroy());
window.removeEventListener('resize', this.onResize);
window.removeEventListener('mouseup', this.onPointerUp);
-
- this._reactionDisposer?.();
- this._lightboxReactionDisposer?.();
};
// ViewBoxInterface overrides
@@ -426,7 +427,7 @@ export class CollectionDockingView extends CollectionSubView() {
@action
onPointerUp = (): void => {
- window.removeEventListener('pointerup', this.onPointerUp);
+ window.removeEventListener('mouseup', this.onPointerUp);
DragManager.CompleteWindowDrag = undefined;
setTimeout(this.endUndoBatch, 100);
};
@@ -453,7 +454,7 @@ export class CollectionDockingView extends CollectionSubView() {
}
}
}
- if (!InteractionUtils.IsType(e, InteractionUtils.TOUCHTYPE) && !InteractionUtils.IsType(e, InteractionUtils.PENTYPE) && ![InkTool.Highlighter, InkTool.Pen, InkTool.Write].includes(Doc.ActiveTool)) {
+ if (!InteractionUtils.IsType(e, InteractionUtils.TOUCHTYPE) && !InteractionUtils.IsType(e, InteractionUtils.PENTYPE) && Doc.ActiveTool !== InkTool.Ink) {
e.stopPropagation();
}
};