Skip to content

Commit 93c9121

Browse files
Created persistent data using localStorage
1 parent aaf9cff commit 93c9121

File tree

2 files changed

+26
-13
lines changed

2 files changed

+26
-13
lines changed

src/components/Home/Home.js

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ class Home extends Component {
2525
};
2626

2727
componentDidMount() {
28-
if (sessionStorage.getItem("HomeState")) {
29-
let state = JSON.parse(sessionStorage.getItem("HomeState"));
28+
if (localStorage.getItem("HomeState")) {
29+
let state = JSON.parse(localStorage.getItem("HomeState"));
3030
this.setState({ ...state });
3131
} else {
3232
this.setState({ loading: true });
@@ -84,9 +84,8 @@ class Home extends Component {
8484
totalPages: result.total_pages
8585
},
8686
() => {
87-
// Remember state for the next mount if we´re not in a search view
88-
if (searchTerm === "") {
89-
sessionStorage.setItem("HomeState", JSON.stringify(this.state));
87+
if (this.state.searchTerm === "") {
88+
localStorage.setItem("HomeState", JSON.stringify(this.state));
9089
}
9190
}
9291
);

src/components/Movie/Movie.js

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,19 @@ export default class Movie extends Component {
1717
};
1818

1919
componentDidMount() {
20-
this.setState({ loading: true });
21-
22-
// Movie Data
23-
const endpoint = `${API_URL}movie/${
24-
this.props.match.params.movieId
25-
}?api_key=${API_KEY}&language=en-US`;
26-
this.fetchItems(endpoint);
20+
if (localStorage.getItem(`${this.props.match.paramas.movieId}`)) {
21+
const state = JSON.parse(
22+
localStorage.getItem(`${this.props.match.paramas.movieId}`)
23+
);
24+
this.setState({ ...state });
25+
} else {
26+
this.setState({ loading: true });
27+
// Movie Data
28+
const endpoint = `${API_URL}movie/${
29+
this.props.match.params.movieId
30+
}?api_key=${API_KEY}&language=en-US`;
31+
this.fetchItems(endpoint);
32+
}
2733
}
2834

2935
fetchItems = endpoint => {
@@ -45,7 +51,15 @@ export default class Movie extends Component {
4551
const directors = res.crew.filter(
4652
member => member.job === "Director"
4753
);
48-
this.setState({ actors: res.cast, directors, loading: false });
54+
this.setState(
55+
{ actors: res.cast, directors, loading: false },
56+
() => {
57+
localStorage.setItem(
58+
`${this.props.match.params.movieId}`,
59+
JSON.stringify(this.state)
60+
);
61+
}
62+
);
4963
});
5064
});
5165
}

0 commit comments

Comments
 (0)