From 1c740b466558409d5c3082a01d1b1d0ed8205439 Mon Sep 17 00:00:00 2001 From: Robbie Date: Thu, 10 Aug 2023 09:45:24 -0600 Subject: [PATCH] fix crashes during SSR --- src/Viewport.ts | 8 ++++---- src/plugins/Drag.ts | 2 ++ src/plugins/Wheel.ts | 1 + 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/Viewport.ts b/src/Viewport.ts index 886b2d01..e9efd821 100644 --- a/src/Viewport.ts +++ b/src/Viewport.ts @@ -112,8 +112,8 @@ export interface IViewportTransformState } const DEFAULT_VIEWPORT_OPTIONS: Partial = { - screenWidth: window.innerWidth, - screenHeight: window.innerHeight, + screenWidth: typeof window === 'undefined' ? 0 : window.innerWidth, + screenHeight: typeof window === 'undefined' ? 0 : window.innerHeight, worldWidth: null, worldHeight: null, threshold: 5, @@ -326,8 +326,8 @@ export class Viewport extends Container * @param {number} [worldHeight] */ resize( - screenWidth: number = window.innerWidth, - screenHeight: number = window.innerHeight, + screenWidth: number = typeof window === 'undefined' ? 0 : window.innerWidth, + screenHeight: number = typeof window === 'undefined' ? 0 : window.innerHeight, worldWidth?: number, worldHeight?: number ): void diff --git a/src/plugins/Drag.ts b/src/plugins/Drag.ts index 355ed129..72221a35 100644 --- a/src/plugins/Drag.ts +++ b/src/plugins/Drag.ts @@ -212,12 +212,14 @@ export class Drag extends Plugin private addWindowEventHandler(event: string, handler: (e: any) => void): void { + if (typeof window === 'undefined') return; window.addEventListener(event, handler); this.windowEventHandlers.push({ event, handler }); } public override destroy(): void { + if (typeof window === 'undefined') return; this.windowEventHandlers.forEach(({ event, handler }) => { window.removeEventListener(event, handler); diff --git a/src/plugins/Wheel.ts b/src/plugins/Wheel.ts index 426e9ea3..d48a8254 100644 --- a/src/plugins/Wheel.ts +++ b/src/plugins/Wheel.ts @@ -125,6 +125,7 @@ export class Wheel extends Plugin */ protected handleKeyPresses(codes: string[]): void { + if (typeof window === 'undefined') return; window.addEventListener('keydown', (e) => { if (codes.includes(e.code))