diff --git a/packages/vidstack/src/elements/define/menus/speed-radio-group-element.ts b/packages/vidstack/src/elements/define/menus/speed-radio-group-element.ts index ff0f67580..a5831e2a6 100644 --- a/packages/vidstack/src/elements/define/menus/speed-radio-group-element.ts +++ b/packages/vidstack/src/elements/define/menus/speed-radio-group-element.ts @@ -25,7 +25,14 @@ import { renderMenuItemsTemplate } from './_template'; export class MediaSpeedRadioGroupElement extends Host(HTMLElement, SpeedRadioGroup) { static tagName = 'media-speed-radio-group'; + #connectedRanOnce: Boolean = false; + protected onConnect(): void { + // onConnect can run more than once (eg, Phoenix LiveView after navigation) + if (this.#connectedRanOnce) return; + + this.#connectedRanOnce = true; + renderMenuItemsTemplate(this); } }