19 lines
458 B
JavaScript
19 lines
458 B
JavaScript
|
|
import { useState, useEffect } from "react";
|
||
|
|
|
||
|
|
export default function useHasCamera() {
|
||
|
|
const [hasCamera, setHasCamera] = useState(null);
|
||
|
|
|
||
|
|
useEffect(() => {
|
||
|
|
async function detectCamera() {
|
||
|
|
try {
|
||
|
|
const devices = await navigator.mediaDevices.enumerateDevices();
|
||
|
|
setHasCamera(devices.some(d => d.kind === "videoinput"));
|
||
|
|
} catch {
|
||
|
|
setHasCamera(false);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
detectCamera();
|
||
|
|
}, []);
|
||
|
|
|
||
|
|
return hasCamera;
|
||
|
|
}
|