Refactor Setting class to update range values and append items

This commit is contained in:
Harvey Zack committed 2024-10-20 14:46:40 +08:00
1 parent d678378119
commit fbfee926ca
7 files changed
+58 -18

No files matched your search

@@ -15,7 +15,7 @@ function uniqBy(array, property) {
export default function artplayerPluginHlsControl(option = {}) {
return (art) => {
const { $video } = art.template;
const { errorHandle, query } = art.constructor.utils;
const { errorHandle, query, queryAll, inverseClass } = art.constructor.utils;
function updateQuality(hls) {
if (!hls.levels.length) return;
@@ -61,9 +61,12 @@ export default function artplayerPluginHlsControl(option = {}) {
selector: selector,
onSelect: onSelect,
mounted: ($control) => {
const $value = query('.art-selector-value', $control);
art.on('artplayerPluginHlsControl:quality', (item) => {
const $value = query('.art-selector-value', $control);
const $items = queryAll('.art-selector-item', $control);
$value.innerHTML = item.html;
const $item = $items.find((element) => Number(element.dataset.value) === item.value);
inverseClass($item, 'art-current');
});
},
});
@@ -81,6 +84,14 @@ export default function artplayerPluginHlsControl(option = {}) {
mounted: (_, setting) => {
art.on('artplayerPluginHlsControl:quality', (item) => {
setting.tooltip = item.html;
const element = setting.selector.find(
(element) => Number(element.$item?.dataset?.value) === item.value,
);
if (element?.$item) {
inverseClass(element.$item, 'art-current');
}
});
},
});
@@ -125,9 +136,12 @@ export default function artplayerPluginHlsControl(option = {}) {
selector: selector,
onSelect: onSelect,
mounted: ($control) => {
const $value = query('.art-selector-value', $control);
art.on('artplayerPluginHlsControl:audio', (item) => {
const $value = query('.art-selector-value', $control);
const $items = queryAll('.art-selector-item', $control);
$value.innerHTML = item.html;
const $item = $items.find((element) => Number(element.dataset.value) === item.value);
inverseClass($item, 'art-current');
});
},
});
@@ -145,6 +159,12 @@ export default function artplayerPluginHlsControl(option = {}) {
mounted: (_, setting) => {
art.on('artplayerPluginHlsControl:audio', (item) => {
setting.tooltip = item.html;
const element = setting.selector.find(
(element) => Number(element.$item?.dataset?.value) === item.value,
);
if (element?.$item) {
inverseClass(element.$item, 'art-current');
}
});
},
});