From 3db72b0385f843405ff06d134e700967eb5eb90f Mon Sep 17 00:00:00 2001 From: Farhad Jay Date: Mon, 16 Feb 2026 12:20:32 -0800 Subject: [PATCH 1/2] Extract auto quality to a const --- src/controls/settings/useQualitySelector.js | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/src/controls/settings/useQualitySelector.js b/src/controls/settings/useQualitySelector.js index 646a1f7..334efdb 100644 --- a/src/controls/settings/useQualitySelector.js +++ b/src/controls/settings/useQualitySelector.js @@ -1,12 +1,11 @@ import { useState, useEffect, useCallback } from "react"; import { usePreferences } from "../usePreferences.js"; +const AUTO_QUALITY = { label: "Auto", value: "auto" }; + export function useQualitySelector(core) { const { savedQuality, setSavedQuality } = usePreferences(); - const [selectedQuality, setSelectedQuality] = useState({ - label: "Auto", - value: "auto", - }); + const [selectedQuality, setSelectedQuality] = useState(AUTO_QUALITY); const [qualities, setQualities] = useState([]); const handleQualityChange = useCallback( @@ -16,9 +15,7 @@ export function useQualitySelector(core) { } const option = - value === "auto" - ? { label: "Auto", value: "auto" } - : { label: value, value: value }; + value === "auto" ? AUTO_QUALITY : { label: value, value: value }; setSelectedQuality(option); @@ -78,7 +75,7 @@ export function useQualitySelector(core) { }, [qualities, savedQuality, handleQualityChange]); const qualityOptions = [ - { value: "auto", label: "Auto" }, + AUTO_QUALITY, ...qualities.map((q) => ({ value: q.name, label: q.name })), ]; From 4ddd00a7591a3e54d2f5f9911deb304a48c43ea0 Mon Sep 17 00:00:00 2001 From: Farhad Jay Date: Mon, 16 Feb 2026 13:51:40 -0800 Subject: [PATCH 2/2] Maintain user's selected quality after unpausing --- src/controls/settings/useQualitySelector.js | 22 ++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/src/controls/settings/useQualitySelector.js b/src/controls/settings/useQualitySelector.js index 334efdb..dd317be 100644 --- a/src/controls/settings/useQualitySelector.js +++ b/src/controls/settings/useQualitySelector.js @@ -41,23 +41,35 @@ export function useQualitySelector(core) { useEffect(() => { const handler = (event) => { - const arg = event.data.arg; - if (arg?.key !== "qualities") { + const { type, arg } = event.data; + + if (arg?.key === "qualities") { + if (arg.value?.length) { + setQualities(arg.value); + } return; } - if (!arg.value.length) { + if (!savedQuality) { return; } - setQualities(arg.value); + if (type === 12 && arg?.key === "autoQualityMode") { + const shouldBeAuto = savedQuality === "auto"; + if (arg.value !== shouldBeAuto) { + console.debug( + `[Kickstiny] Enforcing auto quality mode ${shouldBeAuto} (player changed to ${arg.value})`, + ); + handleQualityChange(savedQuality); + } + } }; core.worker.addEventListener("message", handler); return () => { core.worker.removeEventListener("message", handler); }; - }, [core]); + }, [core, savedQuality, handleQualityChange]); useEffect(() => { if (!savedQuality || !qualities.length) {