/* eslint-disable react/display-name */ import React, { useState } from 'react' import gql from 'graphql-tag' import { Query, Mutation } from 'react-apollo' import { withTranslation } from 'react-i18next' import CouponComponent from '../components/Coupon/Coupon' // reactstrap components import { Badge, Card, Container, Row, Modal } from 'reactstrap' // core components import Header from '../components/Headers/Header.jsx' import CustomLoader from '../components/Loader/CustomLoader' import DataTable from 'react-data-table-component' import orderBy from 'lodash/orderBy' import { getCoupons, deleteCoupon, editCoupon } from '../apollo/server' import Loader from 'react-loader-spinner' import Alert from '../components/Alert' const GET_COUPONS = gql` ${getCoupons} ` const EDIT_COUPON = gql` ${editCoupon} ` const DELETE_COUPON = gql` ${deleteCoupon} ` const Coupon = props => { const [editModal, setEditModal] = useState(false) const [coupon, setCoupon] = useState(null) const [isOpen, setIsOpen] = useState(false) const toggleModal = coupon => { setEditModal(!editModal) setCoupon(coupon) } const customSort = (rows, field, direction) => { const handleField = row => { if (row[field] && isNaN(row[field])) { return row[field].toLowerCase() } return row[field] } return orderBy(rows, handleField, direction) } const handleSort = (column, sortDirection) => console.log(column.selector, sortDirection) const columns = [ { name: 'Code', sortable: true, selector: 'code' }, { name: 'Discount %', sortable: true, selector: 'discount' }, { name: 'Status', cell: row => <>{statusChanged(row)} }, { name: 'Action', cell: row => <>{actionButtons(row)} } ] const statusChanged = row => { return ( {(mutate, { loading, error }) => ( )} ) } const actionButtons = row => { return ( <> { e.preventDefault() toggleModal(row) }} color="primary"> Edit    {(deleteCoupon, { loading: deleteLoading }) => { if (deleteLoading) { return ( ) } return ( { e.preventDefault() // deleteCoupon({ variables: { id: row._id } }) setIsOpen(true) setTimeout(() => { setIsOpen(false) }, 2000) }}> {'Delete'} ) }} ) } const { t } = props return ( <>
{/* Page content */} {/* Table */}
{isOpen && ( )} {({ loading, error, data }) => { if (error) { return ( `${t('Error')}! ${error.message}` ) } return ( } onSort={handleSort} sortFunction={customSort} defaultSortField="code" /> ) }}
{ toggleModal(null) }}>
) } export default withTranslation()(Coupon)