From d023263f57c2176e48dc7e29140e14126e6971b6 Mon Sep 17 00:00:00 2001 From: Jason Miller Date: Fri, 30 Mar 2018 16:25:41 -0400 Subject: [PATCH] In development, persist application state across hot reloads. --- global.d.ts | 4 ++++ src/components/app/index.tsx | 11 +++++++++++ 2 files changed, 15 insertions(+) diff --git a/global.d.ts b/global.d.ts index b75bfdbf..7b9d325d 100644 --- a/global.d.ts +++ b/global.d.ts @@ -4,6 +4,10 @@ declare interface NodeModule { hot: any; } +declare interface Window { + STATE: any +} + declare namespace JSX { interface Element { } interface IntrinsicElements { } diff --git a/src/components/app/index.tsx b/src/components/app/index.tsx index 97cfada3..f958c5d7 100644 --- a/src/components/app/index.tsx +++ b/src/components/app/index.tsx @@ -36,6 +36,17 @@ export default class App extends Component { enableDrawer = false; + constructor() { + super(); + // In development, persist application state across hot reloads: + if (process.env.NODE_ENV === 'development') { + this.setState(window.STATE); + this.componentDidUpdate = () => { + window.STATE = this.state; + }; + } + } + @bind openDrawer() { this.setState({ showDrawer: true });