import React, { FC, Suspense, SuspenseProps, useState } from 'react' import { useDevice } from '../../sdk/media/useDevice' import { useIdleEffect } from '../../sdk/useIdleEffect' type Device = ReturnType interface Props extends SuspenseProps { device: Device } const SuspenseDevice: FC = ({ device: targetDevice, fallback, children, }) => { const currentDevice = useDevice() const [device, setDevice] = useState(null) useIdleEffect(() => { setDevice(currentDevice) }, [currentDevice]) if (targetDevice !== device) { return <>{fallback} } return {children} } export default SuspenseDevice