48 lines
1.0 KiB
JavaScript
48 lines
1.0 KiB
JavaScript
|
import Downloads from './downloads.js'
|
||
|
|
||
|
const QualityModal = {
|
||
|
// Defaults
|
||
|
open: false,
|
||
|
url: ''
|
||
|
}
|
||
|
|
||
|
function init() {
|
||
|
QualityModal.element = document.getElementById('modal_quality')
|
||
|
|
||
|
linkListeners()
|
||
|
}
|
||
|
|
||
|
function open(link) {
|
||
|
QualityModal.url = link
|
||
|
QualityModal.element.style.display = 'block'
|
||
|
QualityModal.element.classList.add('animated', 'fadeIn')
|
||
|
}
|
||
|
|
||
|
function linkListeners() {
|
||
|
QualityModal.element.addEventListener('click', handleClick)
|
||
|
QualityModal.element.addEventListener('webkitAnimationEnd', handleAnimationEnd)
|
||
|
}
|
||
|
|
||
|
function handleClick(event) {
|
||
|
QualityModal.element.classList.add('animated', 'fadeOut')
|
||
|
|
||
|
if (!event.target.matches('.quality-button')) {
|
||
|
return
|
||
|
}
|
||
|
|
||
|
let bitrate = event.target.dataset.qualityValue
|
||
|
|
||
|
Downloads.sendAddToQueue(QualityModal.url, bitrate)
|
||
|
}
|
||
|
|
||
|
function handleAnimationEnd() {
|
||
|
QualityModal.element.classList.remove('animated', QualityModal.open ? 'fadeOut' : 'fadeIn')
|
||
|
QualityModal.element.style.display = QualityModal.open ? 'none' : 'block'
|
||
|
QualityModal.open = !QualityModal.open
|
||
|
}
|
||
|
|
||
|
export default {
|
||
|
init,
|
||
|
open
|
||
|
}
|