Files
web/packages/design-system/lib/components/VideoPlayer/useVideoDimensions.ts
Rasmus Langvad d0546926a9 Merged in fix/3697-prettier-configs (pull request #3396)
fix(SW-3691): Setup one prettier config for whole repo

* Setup prettierrc in root and remove other configs


Approved-by: Joakim Jäderberg
Approved-by: Linus Flood
2026-01-07 12:45:50 +00:00

40 lines
964 B
TypeScript

import { useRef, useState } from "react"
/**
* Hook to measure container width for optimizing poster image sizes.
* Captures the container width when video metadata loads to pass to Image component.
*/
export function useVideoDimensions() {
const containerRef = useRef<HTMLDivElement>(null)
const [containerWidth, setContainerWidth] = useState<number | null>(null)
const [hasError, setHasError] = useState(false)
function handleMetadataLoaded() {
const container = containerRef.current
if (!container || containerWidth) {
return
}
setContainerWidth(container.getBoundingClientRect().width)
}
function handleError() {
setHasError(true)
const container = containerRef.current
if (!container || containerWidth) {
return
}
setContainerWidth(container.getBoundingClientRect().width)
}
return {
containerRef,
handleMetadataLoaded,
containerWidth,
handleError,
hasError,
}
}