From d7ce8d618f589e0e79d4b4bb063896ef36f8be2a Mon Sep 17 00:00:00 2001 From: Garrett Stevens Date: Thu, 28 Oct 2021 19:33:13 -0600 Subject: [PATCH] Make queueOfDialogs a non-observable array to fix crash in umd build from embedded apps (#2469) Co-authored-by: Colin Diesh --- .../src/createModel/createSessionModel.ts | 9 ++++++--- .../src/createModel/createSessionModel.ts | 9 ++++++--- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/products/jbrowse-react-circular-genome-view/src/createModel/createSessionModel.ts b/products/jbrowse-react-circular-genome-view/src/createModel/createSessionModel.ts index 55bab195df..c5bfed76dd 100644 --- a/products/jbrowse-react-circular-genome-view/src/createModel/createSessionModel.ts +++ b/products/jbrowse-react-circular-genome-view/src/createModel/createSessionModel.ts @@ -60,7 +60,7 @@ export default function sessionModelFactory(pluginManager: PluginManager) { */ task: undefined, - queueOfDialogs: observable.array([] as [DialogComponentType, any][]), + queueOfDialogs: [] as [DialogComponentType, any][], })) .views(self => ({ get DialogComponent() { @@ -150,9 +150,12 @@ export default function sessionModelFactory(pluginManager: PluginManager) { callback: (doneCallback: Function) => [DialogComponentType, any], ): void { const [component, props] = callback(() => { - self.queueOfDialogs.shift() + this.removeActiveDialog() }) - self.queueOfDialogs.push([component, props]) + self.queueOfDialogs = [...self.queueOfDialogs, [component, props]] + }, + removeActiveDialog() { + self.queueOfDialogs = self.queueOfDialogs.slice(1) }, makeConnection( configuration: AnyConfigurationModel, diff --git a/products/jbrowse-react-linear-genome-view/src/createModel/createSessionModel.ts b/products/jbrowse-react-linear-genome-view/src/createModel/createSessionModel.ts index 4a78bbfbe9..38e173f711 100644 --- a/products/jbrowse-react-linear-genome-view/src/createModel/createSessionModel.ts +++ b/products/jbrowse-react-linear-genome-view/src/createModel/createSessionModel.ts @@ -62,7 +62,7 @@ export default function sessionModelFactory(pluginManager: PluginManager) { */ task: undefined, - queueOfDialogs: observable.array([] as [DialogComponentType, any][]), + queueOfDialogs: [] as [DialogComponentType, any][], })) .views(self => ({ get DialogComponent() { @@ -155,9 +155,12 @@ export default function sessionModelFactory(pluginManager: PluginManager) { callback: (doneCallback: Function) => [DialogComponentType, any], ): void { const [component, props] = callback(() => { - self.queueOfDialogs.shift() + this.removeActiveDialog() }) - self.queueOfDialogs.push([component, props]) + self.queueOfDialogs = [...self.queueOfDialogs, [component, props]] + }, + removeActiveDialog() { + self.queueOfDialogs = self.queueOfDialogs.slice(1) }, makeConnection( configuration: AnyConfigurationModel,