/** * camera 预览组件 * video 标签 * cordova-plugin-camera-preview 插件 */ import { modeType } from "./common/constant"; import useCameraPreviewer from "./useCameraPreviewer"; import { ICameraPreviewerProps } from "./type"; import "./index.less"; /** * 摄像头预览组件 * @param props * @returns */ export const CameraPreviewer = function (props: ICameraPreviewerProps) { const { className, wrapStyle, mode = modeType.video, children, /** ChildrenRender 解决 children 导致子内容不更新问题 */ ChildrenRender, videoStyle, getContainer, } = props; const { videoRef, transform } = useCameraPreviewer(props); const isPlugin = mode === modeType.pluginCameraPreview; if (getContainer || isPlugin) { // 解决插件需要隐藏背景的问题 // 在 useVideo 中进行 video dom 创建 return null; } return (
{mode === modeType.video ? ( ) : null} {ChildrenRender ? : children}
); }; export { modeType }; export default CameraPreviewer;