react-native-google-cast
Version:
React Native wrapper for the Google Cast SDK for iOS and Android
36 lines (31 loc) • 860 B
text/typescript
import { useEffect, useState } from 'react'
import Device from '../types/Device'
import useCastSession, { UseCastSessionOptions } from './useCastSession'
/**
* Hook that provides the currently connected {@link Device}.
*
* @returns current device, or `null` if there's no session connected
* @example
* ```js
* import { useCastDevice } from 'react-native-google-cast'
*
* function MyComponent() {
* const castDevice = useCastDevice()
*
* if (castDevice) {
* console.log(castDevice)
* }
* }
* ```
*/
export default function useCastDevice(
options?: UseCastSessionOptions
): Device | null {
const [device, setDevice] = useState<Device | null>(null)
const session = useCastSession(options)
useEffect(() => {
if (!session) setDevice(null)
else session.getCastDevice().then(setDevice)
}, [session])
return device
}