From 85d69878edc48b47fedce4e7f5133947017b47c9 Mon Sep 17 00:00:00 2001 From: Charles Francoise Date: Thu, 3 Feb 2022 22:39:40 +0100 Subject: [PATCH 1/3] unmount component before window unload --- src/panel/App.tsx | 4 ++-- src/panel/index.tsx | 13 +++++++++++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/panel/App.tsx b/src/panel/App.tsx index c296e5cf..6481b423 100644 --- a/src/panel/App.tsx +++ b/src/panel/App.tsx @@ -1,6 +1,6 @@ import { Box, Stack } from '@mui/material' import * as React from 'react' -import { useEffect, useReducer } from 'react' +import { useEffect, useLayoutEffect, useReducer, useState } from 'react' import * as Requests from './requests' @@ -10,7 +10,7 @@ const App = () => { [] ) - useEffect(() => { + useLayoutEffect(() => { Requests.listen() const unsubscribe = Requests.subscribe((req) => { pushRequest(req) diff --git a/src/panel/index.tsx b/src/panel/index.tsx index bd3aa2c9..8963310e 100644 --- a/src/panel/index.tsx +++ b/src/panel/index.tsx @@ -3,8 +3,17 @@ import '@fontsource/roboto/400.css' import '@fontsource/roboto/500.css' import '@fontsource/roboto/700.css' import * as React from 'react' -import * as ReactDOM from 'react-dom' +import { render, unmountComponentAtNode } from 'react-dom' import App from './App' -ReactDOM.render(, document.getElementById('app')) +const container = document.getElementById('app') +if (container === null) { + throw new Error('could not find #app container element') +} + +render(, container) + +window.addEventListener('beforeunload', () => { + unmountComponentAtNode(container) +}) From 0271d6a834aca988a41e4683c77095e0d5a7c855 Mon Sep 17 00:00:00 2001 From: Charles Francoise Date: Thu, 3 Feb 2022 22:43:57 +0100 Subject: [PATCH 2/3] remove unused imports --- src/panel/App.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/panel/App.tsx b/src/panel/App.tsx index 6481b423..0189de2c 100644 --- a/src/panel/App.tsx +++ b/src/panel/App.tsx @@ -1,6 +1,6 @@ import { Box, Stack } from '@mui/material' import * as React from 'react' -import { useEffect, useLayoutEffect, useReducer, useState } from 'react' +import { useLayoutEffect, useReducer } from 'react' import * as Requests from './requests' From f4cd591e551f88e7514e1b19b72be8ab3f2bd4ed Mon Sep 17 00:00:00 2001 From: Charles Francoise Date: Thu, 3 Feb 2022 22:44:43 +0100 Subject: [PATCH 3/3] don't lint coverage --- .eslintignore | 3 ++- .prettierignore | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.eslintignore b/.eslintignore index 4a8a795d..0d0b9694 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,2 +1,3 @@ .eslintrc*.js -out/ \ No newline at end of file +out/ +coverage/ \ No newline at end of file diff --git a/.prettierignore b/.prettierignore index 89f9ac04..2ce3d7c5 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1 +1,2 @@ out/ +coverage/ \ No newline at end of file