fix(plex): the player's stage follows the tablet toolbar, and its bands stay out of a double-tap
- The stage is sized in dvh (80dvh × 1.25 windowed, 100dvh fullscreen); the viewport-units contract no longer exempts the player. - A tap that reveals the bands keeps them pointer-events-none for the double-tap window, so the second tap of a skip at the bottom is not a seek. - An arrow on the volume slider wakes the bands, and a keyboard focus in a band holds them (`holdOnFocus`, `:focus-visible` only, so a clicked button does not pin the bar). - Next stays mounted (disabled) while the next episode's detail loads, keeping the focus.
This commit is contained in:
@@ -18,14 +18,9 @@ function sources(): Array<[string, string]> {
|
||||
return walk(new URL("../", import.meta.url), "");
|
||||
}
|
||||
|
||||
// The Plex player's stage is sized with the 80vh × 1.25 zoom trick. It changes in S3f, where the
|
||||
// players are re-fitted for touch and verified by playing them on the tablet.
|
||||
const PENDING_S3F = new Set(["components/PlexPlayer.tsx"]);
|
||||
|
||||
describe("viewport units", () => {
|
||||
it("are dynamic: no h-screen / min-h-screen, no static vh", () => {
|
||||
const hits = sources()
|
||||
.filter(([name]) => !PENDING_S3F.has(name))
|
||||
.filter(([, src]) => /\b(?:min-|max-)?h-screen\b|\d(?:\.\d+)?vh\b/.test(src))
|
||||
.map(([name]) => name);
|
||||
expect(hits).toEqual([]);
|
||||
|
||||
Reference in New Issue
Block a user