import { useMutation, gql } from "@apollo/client"; import { makeStyles } from '@material-ui/core' import classnames from 'classnames' import React, { useState } from 'react' import Modal from 'src/components/Modal' import { MainStatus } from 'src/components/Status' import { Table, THead, Th, Tr, Td, TBody } from 'src/components/fake-table/Table' import { H3, Label1 } from 'src/components/typography' import AuthorizeReversedIcon from 'src/styling/icons/button/authorize/white.svg?react' import AuthorizeIcon from 'src/styling/icons/button/authorize/zodiac.svg?react' import RejectReversedIcon from 'src/styling/icons/button/cancel/white.svg?react' import RejectIcon from 'src/styling/icons/button/cancel/zodiac.svg?react' import LinkIcon from 'src/styling/icons/month arrows/right.svg?react' import { ActionButton } from 'src/components/buttons' import { white, disabledColor } from 'src/styling/variables' import DetailsCard from '../../Triggers/CustomInfoRequests/DetailsCard' const styles = { white: { color: white }, actionButton: { display: 'flex', height: 28, marginRight: 'auto' }, flex: { display: 'flex' }, disabledBtn: { backgroundColor: disabledColor, '&:hover': { backgroundColor: disabledColor } }, linkIcon: { marginTop: 12, marginLeft: 4, cursor: 'pointer' } } const SET_AUTHORIZED_REQUEST = gql` mutation setAuthorizedCustomRequest( $customerId: ID! $infoRequestId: ID! $override: String! ) { setAuthorizedCustomRequest( customerId: $customerId infoRequestId: $infoRequestId override: $override ) } ` const useStyles = makeStyles(styles) const CustomInfoRequestsData = ({ data }) => { const classes = useStyles() const [toView, setToView] = useState(null) const [setAuthorized] = useMutation(SET_AUTHORIZED_REQUEST, { onError: () => console.error('Error while clearing notification'), refetchQueries: () => ['customer'] }) const authorize = it => setAuthorized({ variables: { customerId: it.customerId, infoRequestId: it.customInfoRequest.id, isAuthorized: true } }) const reject = it => setAuthorized({ variables: { customerId: it.customerId, infoRequestId: it.customInfoRequest.id, isAuthorized: false } }) const getBtnClasses = (it, isAuthorize) => { return { [classes.actionButton]: true, [classes.disabledBtn]: (isAuthorize && it.approved === true) || (!isAuthorize && it.approved === false) } } const AuthorizeButton = it => ( authorize(it)}> Authorize ) const RejectButton = it => ( reject(it)}> Reject ) const getActionButtons = it => { return ( <> {AuthorizeButton(it)} {RejectButton(it)} ) } const getAuthorizedStatus = it => it.approved === null ? { label: 'Pending', type: 'neutral' } : it.approved === false ? { label: 'Rejected', type: 'error' } : { label: 'Accepted', type: 'success' } return ( <>

Custom Info Requests Data

{data.map((it, idx) => ( ))}
Custom Request Name Custom Request Data Status Actions
{it.customInfoRequest.customRequest.name}
setToView(it)}>
{JSON.stringify(it.customerData.data, null, 2)}
{getActionButtons(it)}
{toView && ( setToView(null)}>

Custom Information Request Details

)}
) } export default CustomInfoRequestsData