11import { html } from 'lit-html' ;
2- import { computed , effect , onDispose } from 'maverick.js' ;
2+ import { effect , onDispose } from 'maverick.js' ;
33import { Host } from 'maverick.js/element' ;
44import { setAttribute } from 'maverick.js/std' ;
55
66import { DefaultVideoLayout } from '../../../../components/layouts/default-layout' ;
7- import { $computed , $signal } from '../../../lit/directives/signal' ;
7+ import type { MediaContext } from '../../../../core' ;
8+ import { useMediaContext } from '../../../../core/api/media-context' ;
9+ import { $computed } from '../../../lit/directives/signal' ;
810import { LitElement , type LitRenderer } from '../../../lit/lit-element' ;
911import { SlotManager } from '../slot-manager' ;
1012import { DefaultLayoutIconsLoader } from './icons-loader' ;
1113import { createMenuContainer } from './shared-layout' ;
12- import { DefaultVideoLayoutLarge , DefaultVideoLayoutSmall } from './video-layout' ;
14+ import {
15+ DefaultBufferingIndicator ,
16+ DefaultVideoLayoutLarge ,
17+ DefaultVideoLayoutSmall ,
18+ } from './video-layout' ;
1319
1420/**
1521 * @docs {@link https://www.vidstack.io/docs/player/core-concepts/layouts/default }
@@ -27,7 +33,11 @@ export class MediaVideoLayoutElement
2733{
2834 static tagName = 'media-video-layout' ;
2935
36+ private _media ! : MediaContext ;
37+
3038 protected onSetup ( ) {
39+ this . _media = useMediaContext ( ) ;
40+
3141 this . classList . add ( 'vds-video-layout' ) ;
3242 this . menuContainer = createMenuContainer ( 'vds-video-layout' ) ;
3343
@@ -50,8 +60,11 @@ export class MediaVideoLayoutElement
5060 }
5161
5262 private _render ( ) {
63+ const { streamType } = this . _media . $state ;
5364 return this . isMatch
54- ? this . isSmallLayout
65+ ? streamType ( ) === 'unknown'
66+ ? DefaultBufferingIndicator ( )
67+ : this . isSmallLayout
5568 ? DefaultVideoLayoutSmall ( )
5669 : DefaultVideoLayoutLarge ( )
5770 : null ;
0 commit comments