mirror of
https://github.com/transloadit/uppy.git
synced 2026-07-17 16:50:22 +00:00
45 lines
1 KiB
TypeScript
45 lines
1 KiB
TypeScript
import { useWebcam } from '@uppy/react'
|
|
import { useEffect } from 'react'
|
|
import MediaCapture from './MediaCapture.tsx'
|
|
|
|
export interface WebcamProps {
|
|
close: () => void
|
|
}
|
|
|
|
export function Webcam({ close }: WebcamProps) {
|
|
const {
|
|
start,
|
|
stop,
|
|
getVideoProps,
|
|
getSnapshotButtonProps,
|
|
getRecordButtonProps,
|
|
getStopRecordingButtonProps,
|
|
getSubmitButtonProps,
|
|
getDiscardButtonProps,
|
|
state,
|
|
} = useWebcam({ onSubmit: close })
|
|
|
|
useEffect(() => {
|
|
start()
|
|
return () => {
|
|
stop()
|
|
}
|
|
}, [start, stop])
|
|
|
|
return (
|
|
<MediaCapture
|
|
title="Camera"
|
|
close={close}
|
|
getVideoProps={getVideoProps}
|
|
mediaError={state.cameraError}
|
|
getPrimaryActionButtonProps={getSnapshotButtonProps}
|
|
primaryActionButtonLabel="Snapshot"
|
|
getRecordButtonProps={getRecordButtonProps}
|
|
getStopRecordingButtonProps={getStopRecordingButtonProps}
|
|
getSubmitButtonProps={getSubmitButtonProps}
|
|
getDiscardButtonProps={getDiscardButtonProps}
|
|
/>
|
|
)
|
|
}
|
|
|
|
export default Webcam
|