buildmymcpserver/apps/web/components
Marco Sadjadi 05746e13e6
All checks were successful
Deploy to Production / deploy (push) Successful in 59s
fix(video): drop WebM source + load()-before-play() + open-in-tab fallback
Owner: "wird nicht richtig gestream hab browser daten gelöscht aber kann
[nicht]" — clearing the cache didn't help. Three things changed:

1. **Single MP4 source.** Chrome listed the WebM source first because
   we offered it first; on the owner's setup the VP9 decode appears to
   stall silently and Chrome does NOT fall back to MP4 — it parks the
   element at networkState=2/readyState=0 forever. Removing the WebM
   source forces Chrome onto the MP4 (Main profile / yuv420p / TV-range
   / faststart, 2.6 MB) which we've already verified plays correctly.

2. **.load() before .play() in togglePlay.** When the original autoplay
   was blocked before the source ever fetched, some Chrome builds leave
   the element in a "stuck unloaded" state where subsequent .play()
   calls inside a user gesture also no-op. Calling .load() first resets
   the resource-selection algorithm, then .play() fetches and plays.

3. **playFailed escape hatch.** If .play() still rejects even after
   .load() + user gesture (extension sandbox, hardware decoder
   failure), surface a small "your browser blocked playback — open
   the video directly" link to the raw MP4. The visitor isn't trapped
   staring at a poster.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 03:26:56 +02:00
..
particle-hero feat(video): v10 hero video with mute toggle — voice + bg music 2026-05-28 02:31:10 +02:00
ui feat(web): Next.js 15 shell — design tokens, landing, auth pages 2026-05-19 00:30:20 +02:00
code-block.tsx feat(web): Next.js 15 shell — design tokens, landing, auth pages 2026-05-19 00:30:20 +02:00
cookie-banner.tsx feat: Swiss-compliant launch — Impressum/AGB/Contact, support panel, DSG exports, cookie banner 2026-05-25 17:12:06 +02:00
country-picker.tsx fix(web): UserMenu + CountryPicker dropdowns frosted (Tailwind v4 bug) 2026-05-25 23:04:02 +02:00
docs-page.tsx feat(web): real 3-step wizard, settings, audit, docs, marketing pages 2026-05-19 18:20:31 +02:00
hero-animation.tsx feat(web): hero redesign — cycling step rotator + full-width video section 2026-05-27 12:05:28 +02:00
hero-step-rotator.tsx feat: particle cloud (no discrete dots) + geo-IP country preselect on login 2026-05-27 13:17:20 +02:00
hero-video.tsx fix(video): drop WebM source + load()-before-play() + open-in-tab fallback 2026-05-28 03:26:56 +02:00
input.tsx feat(web): Next.js 15 shell — design tokens, landing, auth pages 2026-05-19 00:30:20 +02:00
install-snippets.tsx feat(web): dashboard, wizard, server detail, WS build stream, install snippets 2026-05-19 00:32:53 +02:00
json-ld.tsx feat(web): full SEO stack — metadata, JSON-LD, sitemap, robots, OG image 2026-05-21 19:16:40 +02:00
logo.tsx feat(web): Next.js 15 shell — design tokens, landing, auth pages 2026-05-19 00:30:20 +02:00
marketing-auth-buttons.tsx feat(web): glow-pulse on primary CTAs + hero fills full first viewport 2026-05-27 12:20:25 +02:00
marketing-mobile-menu.tsx fix(web): mobile menu background via inline style (Tailwind v4 quirk) 2026-05-23 18:43:57 +02:00
mobile-action-bar.tsx feat(web): app-like mobile dashboard — bottom tab bar, minimal top 2026-05-25 23:15:44 +02:00
pulse.tsx feat(web): glow-pulse on primary CTAs + hero fills full first viewport 2026-05-27 12:20:25 +02:00
scroll-cue.tsx feat(web): restore tall hero + carousel slide + viewport-fixed scroll cue 2026-05-27 12:11:42 +02:00
static-code-block.tsx perf(web): server-only StaticCodeBlock for above-the-fold marketing 2026-05-26 23:30:41 +02:00
status-pill.tsx feat(web): Next.js 15 shell — design tokens, landing, auth pages 2026-05-19 00:30:20 +02:00
streaming-logs.tsx feat(web): dashboard, wizard, server detail, WS build stream, install snippets 2026-05-19 00:32:53 +02:00
user-menu.tsx fix(web): UserMenu + CountryPicker dropdowns frosted (Tailwind v4 bug) 2026-05-25 23:04:02 +02:00