diff options
author | rohan09-raj <[email protected]> | 2022-08-08 13:09:01 +0530 |
---|---|---|
committer | rohan09-raj <[email protected]> | 2022-08-08 13:09:01 +0530 |
commit | 1b48cc3dc624b85b8e22e475769453e767d5a36b (patch) | |
tree | 86871e77983cf9eb8d6f66f24968afd461950039 /client/src | |
parent | 9e381861ad817106b7ae74b1976e016fd538ac0a (diff) |
integrated react webcam
Diffstat (limited to 'client/src')
-rw-r--r-- | client/src/pages/Enrollment/PhotoCapture/PhotoCapture.jsx | 46 | ||||
-rw-r--r-- | client/src/pages/Enrollment/PhotoCapture/PhotoCapture.module.css | 8 |
2 files changed, 45 insertions, 9 deletions
diff --git a/client/src/pages/Enrollment/PhotoCapture/PhotoCapture.jsx b/client/src/pages/Enrollment/PhotoCapture/PhotoCapture.jsx index 0b30848..c4960c2 100644 --- a/client/src/pages/Enrollment/PhotoCapture/PhotoCapture.jsx +++ b/client/src/pages/Enrollment/PhotoCapture/PhotoCapture.jsx @@ -1,17 +1,44 @@ -import React from 'react' +/* eslint-disable multiline-ternary */ +import React, { useState } from 'react' +import Webcam from 'react-webcam' +import { useNavigate } from 'react-router-dom' import Header from '../../../components/Header/Header' -import CardScanner from '../../../components/Card/CardScanner' +import SubmitButton from '../../../components/SubmitButton/SubmitButton' import styles from './PhotoCapture.module.css' import { Button, Grid, Typography } from '@mui/material' const PhotoCapture = () => { + const [photo, setPhoto] = useState() + + const navigate = useNavigate() + + const webcamRef = React.useRef(null) + + const capture = React.useCallback(() => { + const imageSrc = webcamRef.current.getScreenshot() + setPhoto(imageSrc) + }) + return ( <> <Header subheading="Enrollment" /> <div className={styles.card__container}> - <CardScanner - image={`${process.env.PUBLIC_URL}/assets/images/capture.svg`} - /> + {photo === '' ? ( + <Webcam + audio={false} + height={300} + ref={webcamRef} + screenshotFormat="image/jpeg" + width={500} + videoConstraints={{ + height: 300, + width: 500, + facingMode: 'user' + }} + /> + ) : ( + <img src={photo} /> + )} </div> <Grid container columnSpacing={10} justifyContent="center"> <Grid item> @@ -20,6 +47,10 @@ const PhotoCapture = () => { size="large" type="submit" variant="contained" + onClick={(e) => { + e.preventDefault() + capture() + }} > Capture </Button> @@ -30,6 +61,10 @@ const PhotoCapture = () => { size="large" type="submit" variant="contained" + onClick={(e) => { + e.preventDefault() + setPhoto('') + }} > Reset </Button> @@ -45,6 +80,7 @@ const PhotoCapture = () => { </Typography> </Grid> </div> + <SubmitButton onClick={() => navigate('/enrollment/documents')} /> </> ) } diff --git a/client/src/pages/Enrollment/PhotoCapture/PhotoCapture.module.css b/client/src/pages/Enrollment/PhotoCapture/PhotoCapture.module.css index ec59f61..a1ff9c0 100644 --- a/client/src/pages/Enrollment/PhotoCapture/PhotoCapture.module.css +++ b/client/src/pages/Enrollment/PhotoCapture/PhotoCapture.module.css @@ -1,5 +1,5 @@ .card__container { - display: flex; - justify-content: center; - } -
\ No newline at end of file + display: flex; + justify-content: center; + margin: 10px; +} |