Skip to content

Commit 6c6676b

Browse files
committed
Added null-check to sessionStorage.
1 parent 64d035d commit 6c6676b

5 files changed

Lines changed: 23 additions & 23 deletions

File tree

Arena

Submodule Arena updated from 75a920f to 6f15509

Dev/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ function a(){
33
let _editor;
44
(()=>{
55
let acceptedDev;
6-
if(GitHubApi.getSessionStorage().acceptedDev){
6+
if(GitHubApi.getSessionStorage()?.acceptedDev){
77
acceptedDev = true;
88
}
99
const defaultSetup = {
@@ -91,7 +91,7 @@ function a(){
9191
if(typeof url === 'string'){
9292
if(url && (url[0] === '?' || url[0] === '!')){
9393
if(acceptedDev === undefined){
94-
let session = GitHubApi.getSessionStorage();
94+
const session = GitHubApi.getSessionStorage();
9595
acceptedDev = 'I accept unsandboxed sources' === (prompt('By having exclamation (!) and question (?) marks first in the URL you side steps all security features and you do so at your own risk. Only do this to URLs for code that you trust.\n\nWrite "I accept unsandboxed sources" to allow unsandboxed sources.')??'').toLowerCase();
9696
session.acceptedDev = acceptedDev;
9797
GitHubApi.setSessionStorage(session);

GitHubApi.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ class GitHubApi{
99
return GitHubApi.#CLIENT_ID;
1010
}
1111
static getSession(){
12-
let session = localStorage.getItem(GitHubApi.#SESSION_KEY);
12+
const session = localStorage.getItem(GitHubApi.#SESSION_KEY);
1313
try{
14-
return JSON.parse(session ?? '{}')
14+
return JSON.parse(session)
1515
}catch(error){}
1616
return session;
1717
}

Replay/index.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -450,12 +450,12 @@ function a(){
450450
}
451451
}
452452
let url = option.value;
453-
let session = GitHubApi.getSessionStorage();
454-
if(!url.startsWith('https://ai-tournaments.github.io/') && !session.externalReplaysAccepted){
453+
const session = GitHubApi.getSessionStorage();
454+
if(!url.startsWith('https://ai-tournaments.github.io/') && !session?.externalReplaysAccepted){
455455
session.externalReplaysAccepted = 'i accept external replay viewers' === (prompt('External replays are by default blocked for security reasons. do so at your own risk. Only do this to URLs for code that you trust.\n\nWrite "I accept external replays" to allow external replay viewers.')??'').toLowerCase();
456456
GitHubApi.setSessionStorage(session);
457457
}
458-
if(url.startsWith('https://ai-tournaments.github.io/') || session.externalReplaysAccepted){
458+
if(url.startsWith('https://ai-tournaments.github.io/') || session?.externalReplaysAccepted){
459459
_element_iframe.dataset.arenaResult = JSON.stringify(_replayData.body);
460460
_element_iframe.src = url;
461461
document.getElementById('open-replay-in-new-tab').addEventListener('click', ()=>{

index.js

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -23,20 +23,20 @@ function a(){
2323
if(GitHubApi.isLoggedIn()){
2424
updateUserDisplay();
2525
GitHubApi.fetch('user').then(response => response.json()).then(async user => {
26-
let sessionStorage = GitHubApi.getSessionStorage();
27-
sessionStorage.username = user.login;
28-
sessionStorage.avatar_url = user.avatar_url;
26+
const sessionStorage = GitHubApi.getSessionStorage();
27+
sessionStorage?.username = user.login;
28+
sessionStorage?.avatar_url = user.avatar_url;
2929
GitHubApi.setSessionStorage(sessionStorage);
3030
updateUserDisplay();
3131
});
3232
GitHubApi.fetch('user/following').then(response => response.json()).then(following => {
33-
let sessionStorage = GitHubApi.getSessionStorage();
34-
sessionStorage.following = following.map(user => user.login);
33+
const sessionStorage = GitHubApi.getSessionStorage();
34+
sessionStorage?.following = following.map(user => user.login);
3535
GitHubApi.setSessionStorage(sessionStorage);
3636
});
3737
GitHubApi.fetch('user/followers').then(response => response.json()).then(followers => {
38-
let sessionStorage = GitHubApi.getSessionStorage();
39-
sessionStorage.followers = followers.map(user => user.login);
38+
const sessionStorage = GitHubApi.getSessionStorage();
39+
sessionStorage?.followers = followers.map(user => user.login);
4040
GitHubApi.setSessionStorage(sessionStorage);
4141
});
4242
}
@@ -105,11 +105,11 @@ function a(){
105105
}
106106
}
107107
function updateUserDisplay(){
108-
let sessionStorage = GitHubApi.getSessionStorage();
109-
if(sessionStorage.username){
108+
const sessionStorage = GitHubApi.getSessionStorage();
109+
if(sessionStorage?.username){
110110
[...document.getElementsByClassName('local-username')].forEach(element => element.innerHTML = sessionStorage.username);
111111
}
112-
if(sessionStorage.avatar_url){
112+
if(sessionStorage?.avatar_url){
113113
[...document.getElementsByClassName('local-profile-image')].forEach(img => img.src = sessionStorage.avatar_url);
114114
}
115115
}
@@ -296,11 +296,11 @@ function a(){
296296
function openWindow(header='', message='', center=false, maxWidth, displayOnce=false){
297297
let isIframe = message.constructor.name === 'HTMLIFrameElement';
298298
let combinedMessage = header+'\n'+(isIframe ? isIframe.srcdoc : message);
299-
let sessionStorage = GitHubApi.getSessionStorage();
300-
if(!sessionStorage.windowMessages){
299+
const sessionStorage = GitHubApi.getSessionStorage();
300+
if(!sessionStorage?.windowMessages){
301301
sessionStorage.windowMessages = {};
302302
}
303-
if(!sessionStorage.windowMessages[combinedMessage]){
303+
if(!sessionStorage?.windowMessages[combinedMessage]){
304304
let windowWrapper = document.createElement('div');
305305
_content.appendChild(windowWrapper);
306306
if(maxWidth !== undefined){
@@ -314,8 +314,8 @@ function a(){
314314
cross.classList.add('cross-close');
315315
cross.onclick = ()=>{
316316
if(displayOnce){
317-
let sessionStorage = GitHubApi.getSessionStorage();
318-
if(!sessionStorage.windowMessages){
317+
const sessionStorage = GitHubApi.getSessionStorage();
318+
if(!sessionStorage?.windowMessages){
319319
sessionStorage.windowMessages = {};
320320
}
321321
sessionStorage.windowMessages[combinedMessage] = new Date().toISOString();

0 commit comments

Comments
 (0)