From 84b7b0774a1fb655f4cb7f6a87e589097a661685 Mon Sep 17 00:00:00 2001 From: Darius Cepulis Date: Fri, 13 Feb 2026 09:24:04 -0600 Subject: [PATCH] feat(site): add buffering indicator api reference closes #532 closes #533 --- .../buffering-indicator.tsx | 1 + .../html/css/BasicUsage.astro | 10 +++ .../html/css/BasicUsage.css | 39 +++++++++++ .../html/css/BasicUsage.html | 12 ++++ .../html/css/BasicUsage.ts | 2 + .../react/css/BasicUsage.css | 39 +++++++++++ .../react/css/BasicUsage.tsx | 27 ++++++++ .../docs/reference/buffering-indicator.mdx | 65 +++++++++++++++++++ site/src/docs.config.ts | 1 + 9 files changed, 196 insertions(+) create mode 100644 site/src/components/docs/demos/buffering-indicator/html/css/BasicUsage.astro create mode 100644 site/src/components/docs/demos/buffering-indicator/html/css/BasicUsage.css create mode 100644 site/src/components/docs/demos/buffering-indicator/html/css/BasicUsage.html create mode 100644 site/src/components/docs/demos/buffering-indicator/html/css/BasicUsage.ts create mode 100644 site/src/components/docs/demos/buffering-indicator/react/css/BasicUsage.css create mode 100644 site/src/components/docs/demos/buffering-indicator/react/css/BasicUsage.tsx create mode 100644 site/src/content/docs/reference/buffering-indicator.mdx 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 ( + + +