aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPinapelz <yukais@pinapelz.com>2026-04-16 20:45:20 -0700
committerPinapelz <yukais@pinapelz.com>2026-04-16 20:45:20 -0700
commitc638c899c097e1fb9c7f24cecad4afa1ca85e01a (patch)
tree5fd6fb885b8485055d72b1a9a2aa9364123245e1 /src
parentcc95d5cebbd743cd8abcc0bcd62a40f82faebebe (diff)
fix: allow offset to be negative in player control panel
Diffstat (limited to 'src')
-rw-r--r--src/app/player/page.tsx20
1 files changed, 18 insertions, 2 deletions
diff --git a/src/app/player/page.tsx b/src/app/player/page.tsx
index 2ac6d50..0806c3b 100644
--- a/src/app/player/page.tsx
+++ b/src/app/player/page.tsx
@@ -63,6 +63,7 @@ function KaraokePage() {
const supplementAudioRef = useRef<HTMLAudioElement>(null);
const [captionsText, setCaptionsText] = useState<string>("");
const [offset, setOffset] = useState<number>(0);
+ const [offsetInput, setOffsetInput] = useState<string>("0");
const [dragOver, setDragOver] = useState<boolean>(false);
const [statusText, setStatusText] = useState<string>("No video selected");
const [balance, setBalance] = useState<number>(0);
@@ -94,6 +95,10 @@ function KaraokePage() {
localStorage.setItem("fontColor", fontColor);
}, [fontColor]);
+ useEffect(() => {
+ setOffsetInput(String(offset));
+ }, [offset]);
+
const handleResizeMouseDown = useCallback(
(e: React.MouseEvent<HTMLDivElement>) => {
e.preventDefault();
@@ -567,8 +572,19 @@ function KaraokePage() {
<PanelFieldLabel>Offset</PanelFieldLabel>
<PanelNumberInput
type="number"
- value={offset}
- onChange={(e) => setOffset(Number(e.target.value))}
+ value={offsetInput}
+ onChange={(e) => {
+ const next = e.target.value;
+ if (next === "" || next === "-" || next === "+") {
+ setOffsetInput(next);
+ return;
+ }
+ const parsed = Number(next);
+ if (!Number.isNaN(parsed)) {
+ setOffset(parsed);
+ setOffsetInput(next);
+ }
+ }}
step="25"
/>
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage