mirror of
https://github.com/got-feedBack/feedBack.git
synced 2026-08-11 03:09:57 +00:00
fix(onboarding): calibration Tuner step no longer exposes the input-select overlay (#577)
Tester: "at the tune step, pressing the Tuner button starts a second wizard at the input-select step." Root cause is stacked full-screen overlays. During onboarding the input-setup flow runs as #input-setup-overlay (z-210) on top of the onboarding modal #v3-onboarding (z-200), and note_detect's Calibration Wizard (z-300) launches on top of that. When the player opens the Tuner, that wizard minimizes itself to transparent + pointer-events:none so the Tuner (z-1000) is usable — but the input-setup overlay underneath, still showing its "select your input" card, then shows through behind the floating tuner and reads as a second wizard. Two targeted hides so only the active surface is visible: - input_setup: hide #input-setup-overlay while launchCalibration runs; restore on its onDone/onCancel (one always fires on close), so the calibration wizard / tuner own the screen. - onboarding runInputSetup: hide #v3-onboarding for the whole input-setup phase (its own overlay replaces it visually); restore in finally before advancing to the calibration-challenge step. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
7399a2ac63
commit
a43e7b13be
@@ -163,10 +163,25 @@
|
||||
|
||||
host.querySelector('[data-is-cal]').addEventListener('click', () => {
|
||||
if (hasDetector) {
|
||||
// Hide our own full-screen overlay while note_detect's
|
||||
// Calibration Wizard runs on top. That wizard goes
|
||||
// transparent (pointer-events:none) when it minimizes to
|
||||
// expose the Tuner; if our overlay stayed up it would show
|
||||
// through — covering the tuner with the still-mounted
|
||||
// "select your input" card and looking like a second
|
||||
// wizard at the input step. Restore it on done/cancel
|
||||
// (one of which always fires when that wizard closes).
|
||||
const ov = document.getElementById('input-setup-overlay');
|
||||
const prevDisplay = ov ? ov.style.display : '';
|
||||
if (ov) ov.style.display = 'none';
|
||||
const restore = () => {
|
||||
const o = document.getElementById('input-setup-overlay');
|
||||
if (o) o.style.display = prevDisplay;
|
||||
};
|
||||
window.noteDetect.launchCalibration({
|
||||
instrument: inst,
|
||||
onDone: () => advance(inst, true),
|
||||
onCancel: () => { /* stay on this panel; user can skip or retry */ },
|
||||
onDone: () => { restore(); advance(inst, true); },
|
||||
onCancel: () => { restore(); /* stay on this panel; user can skip or retry */ },
|
||||
});
|
||||
} else {
|
||||
advance(inst, true);
|
||||
|
||||
Reference in New Issue
Block a user