Skip to content

Commit

Permalink
Added functionality to avatar overlay.
Browse files Browse the repository at this point in the history
Overlay changed from div to button.
Clicking on the overlay will bring you directly to the settings account tab.
Modified overlay background color.
  • Loading branch information
dscalzi committed Jun 21, 2018
1 parent a68abaf commit c0714ec
Show file tree
Hide file tree
Showing 5 changed files with 69 additions and 32 deletions.
9 changes: 7 additions & 2 deletions app/assets/css/launcher.css
Original file line number Diff line number Diff line change
Expand Up @@ -2308,16 +2308,21 @@ input:checked + .toggleSwitchSlider:before {
transition: 0.25s ease;
font-weight: bold;
letter-spacing: 2px;
background: linear-gradient(65deg, rgba(0, 0, 0, 0.4), rgba(136, 77, 77, 0.4) 60%);
background-color: rgba(0, 0, 0, 0.35);
-webkit-user-select: none;
border: none;
cursor: pointer;
width: 100%;
height: 100%;
border-radius: 50%;
}
#avatarOverlay:hover {
#avatarOverlay:hover,
#avatarOverlay:focus {
opacity: 1;
}
#avatarOverlay:active {
background-color: rgba(0, 0, 0, 0.45);
}

/* User profile name text. */
#user_text {
Expand Down
8 changes: 8 additions & 0 deletions app/assets/js/scripts/landing.js
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,14 @@ document.getElementById('settingsMediaButton').onclick = (e) => {
switchView(getCurrentView(), VIEWS.settings)
}

// Bind avatar overlay button.
document.getElementById('avatarOverlay').onclick = (e) => {
prepareSettings()
switchView(getCurrentView(), VIEWS.settings, 500, 500, () => {
settingsNavItemListener(document.getElementById('settingsNavAccount'), false)
})
}

// Bind selected account
function updateSelectedAccount(authUser){
let username = 'No Account Selected'
Expand Down
80 changes: 52 additions & 28 deletions app/assets/js/scripts/settings.js
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ function saveSettingsValues(){
})
}

let selectedTab = 'settingsTabAccount'
let selectedSettingsTab = 'settingsTabAccount'

/**
* Modify the settings container UI when the scroll threshold reaches
Expand All @@ -162,38 +162,62 @@ function settingsTabScrollListener(e){
function setupSettingsTabs(){
Array.from(document.getElementsByClassName('settingsNavItem')).map((val) => {
if(val.hasAttribute('rSc')){
val.onclick = (e) => {
if(val.hasAttribute('selected')){
return
}
const navItems = document.getElementsByClassName('settingsNavItem')
for(let i=0; i<navItems.length; i++){
if(navItems[i].hasAttribute('selected')){
navItems[i].removeAttribute('selected')
}
}
val.setAttribute('selected', '')
let prevTab = selectedTab
selectedTab = val.getAttribute('rSc')

document.getElementById(prevTab).onscroll = null
document.getElementById(selectedTab).onscroll = settingsTabScrollListener

$(`#${prevTab}`).fadeOut(250, () => {
$(`#${selectedTab}`).fadeIn({
duration: 250,
start: () => {
settingsTabScrollListener({
target: document.getElementById(selectedTab)
})
}
})
})
val.onclick = () => {
settingsNavItemListener(val)
}
}
})
}

/**
* Settings nav item onclick lisener. Function is exposed so that
* other UI elements can quickly toggle to a certain tab from other views.
*
* @param {Element} ele The nav item which has been clicked.
* @param {boolean} fade Optional. True to fade transition.
*/
function settingsNavItemListener(ele, fade = true){
if(ele.hasAttribute('selected')){
return
}
const navItems = document.getElementsByClassName('settingsNavItem')
for(let i=0; i<navItems.length; i++){
if(navItems[i].hasAttribute('selected')){
navItems[i].removeAttribute('selected')
}
}
ele.setAttribute('selected', '')
let prevTab = selectedSettingsTab
selectedSettingsTab = ele.getAttribute('rSc')

document.getElementById(prevTab).onscroll = null
document.getElementById(selectedSettingsTab).onscroll = settingsTabScrollListener

if(fade){
$(`#${prevTab}`).fadeOut(250, () => {
$(`#${selectedSettingsTab}`).fadeIn({
duration: 250,
start: () => {
settingsTabScrollListener({
target: document.getElementById(selectedSettingsTab)
})
}
})
})
} else {
$(`#${prevTab}`).hide(0, () => {
$(`#${selectedSettingsTab}`).show({
duration: 0,
start: () => {
settingsTabScrollListener({
target: document.getElementById(selectedSettingsTab)
})
}
})
})
}
}

const settingsNavDone = document.getElementById('settingsNavDone')

/**
Expand Down
2 changes: 1 addition & 1 deletion app/landing.ejs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
<div id="user_content">
<span id="user_text">Username</span>
<div id="avatarContainer">
<div id="avatarOverlay">Edit</div>
<button id="avatarOverlay">Edit</button>
</div>
</div>
<div id="mediaContent">
Expand Down
2 changes: 1 addition & 1 deletion app/settings.ejs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
</div>
<div id="settingsNavItemsContainer">
<div id="settingsNavItemsContent">
<button class="settingsNavItem" rSc="settingsTabAccount" selected>Account</button>
<button class="settingsNavItem" rSc="settingsTabAccount" id="settingsNavAccount" selected>Account</button>
<button class="settingsNavItem" rSc="settingsTabMinecraft">Minecraft</button>
<button class="settingsNavItem" rSc="settingsTabMods">Mods</button>
<button class="settingsNavItem" rSc="settingsTabJava">Java</button>
Expand Down

0 comments on commit c0714ec

Please sign in to comment.