chore: use localStorage instead of sessionStorage