11<%
2+ const MOON = ' 🌙' ;
3+ const SUN = ' ☀️' ;
24
5+ // convert unix_timestamp to local datetime
36unixTsToLocalTime = (unix_ts ) => {
47 // Create a new JavaScript Date object based on the timestamp
58 // multiplied by 1000 so that the argument is in milliseconds, not seconds.
@@ -32,4 +35,65 @@ trendingTemperature = (dataArr) => {
3235 else { return " Considerable warming trend ahead." ; }
3336 }
3437}
38+
39+ // check if client allows saving session data
40+ storageAvailable = (type ) => {
41+ let storage;
42+ try {
43+ storage = window [type];
44+ const x = ' __storage_test__' ;
45+ storage .setItem (x, x);
46+ storage .removeItem (x);
47+ return true ;
48+ }
49+ catch (e) {
50+ return e instanceof DOMException && (
51+ // everything except Firefox
52+ e .code === 22 ||
53+ // Firefox
54+ e .code === 1014 ||
55+ // test name field too, because code might not be present
56+ // everything except Firefox
57+ e .name === ' QuotaExceededError' ||
58+ // Firefox
59+ e .name === ' NS_ERROR_DOM_QUOTA_REACHED' ) &&
60+ // acknowledge QuotaExceededError only if there's something already stored
61+ (storage && storage .length !== 0 );
62+ }
63+ }
64+
65+ // save data to session memory client-side
66+ saveClientData = (key , value ) => {
67+ if (storageAvailable (String )) {
68+ // Yippee! We can use localStorage awesomeness
69+ // Save data to sessionStorage
70+ sessionStorage .setItem (key, value);
71+
72+ // Get saved data from sessionStorage
73+ let data = sessionStorage .getItem (key);
74+
75+ alert (methodString + ' says my data is ' + data);
76+
77+ }
78+ else {
79+ // Too bad, no localStorage for us
80+ alert (methodString + ' says Web Storage API is disabled.' )
81+ }
82+ }
83+
84+ // retrieve saved session data
85+ getClientData = (key ) => {
86+ if (storageAvailable (String )) {
87+ return sessionStorage .getItem (key);
88+ } else {
89+ return null ;
90+ }
91+ }
92+
93+ // delete session data
94+ deleteClientData = (key ) => {
95+ // Remove saved data from sessionStorage
96+ sessionStorage .removeItem (key);
97+ }
98+
3599%>
0 commit comments