diff --git a/packages/react/src/ui/buffering-indicator/buffering-indicator.tsx b/packages/react/src/ui/buffering-indicator/buffering-indicator.tsx index c826baa2..6708c014 100644 --- a/packages/react/src/ui/buffering-indicator/buffering-indicator.tsx +++ b/packages/react/src/ui/buffering-indicator/buffering-indicator.tsx @@ -46,6 +46,7 @@ export const BufferingIndicator = forwardRef(function BufferingIndicator( const state = useSyncExternalStore( (cb) => core.state.subscribe(cb), + () => core.state.current, () => core.state.current ); diff --git a/site/src/components/docs/demos/buffering-indicator/html/css/BasicUsage.astro b/site/src/components/docs/demos/buffering-indicator/html/css/BasicUsage.astro new file mode 100644 index 00000000..e7e95f49 --- /dev/null +++ b/site/src/components/docs/demos/buffering-indicator/html/css/BasicUsage.astro @@ -0,0 +1,10 @@ +--- +import HtmlDemo from '@/components/docs/demos/HtmlDemo.astro'; +import html from './BasicUsage.html?raw'; +import './BasicUsage.css'; +--- + + + diff --git a/site/src/components/docs/demos/buffering-indicator/html/css/BasicUsage.css b/site/src/components/docs/demos/buffering-indicator/html/css/BasicUsage.css new file mode 100644 index 00000000..da2236a6 --- /dev/null +++ b/site/src/components/docs/demos/buffering-indicator/html/css/BasicUsage.css @@ -0,0 +1,39 @@ +.buffering-indicator-basic { + display: flex; + width: 100%; + height: 100%; + position: relative; +} + +.buffering-indicator-basic__overlay { + position: absolute; + inset: 0; + display: flex; + align-items: center; + justify-content: center; + pointer-events: none; + z-index: 30; +} + +.buffering-indicator-basic__overlay .buffering-indicator-basic__spinner { + display: none; +} + +.buffering-indicator-basic__overlay[data-visible] .buffering-indicator-basic__spinner { + display: block; +} + +.buffering-indicator-basic__spinner { + width: 48px; + height: 48px; + border: 4px solid rgba(255, 255, 255, 0.3); + border-top-color: white; + border-radius: 50%; + animation: buffering-spin 0.8s linear infinite; +} + +@keyframes buffering-spin { + to { + transform: rotate(360deg); + } +} diff --git a/site/src/components/docs/demos/buffering-indicator/html/css/BasicUsage.html b/site/src/components/docs/demos/buffering-indicator/html/css/BasicUsage.html new file mode 100644 index 00000000..3e8e7265 --- /dev/null +++ b/site/src/components/docs/demos/buffering-indicator/html/css/BasicUsage.html @@ -0,0 +1,12 @@ + + + +
+
+
diff --git a/site/src/components/docs/demos/buffering-indicator/html/css/BasicUsage.ts b/site/src/components/docs/demos/buffering-indicator/html/css/BasicUsage.ts new file mode 100644 index 00000000..c28dcd98 --- /dev/null +++ b/site/src/components/docs/demos/buffering-indicator/html/css/BasicUsage.ts @@ -0,0 +1,2 @@ +import '@videojs/html/video/player'; +import '@videojs/html/ui/buffering-indicator'; diff --git a/site/src/components/docs/demos/buffering-indicator/react/css/BasicUsage.css b/site/src/components/docs/demos/buffering-indicator/react/css/BasicUsage.css new file mode 100644 index 00000000..da2236a6 --- /dev/null +++ b/site/src/components/docs/demos/buffering-indicator/react/css/BasicUsage.css @@ -0,0 +1,39 @@ +.buffering-indicator-basic { + display: flex; + width: 100%; + height: 100%; + position: relative; +} + +.buffering-indicator-basic__overlay { + position: absolute; + inset: 0; + display: flex; + align-items: center; + justify-content: center; + pointer-events: none; + z-index: 30; +} + +.buffering-indicator-basic__overlay .buffering-indicator-basic__spinner { + display: none; +} + +.buffering-indicator-basic__overlay[data-visible] .buffering-indicator-basic__spinner { + display: block; +} + +.buffering-indicator-basic__spinner { + width: 48px; + height: 48px; + border: 4px solid rgba(255, 255, 255, 0.3); + border-top-color: white; + border-radius: 50%; + animation: buffering-spin 0.8s linear infinite; +} + +@keyframes buffering-spin { + to { + transform: rotate(360deg); + } +} diff --git a/site/src/components/docs/demos/buffering-indicator/react/css/BasicUsage.tsx b/site/src/components/docs/demos/buffering-indicator/react/css/BasicUsage.tsx new file mode 100644 index 00000000..bd0baba9 --- /dev/null +++ b/site/src/components/docs/demos/buffering-indicator/react/css/BasicUsage.tsx @@ -0,0 +1,27 @@ +import { BufferingIndicator, createPlayer, features, Video } from '@videojs/react'; + +import './BasicUsage.css'; + +const Player = createPlayer({ features: [...features.video] }); + +export default function BasicUsage() { + return ( + + +