Skip to content

Commit

Permalink
Merge pull request #38 from 0x96EA/feature/issue-34/keyboard_shortcuts
Browse files Browse the repository at this point in the history
Added some keyboard shortcuts
  • Loading branch information
aleganza committed Jan 24, 2024
2 parents af516a9 + 85e67d7 commit 9618ea0
Show file tree
Hide file tree
Showing 3 changed files with 78 additions and 17 deletions.
15 changes: 12 additions & 3 deletions src/modules/frontend/frontend.js
Original file line number Diff line number Diff line change
Expand Up @@ -1430,7 +1430,7 @@ module.exports = class Frontend {
*/
isAnimePageDisplayed() {
const animeId = document.querySelector('#persistent-data-common .persdata-anime-id').innerHTML
return document.getElementById(`anime-page-${animeId}`).style.display == 'flex'
return document.getElementById(`anime-page-${animeId}`)?.style.display == 'flex'
}

/**
Expand All @@ -1439,7 +1439,7 @@ module.exports = class Frontend {
* @returns true if the list editor page is displayed, false otherwise
*/
isListEditorDisplayed() {
return document.getElementById('list-editor-page').style.display == 'flex'
return document.getElementById('list-editor-page')?.style.display == 'flex'
}

/**
Expand All @@ -1448,7 +1448,16 @@ module.exports = class Frontend {
* @returns true if the settings page is displayed, false otherwise
*/
isSettingsPageDisplayed() {
return document.getElementById('settings-page').style.display == 'flex'
return document.getElementById('settings-page')?.style.display == 'flex'
}

/**
* Return if the video page is displayed or not
*
* @returns true if the video page is displayed, false otherwise
*/
isVideoPageDisplayed() {
return document.querySelector('.container')?.style.display == 'block'
}

/**
Expand Down
45 changes: 33 additions & 12 deletions src/scripts/eventListeners.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,18 +35,7 @@ frontend.enableFeaturedSectionScrollingButtons()
// pressing esc closes modal pages
document.addEventListener('keydown', (event) => {
if(event.code === 'Escape') {
if(frontend.isAnimePageDisplayed()
&& !frontend.isListEditorDisplayed()) {
frontend.closeAnimePage()
}

if(frontend.isListEditorDisplayed()) {
frontend.closeListEditorPage()
}

if(frontend.isSettingsPageDisplayed()) {
frontend.closeSettingsPage()
}
clearModalPages();
}
})

Expand Down Expand Up @@ -200,3 +189,35 @@ search_list.forEach(list => {
frontend.triggerAnimeModal(event)
})
})

/* --- NAVIGATION --- */
function clearModalPages() {
if(frontend.isAnimePageDisplayed() && !frontend.isListEditorDisplayed()) {
frontend.closeAnimePage()
}

if(frontend.isListEditorDisplayed()) {
frontend.closeListEditorPage()
}

if(frontend.isSettingsPageDisplayed()) {
frontend.closeSettingsPage()
}
}

document.addEventListener('keydown', (event) => {
if (!frontend.isVideoPageDisplayed()) {
switch(event.key) {
case '1': {
clearModalPages();
document.getElementById('nav-home').click();
break
}
case '2': {
clearModalPages();
document.getElementById('nav-search').click();
break
}
}
}
})
35 changes: 33 additions & 2 deletions src/scripts/videoScript.js
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,7 @@ mainVideo.addEventListener('timeupdate', () => {
}
})

document.addEventListener("keydown", (event) => {
document.addEventListener("keydown", async (event) => {
if (event.isComposing || event.keyCode === 229) {
return
}
Expand Down Expand Up @@ -218,6 +218,21 @@ document.addEventListener("keydown", (event) => {
break
}
}
switch(event.key) {
case 'f': {
toggleFullScreen()
break
}
case 'm': {
toggleMute()
break
}
case 'n': {
await video.nextEpisode()
updated = 0
break
}
}
}
})

Expand All @@ -238,4 +253,20 @@ function toggleFullScreen() {
container.classList.toggle("fullscreen")
fullScreenBtn.classList.replace("fa-expand", "fa-compress")
container.requestFullscreen()
}
}

function toggleMute() {
if (videoIsDisplayed) {
if(mainVideo.volume == 0) {
mainVideo.volume = volumeBtn.dataset.volume;
volumeSlider.value = volumeBtn.dataset.volume;
volumeBtn.setAttribute('data-volume', 0)
return volumeBtn.classList.replace("fa-volume-xmark", "fa-volume-high")
} else {
volumeBtn.setAttribute('data-volume', mainVideo.volume)
mainVideo.volume = 0;
volumeSlider.value = 0;
return volumeBtn.classList.replace("fa-volume-high", "fa-volume-xmark")
}
}
}

0 comments on commit 9618ea0

Please sign in to comment.