Skip to content

Commit 373f0bf

Browse files
committed
Only rehydrate a project if it was recently closed
1 parent 95f10e1 commit 373f0bf

1 file changed

Lines changed: 12 additions & 6 deletions

File tree

src/components/Workspace.jsx

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -94,11 +94,14 @@ class Workspace extends React.Component {
9494
}
9595
isExperimental = Object.keys(query).includes('experimental');
9696
}
97-
const dehydratedProject = localStorage.getItem('popcode-project-state');
98-
if (dehydratedProject) {
99-
localStorage.removeItem('popcode-project-state');
100-
rehydratedProject = JSON.parse(dehydratedProject);
97+
const dehydrated = localStorage.getItem('popcode-project-state');
98+
if (dehydrated) {
99+
const rehydrated = JSON.parse(dehydrated);
100+
if (Date.now() - rehydrated.dehydratedAt <= 5 * 60 * 1000) {
101+
rehydratedProject = rehydrated.project;
102+
}
101103
}
104+
localStorage.removeItem('popcode-project-state');
102105
history.replaceState({}, '', location.pathname);
103106
this.props.dispatch(applicationLoaded({
104107
snapshotKey,
@@ -121,8 +124,11 @@ class Workspace extends React.Component {
121124
_handleUnload() {
122125
const {currentProject} = this.props;
123126
if (!isNull(currentProject) && !isPristineProject(currentProject)) {
124-
const dehydratedProject = JSON.stringify(currentProject);
125-
localStorage.setItem('popcode-project-state', dehydratedProject);
127+
const dehydrated = JSON.stringify({
128+
dehydratedAt: Date.now(),
129+
project: currentProject,
130+
});
131+
localStorage.setItem('popcode-project-state', dehydrated);
126132
}
127133
}
128134

0 commit comments

Comments
 (0)