11import React , { useEffect , useState } from "react" ;
22
3+ function storageMock ( ) {
4+ let storage = { } ;
5+
6+ return {
7+ setItem : function ( key , value ) {
8+ storage [ key ] = value || "" ;
9+ } ,
10+ getItem : function ( key ) {
11+ return key in storage ? storage [ key ] : null ;
12+ } ,
13+ removeItem : function ( key ) {
14+ delete storage [ key ] ;
15+ } ,
16+ get length ( ) {
17+ return Object . keys ( storage ) . length ;
18+ } ,
19+ key : function ( i ) {
20+ const keys = Object . keys ( storage ) ;
21+ return keys [ i ] || null ;
22+ } ,
23+ } ;
24+ }
25+
26+ const sessionStorage =
27+ typeof window === "object" ? window . sessionStorage : storageMock ( ) ;
328const getStars = async ( ) => {
429 try {
530 const res = await fetch (
@@ -16,17 +41,17 @@ const getStars = async () => {
1641} ;
1742export default ( { children } ) => {
1843 const [ stars , setStars ] = useState (
19- window . sessionStorage . getItem ( "appbase_rs_star_count" )
44+ sessionStorage . getItem ( "appbase_rs_star_count" )
2045 ) ;
2146 useEffect ( ( ) => {
22- const sessionData = window . sessionStorage . getItem ( "appbase_rs_star_count" ) ;
47+ const sessionData = sessionStorage . getItem ( "appbase_rs_star_count" ) ;
2348 console . log ( "session data" , sessionData ) ;
2449 if ( ! sessionData ) {
2550 async function fetchData ( ) {
2651 const currentStars = await getStars ( ) ;
2752 console . log ( "stars" , currentStars ) ;
2853 setStars ( currentStars ) ;
29- window . sessionStorage . setItem ( "appbase_rs_star_count" , currentStars ) ;
54+ sessionStorage . setItem ( "appbase_rs_star_count" , currentStars ) ;
3055 }
3156 fetchData ( ) ;
3257 }
0 commit comments