import ButtonBase from '@material-ui/core/ButtonBase' import Paper from '@material-ui/core/Card' import { makeStyles } from '@material-ui/core/styles' import * as R from 'ramda' import React, { memo, useState } from 'react' import { Carousel } from 'src/components/Carousel' import { InformativeDialog } from 'src/components/InformativeDialog' import { Info2, Label1 } from 'src/components/typography' import { ReactComponent as CrossedCameraIcon } from 'src/styling/icons/ID/photo/crossed-camera.svg' import { URI } from 'src/utils/apollo' import CopyToClipboard from '../../Transactions/CopyToClipboard' import styles from './PhotosCard.styles' const useStyles = makeStyles(styles) const Label = ({ children }) => { const classes = useStyles() return {children} } const PhotosCard = memo(({ frontCameraData, txPhotosData }) => { const classes = useStyles() const [photosDialog, setPhotosDialog] = useState(false) const mapKeys = pair => { const [key, value] = pair if (key === 'txCustomerPhotoPath' || key === 'frontCameraPath') { return ['path', value] } if (key === 'txCustomerPhotoAt' || key === 'frontCameraAt') { return ['date', value] } return pair } const addPhotoDir = R.map(it => { const hasFrontCameraData = R.has('id')(it) return hasFrontCameraData ? { ...it, photoDir: 'operator-data/customersphotos' } : { ...it, photoDir: 'front-camera-photo' } }) const standardizeKeys = R.map( R.compose(R.fromPairs, R.map(mapKeys), R.toPairs) ) const filterByPhotoAvailable = R.filter( tx => !R.isNil(tx.date) && !R.isNil(tx.path) ) const photosData = filterByPhotoAvailable( addPhotoDir(standardizeKeys(R.append(frontCameraData, txPhotosData))) ) const singlePhoto = R.head(photosData) return ( <> { setPhotosDialog(true) }}> {singlePhoto ? (
{photosData.length}
) : ( )}
} onDissmised={() => { setPhotosDialog(false) }} /> ) }) export const PhotosCarousel = memo(({ photosData }) => { const classes = useStyles() const [currentIndex, setCurrentIndex] = useState(0) const isFaceCustomerPhoto = !R.has('id')(photosData[currentIndex]) const slidePhoto = index => setCurrentIndex(index) return ( <> {!isFaceCustomerPhoto && (
{photosData && photosData[currentIndex]?.id}
)}
{photosData && photosData[currentIndex]?.date}
{!isFaceCustomerPhoto ? 'Acceptance of T&C' : 'Compliance scan'}
) }) export default PhotosCard