Skip to content

Commit 56b2fd4

Browse files
committed
feat: add localStorage support
1 parent 6f26726 commit 56b2fd4

File tree

1 file changed

+20
-6
lines changed

1 file changed

+20
-6
lines changed

assets/js/main.js

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,31 +9,45 @@ const RESOURCES_URL =
99
"https://michaelcurrin.github.io/dev-resources/resources/javascript/packages/react/";
1010

1111
function TextSample() {
12-
const [value, setValue] = React.useState("");
12+
const persistedValue = localStorage.getItem("name") ?? "";
13+
const [value, setValue] = React.useState(persistedValue);
1314

14-
const onChange = (event) => {
15+
const onInput = (event) => {
1516
setValue(event.target.value);
1617
};
1718

18-
const msg = value ? `Welcome, ${value}` : "Tell me your name";
19+
React.useEffect(() => {
20+
localStorage.setItem("name", value);
21+
});
22+
23+
const msg = value
24+
? html`<p>Welcome, <b>${value}</b></p>`
25+
: "Tell me your name";
1926

2027
return html`
2128
<div>
22-
<label hmltfor="name-input"> Name: </label>
29+
<label hmltfor="name-input">Name: </label>
2330
2431
<span> </span>
2532
2633
<input
2734
id="name-input"
28-
placeholder="World"
2935
value=${value}
30-
onChange=${onChange}
36+
onInput=${onInput}
37+
placeholder="World"
3138
/>
3239
3340
<br />
3441
<br />
3542
3643
<div>${msg}</div>
44+
45+
<p>
46+
<i
47+
>This component persists data in <code>localStorage</code>, so it will
48+
remember values across a page refresh or restarting the browser.</i
49+
>
50+
</p>
3751
</div>
3852
`;
3953
}

0 commit comments

Comments
 (0)