From 981aef3c1e41af754bf57a625b8fbc2f4f0ab8fa Mon Sep 17 00:00:00 2001 From: yukirij Date: Sun, 13 Oct 2024 14:37:58 -0700 Subject: [PATCH] Update extras page; add profile page. --- www/asset/icon.png | Bin 0 -> 11074 bytes www/asset/icon.svg | 78 +++++++++++++++++++++++++++++++++++++++++++++ www/css/ui.css | 1 - www/js/scene.js | 47 ++++++++++++++++++++++++++- www/js/ui.js | 21 ++++++------ 5 files changed, 133 insertions(+), 14 deletions(-) create mode 100644 www/asset/icon.png create mode 100644 www/asset/icon.svg diff --git a/www/asset/icon.png b/www/asset/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..9d71288815c10d8ecff519b31ffdc701ad90925a GIT binary patch literal 11074 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 + + + + + + + + + + + + + + diff --git a/www/css/ui.css b/www/css/ui.css index b7301ce..0d8ca76 100644 --- a/www/css/ui.css +++ b/www/css/ui.css @@ -149,4 +149,3 @@ input#turn-slider{ height:1rem; accent-color:#702e2e; } - diff --git a/www/js/scene.js b/www/js/scene.js index 0470495..6640935 100644 --- a/www/js/scene.js +++ b/www/js/scene.js @@ -586,13 +586,57 @@ const SCENES = { constructor() { } load() { UI.mainmenu("extras"); - UI.mainnav([], []); history.pushState(null, "Dzura - About", "/extras/"); return true; } }, + Profile:class{ + constructor() { } + load(data) { + let buttons_top = [ ]; + let buttons_bottom = [ ]; + let buttons_left = [ ]; + let buttons_right = [ ]; + + // Top Buttons + buttons_top.push(UI.button("Profile", () => { })); + buttons_top.push(UI.button("History", () => { })); + + // Bottom Buttons + if(data.handle === CONTEXT.Auth.handle) { + buttons_bottom.push(UI.button("Account", () => { })); + buttons_bottom.push(UI.button("Security", () => { })); + buttons_bottom.push(UI.button("Payments", () => { })); + } + buttons_bottom.push(UI.button(LANG("back"), () => { LOAD(SCENES.Browse); })); + + // Left Buttons + + // Right Buttons + if(data.handle === CONTEXT.Auth.handle) { + buttons_right.push(UI.button(LANG("logout"), () => { + BADGE_UPDATE(false); + MESSAGE_COMPOSE([ + PACK.u16(OpCode.Deauthenticate), + ]); + sessionStorage.clear(); + CONTEXT.Auth = null; + LOAD(SCENES.Browse); + })); + } + + UI.nav(buttons_top, buttons_bottom); + UI.mainnav(buttons_left, buttons_right); + + // Main Content + + history.pushState(null, "Dzura - About", "/u/" + data.handle); + return true; + } + }, + GameLoad:class{ constructor() { this.mode = null; @@ -1085,6 +1129,7 @@ function LOAD_URL() { case "guide": LOAD(SCENES.Guide); return; case "about": LOAD(SCENES.About); return; case "challenge": LOAD(SCENES.Challenge); return; + case "extras": LOAD(SCENES.Extras); return; case "game": { if(parts[2]) { diff --git a/www/js/ui.js b/www/js/ui.js index 14a1249..938750b 100644 --- a/www/js/ui.js +++ b/www/js/ui.js @@ -165,20 +165,17 @@ const UI = { top.push(UI.button(LANG("guide"), () => { LOAD(SCENES.Guide); }, page == "guide")); top.push(UI.button(LANG("about"), () => { LOAD(SCENES.About); }, page == "about")); - bottom.push(UI.button(LANG("extras"), () => { LOAD(SCENES.Extras) }, page == "extras")); - if(CONTEXT.Auth !== null) { - bottom.push(UI.button(CONTEXT.Auth.handle, () => { })); - bottom.push(UI.button(LANG("logout"), () => { - BADGE_UPDATE(false); - MESSAGE_COMPOSE([ - PACK.u16(OpCode.Deauthenticate), - ]); - sessionStorage.clear(); - CONTEXT.Auth = null; - LOAD_URL(); - })); + let callback_profile = function() { + LOAD(SCENES.Profile, { handle: this.handle }); + }; + callback_profile = callback_profile.bind({ + handle: CONTEXT.Auth.handle, + }); + + bottom.push(UI.button(CONTEXT.Auth.handle, callback_profile)); } + bottom.push(UI.button(LANG("extras"), () => { LOAD(SCENES.Extras) }, page == "extras")); UI.nav(top, bottom); }