Skip to content

Commit

Permalink
fix(facedetector, livelocation tracking): default props pass in param…
Browse files Browse the repository at this point in the history
…s instead of using prop-types
  • Loading branch information
opensrc0 committed Jun 14, 2024
1 parent 2e5bed6 commit f0940ff
Show file tree
Hide file tree
Showing 7 changed files with 59 additions and 55 deletions.
48 changes: 23 additions & 25 deletions __app/component/FaceDetector/FaceDetector.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
/* eslint-disable no-inner-declarations */
import React, { useEffect, useState } from 'react';
import PropTypes from 'prop-types';
import { handleError, handleLoading } from '../services/handlerService';
import { handleSuccess, handleError, handleLoading } from '../services/handlerService';
import Wrapper from '../Wrapper/Wrapper';

let mediaStream = null;
Expand All @@ -14,23 +13,24 @@ const failureMsgDefault = {
flashUnsupported: 'Flash is not supporting in your device',
};

const isBrowserSupport = () => navigator?.mediaDevices && globalThis.FaceDetector;

function FaceDetector({
// successCb,
failureCb,
loadingCb,
// successMsg,
failureMsg: failureMsgProps,
cameraType,
zIndex,
successCb = () => {},
failureCb = () => {},
loadingCb = () => {},
successMsg = 'Successfully!!',
failureMsg: failureMsgProps = { ...failureMsgDefault },
cameraType = 'back',
zIndex = 9,
children,
}) {
} = {}) {
const failureMsg = { ...failureMsgDefault, ...failureMsgProps };
let list = null;
let video = null;
let facingMode;

const [flash, setFlash] = useState(false);
const [isBrowser, setIsBrowser] = useState(false);
const [faces, setFaces] = useState([]);

const stopStreaming = () => {
Expand Down Expand Up @@ -58,6 +58,12 @@ function FaceDetector({

if (getFaces[0]) {
setFaces(getFaces);
handleSuccess({
msgType: 'SUCCESSFUL',
msg: successMsg,
successCb,
data: [...getFaces],
});
// cancelAnimationFrame(videoUnmount);
// stopStreaming();
// clearTimeout(unmoutRenderLoop);
Expand Down Expand Up @@ -159,15 +165,14 @@ function FaceDetector({
};

useEffect(() => {
setIsBrowser(true);
handleBrowserSupport();

return () => {
allClear();
};
}, []);

return isBrowser && FaceDetector.isBrowserSupport() && (
return isBrowserSupport() && (
<div id="face-detector">
<div id="camera" style={{ position: 'absolute' }} />
{
Expand Down Expand Up @@ -199,9 +204,8 @@ function FaceDetector({
);
}

FaceDetector.isBrowserSupport = () => navigator?.mediaDevices && globalThis.FaceDetector;

FaceDetector.propTypes = {
// showForever: PropTypes.bool,
// successCb: PropTypes.func,
failureCb: PropTypes.func,
loadingCb: PropTypes.func,
Expand All @@ -211,14 +215,8 @@ FaceDetector.propTypes = {
cameraType: PropTypes.oneOf(['back', 'front']),
};

FaceDetector.defaultProps = {
// successCb: () => {},
failureCb: () => {},
loadingCb: () => {},
// successMsg: '',
failureMsg: { ...failureMsgDefault },
zIndex: 9,
cameraType: 'back',
};
const WFaceDetector = Wrapper(FaceDetector, isBrowserSupport);

export { WFaceDetector as FaceDetector };

export default Wrapper(FaceDetector);
export default WFaceDetector;
2 changes: 2 additions & 0 deletions __app/component/FaceDetector/FaceDetectorClose.js
Original file line number Diff line number Diff line change
Expand Up @@ -38,4 +38,6 @@ function FaceDetectorClose({
);
}

export { FaceDetectorClose };

export default FaceDetectorClose;
2 changes: 2 additions & 0 deletions __app/component/FaceDetector/FaceDetectorFacing.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,4 +32,6 @@ function FaceDetectorFacing({
);
}

export { FaceDetectorFacing };

export default FaceDetectorFacing;
6 changes: 4 additions & 2 deletions __app/component/FaceDetector/FaceDetectorFlash.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import React from 'react';

function FaceDetector({
function FaceDetectorFlash({
toggleFlash,
children,
zIndex,
Expand Down Expand Up @@ -32,4 +32,6 @@ function FaceDetector({
);
}

export default FaceDetector;
export { FaceDetectorFlash };

export default FaceDetectorFlash;
32 changes: 22 additions & 10 deletions __app/component/FaceDetector/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ A minimal [Demo Link](https://6jpxdq.csb.app/?component=FaceDetector)

| Value | Used as a | Description|
|--------- | -------- |-----------------|
| <b>FaceDetector</b> | Component :white_check_mark: | Can be used as Component |
| <b>faceDetector<b> | Service :x: | Can't be used as Service |
| <b>FaceDetector</b> | :white_check_mark: Component | Can be used as Component |
| <b>faceDetector<b> | :x: Service | Can be used as Service |

##### 1. Here's an example of basic usage with Multiple Import: with Default Import:
```javascript
Expand Down Expand Up @@ -134,21 +134,33 @@ return (
}
</pre>
</td>
</tr>
<tr>
<td>
showForever
</td>
<td>Boolean</td>
<td>To hide/remove unsupported feature, make it <b>false</b>. Default value is <b>true</b></td>
<td> <pre>---</pre> </td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<th>
Props
</th>
<th>
Type
</th>
<th>
Description
</th>
<th>
Default Values
</th>
<tr>
<td>
showForever
</td>
<td>Boolean</td>
<td>To hide/remove unsupported feature, make it <b>false</b>.</td>
<td>Default value is <b>true.</b></td>
</tr>
</table>

### Child Component
Expand Down
22 changes: 5 additions & 17 deletions __app/component/FaceDetector/index.js
Original file line number Diff line number Diff line change
@@ -1,18 +1,6 @@
import FaceDetector from './FaceDetector';
import FaceDetectorFlash from './FaceDetectorFlash';
import FaceDetectorClose from './FaceDetectorClose';
import FaceDetectorFacing from './FaceDetectorFacing';
export * from './FaceDetector';
export * from './FaceDetectorClose';
export * from './FaceDetectorFlash';
export * from './FaceDetectorFacing';

export {
FaceDetector,
FaceDetectorFlash,
FaceDetectorClose,
FaceDetectorFacing,
};

export default {
Init: FaceDetector,
Flash: FaceDetectorFlash,
Close: FaceDetectorClose,
Facing: FaceDetectorFacing,
};
export { default } from './FaceDetector';
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ function LiveLocationTracking({
overviewMapControl = true,
rotateControl = true,
fullscreenControl = true,
}) {
} = {}) {
const directionMapRef = useRef();
let directionsService;
let directionsRenderer;
Expand Down

0 comments on commit f0940ff

Please sign in to comment.