DocsCloud UI HooksuseFullscreen

useFullscreen

Enter/exit fullscreen mode for an element.

Import

import { useFullscreen } from '@tidbcloud/uikit'

Usage

useFullscreen allows entering/exiting fullscreen for a given element using the Fullscreen API. By default, if you don’t provide ref, the hook will target document.documentElement.

import { Button } from '@tidbcloud/uikit'
import { useFullscreen } from '@tidbcloud/uikit'
 
function Demo() {
  const { toggle, fullscreen } = useFullscreen()
 
  return (
    <Button onClick={toggle} color={fullscreen ? 'red' : 'blue'}>
      {fullscreen ? 'Exit Fullscreen' : 'Enter Fullscreen'}
    </Button>
  )
}

Custom Target Element

The hook returns an optional ref function that can be passed to an element to act as root:

import { Button, Image, Stack } from '@tidbcloud/uikit'
import { useFullscreen } from '@tidbcloud/uikit'
 
function Demo() {
  const { ref, toggle, fullscreen } = useFullscreen()
 
  return (
    <Stack>
      <Image ref={ref} src="https://example.com/image.jpg" alt="Toggle fullscreen" />
      <Button onClick={toggle}>{fullscreen ? 'Exit' : 'View fullscreen'}</Button>
    </Stack>
  )
}

Definition

interface UseFullscreenReturnValue<T extends HTMLElement = any> {
  ref: React.RefCallback<T | null>
  toggle: () => Promise<void>
  fullscreen: boolean
}
 
function useFullscreen<T extends HTMLElement = any>(): UseFullscreenReturnValue<T>