Skip to content

Commit c99ac71

Browse files
committed
Guard against missing sessionStorage.
1 parent 50908cd commit c99ac71

File tree

1 file changed

+8
-5
lines changed
  • packages/react-async-devtools/src

1 file changed

+8
-5
lines changed

Diff for: packages/react-async-devtools/src/index.js

+8-5
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,14 @@ import { Root, Range, Checkbox, Label, Small, Ol, Li, Button } from "./component
55

66
const root =
77
(typeof self === "object" && self.self === self && self) ||
8-
(typeof global === "object" && global.global === global && global)
8+
(typeof global === "object" && global.global === global && global) ||
9+
{}
10+
11+
const storage = root.sessionStorage
912

1013
const state = {
11-
intercept: root.sessionStorage.getItem("intercept") === "true",
12-
latency: root.sessionStorage.getItem("latency") || "0",
14+
intercept: (storage && storage.getItem("intercept") === "true") || false,
15+
latency: (storage && storage.getItem("latency")) || "0",
1316
update: () => {},
1417
}
1518

@@ -50,13 +53,13 @@ const DevTools = () => {
5053
}))
5154
}
5255
const updateLatency = event => {
53-
root.sessionStorage.setItem("latency", event.target.value)
56+
storage && storage.setItem("latency", event.target.value)
5457
delay.current = event.target.value * 1000
5558
state.latency = event.target.value
5659
setLatency(event.target.value)
5760
}
5861
const updateIntercept = event => {
59-
root.sessionStorage.setItem("intercept", event.target.checked ? "true" : "false")
62+
storage && storage.setItem("intercept", event.target.checked ? "true" : "false")
6063
state.intercept = event.target.checked
6164
intercept.current = event.target.checked
6265
setIntercept(event.target.checked)

0 commit comments

Comments
 (0)