From 28c7254ef6952d9504472ebcbb05238b50aa6086 Mon Sep 17 00:00:00 2001 From: AAGaming Date: Tue, 9 Jul 2024 02:35:24 -0400 Subject: initial implementation of new router and qam hooks --- frontend/src/errorboundary-hook.tsx | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'frontend/src/errorboundary-hook.tsx') diff --git a/frontend/src/errorboundary-hook.tsx b/frontend/src/errorboundary-hook.tsx index 8c96d9f4..072c96ca 100644 --- a/frontend/src/errorboundary-hook.tsx +++ b/frontend/src/errorboundary-hook.tsx @@ -22,9 +22,7 @@ class ErrorBoundaryHook extends Logger { this.log('Initialized'); window.__ERRORBOUNDARY_HOOK_INSTANCE?.deinit?.(); window.__ERRORBOUNDARY_HOOK_INSTANCE = this; - } - init() { // valve writes only the sanest of code const exp = /^\(\)=>\(.\|\|.\(new .\),.\)$/; const initErrorReportingStore = findModuleExport( @@ -76,6 +74,11 @@ class ErrorBoundaryHook extends Logger { } this.errorBoundaryPatch = replacePatch(ErrorBoundary.prototype, 'render', function (this: any) { + if (this.state._deckyForceRerender) { + const stateClone = {...this.state, _deckyForceRerender: null}; + this.setState(stateClone); + return null; + } if (this.state.error) { const store = Object.getPrototypeOf(this)?.constructor?.sm_ErrorReportingStore || errorReportingStore; return ( @@ -89,6 +92,10 @@ class ErrorBoundaryHook extends Logger { } return callOriginal; }); + // Small hack that gives us a lot more flexibility to force rerenders. + ValveErrorBoundary.prototype._deckyForceRerender = function (this: any) { + this.setState({...this.state, _deckyForceRerender: true}); + } } public temporarilyDisableReporting() { -- cgit v1.2.3