itube-specs 0.0.833 → 0.0.834
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/player/menu.vue +15 -2
- package/package.json +1 -1
|
@@ -52,8 +52,8 @@
|
|
|
52
52
|
>
|
|
53
53
|
<span class="player-menu__label">{{ entry.label }}</span>
|
|
54
54
|
<UiToggle
|
|
55
|
-
:model-value="entry.toggle.value"
|
|
56
|
-
@update:model-value="entry
|
|
55
|
+
:model-value="toggleOverrides[entry.key] ?? entry.toggle.value"
|
|
56
|
+
@update:model-value="setToggle(entry, !!$event)"
|
|
57
57
|
/>
|
|
58
58
|
</div>
|
|
59
59
|
<button
|
|
@@ -188,10 +188,23 @@ const open = defineModel<boolean>('open', { required: true });
|
|
|
188
188
|
// Стек дрилла «Настройки → опция». Сбрасываем на каждый новый запрос (плеер эмитит
|
|
189
189
|
// menurequest на каждое нажатие кнопки — открываем корень меню заново).
|
|
190
190
|
const drill = shallowRef<Drill | null>(null);
|
|
191
|
+
|
|
192
|
+
// Плеер отдаёт toggle.value разовым снимком и НЕ переэмитит menurequest на
|
|
193
|
+
// переключение — держим локальный оверрайд, чтобы тумблер сразу двигался.
|
|
194
|
+
// Сбрасываем на каждый новый запрос (свежие значения из плеера).
|
|
195
|
+
const toggleOverrides = reactive<Record<string, boolean>>({});
|
|
196
|
+
|
|
191
197
|
watch(() => props.request, () => {
|
|
192
198
|
drill.value = null;
|
|
199
|
+
for (const key in toggleOverrides) delete toggleOverrides[key];
|
|
193
200
|
});
|
|
194
201
|
|
|
202
|
+
function setToggle(entry: SettingsEntry, on: boolean): void {
|
|
203
|
+
if (!entry.toggle) return;
|
|
204
|
+
entry.toggle.set(on);
|
|
205
|
+
toggleOverrides[entry.key] = on;
|
|
206
|
+
}
|
|
207
|
+
|
|
195
208
|
// select у плеера сам делает setRate/seek/play и шлёт свои события — руками ничего не
|
|
196
209
|
// дёргаем, просто закрываем шторку.
|
|
197
210
|
function pick(select: (value: string) => void, value: string): void {
|