diff --git a/www/asset/icon.png b/www/asset/icon.png new file mode 100644 index 0000000..9d71288 Binary files /dev/null and b/www/asset/icon.png differ diff --git a/www/asset/icon.svg b/www/asset/icon.svg new file mode 100644 index 0000000..3d1793f --- /dev/null +++ b/www/asset/icon.svg @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + 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); }