{"version":3,"sources":["components/loader/loader.js","assets/images/log-user.png","redux/reducers/loginReducer.js","redux/reducers/userReducer.js","redux/reducers/transactionReducer.js","redux/reducers/loadingReducer.js","redux/reducers/index.js","redux/store/store.js","redux/api/axiosApi.js","redux/api/ApiService.js","redux/actions/loadingAction.js","redux/actions/loginAction.js","redux/utilities/token.js","redux/utilities/functions.js","redux/actions/userDetailsAction.js","assets/images/logo.svg","components/common/UserSwitch.js","assets/images/qr-code.svg","components/common/header.js","components/account/settings.js","components/auth/login.js","components/auth/otp.js","components/common/qrcode.js","assets/images/arrow-down.svg","assets/images/arrow-up.svg","assets/images/user-photo.png","redux/actions/transactionAction.js","components/customer/business-charts.js","redux/utilities/export.js","assets/images/logo-svg.png","components/customer/businessTransactions.js","components/customer/customer-dashboard.js","components/dashboard/paymentvsrequest.js","components/dashboard/transaction-history.js","components/dashboard/user-dashboard.js","components/merchant/merchant-charts.js","components/merchant/merchantTransactions.js","components/merchant/merchant-dashboard.js","routes/PrivateRoute.js","routes/routes.js","App.js","reportWebVitals.js","index.js","redux/constants/index.js"],"names":["Loader","loading","useSelector","state","loadingReducer","style","position","zIndex","display","justifyContent","alignItems","width","height","backgroundColor","top","css","margin","left","right","bottom","radius","color","initialState","otpValue","ProviderData","loginSuccesData","loginErrorData","GenerateTokenData","accessToken","callingCode","loginData","action","type","GENERATEOTP","payload","OTPERROR","OtpError","GETPROVIDER","CALLINGCODE","LOGIN_ERROR","LOGIN","data","GENERATE_TOKEN","token","accessTokenExpiry","require","USERDETAILS","SWITCHACCOUNT","STATISTICS","CURRENTUSER","BUSINESSUSERDATA","userDetail","switchSuccess","statistics","currentuser","businessData","UserData","GETTRANSACTIONS","TRANSACTION","TOPRECEIVERS","PAYMENTVSREQUEST","TRANSACTIONTYPE","FILTERTYPE","TOPSENDERS","REVENUEGRAPH","MERCHANTSTATS","GET_PDF_TRANSACTIONS_DETAILS","transactions","transactionDetail","topreceivers","paymentvsrequest","transactiontype","filtertypes","topsenders","revenuegraph","merchantStats","transactionPdfDetails","Transactions","iState","LOADING","status","appReducer","combineReducers","rootReducer","newState","LOGOUT","localStorage","removeItem","undefined","composeEnhancers","window","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","persistConfig","key","storage","whitelist","persistedReducer","persistReducer","store","createStore","applyMiddleware","thunk","persistor","persistStore","axVal","isSendRefreshToken","getState","refreshToken","axios","create","baseURL","process","headers","platform","Authorization","SwitchApi","post","generateTokenApi","then","response","catch","getTransactions","transactionsByType","get","revenueGraph","getTransactionById","id","paymentvsRequest","account_type","month","loadingAction","dispatch","GetProviderActionFn","error","GetCallingCodeActionFn","GenerateOtpActionFn","AuthApi","SendOtpActionFn","LoginApi","currentUserActionFn","accountType","validateToken","a","data1","currentTime","Math","floor","Date","getTime","statusText","location","href","getPercentageChange","lastMonth","currentMonth","absoluteValue","calc","diff","abs","toFixed","getGraphValueArr","userCountStash","newObj","arrObj","keys","Object","map","obj","index","_obj","inde","_val","getGraphScaleValueArr","arr","entries","value","minmaxArr","values","avg","reduce","previous","current","length","_key","newVal","ceil","userDetailsActionFn","switchAccountActionFn","userStatsActionFn","UserSwitch","useDispatch","history","useHistory","CurrentUser","UserDetails","useState","setisShowDropDown","userSwitched","setUserSwitched","setUserDetails","setName","setCompanyName","setCompanyLogo","setProfilePicture","useEffect","getUserDetails","switchAccount","account","prevState","switchAccSuccessResponse","handleCurrentUser","userDataResponse","user","name","companyName","companyLogo","profilePicture","console","switched","message","push","className","data-toggle","src","alt","origin","aria-labelledby","onClick","aria-hidden","withRouter","props","homeRoute","setHomeRoute","currentUserType","setCurrentUserType","getHomeRoute","route","userType","to","Logo","textDecoration","qr_icon","UserSettings","userDetails","class","avtarImage","phone","email","currentAccountType","moment","updatedAt","format","kycStatus","Login","CallingCode","operator","setOperator","contact","setcontact","countryCode","setCountryCode","Errormsg","setErrorMsg","isFirst","setIsFirst","operatrError","setOperatorError","contactError","setContactError","pathname","num","htmlFor","onChange","e","target","item","i","borderRight","borderRadius","country","body","serviceProvider","sendUser","OTP","LoginData","showLoader","setshowLoader","otpValues","setValue","isLogin","setisLogin","ApiError","setApiError","counter","setCounter","timeover","setTimeover","setTimeout","handleNavigation","handleChange","otp","fcmToken","loginAPIResponse","setItem","numInputs","resendOtp","disabled","GenerateQRCode","qrValue","setQRValue","userId","isCanReceivePayment","qr","JSON","stringify","size","level","includeMargin","Button","pngUrl","document","getElementById","toDataURL","replace","downloadLink","createElement","download","appendChild","click","removeChild","getTransactionActionFn","getTransactionTypeActionFn","getExportTransactionAction","GET_EXPORT_TRANSACTIONS","getPdfTransactionDetailAction","transactionId","getRevenueActionFn","getTransactionByIdActionFn","paymentVsRequestActionFn","getFilterTypeActionFn","merchantTransactionStatisticsActionFn","BusinessChart","setPaymentVsRequestData","setRevenueGrowthData","topSendersData","setTopSendersData","getPaymentvsRequest","getTopSenders","getRevenueGrowth","paymentdata","paymentVsRequestResponse","barChart1","revenueResponse","barChart2","result","topSenderResponse","revenuedata","ctx1","getContext","Chart","fillOpacity","labels","dateRange","split","datasets","label","borderColor","pointBorderColor","borderWidth","pointRadius","pointHoverRadius","pointBackgroundColor","count","options","responsive","maintainAspectRatio","bezierCurve","elements","line","tension","scales","xAxes","ticks","gridLines","yAxes","beginAtZero","tooltips","custom","tooltip","displayColors","callbacks","tooltipItem","yLabel","title","bodyFontColor","bodyAlign","bodyFontSize","bodyFontStyle","legend","align","boxWidth","fontColor","paymentvsreq_data","ctx2","gradientFill","createLinearGradient","addColorStop","gradientFill2","graph","paymentCount","requestCount","sender","senderAvtar","senderName","senderPhone","ExportData","schoolData","invoiceData","marginBottom","padding","border","borderLeft","marginLeft","marginRight","marginTop","colSpan","fontSize","amount","method","paymentThrough","paymentType","receiverName","receiverPhone","transactionDate","transactionStatus","fee_detail","institute","student_name","student_number","merchantType","items","itemName","qty","unitRate","taxes","fees","deliveryInfo","address","cost","BusinessTransactions","show","setShow","transactionDataArr","setTransactionDataArr","transactionDetailById","setTransactionDetailById","invoiceDetials","setInvoiceDetials","filters","setFilters","handleClose","setIsUserFilter","isSort","setIsSort","customRange","isCurrentPage","setIsCurrentPage","isStatus","setIsStatus","isTransactionType","setIsTransactionType","isMethod","setIsMethod","isAmountType","setIsAmountType","showCalender","setShowCalender","isCalenderDate","setIsCalenderDate","isCalnder","setIsCalnder","setTransactionExport","searchText","setSearchText","searchTrueORFalse","setSearchTrueORFalse","getInitialData","getTransactionsList","sort","time","custom_range","page","search","getFilterList","formData","transactionResponse","getFilterResponse","invoiceDetails","getSearchData","searchResponse","onChangeStatusHandler","checked","remove","indexOf","filter","_","onChangeMethodHandler","onChangeAmountTypeHandler","exportData","export","exportTransactionData","exportType","exportFromJSON","types","xls","fileName","exportPdf","exportPdfApiResponse","transDetails","transactionDetails","paymentDetails","downloadPdf","doc","jsPDF","renderToString","html","callback","save","getFilter","nextPaginationHander","pageNumber","p","previousPaginationHander","firstPaginationHander","lastPaginationHander","handleSearchTextChange","onKeyPress","placeholder","cursor","onSubmit","preventDefault","getElementsByClassName","applyFilter","onChangeTransactionType","defaultValue","sortHander","background","maxWidth","data-provide","rangeDate","selectDate","next2Label","prev2Label","selectRange","returnValue","checkbox","transCheckbox","querySelectorAll","isEmpty","receiverAvtar","transactionTime","renderTableData","pageNumbers","totalPage","renderPageNumbers","number","currentPage","paginationHander","paginationList","Modal","onHide","backdrop","keyboard","data-dismiss","aria-label","tax","CustomerDashboard","setPaymentCount","prevPaymentCount","setPrevPaymentCount","reqCount","setReqCount","prevReqCount","setPrevReqCount","receiveCount","setReceiveCount","prevReceiveCount","setPrevReceiveCount","sentAmount","setSentAmount","prevSentAmount","setPrevSentAmount","setValueArr","setGraphScaleValue","paymentCountObject","setPaymentCountObject","requestCountObject","setRequestCountObject","totalReceiveCountObject","setTotalReceiveCountObject","totalSentCountObject","setTotalSentCountObject","getUserWalletDetail","getUserWalletResponse","totalReceive","totalSent","getSmallGraphValue","ArrowUp","ArrowDown","PaymentvsRequest","totalTransaction","setTotalTransaction","transactionByTypeData","setTransactionByTypeData","topReceiverData","setTopReceiverData","getTransactionByType","getTopReceivers","transactionByTypeResponse","transactionTotal","topReceiverResponse","transactionPer","totalT","b","colors","transactionbytype","ctx3","cutoutPercentage","receiver","alignmentClassName","TransactionHistory","handleSelectAll","Dashboard","MerchantChart","setMerchantTransData","getMerchantTransactionStats","merchantTransactionStats","merchantdata","MerchantTransactions","MerchantDashboard","PrivateRoute","Component","component","authTokens","rest","render","from","Routes","existingToken","getItem","isAuthenticated","setIsAuthenticated","exact","path","App","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","StrictMode"],"mappings":"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","file":"static/js/main.4055e7c3.chunk.js","sourcesContent":["import React from \"react\";\nimport { useSelector } from \"react-redux\";\nimport ClipLoader from \"react-spinners/ClipLoader\";\n\nexport const Loader = () => {\n const loading = useSelector(state => {return state?.loadingReducer?.loading});\n// const loading = true\n\n const styles = {\n // position: 'absolute',\n margin: \"auto\",\n left: \"0\",\n right: \"0\",\n top: \"0\",\n bottom: \"0\"\n };\n\n if (loading) {\n return (\n \n {loading && (\n
\n \n
\n )}\n \n );\n } else {\n return null;\n }\n};\n","export default __webpack_public_path__ + \"static/media/log-user.d98ab7d8.png\";","import {\n GENERATEOTP,\n GETPROVIDER,\n OTPERROR,\n LOGIN,\n LOGIN_ERROR,\n GENERATE_TOKEN, CALLINGCODE\n} from \"../constants\";\nconst initialState = {\n otpValue: {},\n ProviderData: {},\n loginSuccesData: {},\n loginErrorData: {},\n GenerateTokenData: {},\n accessToken: {},\n callingCode: {}\n};\nconst loginData = (state = initialState, action) => {\n switch (action.type) {\n case GENERATEOTP:\n return {\n ...state,\n otpValue: action?.payload,\n };\n case OTPERROR:\n return {\n ...state,\n OtpError: action.payload,\n };\n case GETPROVIDER:\n return {\n ...state,\n ProviderData: action.payload,\n };\n case CALLINGCODE:\n return {\n ...state,\n callingCode: action.payload,\n };\n case LOGIN_ERROR:\n return {\n ...state,\n loginErrorData: action.payload,\n };\n\n case LOGIN:\n let accessToken = action?.payload?.data?.data?.accessToken;\n return {\n ...state,\n loginSuccesData: action?.payload?.data?.data,\n accessToken: accessToken,\n loginErrorData: {},\n };\n\n case GENERATE_TOKEN:\n // console.log(\"*********************************\", action.payload, \"$$$$$$$$$$$$\", state)\n if (action?.payload?.data?.token.accessToken) {\n let loginData = state.loginSuccesData;\n loginData.accessToken = action.payload.data.token.accessToken;\n loginData.accessTokenExpiry =\n action.payload.data.token.accessTokenExpiry;\n return {\n ...state, // not value lose\n loginSuccesData: loginData,\n accessToken: action.payload,\n };\n } else return state;\n\n default:\n return state;\n }\n};\n\nexport default loginData;\n","const {\n USERDETAILS,\n SWITCHACCOUNT,\n STATISTICS,\n CURRENTUSER,\n BUSINESSUSERDATA,\n} = require(\"../constants\");\nconst initialState = {\n userDetail: {},\n switchSuccess: {},\n statistics: {},\n currentuser: {},\n businessData: {},\n};\n\nconst UserData = (state = initialState, action) => {\n switch (action.type) {\n case USERDETAILS:\n return {\n ...state,\n userDetail: action?.payload,\n };\n case SWITCHACCOUNT:\n return {\n ...state,\n switchSuccess: action?.payload,\n };\n case CURRENTUSER:\n return {\n ...state,\n currentuser: action?.payload,\n };\n case BUSINESSUSERDATA:\n return {\n ...state,\n businessData: action?.payload,\n };\n\n case STATISTICS:\n return {\n ...state,\n statistics: action.payload,\n };\n default:\n return state;\n }\n};\nexport default UserData;\n","const {\n GETTRANSACTIONS,\n TRANSACTION,\n TOPRECEIVERS,\n PAYMENTVSREQUEST,\n TRANSACTIONTYPE,\n FILTERTYPE,\n TOPSENDERS,\n REVENUEGRAPH,\n MERCHANTSTATS,\n GET_PDF_TRANSACTIONS_DETAILS,\n\n} = require(\"../constants\");\n\nconst initialState = {\n transactions: {},\n transactionDetail: {},\n topreceivers: {},\n paymentvsrequest: {},\n transactiontype: {},\n filtertypes:{},\n topsenders:{},\n revenuegraph:{},\n merchantStats:{},\n transactionPdfDetails:{},\n};\n\nconst Transactions = (state = initialState, action) => {\n switch (action.type) {\n case GETTRANSACTIONS:\n return {\n ...state,\n transactions: action?.payload,\n };\n\n case TRANSACTION:\n return {\n ...state,\n transactionDetail: action?.payload,\n };\n\n case TOPRECEIVERS:\n return {\n ...state,\n topreceivers: action?.payload,\n };\n case TOPSENDERS:\n return {\n ...state,\n topsenders: action?.payload,\n };\n case PAYMENTVSREQUEST:\n return {\n ...state,\n paymentvsrequest: action?.payload,\n };\n case TRANSACTIONTYPE:\n return {\n ...state,\n transactiontype: action?.payload,\n };\n case FILTERTYPE:\n return {\n ...state,\n filtertypes: action?.payload,\n };\n \n case REVENUEGRAPH:\n return {\n ...state,\n revenuegraph: action?.payload\n } \n case MERCHANTSTATS:\n return {\n ...state,\n merchantStats: action?.payload\n }\n \n case GET_PDF_TRANSACTIONS_DETAILS:\n return {\n ...state,\n transactionPdfDetails: action?.payload\n } \n \n\n default:\n return state;\n }\n};\nexport default Transactions;\n","import {LOADING} from '../constants/index'\n\n\nlet iState = {\n loading: false,\n};\n\nconst loadingReducer = (state = iState, action) => {\n switch (action.type) {\n case LOADING:\n return { ...state, loading: action.status };\n default:\n return state;\n }\n};\n\n\nexport default loadingReducer","import { combineReducers } from \"redux\";\nimport loginData from \"./loginReducer\";\nimport UserData from \"./userReducer\";\nimport Transactions from \"./transactionReducer\";\nimport loadingReducer from \"./loadingReducer\"\nimport { LOGOUT } from \"../constants\";\n\nconst appReducer = combineReducers({\n loginData,\n UserData,\n Transactions,\n loadingReducer,\n})\nconst rootReducer = (state, action) => {\n let newState \n if (action?.type === LOGOUT) {\n localStorage.removeItem('persist:root')\n newState = undefined;\n } else {\n newState = state\n }\n return appReducer(newState, action)\n }\n\nexport default rootReducer;","import { createStore, applyMiddleware, compose } from 'redux';\n\nimport thunk from 'redux-thunk';\nimport { persistStore, persistReducer } from 'redux-persist';\nimport storage from 'redux-persist/lib/storage';\nimport rootReducer from './../reducers';\nconst composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;\n\n\nconst persistConfig = {\n key: 'root',\n storage,\n whitelist: ['loginData', 'UserData'], // which reducer want to store\n // blacklist: [''] // which reducer do not want to store/\n};\nconst persistedReducer = persistReducer(persistConfig, rootReducer);\nconst store = createStore(persistedReducer,composeEnhancers(applyMiddleware(thunk)));\nexport const persistor = persistStore(store);\nexport default store;\n\n","import axios from \"axios\";\nimport store from \"../store/store\";\n\nconst baseURL = process.env.REACT_APP_TITLE;\n\nexport const axVal = (isSendRefreshToken) => {\n const data = store.getState();\n const accessToken = data.loginData?.loginSuccesData?.accessToken;\n const refreshToken = data.loginData?.loginSuccesData?.refreshToken;\n\n let token = accessToken;\n if (isSendRefreshToken) {\n token = refreshToken;\n }\n\n const BaseApi = axios.create({\n baseURL: baseURL,\n // timeout: 1000,\n headers: {\n \"x-api-key\": \"dd52ea2d-4567-4956-9d19-35a7e75a2c17\",\n platform: \"web\",\n \"Content-Type\": \"application/json\",\n Authorization: \"Bearer \" + token,\n },\n });\n return BaseApi;\n};\n","import { axVal } from \"./axiosApi\";\n\nexport const AuthApi = (data) => {\n return axVal().post(\"auth/web_login\", data);\n};\n\nexport const SwitchApi = (data) => {\n return axVal().post(\"user/account_type\", data);\n};\n\nexport const GetOperatorList = () => {\n return axVal().get(\"cms/network/list\");\n};\n\nexport const GetCallingCode = () => {\n return axVal().get(\"cms/country/calling_code\");\n};\n\nexport const GetUserDetails = () => {\n return axVal().get(\"user/details\");\n};\n\nexport const LoginApi = (data) => {\n return axVal().post(\"auth/verify_otp\", data);\n};\n\nexport const generateTokenApi = () => {\n return axVal(true)\n .post(\"auth/generate_token\")\n .then((response) => {\n return response;\n })\n .catch(({ ...error }) => {\n return error;\n });\n};\n\n// get transactions\n\nexport const getTransactions = (data) => {\n return axVal().post(\"transaction/user/all\", data);\n};\n\nexport const transactionsByType = (data) => {\n return axVal().get(`transaction/user/transaction_by_type/${data}`);\n };\nexport const revenueGraph = (data) =>{\n return axVal().get(`transaction/user/revenue_graph?month=${data}`);\n} \nexport const FilterTypes = () => {\n return axVal().get('merchant/list/type');\n };\n\nexport const getStats = (account_type) => {\n return axVal().get(`transaction/user/get_count?account_type=${account_type}`);\n};\n\nexport const getTransactionById = (id) => {\n return axVal().get(`transaction/${id}`);\n};\n\nexport const getTopReceiver = () => {\n return axVal().get(\"transaction/user/top_receivers\");\n};\nexport const getTopSenders = () =>{\n return axVal().get(\"transaction/user/top_senders\");\n}\n export const paymentvsRequest = (data) =>{\n return axVal().get(`transaction/graph/payment_vs_request?account_type=${data.account_type}&month=${data.month}`);\n };\n export const merchantTransactionStats = (month) =>{\n return axVal().get(`transaction/merchant/statistics_graph?month=${month}`);\n\n }\n ","import {LOADING} from '../constants/index'\n\n\nexport const loadingAction = status => {\n return dispatch => {\n dispatch ({type: LOADING, status});\n \n };\n };","import { AuthApi, generateTokenApi, GetCallingCode, GetOperatorList, LoginApi } from \"../api/ApiService\";\nimport {\n CALLINGCODE,\n GENERATEOTP,\n GENERATE_TOKEN,\n GETPROVIDER,\n LOGIN,\n LOGIN_ERROR,\n LOGOUT,\n OTPERROR,\n} from \"../constants\";\nimport { loadingAction } from \"./loadingAction\";\nimport { currentUserActionFn } from \"./userDetailsAction\";\n\nexport const GetProviderActionFn = () => {\n return (dispatch) => {\n dispatch(loadingAction(true))\n return GetOperatorList()\n .then((response) => {\n dispatch(loadingAction(false))\n if (response && response.status && response.status === 200) {\n return dispatch({ type: GETPROVIDER, payload: response });\n }\n })\n .catch(({ ...error }) => {\n dispatch(loadingAction(false))\n throw error;\n });\n };\n};\n\nexport const GetCallingCodeActionFn = () => {\n return (dispatch) => {\n return GetCallingCode()\n .then((response) => {\n if (response && response.status && response.status === 200) {\n return dispatch({ type: CALLINGCODE, payload: response });\n }\n })\n .catch(({ ...error }) => {\n throw error;\n });\n };\n };\n\nexport const GenerateOtpActionFn = (data) => {\n return (dispatch) => {\n dispatch(loadingAction(true))\n\n AuthApi(data)\n .then((response) => {\n dispatch(loadingAction(false))\n if (response && response.status && response.status === 200) {\n return dispatch({ type: GENERATEOTP, payload: response });\n }\n })\n .catch(({ ...error }) => {\n dispatch(loadingAction(false))\n dispatch({ type: OTPERROR, payload: error.response.data });\n throw error;\n });\n };\n};\n\nexport const SendOtpActionFn = (data) => {\n return (dispatch) => {\n dispatch(loadingAction(true))\n\n return LoginApi(data)\n .then((response) => {\n\n dispatch(loadingAction(false))\n // if (response && response.status && response.status === 200) {\n dispatch(currentUserActionFn(response.data.data.accountType))\n return dispatch({ type: LOGIN, payload: response });\n // }\n })\n .catch(({ ...error }) => {\n dispatch(loadingAction(false))\n dispatch({ type: LOGIN_ERROR, payload: error.response.data });\n\n throw error;\n });\n };\n};\n\nexport const GenerateTokenActionFn = () =>{\n return new Promise((resolve, reject) => {\n return async (dispatch) => {\n \n const response = await generateTokenApi()\n .then(response => {\n\n })\n .catch(({ ...error }) => {\n dispatch({ type: GENERATE_TOKEN, payload: error.response.data });\n reject(error)\n });\n };\n })\n}\n\nexport const LogoutAction = () => {\n return (dispatch) => {\n return dispatch({type: LOGOUT, payload: \"LOGOUT\"})\n }\n }\n\n","import store from \"../store/store\";\nimport { generateTokenApi } from \"../api/ApiService\";\nimport { LogoutAction } from \"../actions/loginAction\";\nimport { useDispatch } from \"react-redux\";\nimport { LOGOUT } from \"../constants\";\n\nexport const validateToken = async () => {\n \n const data1 = store.getState();\n // console.log(data1)\n const accessTokenExpiry = data1.loginData?.loginSuccesData?.accessTokenExpiry\n // console.log(\"token expiry\",accessTokenExpiry)\n const currentTime = Math.floor(new Date().getTime() / 1000);\n const checkt = currentTime - 60;\n// if (currentTime > accessTokenExpiry) {\n const response = await generateTokenApi();\n // console.log(\"generate\" , response)\n if (response?.response?.statusText === \"Unauthorized\") {\n store.dispatch({type : LOGOUT})\n window.location.href = \"/\"\n }\n return response;\n }\n// else {\n// return null;\n// }\n \n// }\n","export const getPercentageChange =(lastMonth, currentMonth, absoluteValue) =>{\n let calc\n let diff = currentMonth - lastMonth;\n \n if (currentMonth > lastMonth ) {\n calc = (diff/currentMonth)*100;\n } else {\n calc = (diff/lastMonth)*100;\n } \n // let calc = (decreaseValue / oldNumber) * 100;\n if(calc > 0 || calc < 0) {\n if (absoluteValue == 'absTrue') {\n return Math.abs(calc.toFixed(2));\n } else {\n return calc.toFixed(2);\n }\n }\n else return 0\n \n }\n\n\n export const getGraphValueArr = (userCountStash) => {\n let newObj = {...userCountStash};\n if (newObj) {\n\n let newAr = []\n let arrObj = {}\n\n let keys = Object.keys(newObj)\n let value = Object.keys(newObj[keys[0]])\n\n value.map((obj, index)=>{\n let _obj = {}\n let keys = Object.keys(newObj) \n keys.map((key, inde)=>{\n let _val = newObj[key][obj]\n _obj[key] = _val\n })\n arrObj[obj] = _obj\n })\n return arrObj\n }\n } \n\n\n export const getGraphScaleValueArr = (arr) => {\n let newObj = {}\n for(let [key,value] of Object.entries(arr)){\n \n let minmaxArr = Object.values(value)\n let sum = minmaxArr.reduce((previous, current) => current += previous);\n let avg = sum / minmaxArr.length;\n let _obj = {}\n for (let [_key,_value] of Object.entries(value)){\n let newVal = _value/avg\n _obj[_key] = Math.ceil(newVal)*10\n }\n newObj[key] = _obj\n }\n return newObj\n }","import { getStats, GetUserDetails, SwitchApi } from \"../api/ApiService\";\nimport {\n BUSINESSUSERDATA,\n CURRENTUSER,\n GENERATE_TOKEN,\n STATISTICS,\n SWITCHACCOUNT,\n USERDETAILS,\n} from \"../constants\";\nimport { validateToken } from \"../utilities\";\nimport {loadingAction} from './loadingAction'\n\n\nexport const userDetailsActionFn = () => {\n return async (dispatch) => {\n dispatch(loadingAction(true))\n const response = await validateToken();\n\n dispatch({ type: GENERATE_TOKEN, payload: response });\n return GetUserDetails()\n .then((response) => { \n dispatch(loadingAction(false)) \n return dispatch({ type: USERDETAILS, payload: response });\n })\n .catch(({ ...error }) => {\n dispatch(loadingAction(false))\n throw error;\n });\n };\n};\n\nexport const switchAccountActionFn = (data) => {\n return async (dispatch) => {\n dispatch(loadingAction(true))\n const response = await validateToken();\n dispatch({ type: GENERATE_TOKEN, payload: response });\n \n return SwitchApi(data)\n .then((response) => {\n dispatch(loadingAction(false))\n if (response && response.status && response.status === 200) {\n return dispatch({ type: SWITCHACCOUNT, payload: response.data });\n }\n })\n .catch(({ ...error }) => {\n dispatch(loadingAction(false))\n throw error;\n });\n };\n};\n\nexport const currentUserActionFn = (data) => {\n return {\n type: CURRENTUSER,\n payload: {data}\n }\n};\n\nexport const businessAccountActionFn = (data) =>{\n return{\n type : BUSINESSUSERDATA,\n payload:{\n data\n } \n }\n}\n\nexport const userStatsActionFn = (data) => {\n return async (dispatch) => {\n dispatch(loadingAction(true))\n const response = await validateToken();\n\n dispatch({ type: GENERATE_TOKEN, payload: response });\n return getStats(data)\n .then((response) => {\n dispatch(loadingAction(false))\n return dispatch({ type: STATISTICS, payload: response });\n })\n .catch(({ ...error }) => {\n dispatch(loadingAction(false))\n throw error;\n });\n };\n};\n\n","export default __webpack_public_path__ + \"static/media/logo.825d2f50.svg\";","import React, { useEffect, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { Link, useHistory } from \"react-router-dom\";\nimport {\n currentUserActionFn,\n switchAccountActionFn,\n userDetailsActionFn,\n \n} from \"../../redux/actions/userDetailsAction\";\n\nexport const UserSwitch = () => {\n const dispatch = useDispatch();\n let history = useHistory();\n\n const CurrentUser = useSelector((state) => state.UserData.currentuser);\n const UserDetails = useSelector((state) => state.loginData);\n\n const [isShowDropDown, setisShowDropDown] = useState(false);\n const handleShowDropdown = () => setisShowDropDown(prevState=> {return !prevState})\n const [userSwitched, setUserSwitched] = useState(true)\n const [userDetails, setUserDetails] = useState({})\n const [name, setName] = useState('')\n const [companyName, setCompanyName] = useState('')\n const [companyLogo, setCompanyLogo] = useState('')\n const [profilePicture, setProfilePicture] = useState('')\n\n useEffect(()=>{\n getUserDetails()\n },[userSwitched])\n\n\n const switchAccount = async (account) => {\n handleShowDropdown()\n let data = {accountType: account};\n const switchAccSuccessResponse = await dispatch(switchAccountActionFn(data));\n const response = switchAccSuccessResponse?.payload\n handleCurrentUser(response)\n setUserSwitched(false)\n };\n\n\n const getUserDetails = async () =>{\n try {\n const response = await dispatch(userDetailsActionFn())\n const userDataResponse = response?.payload\n\n if (userDataResponse) {\n setUserDetails(userDataResponse?.data)\n setName(userDataResponse?.data?.user?.name)\n setCompanyName(userDataResponse?.data?.user?.companyName)\n setCompanyLogo(userDataResponse?.data?.user?.companyLogo)\n setProfilePicture(userDataResponse?.data?.user?.profilePicture)\n }\n\n } catch (err) {\n console.error(err)\n }\n }\n\n\n\n const handleCurrentUser = (switched) =>{\n if (switched?.status === true) {\n if (switched?.message === \"Account type selected to Individual\") {\n dispatch(currentUserActionFn(\"Individual\"));\n history.push('/user-dashboard')\n } else if (switched?.message === \"Account type selected to Business\") {\n dispatch(currentUserActionFn(\"Business\"));\n history.push(\"/business-dashboard\")\n }\n }\n }\n \n\n if (CurrentUser?.data === \"Individual\") {\n return (\n <>\n
\n handleShowDropdown()}\n >\n {UserDetails?.loginSuccesData?.profilePicture ? (\n \"\"\n ) : (\n \"\"\n )}\n\n

{UserDetails?.loginSuccesData?.name}

\n

Individual

\n
\n\n \n switchAccount(\"Business\")}\n >\n {UserDetails?.loginSuccesData?.companyLogo ? (\n \"\"\n ) : (\n \"\"\n )}\n

{UserDetails?.loginSuccesData?.companyName}

\n

Business

\n \n \n \n \n );\n\n } else if (CurrentUser?.data === \"Business\") {\n return (\n <>\n
\n handleShowDropdown()}\n >\n {UserDetails?.loginSuccesData?.companyLogo ? (\n \"\"\n ) : (\n \"\"\n )}\n\n

{UserDetails?.loginSuccesData?.companyName}

\n

Business

\n
\n\n \n switchAccount(\"Individual\")}\n >\n {UserDetails.loginSuccesData.profilePicture ? (\n \"\"\n ) : (\n \"\"\n )}\n

{UserDetails?.loginSuccesData?.name}

\n

Individual

\n \n \n \n \n );\n\n } else if(CurrentUser?.data === \"Merchant\") {\n return (\n <>\n
\n \n {UserDetails?.loginSuccesData?.profilePicture ? (\n \"\"\n ) : (\n \"\"\n )}\n\n

{UserDetails?.loginSuccesData?.name}

\n

Merchant

\n
\n\n \n \n \n )\n }\n else{\n return null\n }\n};\n","export default __webpack_public_path__ + \"static/media/qr-code.e930ea67.svg\";","import React, { useEffect, useState } from \"react\";\nimport Logo from \"../../assets/images/logo.svg\";\nimport { Link, useHistory, withRouter } from \"react-router-dom\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { LogoutAction } from \"../../redux/actions/loginAction\";\nimport { UserSwitch } from \"./UserSwitch\";\nimport qr_icon from '../../assets/images/qr-code.svg';\n\nconst Header = (props) => {\n const dispatch = useDispatch();\n let history = useHistory();\n\n const CurrentUser = useSelector((state) => state.UserData.currentuser);\n const [homeRoute, setHomeRoute] = useState('');\n const [currentUserType, setCurrentUserType] = useState('')\n\n \n useEffect(()=>{\n if (CurrentUser){\n getHomeRoute()\n } else {\n setHomeRoute('/')\n }\n },[CurrentUser])\n \n const getHomeRoute = () =>{\n const userType = CurrentUser?.data\n let route\n if (userType == 'Individual'){\n route = '/user-dashboard'\n } else if (userType == 'Business'){\n route = '/business-dashboard'\n } else if (userType == 'Merchant'){\n route = '/merchant-dashboard'\n }\n setHomeRoute(route)\n setCurrentUserType(userType)\n } \n\n\n const logOut = () => {\n dispatch(LogoutAction());\n // console.log('logout')\n localStorage.removeItem('accessToken')\n history.push('/')\n };\n\n\n return (\n <>\n
\n
\n
\n
\n
\n \n \n \n
\n \n \"\"\n \n
\n
\n
\n
\n
\n {currentUserType == 'Business' || currentUserType=='Merchant'? \n {history.push('/qrcode-generate')}} style={{textDecoration:\"none\", color:\"white\"}}>\n
\n \n \n
\n
\n QR Code\n \n : <>}\n {/*
\n \n \n \n
*/}\n
\n
\n \n \n
\n
\n \n Account Settings\n \n \n Log Out\n \n
\n
\n \n \n
\n \n \n
\n \n );\n};\n\nexport default withRouter(Header);\n","import React, { useEffect, useState } from \"react\";\nimport \"react-intl-tel-input/dist/main.css\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { Link, useHistory } from \"react-router-dom\";\nimport Logouser from \"../../assets/images/log-user.png\";\nimport { userDetailsActionFn } from \"../../redux/actions/userDetailsAction\";\nimport Header from \"../common/header\";\nimport moment from \"moment\";\n\n\nconst UserSettings = (props) => {\n const dispatch = useDispatch();\n\n const [name, setName] = useState(\"\")\n const [userDetails, setUserDetails] = useState({})\n\n\n useEffect(() => {\n getUserDetails()\n },[]);\n\n const getUserDetails = async () =>{\n try {\n const response = await dispatch(userDetailsActionFn())\n const userDataResponse = response?.payload\n setUserDetails(userDataResponse?.data)\n if(userDataResponse?.data?.user?.name){\n setName(userDataResponse?.data.user.name)\n }\n else(\n setName(userDataResponse?.data?.user?.companyName)\n )\n\n } catch (err) {\n console.error(err)\n }\n }\n\n\n return (\n <>\n
\n
\n
\n
\n \"\"\n
\n
\n
\n

\n Name {name ? name : \"\"} \n

\n
\n
\n

\n Phone number {userDetails?.user?.phone}\n

\n
\n
\n

\n Email address {userDetails?.user?.email}\n

\n
\n
\n

\n Account type{\" \"}\n \n {/* {UserDetail?.user?.accountType?.map((useracc) => {\n return

{useracc}

;\n })} */}\n

{userDetails?.user?.currentAccountType}

\n \n

\n
\n
\n
\n
\n
KYC Status
\n

\n updated {moment(userDetails?.user?.updatedAt).format(\"Y-MM-DD\")}\n

\n \n {userDetails?.user?.kycStatus}\n \n
\n
\n
\n
\n \n );\n};\n\nexport default UserSettings;\n","import React, { useEffect, useState } from \"react\";\nimport \"react-intl-tel-input/dist/main.css\";\nimport Logo from \"../../assets/images/logo.svg\";\nimport { useHistory } from \"react-router-dom\";\nimport {\n GenerateOtpActionFn,\n GetCallingCodeActionFn,\n GetProviderActionFn,\n} from \"../../redux/actions/loginAction\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\nconst Login = (props) => {\n const history = useHistory();\n const dispatch = useDispatch();\n const loginData = useSelector((state) => state?.loginData);\n\n const ProviderData = useSelector((state) => state?.loginData?.ProviderData);\n const CallingCode = useSelector((state) => state?.loginData?.callingCode?.data);\n const CurrentUser = useSelector((state) => state?.UserData?.currentuser);\n\n\n const [operator, setOperator] = useState(\"\");\n const [contact, setcontact] = useState(\"\");\n const [countryCode, setCountryCode] = useState(\"+233\");\n const [Errormsg, setErrorMsg] = useState(\"\");\n const [isFirst, setIsFirst] = useState(true);\n const [operatrError, setOperatorError] = useState(false);\n const [contactError, setContactError] = useState(false);\n\n useEffect(() => {\n if (loginData?.loginSuccesData?.accessToken) {\n if(loginData?.loginSuccesData?.accountType === \"Individual\"){\n window.location = \"/user-dashboard\";\n }\n else if(loginData?.loginSuccesData?.accountType === \"Business\"){\n window.location = \"/business-dashboard\";\n }\n else if(loginData?.loginSuccesData?.accountType === \"Merchant\"){\n window.location = \"/merchant-dashboard\"\n }\n else\n {\n return\n }\n }\n dispatch(GetProviderActionFn());\n dispatch(GetCallingCodeActionFn());\n }, []);\n\n useEffect(() => {\n if (!isFirst) {\n if (loginData && loginData?.otpValue) {\n if (loginData?.otpValue?.data && loginData?.otpValue?.data?.status) {\n history?.push({\n pathname: \"/otpconfirm\",\n state: {\n num: contact,\n operator: operator,\n countryCode: countryCode\n },\n });\n } else if (loginData?.OtpError) {\n setErrorMsg(\"Please enter a valid mobile number\");\n }\n }\n }\n }, [loginData]);\n\n\n \n const sendUser = () => {\n if (operator === \"\") {\n setOperatorError(true);\n } else if (contact === \"\") {\n setContactError(true);\n } else if (contact?.length < 9) {\n setContactError(true);\n } else {\n let body = {\n phone: contact,\n countryCode: countryCode,\n serviceProvider: operator,\n \n };\n setIsFirst(false);\n dispatch(GenerateOtpActionFn(body));\n }\n };\n\n return (\n <>\n
\n
\n
\n
\n \"\"\n
\n
\n

\n Welcome to
Pocketi!\n

\n

\n Log In to proceed to the dashboard to manage all the
{\" \"}\n information regarding users and transactions\n

\n
\n
\n
\n
\n

Log In

\n {Errormsg ?

\n {Errormsg}\n

: \"\"}\n
\n \n\n setOperator(e?.target?.value)}\n >\n \n {ProviderData?.data &&\n ProviderData?.data?.status &&\n ProviderData &&\n ProviderData?.data?.data?.length > 0 &&\n ProviderData?.data?.data?.map((item, i) => {\n return (\n \n );\n })}\n \n {operatrError && !operator && (\n

\n Please select operator\n

\n )}\n
\n
\n {/* {\n setcontact(value);\n setCountryCode(`+${countryData?.dialCode}`);\n }}\n /> */}\n \n setcontact(e?.target?.value)}\n >\n
\n {contactError && !contact && (\n Please enter contact number\n )}\n
\n sendUser()}\n >\n Proceed with OTP code\n \n
\n
\n
\n
\n
\n \n );\n};\n\nexport default Login;\n","import React, { useState, useEffect } from \"react\";\nimport \"react-intl-tel-input/dist/main.css\";\nimport { useHistory } from \"react-router-dom\";\nimport Logo from \"../../assets/images/logo.svg\";\nimport OtpInput from \"react-otp-input\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { GenerateOtpActionFn, SendOtpActionFn } from \"../../redux/actions/loginAction\";\n\nconst OTP = (props) => {\n let history = useHistory();\n const dispatch = useDispatch();\n const LoginData = useSelector((state) => state?.loginData);\n\n const [showLoader, setshowLoader] = useState(false);\n const [otpValues, setValue] = useState(\"\");\n const [isLogin, setisLogin] = useState(true);\n const [ApiError, setApiError] = useState(\"\");\n const [counter, setCounter] = useState(60);\n const [reotp,setReotp] = useState(false);\n const [timeover,setTimeover] = useState(true);\n\n useEffect(() => {\n if (\n props?.location?.state?.operator === \"\" ||\n props?.location?.state?.operator === null ||\n props?.location?.state?.operator === undefined\n ) {\n window.location = \"/\";\n }\n \n }, []);\n\n useEffect(() => {\n counter > 0 && setTimeout(() => setCounter(counter - 1), 1000);\n if(counter === 0){\n setTimeover(false)\n }\n }, [counter]);\n\n useEffect(() => {\n if (!isLogin) {\n handleNavigation()\n }\n }, [LoginData]);\n\n\n\n const resendOtp = () => {\n setCounter(60)\n let loginData = props?.location?.state\n let body = {\n phone: loginData?.num,\n countryCode: loginData?.countryCode,\n serviceProvider: loginData?.operator,\n \n };\n dispatch(GenerateOtpActionFn(body));\n }\n\n\n const handleChange = async(otp) => {\n setValue(otp);\n let body = {\n phone: props?.location?.state?.num,\n otp: otp,\n fcmToken: \"qwertyuioasdfghjkl23456789dfgh\",\n };\n if (otp?.length > 5) {\n setshowLoader(true);\n setisLogin(false);\n try {\n const response = await dispatch(SendOtpActionFn(body));\n const loginAPIResponse = response?.payload\n if (loginAPIResponse){\n if (loginAPIResponse?.status == 200){\n if (loginAPIResponse?.data?.status == true ){\n const token = loginAPIResponse?.data?.data?.accessToken\n localStorage?.setItem('accessToken', token)\n // handleNavigation()\n }\n }\n }\n\n } catch (err){\n console?.error(err)\n }\n }\n };\n\n\n const handleNavigation = () =>{\n if (LoginData?.loginErrorData?.message) {\n setApiError(LoginData?.loginErrorData?.message);\n setshowLoader(false);\n } \n if (LoginData?.loginSuccesData?.accessToken) {\n const accountType = LoginData?.loginSuccesData?.accountType\n setApiError(\"\");\n setshowLoader(false);\n if (accountType === \"Individual\"){\n history?.push(\"/user-dashboard\");\n } else if (accountType === \"Business\" ){\n history?.push(\"/business-dashboard\");\n } else if (accountType === \"Merchant\" ){\n history?.push(\"/merchant-dashboard\");\n } \n } else {\n return null\n }\n\n}\n\n return (\n <>\n
\n
\n
\n
\n \"\"\n
\n
\n

\n Welcome to
Pocketi!\n

\n

\n Log In to proceed to the dashboard to manage all the
{\" \"}\n information regarding users and transactions\n

\n
\n
\n
\n
\n

Verify your account

\n {ApiError &&

{ApiError}

}\n
\n \n
\n \n
\n
\n\n {showLoader ? (\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n Just a moment?.?.?. Checking\n
\n ) : (\n
\n
\n
\n

00:{counter}

\n
\n
\n

\n \n

\n
\n
\n
\n )}\n
\n
\n
\n
\n \n );\n};\n\nexport default OTP;\n","import React, { useEffect, useState } from 'react'\nimport Header from \"./header\";\nimport QRCode from \"qrcode.react\";\nimport { useDispatch } from 'react-redux';\nimport { Button } from 'react-bootstrap';\nimport { userDetailsActionFn } from '../../redux/actions/userDetailsAction';\n\n\n const GenerateQRCode = (props)=> {\n const dispatch = useDispatch();\n const [qrValue, setQRValue] = useState('');\n const [userDetails, setUserDetails] = useState('')\n const [companyName, setCompanyName]= useState('')\n\n\n useEffect(()=>{\n getUserDetails()\n },[])\n\n const getUserDetails = async() => {\n try {\n const response = await dispatch(userDetailsActionFn())\n const userDataResponse = response?.payload\n setUserDetails(userDataResponse?.data)\n const {serviceProvider, phone,companyName, userId, email,countryCode, isCanReceivePayment,currentAccountType } = userDataResponse?.data?.user;\n let qr = \n {\n \"userId\":userId,\n \"serviceProvider\": serviceProvider,\n \"phone\":phone,\n \"countryCode\":countryCode,\n \"companyName\":companyName,\n \"email\":email\n }\n setQRValue(JSON.stringify(qr))\n setCompanyName(companyName)\n\n } catch (err) {\n console.error(err)\n }\n }\n\n const handleQRDownload =()=> {\n if (userDetails){\n const canvas = document.getElementById(\"qr-gen\");\n const pngUrl = canvas\n .toDataURL(\"image/png\")\n .replace(\"image/png\", \"image/octet-stream\");\n let downloadLink = document.createElement(\"a\");\n downloadLink.href = pngUrl;\n downloadLink.download = `${companyName}.png`;\n document.body.appendChild(downloadLink);\n downloadLink.click();\n document.body.removeChild(downloadLink);\n }\n }\n\n\n return (\n <>\n
\n
\n
\n {userDetails? \n \n \n : <>}\n
\n \n
\n
\n
\n \n )\n}\n\nexport default GenerateQRCode;","export default __webpack_public_path__ + \"static/media/arrow-down.7a63c33b.svg\";","export default __webpack_public_path__ + \"static/media/arrow-up.d06c9f36.svg\";","export default __webpack_public_path__ + \"static/media/user-photo.a1e72105.png\";","import {\n FilterTypes,\n getTopReceiver,\n getTopSenders,\n getTransactionById,\n getTransactions,\n merchantTransactionStats,\n paymentvsRequest,\n revenueGraph,\n transactionsByType,\n} from \"../api/ApiService\";\nimport {\n FILTERTYPE,\n GENERATE_TOKEN,\n GETTRANSACTIONS,\n MERCHANTSTATS,\n PAYMENTVSREQUEST,\n REVENUEGRAPH,\n TOPRECEIVERS,\n TOPSENDERS,\n TRANSACTION,\n TRANSACTIONTYPE,\n GET_EXPORT_TRANSACTIONS,\n GET_PDF_TRANSACTIONS_DETAILS\n} from \"../constants\";\nimport { validateToken } from \"../utilities\";\nimport { loadingAction } from \"./loadingAction\";\n\nexport const getTransactionActionFn = (data) => {\n return async (dispatch) => {\n dispatch(loadingAction(true))\n\n const response = await validateToken();\n dispatch({ type: GENERATE_TOKEN, payload: response });\n\n return getTransactions(data)\n .then((response) => {\n dispatch(loadingAction(false))\n return dispatch({ type: GETTRANSACTIONS, payload: response });\n })\n .catch(({ ...error }) => {\n dispatch(loadingAction(false))\n throw error;\n });\n };\n};\n\nexport const getTransactionTypeActionFn = (data) => {\n return async (dispatch) => {\n dispatch(loadingAction(true))\n\n const response = await validateToken();\n dispatch({ type: GENERATE_TOKEN, payload: response });\n\n return transactionsByType(data)\n .then((response) => {\n dispatch(loadingAction(false))\n return dispatch({ type: TRANSACTIONTYPE, payload: response });\n })\n .catch(({ ...error }) => {\n dispatch(loadingAction(false))\n throw error;\n });\n };\n};\n\nexport const getExportTransactionAction = (data) => {\n return async (dispatch) => {\n dispatch(loadingAction(true))\n\n const response = await validateToken();\n dispatch({ type: GENERATE_TOKEN, payload: response });\n\n return getTransactions(data)\n .then((response) => {\n dispatch(loadingAction(false))\n\n if (response && response.status && response.status === 200) {\n return dispatch({ type: GET_EXPORT_TRANSACTIONS, payload: response.data });\n }\n })\n .catch(({ ...error }) => {\n dispatch(loadingAction(false))\n throw error;\n });\n };\n};\n\nexport const getPdfTransactionDetailAction = (transactionId) => {\n return async (dispatch) => {\n dispatch(loadingAction(true))\n\n const response = await validateToken();\n dispatch({ type: GENERATE_TOKEN, payload: response });\n\n return getTransactionById(transactionId)\n .then((response) => {\n dispatch(loadingAction(false))\n if (response && response.status && response.status === 200) {\n return dispatch({ type: GET_PDF_TRANSACTIONS_DETAILS, payload: response.data });\n }\n })\n .catch(({ ...error }) => {\n dispatch(loadingAction(false))\n throw error;\n });\n };\n};\n\nexport const getRevenueActionFn = (data) => {\n return async (dispatch) => {\n dispatch(loadingAction(true))\n\n const response = await validateToken();\n dispatch({ type: GENERATE_TOKEN, payload: response });\n\n return revenueGraph(data)\n .then((response) => {\n dispatch(loadingAction(false))\n // if (response && response.status && response.status === 200) {\n return dispatch({ type: REVENUEGRAPH, payload: response });\n // }\n })\n .catch(({ ...error }) => {\n dispatch(loadingAction(false))\n throw error;\n });\n };\n};\n\nexport const getTransactionByIdActionFn = (id) => {\n return async (dispatch) => {\n dispatch(loadingAction(true))\n\n const response = await validateToken();\n dispatch({ type: GENERATE_TOKEN, payload: response });\n\n return getTransactionById(id)\n .then((response) => {\n dispatch(loadingAction(false))\n return dispatch({ type: TRANSACTION, payload: response });\n })\n .catch(({ ...error }) => {\n dispatch(loadingAction(false))\n throw error;\n });\n };\n}\n\n\nexport const getTopReceiverActionFn = () => {\n return async (dispatch) => {\n dispatch(loadingAction(true))\n\n const response = await validateToken();\n dispatch({ type: GENERATE_TOKEN, payload: response });\n\n return getTopReceiver()\n .then((response) => {\n dispatch(loadingAction(false))\n return dispatch({ type: TOPRECEIVERS, payload: response});\n })\n .catch(({ ...error }) => {\n dispatch(loadingAction(false))\n throw error;\n });\n };\n};\n\nexport const getTopSendersActioFn = () => {\n return async (dispatch) => {\n dispatch(loadingAction(true))\n\n const response = await validateToken();\n dispatch({ type: GENERATE_TOKEN, payload: response });\n\n return getTopSenders()\n .then((response) => {\n dispatch(loadingAction(false))\n return dispatch({ type: TOPSENDERS, payload: response });\n })\n .catch(({ ...error }) => {\n dispatch(loadingAction(false))\n throw error;\n });\n };\n};\n\nexport const paymentVsRequestActionFn = (data) => {\n return async (dispatch) => {\n dispatch(loadingAction(true))\n\n const response = await validateToken();\n dispatch({ type: GENERATE_TOKEN, payload: response });\n\n return paymentvsRequest(data)\n .then((response) => {\n dispatch(loadingAction(false))\n return dispatch({ type: PAYMENTVSREQUEST, payload: response });\n })\n .catch(({ ...error }) => {\n dispatch(loadingAction(false))\n throw error;\n });\n };\n};\n\nexport const getFilterTypeActionFn = () => {\n return async (dispatch) => {\n dispatch(loadingAction(true))\n \n const response = await validateToken();\n dispatch({ type: GENERATE_TOKEN, payload: response });\n\n return FilterTypes()\n .then((response) => {\n dispatch(loadingAction(false))\n return dispatch({ type: FILTERTYPE, payload: response });\n })\n .catch(({ ...error }) => {\n dispatch(loadingAction(false))\n throw error;\n });\n };\n};\n\nexport const merchantTransactionStatisticsActionFn = (data) => {\n return async (dispatch) => {\n dispatch(loadingAction(true))\n\n const response = await validateToken();\n dispatch({ type: GENERATE_TOKEN, payload: response });\n\n return merchantTransactionStats(data)\n .then((response) => {\n dispatch(loadingAction(false))\n return dispatch({ type: MERCHANTSTATS, payload: response });\n })\n .catch(({ ...error }) => {\n dispatch(loadingAction(false))\n throw error;\n });\n };\n};\n","import React, { useEffect, useRef, useState } from \"react\";\nimport User3 from \"../../assets/images/user-3.jpg\";\nimport User5 from \"../../assets/images/user-5.jpg\";\nimport UserPhoto from \"../../assets/images/user-photo.png\";\nimport { Chart } from \"chart.js\";\nimport { Select, CaretIcon, ModalCloseButton } from \"react-responsive-select\";\nimport \"react-responsive-select/dist/react-responsive-select.css\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport {\n getRevenueActionFn,\n getTopReceiverActionFn,\n getTopSendersActioFn,\n paymentVsRequestActionFn,\n} from \"../../redux/actions/transactionAction\";\n\nconst BusinessChart = (props) => {\n const dispatch = useDispatch();\n \n const [paymentVsRequestData, setPaymentVsRequestData] = useState([])\n const [revenueGrowthData, setRevenueGrowthData] = useState([])\n const [topSendersData, setTopSendersData] = useState([]) \n\n useEffect(() => {\n getPaymentvsRequest(6);\n getTopSenders();\n getRevenueGrowth(6);\n }, []);\n\n\n //======== get payment vs request ============================\n const getPaymentvsRequest = async (month) => {\n try{\n let paymentdata = {\n account_type: \"Business\",\n month: month,\n };\n const response = await dispatch(paymentVsRequestActionFn(paymentdata));\n const paymentVsRequestResponse = response?.payload;\n if (paymentVsRequestResponse){\n if(paymentVsRequestResponse?.status == 200){\n if(paymentVsRequestResponse?.data){\n barChart1(paymentVsRequestResponse?.data)\n setPaymentVsRequestData(paymentVsRequestResponse?.data)\n }\n } else {\n console.error(paymentVsRequestResponse)\n }\n }\n } catch (err){\n console.error(err)\n }\n };\n\n //======== get revenue growth ============================\n const getRevenueGrowth = async (month) => {\n try{\n const response = await dispatch(getRevenueActionFn(month));\n const revenueResponse = response?.payload;\n if (revenueResponse){\n if(revenueResponse?.status == 200){\n if(revenueResponse?.data){\n barChart2(revenueResponse?.data?.result)\n setRevenueGrowthData(revenueResponse?.data?.result)\n }\n } else {\n console.error(revenueResponse)\n }\n }\n } catch (err){\n console.error(err)\n }\n }\n \n //========= get top sender =======================\n const getTopSenders = async () => {\n try{\n const response = await dispatch(getTopSendersActioFn());\n const topSenderResponse = response?.payload;\n if (topSenderResponse){\n if(topSenderResponse?.status == 200){\n if(topSenderResponse?.data){\n setTopSendersData(topSenderResponse?.data)\n }\n } else {\n console.error(topSenderResponse)\n }\n }\n } catch (err){\n console.error(err)\n }\n };\n\n\n// Revenue Growth Chart\n const barChart2 = (revenuedata) => {\n var ctx1 = document.getElementById(\"barChart\").getContext(\"2d\");\n var barChart = new Chart(ctx1,{\n type: \"bar\",\n fillOpacity: 0.8,\n data: {\n \n labels: revenuedata?.result\n ? revenuedata?.result.map((a) => a.dateRange.split(\" \"))\n : [\"jan\",\"feb\",\"mar\",\"apr\",\"may\"],\n datasets: [\n {\n label: \"revenue\",\n backgroundColor: \"#38B635\",\n borderColor: \"#38B635\",\n pointBorderColor: \"#38B635\",\n borderWidth: 2,\n pointRadius: 4,\n pointHoverRadius: 4,\n pointBackgroundColor: \"#FFF\",\n data: revenuedata?.result\n ? revenuedata?.result.map((a) => a.count)\n : [0,0,0,0,0,0],\n },\n ],\n },\n options: {\n responsive: true,\n maintainAspectRatio: false,\n bezierCurve: false,\n elements: {\n line: {\n tension: 0,\n },\n },\n scales: {\n xAxes: [\n {\n ticks: {\n // autoSkip: false,\n // maxRotation: 100,\n // minRotation: 50,\n },\n gridLines: { color: \"rgba(0, 0, 0, 0)\" },\n },\n ],\n yAxes: [\n {\n ticks: { beginAtZero: true },\n gridLines: { color: \"rgba(244, 244, 244, 1)\" },\n },\n ],\n },\n\n tooltips: {\n custom: function (tooltip) {\n if (!tooltip) return;\n // disable displaying the color box;\n tooltip.displayColors = false;\n },\n callbacks: {\n // use label callback to return the desired label\n label: function (tooltipItem, data) {\n return \"GH₵\" + tooltipItem.yLabel;\n },\n // remove title\n title: function (tooltipItem, data) {\n return;\n },\n },\n backgroundColor: \"#FFF\",\n borderColor: \"rgba(0, 0, 0, 0.09)\",\n borderWidth: 1,\n bodyFontColor: \"rgba(0, 0, 0, 1)\",\n bodyAlign: \"center\",\n bodyFontSize: 14,\n bodyFontStyle: 500,\n },\n legend: {\n align: \"end\",\n labels: {\n boxWidth: 12,\n fontColor: \"#A4A7B0\",\n },\n },\n },\n })\n\n };\n\n\n\n // Payment vs Request Chart \n const barChart1 = (paymentvsreq_data) => {\n var ctx2 = document.getElementById(\"myChart2\").getContext(\"2d\");\n var gradientFill = ctx2.createLinearGradient(0, 250, 0, 130);\n gradientFill.addColorStop(1, \"rgba(56, 182, 53, 1)\");\n gradientFill.addColorStop(0, \"rgba(255, 255, 255, 0)\");\n\n var gradientFill2 = ctx2.createLinearGradient(0, 250, 0, 80);\n gradientFill2.addColorStop(1, \"rgba(207, 238, 206, 1)\");\n gradientFill2.addColorStop(0, \"rgba(255, 255, 255, 0)\");\n var myChart2 = new Chart(ctx2, {\n type: \"line\",\n fillOpacity: 0.8,\n data: {\n labels: paymentvsreq_data.graph\n ? paymentvsreq_data.graph.map((a) => a.month)\n : [\"jan\",\"feb\",\"mar\",\"apr\",\"may\"],\n datasets: [\n {\n label: \"Payments\",\n backgroundColor: gradientFill,\n borderColor: \"#38B635\",\n pointBorderColor: \"#38B635\",\n borderWidth: 2,\n pointRadius: 4,\n pointHoverRadius: 4,\n pointBackgroundColor: \"#FFF\",\n data: paymentvsreq_data.graph\n ? paymentvsreq_data.graph.map((a) => a.paymentCount)\n : [0,0,0,0,0,0],\n },\n {\n label: \"Requests\",\n backgroundColor: gradientFill2,\n borderColor: \"#CFEECE\",\n pointBorderColor: \"#CFEECE\",\n borderWidth: 2,\n pointRadius: 4,\n pointHoverRadius: 4,\n pointBackgroundColor: \"#FFF\",\n data: paymentvsreq_data.graph\n ? paymentvsreq_data.graph.map((a) => a.requestCount)\n : [0,0,0,0,0,0],\n },\n ],\n },\n options: {\n responsive: true,\n maintainAspectRatio: false,\n bezierCurve: false,\n elements: {\n line: {\n tension: 0,\n },\n },\n scales: {\n xAxes: [\n {\n gridLines: { color: \"rgba(0, 0, 0, 0)\" },\n },\n ],\n yAxes: [\n {\n ticks: { beginAtZero: true },\n gridLines: { color: \"rgba(244, 244, 244, 1)\" },\n },\n ],\n },\n\n tooltips: {\n custom: function (tooltip) {\n if (!tooltip) return;\n // disable displaying the color box;\n tooltip.displayColors = false;\n },\n callbacks: {\n // use label callback to return the desired label\n label: function (tooltipItem, data) {\n return \"GH₵\" + tooltipItem.yLabel;\n },\n // remove title\n title: function (tooltipItem, data) {\n return;\n },\n },\n backgroundColor: \"#FFF\",\n borderColor: \"rgba(0, 0, 0, 0.09)\",\n borderWidth: 1,\n bodyFontColor: \"rgba(0, 0, 0, 1)\",\n bodyAlign: \"center\",\n bodyFontSize: 14,\n bodyFontStyle: 500,\n },\n legend: {\n align: \"end\",\n labels: {\n boxWidth: 12,\n fontColor: \"#A4A7B0\",\n },\n },\n },\n });\n };\n\n\n\n return (\n
\n
\n
\n
\n
\n

Payments vs Requests

\n
\n getPaymentvsRequest(e.target.value)}\n >\n \n \n \n \n \n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n

Top Senders

\n
\n
\n
    \n {topSendersData?.result?.length > 0 &&\n topSendersData.result.map((sender, i) => {\n return (\n
  • \n \n \"\"\n \n \n

    {sender.senderName}

    \n {/*

    \n to business\n

    */}\n
    \n {/* \n
    \n -GH₵1,651.31 Aug 08, 2020{\" \"}\n
    \n
    */}\n \n
    \n {sender.countryCode} {sender.senderPhone}\n
    \n
    \n
  • \n );\n })}\n
\n
\n
\n
\n
\n
\n
\n

Revenue Growth

\n
\n getRevenueGrowth(e.target.value)}\n >\n \n \n \n \n \n
\n
\n
\n \n\n
\n
\n
\n
\n
\n );\n};\n\nexport default BusinessChart;\n","import logo from './../../assets/images/logo-svg.png'\nimport './export.css'\nimport moment from 'moment'\nconst ExportData =({data,schoolData, invoiceData})=>{\n \n return(\n
\n \n \n \n \n \n \n \n {/* \n \n */}\n
\n

Date: {moment(new Date()).format('LL')}

\n
\n

Transaction Details

\n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {data.transactionStatus ==\"Failed\" ?:''}\n {data.transactionStatus ==\"In Process\" ?:''}\n {data.transactionStatus ==\"Debited\" ?:''}\n {data.transactionStatus ==\"Credited\" ?:''}\n {data.transactionStatus ==\"Refunded\" ?:''}\n \n\n {\n schoolData ? (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n :''\n }\n\n
\n Transaction Details\n
Transaction Id{data.transactionId}
Account Type{data.accountType}
Amount{data.amount}
Method{data.method}
Payment Through{data.paymentThrough}
Payment Type{data.paymentType}
Receiver Name{data.receiverName}
Receiver Phone{data.receiverPhone}
Sender Name{data.senderName}
Sender Phone{data.senderPhone}
Transaction Date{data.transactionDate}
Transaction Status{data.transactionStatus}{data.transactionStatus}{data.transactionStatus}{data.transactionStatus}{data.transactionStatus}
Fee Detail{schoolData?.data?.fee_detail}
Institute{schoolData?.data?.institute}
Location{schoolData?.data?.location}
Student Name{schoolData?.data?.student_name}
Student Number{schoolData?.data?.student_number}
Merchant Type{schoolData?.merchantType}
\n {invoiceData ? \n \n \n \n \n\n \n \n \n \n \n {\n invoiceData?.items?.map((item, index)=>{\n return(\n \n \n \n \n \n )\n })\n }\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n Invoice Details\n
ItemsQuantityRate
{item?.itemName || '=='}{item?.qty || '--'}{item?.unitRate || '--'}
Taxes {invoiceData?.taxes || '--'}
Fees {invoiceData?.fees || '--'}
Address{invoiceData?.deliveryInfo?.address || '--'}
Delivery Cost {invoiceData?.deliveryInfo?.cost || '--'}
\n :null}\n
\n )\n}\nexport default ExportData","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALYAAAAvCAMAAAB5R8C9AAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAPxQTFRFAAAA////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////WPWlFQAAAFR0Uk5TAIDv/88wFygKIThPZjMQj0CQwBUsQ1pxcL8IHzZNZHvfUOATKkFYb6AGHTRLYnkRP1Ztc6mckZSThmUg1biopbOHn1+wYOLBrK2v8MrQp7J/Lw8Wd4Q/tgAABDJJREFUeJzdmX1/2zQQxy07ZkBAlb0NYspDEh5qxpOB8mjoNi8GVi8s697/eyG6O8mnxLHdT+uk4fdPZPmk+/p0Otmt5x2bhB+Mwj6Gb9wbGuUaEsFafrvNm2+9PX5HiHcHQpAnfS1VZFqxxg52Gt5/8PC99wVqIOyJv9u9I5UEsWnvxP7g9MOPPv5EMA2CraZtUeOGydrQYs809dy1+PSzz784E1saAjtqX2wmMLTY3iyOU2kuvnz01dfffLtNPBh2R47uxjb67l72/Q87gO8s9o/nP/38S4d+/U3rd2dcmGhBM88a6qjK8iaG0Ni2YatMsisXO0K/UAf/+PPi8ZMuPXWmluQ2LHxdSAvuKC+mcDd55tJQ97RwsRdAssAZ8hMw8gt86jJJwNA3QaJxgA366+9/Hj/vjY1ByCdmtG8jLi/tlMG0Xocwsb2xg00EM7ASvrUq2c3AWm9hW/bz/tgFG6qIeupMWJJ5WfMEEccOuV26ObQnNqh60cTehM01hVWWI7eXViHc5LHYS/sk6wMI7yd4M8ivh23Z/+3G9iORUiAn9ar6azKF3bht52iyFEqJRc6w0T7FvIYRepuEU+pVAg3muqL1wUa9eGnZG7EhmBThqW4i65hFWFuU2Czr4eRewQ/VCWFm8bwx9EvraPNw78AGne/GxlqBzvWiwtkbjNAEMz+ymSDYcHIPN5ZUhqp6Rpxe3Qj7+W5suhgZL7inVh4LWWyqZcCLJLqHZK6oP4euYgWqn3NAbIzrxMw6xt4MLnzPTQXuHlLKp4NJbTkeGtsGB2fNsFcam53YKMqpSbCpobFP4KLcwH4FF1UnNiV9uXdsPAHXub2AxhlPktgufwM2/YR1kqTsHW6wLXkK7Su8yM1CX/I1SG22sPpH7lP6hTTBLRl5XoOjW8YuoI07cunZWg1Pc4XH/Mw689mbIvZIYkXY+aYRcySdcTfFDi5PvVf0ZjKppx1dramxGz6gTNoWmcyzs9Bjhzt+5kCJphN2BZVFjmlxKpzxWaZuEbsWll/z8pEkfs1jzhuS4NgSsfQbjZwbi5G565ntElCi3Do2Le5GPaCQERwq5dhmgE6TsHLGhu6Et4hto1jNzI2S+a7sLsxZvN33bVNU9AThPGAqeTpfA3skog5sSXMu2CdYbt6aq4h/mJUWaeliU3n0dZJJUT/0wrzBpww7VFqt2Drfztqx15ATIcqN70Y5s1WXKy919yxn7r26rWiScKKtSj5a+3CdtGGvCK/7uNm72rD1qZEdH3awOh2PjhCb9L/DTg8DfTPs5Vat2Jv6Y7t/TPPYUXIA9cd+7Q6MZPOE+1Ff7IuHh6TcUi/si6fj191T7VNqMe/EnhwaslF5GS1bsQ9XMDqlRFwdIbZWWKaNYW/8v8DdktwO+/a/e+6onLAvD1qgr6t12HWRie9mGTlO/QdeRrxQKi3OugAAAABJRU5ErkJggg==\"","import User5 from \"../../assets/images/user-5.jpg\";\nimport Air from \"../../assets/images/egypt-air.png\";\n// import UserPhoto from \"../../assets/images/user-photo.png\";\nimport User3 from \"../../assets/images/user-3.jpg\";\nimport { isEmpty } from \"lodash\";\nimport { Modal } from \"react-bootstrap\";\nimport React, { useEffect, useState } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport {\n getExportTransactionAction,\n getFilterTypeActionFn,\n getPdfTransactionDetailAction,\n getTransactionActionFn,\n getTransactionByIdActionFn,\n} from \"../../redux/actions/transactionAction\";\nimport moment from \"moment\";\nimport Calendar from \"react-calendar\";\nimport \"react-calendar/dist/Calendar.css\";\nimport exportFromJSON from \"export-from-json\";\nimport ExportData from \"../../redux/utilities/export\";\nimport { renderToString } from \"react-dom/server\";\nimport { jsPDF } from \"jspdf\";\nimport { GET_PDF_TRANSACTIONS_DETAILS } from \"../../redux/constants\";\n\nconst BusinessTransactions = (props) => {\n const [show, setShow] = useState(false);\n const dispatch = useDispatch();\n\n const [transactionDataArr, setTransactionDataArr] = useState([]);\n const [transactionDetailById, setTransactionDetailById] = useState([]);\n const [invoiceDetials, setInvoiceDetials] = useState([]);\n const [filters, setFilters] = useState([]);\n\n const handleClose = () => setShow(false);\n const handleShow = () => setShow(true);\n const [isUserFilter, setIsUserFilter] = useState(false);\n const [isSort, setIsSort] = useState('\"\"');\n const [customRange, setCustomRange] = useState(\"\");\n const [isCurrentPage, setIsCurrentPage] = useState(1);\n const [isStatus, setIsStatus] = useState([]);\n const [isTransactionType, setIsTransactionType] = useState([]);\n const [isMethod, setIsMethod] = useState([]);\n const [isAmountType, setIsAmountType] = useState(\"\");\n const [showCalender, setShowCalender] = useState(false);\n const [isCalenderDate, setIsCalenderDate] = useState(\"\");\n const [isCalnder, setIsCalnder] = useState(true);\n const [tranactionExport, setTransactionExport] = useState([]);\n const [searchText, setSearchText] = useState(\"\");\n const [searchTrueORFalse, setSearchTrueORFalse] = useState(false);\n\n useEffect(() => {\n if (searchTrueORFalse == false) {\n getInitialData();\n }\n }, [searchTrueORFalse]);\n\n const getInitialData = () => {\n const formData = {\n accountType: \"Business\",\n status: isStatus,\n type: isTransactionType,\n method: isMethod,\n sort: isAmountType, // High, Low, Recent\n time: isSort, //last_month, this_month, last_6_month\n custom_range: customRange, //If Date range is selected then time param should be empty\n page: 1, //default should be always 1\n search: searchTrueORFalse,\n searchText: searchText,\n };\n getTransactionsList(formData);\n getFilterList();\n };\n\n const clearFilter = () => {\n setIsStatus([]);\n setIsTransactionType([]);\n setIsMethod([]);\n setIsAmountType(\"\");\n };\n\n const getTransactionsList = async (formData) => {\n try {\n const response = await dispatch(getTransactionActionFn(formData));\n const transactionResponse = response?.payload;\n if (transactionResponse) {\n if (transactionResponse?.status == 200) {\n setTransactionDataArr(transactionResponse?.data);\n } else {\n console.error(transactionResponse);\n }\n }\n } catch (err) {\n console.error(err);\n }\n };\n\n const getFilterList = async () => {\n try {\n const response = await dispatch(getFilterTypeActionFn());\n const getFilterResponse = response?.payload;\n if (getFilterResponse) {\n if (getFilterResponse?.status == 200) {\n setFilters(getFilterResponse?.data);\n } else {\n console.error(getFilterResponse);\n }\n }\n } catch (err) {\n console.error(err);\n }\n };\n\n const getTransactionById = async (id) => {\n try {\n const response = await dispatch(getTransactionByIdActionFn(id));\n const transactionResponse = response?.payload;\n if (transactionResponse) {\n if (transactionResponse?.status == 200) {\n setTransactionDetailById(transactionResponse?.data?.data);\n\n if (transactionResponse?.data?.data?.invoiceDetails) {\n setInvoiceDetials(transactionResponse?.data?.data?.invoiceDetails);\n } else {\n setInvoiceDetials([]);\n }\n setShow(true);\n } else {\n console.error(transactionResponse);\n }\n }\n } catch (err) {\n console.error(err);\n }\n };\n\n const getSearchData = async () => {\n try {\n if (searchText == \"\") {\n return false;\n } else {\n const formData = {\n accountType: \"Business\",\n search: searchTrueORFalse,\n searchText: searchText,\n status: isStatus,\n type: isTransactionType,\n method: isMethod,\n sort: isAmountType, // High, Low, Recent\n time: isSort, //last_month, this_month, last_6_month\n custom_range: customRange, //If Date range is selected then time param should be empty\n page: isCurrentPage, //default should be always 1\n };\n const response = await dispatch(getTransactionActionFn(formData));\n const searchResponse = response?.payload;\n if (searchResponse) {\n if (searchResponse?.status == 200) {\n setTransactionDataArr(searchResponse?.data);\n } else {\n console.error(searchResponse);\n }\n }\n }\n } catch (err) {\n console.error(err);\n }\n };\n\n const handleSearchTextChange = (e) => {\n const value = e.target.value;\n setSearchText(value);\n if (value == \"\") {\n setSearchTrueORFalse(false);\n } else {\n setSearchTrueORFalse(true);\n }\n };\n\n const handleSearchEnterkey = (e) => {\n const key = e.key;\n if (key == \"Enter\") {\n if (searchTrueORFalse == true) {\n getSearchData();\n }\n }\n };\n\n const onChangeStatusHandler = (e) => {\n if (e.target.checked) {\n setIsStatus([...isStatus, e.target.value]);\n } else {\n let remove = isStatus.indexOf(e.target.value);\n setIsStatus(isStatus.filter((_, i) => i !== remove));\n }\n };\n\n const onChangeTransactionType = (e) => {\n if (e.target.checked) {\n setIsTransactionType([...isTransactionType, e.target.value]);\n } else {\n let remove = isTransactionType.indexOf(e.target.value);\n setIsTransactionType(isTransactionType.filter((_, i) => i !== remove));\n }\n };\n\n const onChangeMethodHandler = (e) => {\n if (e.target.checked) {\n setIsMethod([...isMethod, e.target.value]);\n } else {\n let remove = isMethod.indexOf(e.target.value);\n setIsMethod(isMethod.filter((_, i) => i !== remove));\n }\n };\n\n const onChangeAmountTypeHandler = (e) => {\n setIsAmountType(e.target.value);\n };\n\n const sortHander = (e) => {\n if (e.target.value === \"custom_range\") {\n setShowCalender(true);\n } else {\n setIsSort(e.target.value);\n const formData = {\n accountType: \"Business\",\n status: isStatus,\n type: isTransactionType,\n method: isMethod,\n sort: isAmountType, // High, Low, Recent\n time: e.target.value, //last_month, this_month, last_6_month\n custom_range: customRange, //If Date range is selected then time param should be empty\n page: isCurrentPage, //default should be always 1\n search: searchTrueORFalse,\n searchText: searchText,\n };\n getTransactionsList(formData);\n setShowCalender(false);\n }\n };\n\n const selectDate = (value) => {\n const rangeDate =\n moment(value[0]).format(\"Y-MM-DD\") +\n \" \" +\n moment(value[1]).format(\"Y-MM-DD\");\n\n const formData = {\n accountType: \"Business\",\n status: isStatus,\n type: isTransactionType,\n method: isMethod,\n sort: isAmountType, // High, Low, Recent\n time: \"\", //last_month, this_month, last_6_month\n custom_range: rangeDate, //If Date range is selected then time param should be empty\n page: isCurrentPage, //default should be always 1\n search: searchTrueORFalse,\n searchText: searchText,\n };\n getTransactionsList(formData);\n setIsCalenderDate(rangeDate);\n setIsCalnder(false);\n };\n\n const calenderToggle = () => {\n setIsCalnder(!isCalnder);\n };\n const applyFilter = (e) => {\n e.preventDefault();\n const formData = {\n accountType: \"Business\",\n status: isStatus,\n type: isTransactionType,\n method: isMethod,\n sort: isAmountType, // High, Low, Recent\n time: isSort, //last_month, this_month, last_6_month\n page: isCurrentPage, //default should be always 1\n search: searchTrueORFalse,\n searchText: searchText,\n };\n getTransactionsList(formData);\n setIsUserFilter(false);\n\n // closing filter box\n const className = document.getElementsByClassName(\"dropdown-menu show\");\n className[0].className = \"dropdown-menu\";\n };\n\n // ============== export data to excel sheet ==================\n const exportData = async () => {\n try {\n const formData = {\n accountType: \"Business\",\n status: isStatus,\n type: isTransactionType,\n method: isMethod,\n sort: isAmountType, // High, Low, Recent\n time: isSort, //last_month, this_month, last_6_month\n custom_range: customRange, //If Date range is selected then time param should be empty\n page: isCurrentPage, //default should be always 1\n export: true,\n search: searchTrueORFalse,\n searchText: searchText,\n };\n const exportTransactionData = await dispatch(\n getExportTransactionAction(formData)\n );\n const response = exportTransactionData?.payload;\n if (response) {\n if (response?.status) {\n setTransactionExport(response?.result);\n const data = response && response?.result;\n const fileName = \"download\";\n const exportType = exportFromJSON.types.xls;\n exportFromJSON({ data, fileName, exportType });\n }\n }\n } catch (err) {\n console.error(err);\n }\n };\n\n // ========== export pdf ===\n const exportPdf = async (transactionId) => {\n try {\n const exportPdfApiResponse = await dispatch(\n getPdfTransactionDetailAction(transactionId)\n );\n const response = exportPdfApiResponse?.payload;\n if (response) {\n if (response?.status == true) {\n const transDetails = response?.data?.transactionDetails;\n const invoiceDetails = response?.data?.invoiceDetails;\n const paymentDetails = response?.data?.paymentDetails;\n if (transDetails) {\n downloadPdf(transDetails, paymentDetails, invoiceDetails);\n }\n }\n }\n } catch (err) {\n console.error(err);\n }\n };\n //=========== download pdf ====\n const downloadPdf = (transDetails, paymentDetails, invoiceDetails) => {\n if (transDetails) {\n const doc = new jsPDF(\"p\", \"pt\", \"legal\");\n let a = renderToString(\n \n );\n\n doc.html(a, {\n callback: function (doc) {\n doc.save(\"transactionDetails.pdf\");\n dispatch({ type: GET_PDF_TRANSACTIONS_DETAILS, payload: \"\" });\n },\n });\n }\n };\n\n // ======== Pagination =============== Start ===========================\n\n const paginationHander = (pageNumber) => {\n setIsCurrentPage(pageNumber);\n let formData = getFilter(pageNumber);\n getTransactionsList(formData);\n };\n\n const paginationList = () => {\n const pageNumbers = [];\n for (var i = 1; i <= transactionDataArr?.totalPage; i++) {\n pageNumbers.push(i);\n }\n if (transactionDataArr?.totalPage > 3) {\n }\n const renderPageNumbers = pageNumbers.map((number) => {\n if (\n number === transactionDataArr?.currentPage - 2 ||\n number === transactionDataArr?.currentPage + 2\n ) {\n return ...;\n } else if (\n number < 2 ||\n number === pageNumbers.length ||\n transactionDataArr?.currentPage === number ||\n transactionDataArr?.currentPage === number - 1 ||\n transactionDataArr?.currentPage === number + 1\n ) {\n return (\n
  • paginationHander(number)}>\n \n {number}\n \n
  • \n );\n }\n });\n return (\n \n );\n };\n\n const getFilter = (page) => {\n const formData = {\n accountType: \"Business\",\n status: isStatus,\n type: isTransactionType,\n method: isMethod,\n sort: isAmountType, // High, Low, Recent\n time: isSort, //last_month, this_month, last_6_month\n page: page,\n search: searchTrueORFalse,\n searchText: searchText,\n };\n return formData;\n };\n\n const nextPaginationHander = (pageNumber) => {\n if (isCurrentPage !== pageNumber) {\n const p = isCurrentPage + 1;\n setIsCurrentPage(p);\n let formData = getFilter(p);\n getTransactionsList(formData);\n }\n };\n\n const previousPaginationHander = () => {\n if (isCurrentPage > 1) {\n const p = isCurrentPage - 1;\n setIsCurrentPage(p);\n let formData = getFilter(p);\n getTransactionsList(formData);\n }\n };\n\n const firstPaginationHander = () => {\n const p = 1;\n setIsCurrentPage(p);\n let formData = getFilter(p);\n getTransactionsList(formData);\n };\n\n const lastPaginationHander = (pageNumber) => {\n const p = pageNumber;\n setIsCurrentPage(p);\n let formData = getFilter(p);\n getTransactionsList(formData);\n };\n\n // =============== Pagination =============== END =================\n\n const showTransactionData = (id) => {\n if (id) {\n getTransactionById(id);\n }\n };\n const renderTableData = () => {\n return (\n !isEmpty(transactionDataArr) &&\n transactionDataArr?.result?.map((item, index) => {\n const {\n transactionId,\n transactionDate,\n type,\n senderAvtar,\n senderName,\n receiverAvtar,\n amount,\n transactionStatus,\n method,\n receiverName,\n transactionTime,\n action,\n } = item;\n\n return (\n \n \n \n \n showTransactionData(transactionId)}\n >\n #{transactionId}\n \n \n
    \n {transactionDate}\n {transactionTime}{\" \"}\n
    \n \n \n
    \n \n \n \n \n {senderName ? senderName : \"NA\"}\n \n
    \n \n \n {/*
    \n \n \"receiver\"/\n \n \n {type}\n
    */}\n
    \n \n \n \n \n {receiverName ? receiverName : \"NA\"}\n \n
    \n \n GH₵ {amount}\n {transactionStatus}\n {method}\n {type}\n \n {\n exportPdf(transactionId);\n }}\n style={{ cursor: \"pointer\" }}\n >\n \n \n \n \n );\n })\n );\n };\n\n const handleSelectAll = (e) => {\n const checkbox = document.getElementById(\"selectall-checkbox\");\n const transCheckbox = document.querySelectorAll(\"#transaction-checkbox\");\n if (checkbox.checked) {\n for (var chbox of transCheckbox) {\n chbox.checked = true;\n }\n } else {\n for (var chbox of transCheckbox) {\n chbox.checked = false;\n }\n }\n };\n\n return (\n <>\n
    \n
    \n
    \n

    Transactions

    \n
    \n
    \n {\n handleSearchTextChange(e);\n }}\n onKeyPress={handleSearchEnterkey}\n className=\"form-control\"\n placeholder=\"Search\"\n />\n {\n getSearchData();\n }}\n />\n \n
    \n
    \n setIsUserFilter(!isUserFilter)}\n style={{ cursor: \"pointer\" }}\n id=\"filterDropDown\"\n data-toggle=\"dropdown\"\n >\n {\" \"}\n Filters\n \n\n
    \n
    applyFilter(e)}>\n \n clearFilter()}\n />\n\n
    \n
    \n
    \n

    By status

    \n \n \n \n \n
    \n
    \n
    \n
    \n

    By transaction type

    \n
    \n
    \n {filters?.data?.length > 0 &&\n filters?.data.map((filter) => {\n return (\n \n );\n })}\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n

    By method

    \n \n \n
    \n
    \n
    \n
    \n

    Sort by

    \n \n \n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n sortHander(e)}\n style={{\n background: \"#f4f4f4\",\n border: \"none\",\n fontSize: \"12px\",\n padding: \"0 10px\",\n maxWidth: \"115px\",\n margin: \"0 5px\",\n cursor: \"pointer\",\n }}\n >\n \n \n \n \n \n \n
    \n {showCalender && (\n <>\n
    \n
    \n calenderToggle()}\n />\n \n
    \n {isCalnder && (\n selectDate(value)}\n next2Label={null}\n prev2Label={null}\n selectRange={true}\n returnValue=\"range\"\n />\n )}\n
    \n \n )}\n \n Export\n \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n {renderTableData()}\n\n {/* \n \n \n \n\n \n \n \n \n \n \n */}\n {/* \n \n \n \n\n \n \n \n \n \n \n \n */}\n {/* \n \n \n \n\n \n \n \n \n \n \n */}\n {/* \n \n \n \n\n \n \n \n \n \n \n */}\n
    \n \n Transaction IDDateSenderReceiverAmountStatusMethodTypeAction
    \n \n #314746\n
    \n Aug 13, 2020 08:13 PM{\" \"}\n
    \n
    \n
    \n \n \"\"\n \n \n Akua Ado
    akuado154@gmail.com\n
    \n
    \n
    GH₵87.12CompletedRequest-\n \n \n \n
    \n \n #314746\n
    \n Aug 13, 2020 08:13 PM{\" \"}\n
    \n
    \n
    \n \n \"\"\n \n \n EgyptAir
    Travel\n
    \n
    \n
    GH₵87.12CompletedPaymentTravel\n \n \n \n
    \n \n #314746\n
    \n Aug 13, 2020 08:13 PM{\" \"}\n
    \n
    \n
    \n \n \"\"\n \n MTN\n
    \n
    GH₵87.12CompletedPaymentShopping\n \n \n \n
    \n \n #314746\n
    \n Aug 13, 2020 08:13 PM{\" \"}\n
    \n
    \n
    \n \n \n \n School Fees\n
    \n
    GH₵87.12CompletedPaymentSchool Fees\n \n \n \n
    \n
    \n
    \n
    \n\n
    {paginationList()}
    \n
    \n \n\n {/* modal first */}\n \n
    \n
    \n Transaction ID{\" \"}\n {transactionDetailById?.transactionDetails?.transactionId}\n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n {transactionDetailById?.transactionDetails?.transactionDate}\n \n \n GH₵ {transactionDetailById?.transactionDetails?.amount}\n \n \n {\n transactionDetailById?.transactionDetails\n ?.transactionStatus\n }\n \n
    \n
    \n Sender\n
    \n \n \n \n \n {\n transactionDetailById?.transactionDetails\n ?.senderName\n }{\" \"}\n
    {\" \"}\n \n {\n transactionDetailById?.transactionDetails\n ?.senderPhone\n }\n \n
    \n
    \n
    \n
    \n Receiver\n
    \n \n \n \n \n {\n transactionDetailById?.transactionDetails\n ?.receiverName\n }{\" \"}\n
    {\" \"}\n \n {\n transactionDetailById?.transactionDetails\n ?.receiverPhone\n }{\" \"}\n \n
    \n
    \n
    \n
    \n Method\n \n {transactionDetailById?.transactionDetails?.method}\n \n
    \n
    \n Type\n \n {transactionDetailById?.transactionDetails?.type}\n \n
    \n
    \n PRN Number\n \n
    \n
    \n Payment details\n \n {\n transactionDetailById?.transactionDetails\n ?.paymentThrough\n }\n \n
    \n
    \n
    \n
    \n
    \n
    \n
      \n {/*
    • Refund
    • */}\n
    • \n {\n exportPdf(\n transactionDetailById?.transactionDetails\n ?.transactionId\n );\n }}\n >\n Export\n \n
    • \n {/*
    • Delete
    • */}\n
    \n
    \n
    \n {/* invoice */}\n {invoiceDetials.length !== 0 ? (\n <>\n
    \n
    \n
    \n Invoice\n {transactionDetailById?.invoiceDetails?.items?.map(\n (item, index) => {\n return (\n \n {item?.itemName || \"--\"}x{item?.qty || \"--\"} . ₵\n {item?.unitRate || \"--\"}\n \n );\n }\n )}\n
    \n
    \n Taxes\n \n ₵{transactionDetailById?.invoiceDetails?.tax || \"--\"}\n \n
    \n
    \n Fees\n \n ₵{transactionDetailById?.invoiceDetails?.fees || \"--\"}\n \n
    \n
    \n
    \n
    \n
    \n
    \n Shipping Address\n \n {transactionDetailById?.invoiceDetails?.deliveryInfo\n ?.address || \"--\"}\n \n
    \n
    \n Delivery Cost\n \n ₵\n {transactionDetailById?.invoiceDetails?.deliveryInfo\n ?.cost || \"--\"}\n \n
    \n
    \n
    \n \n ) : null}\n
    \n
    \n
    \n\n {/*
    \n
    \n Transaction ID #314745\n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n Aug 13, 2020\n GH₵277.00\n Completed\n
    \n
    \n Sender\n
    \n \n \"\"\n \n \n Diane Larbi
    {\" \"}\n dihunter228@gmail.com\n
    \n
    \n
    \n
    \n Receiver\n
    \n \n \"\"\n \n \n Akua Ado
    {\" \"}\n akuado154@gmail.com\n
    \n
    \n
    \n
    \n Method\n Request\n
    \n
    \n
    \n
    \n
    \n
    \n
      \n
    • \n \n Refund\n \n
    • \n
    • \n \n Export\n \n
    • \n
    • \n \n Delete\n \n
    • \n
    \n
    \n
    \n
    \n
    \n
    */}\n \n {/* refund modal\n \n
    \n
    \n Refund a transaction\n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    Full refund

    \n \"\"\n
    \n GH₵277.00\n
    \n
    \n
    \n
    \n
    \n

    Partial refund

    \n \"\"\n
    \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n
    \n */}\n \n );\n};\n\nexport default BusinessTransactions;\n","import React, { useState, useEffect } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport ArrowDown from \"../../assets/images/arrow-down.svg\";\nimport ArrowUp from \"../../assets/images/arrow-up.svg\";\nimport BusinessChart from \"./business-charts\";\nimport Header from \"../common/header\";\nimport { userStatsActionFn } from \"../../redux/actions/userDetailsAction\";\nimport BusinessTransactions from \"./businessTransactions\";\nimport { getGraphScaleValueArr, getGraphValueArr, getPercentageChange } from \"../../redux/utilities\";\n\nconst CustomerDashboard = (props) => {\n const dispatch = useDispatch();\n \n const userCountStash = useSelector((state) => state.UserData.statistics.result\n );\n const [paymentCount, setPaymentCount] = useState(0);\n const [prevPaymentCount, setPrevPaymentCount] = useState(0);\n const [reqCount, setReqCount] = useState(0);\n const [prevReqCount,setPrevReqCount] = useState(0);\n const [receiveCount, setReceiveCount] = useState(0);\n const [prevReceiveCount,setPrevReceiveCount] = useState(0);\n const [sentAmount, setSentAmount] = useState(0);\n const [prevSentAmount,setPrevSentAmount] = useState(0);\n //======================= Small Graph =====================================\n const [valueArr, setValueArr] = useState({});\n const [graphScaleValue, setGraphScaleValue] = useState({});\n const [paymentCountObject, setPaymentCountObject] = useState({})\n const [requestCountObject, setRequestCountObject] = useState({})\n const [totalReceiveCountObject, setTotalReceiveCountObject] = useState({})\n const [totalSentCountObject, setTotalSentCountObject] = useState({})\n \n useEffect(() => {\n getUserWalletDetail()\n }, []);\n \n\n const getUserWalletDetail = async () => {\n try {\n const response = await dispatch(userStatsActionFn(\"Business\"));\n const getUserWalletResponse = response?.payload;\n if (getUserWalletResponse){\n if(getUserWalletResponse?.status == 200) {\n const {currentMonth, lastMonth } = getUserWalletResponse.data.result;\n // currentMonth\n setPaymentCount(currentMonth?.paymentCount);\n setReqCount(currentMonth?.requestCount);\n setReceiveCount(currentMonth?.totalReceive);\n setSentAmount(currentMonth?.totalSent);\n // lastMonth\n setPrevPaymentCount(lastMonth?.paymentCount);\n setPrevReqCount(lastMonth?.requestCount);\n setPrevReceiveCount(lastMonth?.totalReceive);\n setPrevSentAmount(lastMonth?.totalSent);\n // Small Graph \n getSmallGraphValue(getUserWalletResponse.data.result)\n \n } else {\n console.error(getUserWalletResponse)\n }\n }\n } catch (err) {\n console.error(err)\n }\n }\n \n \n const getSmallGraphValue = async (data) => {\n try{ \n const response = await getGraphValueArr(data);\n setValueArr(response)\n const values = await getGraphScaleValueArr(response)\n setGraphScaleValue(values)\n setPaymentCountObject(values['paymentCount'])\n setRequestCountObject(values['requestCount'])\n setTotalReceiveCountObject(values['totalReceive'])\n setTotalSentCountObject(values['totalSent'])\n } catch (err){\n console.error(err)\n }\n };\n \n return (\n <>\n
    \n\n
    \n
    \n
    \n
    \n
    \n

    {paymentCount}

    \n

    payments this month

    \n
    \n {getPercentageChange(\n prevPaymentCount,\n paymentCount\n ) >= 0 ? (\n
    \n +\n {getPercentageChange(\n prevPaymentCount,\n paymentCount, 'absTrue'\n )}\n % \"\"{\" \"}\n
    \n ) : \n (\n
    \n -\n {getPercentageChange(\n prevPaymentCount,\n paymentCount, 'absTrue'\n )}\n % \"\"{\" \"}\n
    \n \n )}\n\n
    \n {paymentCountObject? \n
      \n
    • \n 0 ? paymentCountObject[\"thirdLastMonth\"]: '2'}%`, }}\n >\n
    • \n
    • \n 0? paymentCountObject[\"secondLastMonth\"] : '2'}%`, }}\n >\n
    • \n
    • \n 0 ? paymentCountObject[\"lastMonth\"] : '2'}%`, }}\n >\n
    • \n
    • \n = 0 ? \"graph-up\" : \"graph-down\"}`}\n style={{height: `${paymentCountObject[\"currentMonth\"] >0 ? paymentCountObject[\"currentMonth\"] : '2'}%`, }}\n >\n
    • \n
    \n :<>}\n
    \n
    \n
    \n
    \n
    \n
    \n

    {reqCount}

    \n

    requests this month

    \n
    \n {getPercentageChange(\n prevReqCount,\n reqCount\n ) >= 0 ? (\n
    \n +\n {getPercentageChange(\n prevReqCount,\n reqCount, 'absTrue'\n )}\n % \"\"{\" \"}\n
    \n ) : \n (\n
    \n -\n {getPercentageChange(\n prevReqCount,\n reqCount, 'absTrue'\n )}\n % \"\"{\" \"}\n
    \n ) \n }\n \n
    \n {requestCountObject? \n
      \n
    • \n 0 ? requestCountObject[\"thirdLastMonth\"]: '2'}%`, }}\n >\n
    • \n
    • \n 0? requestCountObject[\"secondLastMonth\"] : '2'}%`, }}\n >\n
    • \n
    • \n 0 ? paymentCountObject[\"lastMonth\"] : '2'}%`, }}\n >\n
    • \n
    • \n = 0 ? \"graph-up\" : \"graph-down\"}`}\n style={{height: `${requestCountObject[\"currentMonth\"] >0 ? requestCountObject[\"currentMonth\"] : '2'}%`, }}\n >\n
    • \n
    \n :<>}\n
    \n
    \n
    \n
    \n
    \n
    \n

    GH₵ {receiveCount}

    \n

    received this month

    \n
    \n {getPercentageChange(\n prevReceiveCount,\n receiveCount\n ) >= 0 ? (\n
    \n +\n {getPercentageChange(\n prevReceiveCount,\n receiveCount, 'absTrue'\n )}\n % \"\"{\" \"}\n
    \n ):(\n
    \n -\n {getPercentageChange(\n prevReceiveCount,\n receiveCount, 'absTrue'\n )}\n % \"\"{\" \"}\n
    \n )}\n
    \n {totalReceiveCountObject? \n
      \n
    • \n 0 ? totalReceiveCountObject[\"thirdLastMonth\"]: '2'}%`, }}\n >\n
    • \n
    • \n 0? totalReceiveCountObject[\"secondLastMonth\"] : '2'}%`, }}\n >\n
    • \n
    • \n 0 ? totalReceiveCountObject[\"lastMonth\"] : '2'}%`, }}\n >\n
    • \n
    • \n = 0 ? \"graph-up\" : \"graph-down\"}`}\n style={{height: `${totalReceiveCountObject[\"currentMonth\"] >0 ? totalReceiveCountObject[\"currentMonth\"] : '2'}%`, }}\n >\n
    • \n
    \n :<>}\n
    \n
    \n
    \n
    \n
    \n
    \n

    GH₵ {sentAmount}

    \n

    sent this month

    \n
    \n {getPercentageChange(\n prevSentAmount,\n sentAmount\n ) >= 0 ? (\n
    \n +\n {getPercentageChange(\n prevSentAmount,\n sentAmount, 'absTrue'\n )}\n % \"\"{\" \"}\n
    \n ) : (\n
    \n -\n {getPercentageChange(\n prevSentAmount,\n sentAmount, 'absTrue'\n )}\n % \"\"{\" \"}\n
    \n )}\n
    \n {totalSentCountObject? \n
      \n
    • \n 0 ? totalSentCountObject[\"thirdLastMonth\"]: '2'}%`, }}\n >\n
    • \n
    • \n 0? totalSentCountObject[\"secondLastMonth\"] : '2'}%`, }}\n >\n
    • \n
    • \n 0 ? totalSentCountObject[\"lastMonth\"] : '2'}%`, }}\n >\n
    • \n
    • \n = 0 ? \"graph-up\" : \"graph-down\"}`}\n style={{height: `${totalSentCountObject[\"currentMonth\"] >0 ? totalSentCountObject[\"currentMonth\"] : '2'}%`, }}\n >\n
    • \n
    \n :<>}\n
    \n
    \n
    \n
    \n
    \n
    \n\n \n \n
    \n \n );\n};\n\n//
    \n//
    \n//
    \n//
    \n//
    Transaction ID #314745
    \n// \n//
    \n//
    \n//
    \n//
    \n//
    \n//
    \n// Aug 13, 2020\n// GH₵277.00\n// Completed\n//
    \n//
    \n// Sender\n//
    \n// \"\"/\n// Diane Larbi
    dihunter228@gmail.com
    \n//
    \n//
    \n//
    \n// Receiver\n//
    \n// \n// School Fees\n//
    \n//
    \n//
    \n// Method\n// Request\n//
    \n//
    \n// Type\n// School Fees\n//
    \n//
    \n// Institute\n// Ghana International School\n//
    \n//
    \n// Location\n// Ghana\n//
    \n//
    \n// Fee Details\n// Quarterly fees\n//
    \n//
    \n// Student Number\n// 236722\n//
    \n//
    \n//
    \n//
    \n//
    \n//
    \n// \n//
    \n//
    \n//
    \n//
    \n//
    \n//
    \n//
    \n//
    \n\nexport default CustomerDashboard;\n","import React, { useEffect, useState } from \"react\";\nimport { Chart } from \"chart.js\";\nimport \"react-responsive-select/dist/react-responsive-select.css\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport {\n getTopReceiverActionFn,\n getTransactionTypeActionFn,\n paymentVsRequestActionFn,\n} from \"../../redux/actions/transactionAction\";\n\nconst PaymentvsRequest = (props) => {\n const dispatch = useDispatch();\n\n const [totalTransaction, setTotalTransaction] = useState([]);\n const [transactionByTypeData, setTransactionByTypeData] = useState([])\n const [topReceiverData, setTopReceiverData] = useState([])\n\n\n useEffect(() => {\n const month = 6\n getPaymentvsRequest(month)\n getTransactionByType(month)\n getTopReceivers()\n }, []);\n \n\n //======== get payment vs request ============================\n const getPaymentvsRequest = async (month) => {\n try{\n let paymentdata = {\n account_type: \"Individual\",\n month: month,\n };\n const response = await dispatch(paymentVsRequestActionFn(paymentdata));\n const paymentVsRequestResponse = response?.payload;\n \n if (paymentVsRequestResponse){\n if(paymentVsRequestResponse?.status == 200){\n if(paymentVsRequestResponse?.data){\n barChart1(paymentVsRequestResponse?.data)\n }\n } else {\n console.error(paymentVsRequestResponse)\n }\n }\n } catch (err){\n console.error(err)\n }\n };\n\n //======== get transacrion by type ============================\n const getTransactionByType = async (month) => {\n try{\n const response = await dispatch(getTransactionTypeActionFn(month));\n const transactionByTypeResponse = response?.payload;\n \n if (transactionByTypeResponse){\n if(transactionByTypeResponse?.status == 200){\n if(transactionByTypeResponse?.data){\n barChart2(transactionByTypeResponse?.data)\n setTransactionByTypeData(transactionByTypeResponse?.data)\n var transactionTotal = transactionByTypeResponse?.data?.result?.map((a) => a.count)\n setTotalTransaction(transactionTotal)\n }\n } else {\n console.error(transactionByTypeResponse)\n }\n }\n } catch (err){\n console.error(err)\n }\n }\n \n //========= get top receivers =======================\n const getTopReceivers = async () => {\n try{\n const response = await dispatch(getTopReceiverActionFn());\n const topReceiverResponse = response?.payload;\n \n if (topReceiverResponse){\n if(topReceiverResponse?.status == 200){\n if(topReceiverResponse?.data){\n setTopReceiverData(topReceiverResponse?.data)\n }\n } else {\n console.error(topReceiverResponse)\n }\n }\n } catch (err){\n console.error(err)\n }\n };\n\n\n function transactionPer(value){\n let totalT = totalTransaction?.reduce((a,b)=>a+b,0)\n let calc \n if (totalT > 0 ){\n calc = (value/totalT) * 100\n return calc.toFixed(2);\n }\n return 0\n }\n\n\n const barChart1 = (paymentvsrequest) => {\n var ctx2 = document.getElementById(\"myChart2\").getContext(\"2d\");\n var myChart2 = new Chart(ctx2, {\n type: \"bar\",\n fillOpacity: 0.8,\n data: {\n labels: paymentvsrequest.graph\n ? paymentvsrequest.graph.map((a) => a.month)\n : [0, 0, 0, 0, 0, 0, 0],\n datasets: [\n {\n label: \"Payments\",\n backgroundColor: \"#38B635\",\n borderColor: \"#38B635\",\n pointBorderColor: \"#38B635\",\n borderWidth: 2,\n pointRadius: 4,\n pointHoverRadius: 4,\n pointBackgroundColor: \"#FFF\",\n data: paymentvsrequest.graph\n ? paymentvsrequest.graph.map((a) => a.paymentCount)\n : [0, 0, 0, 0, 0, 0, 0],\n },\n {\n label: \"Requests\",\n backgroundColor: \"#CFEECE\",\n borderColor: \"#CFEECE\",\n pointBorderColor: \"#CFEECE\",\n borderWidth: 2,\n pointRadius: 4,\n pointHoverRadius: 4,\n pointBackgroundColor: \"#FFF\",\n data: paymentvsrequest.graph\n ? paymentvsrequest.graph.map((a) => a.requestCount)\n : [0, 0, 0, 0, 0, 0, 0],\n },\n ],\n },\n options: {\n responsive: true,\n maintainAspectRatio: false,\n bezierCurve: false,\n elements: {\n line: {\n tension: 0,\n },\n },\n scales: {\n xAxes: [\n {\n gridLines: { color: \"rgba(0, 0, 0, 0)\" },\n },\n ],\n yAxes: [\n {\n ticks: { beginAtZero: true },\n gridLines: { color: \"rgba(244, 244, 244, 1)\" },\n },\n ],\n },\n\n tooltips: {\n custom: function (tooltip) {\n if (!tooltip) return;\n // disable displaying the color box;\n tooltip.displayColors = false;\n },\n callbacks: {\n // use label callback to return the desired label\n label: function (tooltipItem, data) {\n return \"GH₵\" + tooltipItem.yLabel;\n },\n // remove title\n title: function (tooltipItem, data) {\n return;\n },\n },\n backgroundColor: \"#FFF\",\n borderColor: \"rgba(0, 0, 0, 0.09)\",\n borderWidth: 1,\n bodyFontColor: \"rgba(0, 0, 0, 1)\",\n bodyAlign: \"center\",\n bodyFontSize: 14,\n bodyFontStyle: 500,\n },\n legend: {\n align: \"end\",\n labels: {\n boxWidth: 12,\n fontColor: \"#A4A7B0\",\n },\n },\n },\n });\n };\n const colors = ['#1C932F', '#4EA5F6', '#F75009', '#59E827', '#F79809','#7C27E8'];\n\n\n\n const barChart2 = (transactionbytype) => {\n var ctx3 = document.getElementById(\"myDoughnutChart\").getContext(\"2d\");\n var myDoughnutChart = new Chart(ctx3, {\n type: \"doughnut\",\n data: {\n labels: transactionbytype.result\n ? transactionbytype.result.map((a) => a.type)\n : [\"Shopping\", \"Payment for Bills\", \"Food\", \"School Fees\", \"Travel\"],\n datasets: [\n {\n data: transactionbytype.result\n ? transactionbytype.result.map((a) => a.count)\n : [0, 0, 0, 0, 0],\n backgroundColor: [\n \"#1C932F\",\n \"#4EA5F6\",\n \"#F75009\",\n \"#59E827\",\n \"#F79809\",\n \"#7C27E8\",\n ],\n borderColor: [\n \"#1C932F\",\n \"#4EA5F6\",\n \"#F75009\",\n \"#59E827\",\n \"#F79809\",\n \"#7C27E8\",\n ],\n },\n ],\n },\n options: {\n responsive: true,\n maintainAspectRatio: false,\n cutoutPercentage: 70,\n tooltips: {\n custom: function (tooltip) {\n if (!tooltip) return;\n // disable displaying the color box;\n tooltip.displayColors = false;\n },\n backgroundColor: \"#FFF\",\n borderColor: \"rgba(0, 0, 0, 0.09)\",\n borderWidth: 1,\n bodyFontColor: \"rgba(0, 0, 0, 1)\",\n bodyAlign: \"center\",\n bodyFontSize: 14,\n bodyFontStyle: 500,\n },\n legend: {\n align: \"center\",\n position: \"right\",\n\n display: false,\n labels: {\n boxWidth: 42,\n padding: 15,\n fontColor: \"#373737\",\n \n },\n },\n },\n });\n };\n\n const alignmentClassName = () => {\n let className={};\n const countData = totalTransaction?.reduce((a,b)=>a+b,0)\n if(!countData){\n className = {left:'50%',top:'50%'}\n }\n return className\n }\n\n return (\n
    \n
    \n
    \n
    \n
    \n

    Payments vs Requests

    \n
    \n getPaymentvsRequest(e.target.value)}\n >\n \n \n \n \n \n {/* }\n options={[\n { value: \"6\", text: \"6 Months\" },\n { value: \"12\", text: \"12 Months\" },\n { value: \"18\", text: \"18 Months\" },\n { value: \"24\", text: \"24 Months\" },\n ]}\n caretIcon={}\n selectedValue=\"6\"\n onChange={(newValue) => getPaymentvsRequest(newValue.value)}\n /> */}\n
    \n
    \n
    \n {/*
    */}\n \n {/*
    */}\n
    \n
    \n
    \n
    \n
    \n
    \n

    Top Receivers

    \n
    \n
    \n
      \n {topReceiverData ?\n topReceiverData?.result?.map((receiver, i) => {\n return (\n
    • \n \n \"\"\n \n \n

      {receiver.receiverName}

      \n

      \n {}\n

      \n
      \n \n
      \n {receiver.countryCode} {receiver.receiverPhone}\n
      \n
      \n
    • \n );\n }) : null }\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    Transactions by Type

    \n
    \n getTransactionByType(e.target.value)}\n >\n \n \n \n \n \n {/* }\n options={[\n { value: \"6-Months\", text: \"6 Months\" },\n { value: \"12-Months\", text: \"12 Months\" },\n { value: \"18-Months\", text: \"18 Months\" },\n { value: \"24-Months\", text: \"24 Months\" },\n ]}\n caretIcon={}\n selectedValue=\"6-Months\"\n onChange={(newValue) => console.log(\"onChange\", newValue)}\n /> */}\n
    \n
    \n
    \n \n\n
    \n

    {totalTransaction?.reduce((a,b)=>a+b,0)}

    \n

    overall users

    \n
    \n
    \n
      \n {transactionByTypeData? transactionByTypeData?.result?.map((item,i)=>{\n return(\n
    • \n {transactionPer(item.count)}%{\" \"}\n {item.type} \n
    • \n )\n }) : null}\n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n );\n};\n\nexport default PaymentvsRequest;\n","import { isEmpty } from \"lodash\";\nimport { Modal } from \"react-bootstrap\";\nimport React, { useEffect, useState } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport {\n getFilterTypeActionFn,\n getTransactionActionFn,\n getTransactionByIdActionFn,\n getExportTransactionAction,\n getPdfTransactionDetailAction,\n} from \"../../redux/actions/transactionAction\";\nimport moment from \"moment\";\nimport Calendar from \"react-calendar\";\nimport \"react-calendar/dist/Calendar.css\";\nimport exportFromJSON from \"export-from-json\";\nimport ExportData from \"../../redux/utilities/export\";\nimport { renderToString } from \"react-dom/server\";\nimport { jsPDF } from \"jspdf\";\nimport { GET_PDF_TRANSACTIONS_DETAILS } from \"../../redux/constants\";\n\nconst TransactionHistory = (props) => {\n const [show, setShow] = useState(false);\n const dispatch = useDispatch();\n\n const [transactionDataArr, setTransactionDataArr] = useState([]);\n const [transactionDetailById, setTransactionDetailById] = useState([]);\n const [filters, setFilters] = useState([]);\n\n const handleClose = () => setShow(false);\n const handleShow = () => setShow(true);\n const [isUserFilter, setIsUserFilter] = useState(false);\n const [isSort, setIsSort] = useState('\"\"');\n const [customRange, setCustomRange] = useState(\"\");\n const [isCurrentPage, setIsCurrentPage] = useState(1);\n const [isStatus, setIsStatus] = useState([]);\n const [isTransactionType, setIsTransactionType] = useState([]);\n const [isMethod, setIsMethod] = useState([]);\n const [isAmountType, setIsAmountType] = useState(\"\");\n const [showCalender, setShowCalender] = useState(false);\n const [isCalenderDate, setIsCalenderDate] = useState(\"\");\n const [isCalnder, setIsCalnder] = useState(true);\n const [transactionExport, setTransactionExport] = useState([]);\n const [searchText, setSearchText] = useState(\"\");\n const [searchTrueORFalse, setSearchTrueORFalse] = useState(false);\n\n useEffect(() => {\n if (searchTrueORFalse == false) {\n getInitialData();\n }\n }, [searchTrueORFalse]);\n\n const getInitialData = () => {\n const formData = {\n accountType: \"Individual\",\n status: isStatus,\n type: isTransactionType,\n method: isMethod,\n sort: isAmountType, // High, Low, Recent\n time: isSort, //last_month, this_month, last_6_month\n custom_range: customRange, //If Date range is selected then time param should be empty\n page: 1, //default should be always 1\n search: searchTrueORFalse,\n searchText: searchText,\n };\n getTransactionsList(formData);\n getFilterList();\n };\n\n // ======== removing selectall checkbox on page change =============\n useEffect(() => {\n const checkbox = document.getElementById(\"selectall-checkbox\");\n checkbox.checked = false;\n const transCheckbox = document.querySelectorAll(\"#transaction-checkbox\");\n for (var chbox of transCheckbox) {\n chbox.checked = false;\n }\n }, [isCurrentPage]);\n\n const clearFilter = () => {\n setIsStatus([]);\n setIsTransactionType([]);\n setIsMethod([]);\n setIsAmountType(\"\");\n };\n\n const getTransactionsList = async (formData) => {\n try {\n const response = await dispatch(getTransactionActionFn(formData));\n const transactionResponse = response?.payload;\n if (transactionResponse) {\n if (transactionResponse?.status == 200) {\n setTransactionDataArr(transactionResponse?.data);\n } else {\n console.error(transactionResponse);\n }\n }\n } catch (err) {\n console.error(err);\n }\n };\n\n const getFilterList = async () => {\n try {\n const response = await dispatch(getFilterTypeActionFn());\n const getFilterResponse = response?.payload;\n if (getFilterResponse) {\n if (getFilterResponse?.status == 200) {\n setFilters(getFilterResponse?.data);\n } else {\n console.error(getFilterResponse);\n }\n }\n } catch (err) {\n console.error(err);\n }\n };\n\n const getTransactionById = async (id) => {\n try {\n const response = await dispatch(getTransactionByIdActionFn(id));\n const transactionResponse = response?.payload;\n if (transactionResponse) {\n if (transactionResponse?.status == 200) {\n setTransactionDetailById(transactionResponse?.data?.data);\n setShow(true);\n } else {\n console.error(transactionResponse);\n }\n }\n } catch (err) {\n console.error(err);\n }\n };\n\n const getSearchData = async () => {\n try {\n if (searchText == \"\") {\n return false;\n } else {\n const formData = {\n accountType: \"Individual\",\n search: searchTrueORFalse,\n searchText: searchText,\n status: isStatus,\n type: isTransactionType,\n method: isMethod,\n sort: isAmountType, // High, Low, Recent\n time: isSort, //last_month, this_month, last_6_month\n custom_range: customRange, //If Date range is selected then time param should be empty\n page: isCurrentPage, //default should be always 1\n };\n const response = await dispatch(getTransactionActionFn(formData));\n const searchResponse = response?.payload;\n if (searchResponse) {\n if (searchResponse?.status == 200) {\n setTransactionDataArr(searchResponse?.data);\n } else {\n console.error(searchResponse);\n }\n }\n }\n } catch (err) {\n console.error(err);\n }\n };\n\n const handleSearchTextChange = (e) => {\n const value = e.target.value;\n setSearchText(value);\n if (value == \"\") {\n setSearchTrueORFalse(false);\n } else {\n setSearchTrueORFalse(true);\n }\n };\n\n const handleSearchEnterkey = (e) => {\n const key = e.key;\n if (key == \"Enter\") {\n if (searchTrueORFalse == true) {\n getSearchData();\n }\n }\n };\n\n const onChangeStatusHandler = (e) => {\n if (e.target.checked) {\n setIsStatus([...isStatus, e.target.value]);\n } else {\n let remove = isStatus.indexOf(e.target.value);\n setIsStatus(isStatus.filter((_, i) => i !== remove));\n }\n };\n\n const onChangeTransactionType = (e) => {\n if (e.target.checked) {\n setIsTransactionType([...isTransactionType, e.target.value]);\n } else {\n let remove = isTransactionType.indexOf(e.target.value);\n setIsTransactionType(isTransactionType.filter((_, i) => i !== remove));\n }\n };\n\n const onChangeMethodHandler = (e) => {\n if (e.target.checked) {\n setIsMethod([...isMethod, e.target.value]);\n } else {\n let remove = isMethod.indexOf(e.target.value);\n setIsMethod(isMethod.filter((_, i) => i !== remove));\n }\n };\n\n const onChangeAmountTypeHandler = (e) => {\n setIsAmountType(e.target.value);\n };\n\n const sortHander = (e) => {\n if (e.target.value === \"custom_range\") {\n setShowCalender(true);\n } else {\n setIsSort(e.target.value);\n const formData = {\n accountType: \"Individual\",\n status: isStatus,\n type: isTransactionType,\n method: isMethod,\n sort: isAmountType, // High, Low, Recent\n time: e.target.value, //last_month, this_month, last_6_month\n custom_range: customRange, //If Date range is selected then time param should be empty\n page: isCurrentPage, //default should be always 1\n search: searchTrueORFalse,\n searchText: searchText,\n };\n getTransactionsList(formData);\n setShowCalender(false);\n }\n };\n\n const selectDate = (value) => {\n const rangeDate =\n moment(value[0]).format(\"Y-MM-DD\") +\n \" \" +\n moment(value[1]).format(\"Y-MM-DD\");\n\n const formData = {\n accountType: \"Individual\",\n status: isStatus,\n type: isTransactionType,\n method: isMethod,\n sort: isAmountType, // High, Low, Recent\n time: \"\", //last_month, this_month, last_6_month\n custom_range: rangeDate, //If Date range is selected then time param should be empty\n page: isCurrentPage, //default should be always 1\n search: searchTrueORFalse,\n searchText: searchText,\n };\n getTransactionsList(formData);\n setIsCalenderDate(rangeDate);\n setIsCalnder(false);\n };\n\n const calenderToggle = () => {\n setIsCalnder(!isCalnder);\n };\n\n const applyFilter = (e) => {\n e.preventDefault();\n const formData = {\n accountType: \"Individual\",\n status: isStatus,\n type: isTransactionType,\n method: isMethod,\n sort: isAmountType, // High, Low, Recent\n time: isSort, //last_month, this_month, last_6_month\n page: isCurrentPage, //default should be always 1\n search: searchTrueORFalse,\n searchText: searchText,\n };\n getTransactionsList(formData);\n setIsUserFilter(false);\n\n // closing filter box\n const className = document.getElementsByClassName(\"dropdown-menu show\");\n className[0].className = \"dropdown-menu\";\n };\n\n // ============== export data to excel sheet ==================\n const exportData = async () => {\n try {\n const formData = {\n accountType: \"Individual\",\n status: isStatus,\n type: isTransactionType,\n method: isMethod,\n sort: isAmountType, // High, Low, Recent\n time: isSort, //last_month, this_month, last_6_month\n custom_range: customRange, //If Date range is selected then time param should be empty\n page: isCurrentPage, //default should be always 1\n export: true,\n search: searchTrueORFalse,\n searchText: searchText,\n };\n const exportTransactionData = await dispatch(\n getExportTransactionAction(formData)\n );\n const response = exportTransactionData?.payload;\n if (response) {\n if (response?.status) {\n setTransactionExport(response?.result);\n const data = response && response?.result;\n const fileName = \"download\";\n const exportType = exportFromJSON.types.xls;\n exportFromJSON({ data, fileName, exportType });\n }\n }\n } catch (err) {\n console.error(err);\n }\n };\n\n // ========== export pdf ===\n const exportPdf = async (transactionId) => {\n try {\n const exportPdfApiResponse = await dispatch(\n getPdfTransactionDetailAction(transactionId)\n );\n const response = exportPdfApiResponse?.payload;\n if (response) {\n if (response?.status == true) {\n const transDetails = response?.data?.transactionDetails;\n const paymentDetails = response?.data?.paymentDetails;\n if (transDetails) {\n downloadPdf(transDetails, paymentDetails);\n }\n }\n }\n } catch (err) {\n console.error(err);\n }\n };\n //=========== download pdf ====\n const downloadPdf = (transDetails, paymentDetails) => {\n if (transDetails) {\n const doc = new jsPDF(\"p\", \"pt\", \"legal\");\n let a = renderToString(\n \n );\n\n doc.html(a, {\n callback: function (doc) {\n doc.save(\"transactionDetails.pdf\");\n dispatch({ type: GET_PDF_TRANSACTIONS_DETAILS, payload: \"\" });\n },\n });\n }\n };\n\n //=============\n //=============Pagination====================Start==========\n const paginationHander = (pageNumber) => {\n setIsCurrentPage(pageNumber);\n let formData = getFilter(pageNumber);\n getTransactionsList(formData);\n };\n\n const paginationList = () => {\n const pageNumbers = [];\n for (var i = 1; i <= transactionDataArr?.totalPage; i++) {\n pageNumbers.push(i);\n }\n if (transactionDataArr?.totalPage > 3) {\n }\n const renderPageNumbers = pageNumbers.map((number) => {\n if (\n number === transactionDataArr?.currentPage - 2 ||\n number === transactionDataArr?.currentPage + 2\n ) {\n return ...;\n } else if (\n number < 2 ||\n number === pageNumbers.length ||\n transactionDataArr?.currentPage === number ||\n transactionDataArr?.currentPage === number - 1 ||\n transactionDataArr?.currentPage === number + 1\n ) {\n return (\n
  • paginationHander(number)}>\n \n {number}\n \n
  • \n );\n }\n });\n return (\n \n );\n };\n\n const getFilter = (page) => {\n const formData = {\n accountType: \"Individual\",\n status: isStatus,\n type: isTransactionType,\n method: isMethod,\n sort: isAmountType, // High, Low, Recent\n time: isSort, //last_month, this_month, last_6_month\n page: page,\n search: searchTrueORFalse,\n searchText: searchText,\n };\n return formData;\n };\n\n const nextPaginationHander = (pageNumber) => {\n if (isCurrentPage !== pageNumber) {\n const p = isCurrentPage + 1;\n setIsCurrentPage(p);\n let formData = getFilter(p);\n getTransactionsList(formData);\n }\n };\n\n const previousPaginationHander = () => {\n if (isCurrentPage > 1) {\n const p = isCurrentPage - 1;\n setIsCurrentPage(p);\n let formData = getFilter(p);\n getTransactionsList(formData);\n }\n };\n\n const firstPaginationHander = () => {\n const p = 1;\n setIsCurrentPage(p);\n let formData = getFilter(p);\n getTransactionsList(formData);\n };\n\n const lastPaginationHander = (pageNumber) => {\n const p = pageNumber;\n setIsCurrentPage(p);\n let formData = getFilter(p);\n getTransactionsList(formData);\n };\n\n //===================Pagination=======================End===================\n\n const showTransactionData = (id) => {\n if (id) {\n getTransactionById(id);\n }\n };\n\n const renderTableData = () => {\n return (\n !isEmpty(transactionDataArr) &&\n transactionDataArr?.result?.map((item, index) => {\n const {\n transactionId,\n transactionDate,\n transactionTime,\n type,\n senderName,\n senderAvtar,\n receiverAvtar,\n amount,\n transactionStatus,\n method,\n receiverName,\n action,\n } = item;\n\n return (\n \n \n \n \n showTransactionData(transactionId)}\n >\n #{transactionId}\n \n \n
    \n {transactionDate}\n {transactionTime}{\" \"}\n
    \n \n \n
    \n \n \n \n \n {senderName ? senderName : \"NA\"}\n \n
    \n \n \n {/*
    \n \n \"receiver\"/\n \n \n {type}\n
    */}\n
    \n \n \n \n \n {receiverName ? receiverName : \"NA\"}\n \n
    \n \n GH₵ {amount}\n {transactionStatus}\n {method}\n {type}\n \n exportPdf(transactionId)}\n >\n \n \n \n \n );\n })\n );\n };\n\n const handleSelectAll = (e) => {\n const checkbox = document.getElementById(\"selectall-checkbox\");\n const transCheckbox = document.querySelectorAll(\"#transaction-checkbox\");\n if (checkbox.checked) {\n for (var chbox of transCheckbox) {\n chbox.checked = true;\n }\n } else {\n for (var chbox of transCheckbox) {\n chbox.checked = false;\n }\n }\n };\n\n return (\n <>\n
    \n
    \n
    \n

    Transactions

    \n
    \n
    \n {\n handleSearchTextChange(e);\n }}\n onKeyPress={handleSearchEnterkey}\n className=\"form-control\"\n placeholder=\"Search\"\n />\n {\n getSearchData();\n }}\n />\n \n
    \n
    \n setIsUserFilter(!isUserFilter)}\n style={{ cursor: \"pointer\" }}\n id=\"filterDropDown\"\n data-toggle=\"dropdown\"\n >\n {\" \"}\n Filters\n \n\n
    \n
    applyFilter(e)}>\n \n clearFilter()}\n />\n\n
    \n
    \n
    \n

    By status

    \n \n \n \n \n
    \n
    \n
    \n
    \n

    By transaction type

    \n
    \n
    \n {filters?.data?.length > 0 &&\n filters?.data.map((filter) => {\n return (\n \n );\n })}\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n

    By method

    \n \n \n
    \n
    \n
    \n
    \n

    Sort by

    \n \n \n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n sortHander(e)}\n style={{\n background: \"#f4f4f4\",\n border: \"none\",\n fontSize: \"12px\",\n padding: \"0 10px\",\n maxWidth: \"115px\",\n margin: \"0 5px\",\n cursor: \"pointer\",\n }}\n >\n \n \n \n \n \n \n
    \n {showCalender && (\n <>\n
    \n
    \n calenderToggle()}\n />\n \n
    \n {isCalnder && (\n selectDate(value)}\n next2Label={null}\n prev2Label={null}\n selectRange={true}\n returnValue=\"range\"\n />\n )}\n
    \n \n )}\n \n Export\n \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n {renderTableData()}\n\n {/* \n \n \n \n\n \n \n \n \n \n \n */}\n {/* \n \n \n \n\n \n \n \n \n \n \n \n */}\n {/* \n \n \n \n\n \n \n \n \n \n \n */}\n {/* \n \n \n \n\n \n \n \n \n \n \n */}\n
    \n \n Transaction IDDateSenderReceiverAmountStatusMethodTypeAction
    \n \n #314746\n
    \n Aug 13, 2020 08:13 PM{\" \"}\n
    \n
    \n
    \n \n \"\"\n \n \n Akua Ado
    akuado154@gmail.com\n
    \n
    \n
    GH₵87.12CompletedRequest-\n \n \n \n
    \n \n #314746\n
    \n Aug 13, 2020 08:13 PM{\" \"}\n
    \n
    \n
    \n \n \"\"\n \n \n EgyptAir
    Travel\n
    \n
    \n
    GH₵87.12CompletedPaymentTravel\n \n \n \n
    \n \n #314746\n
    \n Aug 13, 2020 08:13 PM{\" \"}\n
    \n
    \n
    \n \n \"\"\n \n MTN\n
    \n
    GH₵87.12CompletedPaymentShopping\n \n \n \n
    \n \n #314746\n
    \n Aug 13, 2020 08:13 PM{\" \"}\n
    \n
    \n
    \n \n \n \n School Fees\n
    \n
    GH₵87.12CompletedPaymentSchool Fees\n \n \n \n
    \n
    \n
    \n
    \n\n
    {paginationList()}
    \n
    \n \n\n {/* modal first */}\n \n
    \n
    \n Transaction ID{\" \"}\n {transactionDetailById?.transactionDetails?.transactionId}\n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n {transactionDetailById?.transactionDetails?.transactionDate}\n \n \n GH₵ {transactionDetailById?.transactionDetails?.amount}\n \n \n {\n transactionDetailById?.transactionDetails\n ?.transactionStatus\n }\n \n
    \n
    \n Sender\n
    \n \n \n \n \n {\n transactionDetailById?.transactionDetails\n ?.senderName\n }{\" \"}\n
    {\" \"}\n \n {\n transactionDetailById?.transactionDetails\n ?.senderPhone\n }\n \n
    \n
    \n
    \n
    \n Receiver\n
    \n \n \n \n \n {\n transactionDetailById?.transactionDetails\n ?.receiverName\n }{\" \"}\n
    {\" \"}\n \n {\n transactionDetailById?.transactionDetails\n ?.receiverPhone\n }{\" \"}\n \n
    \n
    \n
    \n
    \n Method\n \n {transactionDetailById?.transactionDetails?.method}\n \n
    \n {/*
    \n Type\n Travel\n
    */}\n {/*
    \n PRN Number\n 237539\n
    \n
    \n Payment details\n Credit\n
    */}\n
    \n
    \n
    \n
    \n
    \n
      \n {/*
    • Refund
    • */}\n
    • \n {\n exportPdf(\n transactionDetailById?.transactionDetails\n ?.transactionId\n );\n }}\n >\n Export\n \n
    • \n {/*
    • Delete
    • */}\n
    \n
    \n
    \n
    \n
    \n
    \n\n {/*
    \n
    \n Transaction ID #314745\n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n Aug 13, 2020\n GH₵277.00\n Completed\n
    \n
    \n Sender\n
    \n \n \"\"\n \n \n Diane Larbi
    {\" \"}\n dihunter228@gmail.com\n
    \n
    \n
    \n
    \n Receiver\n
    \n \n \"\"\n \n \n Akua Ado
    {\" \"}\n akuado154@gmail.com\n
    \n
    \n
    \n
    \n Method\n Request\n
    \n
    \n
    \n
    \n
    \n
    \n
      \n
    • \n \n Refund\n \n
    • \n
    • \n \n Export\n \n
    • \n
    • \n \n Delete\n \n
    • \n
    \n
    \n
    \n
    \n
    \n
    */}\n \n {/* refund modal\n \n
    \n
    \n Refund a transaction\n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    Full refund

    \n \"\"\n
    \n GH₵277.00\n
    \n
    \n
    \n
    \n
    \n

    Partial refund

    \n \"\"\n
    \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n
    \n */}\n \n );\n};\n\nexport default TransactionHistory;\n","import React, { useEffect, useState } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport ArrowDown from \"../../assets/images/arrow-down.svg\";\nimport ArrowUp from \"../../assets/images/arrow-up.svg\";\nimport { userStatsActionFn } from \"../../redux/actions/userDetailsAction\";\nimport PaymentvsRequest from \"./paymentvsrequest\";\nimport TransactionHistory from \"./transaction-history\";\nimport Header from \"../common/header\";\nimport { getGraphScaleValueArr, getGraphValueArr, getPercentageChange } from \"../../redux/utilities\";\nimport _ from \"lodash\";\n\nconst Dashboard = (props) => {\n const dispatch = useDispatch();\n\n const [paymentCount, setPaymentCount] = useState(0);\n const [prevPaymentCount, setPrevPaymentCount] = useState(0);\n const [reqCount, setReqCount] = useState(0);\n const [prevReqCount,setPrevReqCount] = useState(0);\n const [receiveCount, setReceiveCount] = useState(0);\n const [prevReceiveCount,setPrevReceiveCount] = useState(0);\n const [sentAmount, setSentAmount] = useState(0);\n const [prevSentAmount,setPrevSentAmount] = useState(0);\n //======================= Small Graph ===============================\n const [valueArr, setValueArr] = useState({});\n const [graphScaleValue, setGraphScaleValue] = useState({});\n const [paymentCountObject, setPaymentCountObject] = useState({})\n const [requestCountObject, setRequestCountObject] = useState({})\n const [totalReceiveCountObject, setTotalReceiveCountObject] = useState({})\n const [totalSentCountObject, setTotalSentCountObject] = useState({})\n\n useEffect(() => {\n getUserWalletDetail()\n }, []);\n\n const getUserWalletDetail = async () => {\n try {\n const response = await dispatch(userStatsActionFn(\"Individual\"));\n const getUserWalletResponse = response?.payload;\n if (getUserWalletResponse){\n if(getUserWalletResponse?.status == 200) {\n const {currentMonth, lastMonth } = getUserWalletResponse.data.result;\n // currentMonth\n setPaymentCount(currentMonth?.paymentCount);\n setReqCount(currentMonth?.requestCount);\n setReceiveCount(currentMonth?.totalReceive);\n setSentAmount(currentMonth?.totalSent);\n // lastMonth\n setPrevPaymentCount(lastMonth?.paymentCount);\n setPrevReqCount(lastMonth?.requestCount);\n setPrevReceiveCount(lastMonth?.totalReceive);\n setPrevSentAmount(lastMonth?.totalSent);\n // Small Graph \n getSmallGraphValue(getUserWalletResponse.data.result)\n\n } else {\n console.error(getUserWalletResponse)\n }\n }\n } catch (err) {\n console.error(err)\n }\n }\n\n\n const getSmallGraphValue = async (data) => {\n\n try{ \n const response = await getGraphValueArr(data);\n setValueArr(response)\n const values = await getGraphScaleValueArr(response)\n setGraphScaleValue(values)\n setPaymentCountObject(values['paymentCount'])\n setRequestCountObject(values['requestCount'])\n setTotalReceiveCountObject(values['totalReceive'])\n setTotalSentCountObject(values['totalSent'])\n } catch (err){\n console.error(err)\n }\n };\n\n\n return (\n <>\n
    \n
    \n
    \n
    \n
    \n
    \n

    {paymentCount}

    \n

    payments this month

    \n
    \n {getPercentageChange(\n prevPaymentCount,\n paymentCount\n ) >= 0 ? (\n
    \n +\n {getPercentageChange(\n prevPaymentCount,\n paymentCount, 'absTrue'\n )}\n % \"\"{\" \"}\n
    \n ) : \n (\n
    \n -\n {getPercentageChange(\n prevPaymentCount,\n paymentCount, 'absTrue'\n )}\n % \"\"{\" \"}\n
    \n \n )}\n\n
    \n {paymentCountObject? \n
      \n
    • \n 0 ? paymentCountObject[\"thirdLastMonth\"] : '2'}%`, }}\n >\n
    • \n
    • \n 0 ? paymentCountObject[\"secondLastMonth\"] : '2'}%`, }}\n >\n
    • \n
    • \n 0? paymentCountObject[\"lastMonth\"] : '2'}%`, }}\n >\n
    • \n
    • \n = 0 ? \"graph-up\" : \"graph-down\"}`}\n style={{height: `${paymentCountObject[\"currentMonth\"]>0 ? paymentCountObject[\"currentMonth\"]: '2'}%`, }}\n >\n
    • \n
    \n :<>}\n
    \n
    \n
    \n
    \n
    \n
    \n

    {reqCount}

    \n

    requests this month

    \n
    \n {getPercentageChange(\n prevReqCount,\n reqCount\n ) >= 0 ? (\n
    \n +\n {getPercentageChange(\n prevReqCount,\n reqCount, 'absTrue'\n )}\n % \"\"{\" \"}\n
    \n ) : \n (\n
    \n -\n {getPercentageChange(\n prevReqCount,\n reqCount, 'absTrue'\n )}\n % \"\"{\" \"}\n
    \n ) \n }\n \n
    \n {requestCountObject? \n
      \n
    • \n 0 ? requestCountObject[\"thirdLastMonth\"]: '2'}%`, }}\n >\n
    • \n
    • \n 0? requestCountObject[\"secondLastMonth\"] : '2'}%`, }}\n >\n
    • \n
    • \n 0 ? paymentCountObject[\"lastMonth\"] : '2'}%`, }}\n >\n
    • \n
    • \n = 0 ? \"graph-up\" : \"graph-down\"}`}\n style={{height: `${requestCountObject[\"currentMonth\"] >0 ? requestCountObject[\"currentMonth\"] : '2'}%`, }}\n >\n
    • \n
    \n :<>}\n
    \n
    \n
    \n
    \n
    \n
    \n

    GH₵ {receiveCount}

    \n

    received this month

    \n
    \n {getPercentageChange(\n prevReceiveCount,\n receiveCount\n ) >= 0 ? (\n
    \n +\n {getPercentageChange(\n prevReceiveCount,\n receiveCount, 'absTrue'\n )}\n % \"\"{\" \"}\n
    \n ):(\n
    \n -\n {getPercentageChange(\n prevReceiveCount,\n receiveCount, 'absTrue'\n )}\n % \"\"{\" \"}\n
    \n )}\n
    \n {totalReceiveCountObject? \n
      \n
    • \n 0 ? totalReceiveCountObject[\"thirdLastMonth\"]: '2'}%`, }}\n >\n
    • \n
    • \n 0? totalReceiveCountObject[\"secondLastMonth\"] : '2'}%`, }}\n >\n
    • \n
    • \n 0 ? totalReceiveCountObject[\"lastMonth\"] : '2'}%`, }}\n >\n
    • \n
    • \n = 0 ? \"graph-up\" : \"graph-down\"}`}\n style={{height: `${totalReceiveCountObject[\"currentMonth\"] >0 ? totalReceiveCountObject[\"currentMonth\"] : '2'}%`, }}\n >\n
    • \n
    \n :<>}\n
    \n
    \n
    \n
    \n
    \n
    \n

    GH₵ {sentAmount}

    \n

    sent this month

    \n
    \n {getPercentageChange(\n prevSentAmount,\n sentAmount\n ) >= 0 ? (\n
    \n +\n {getPercentageChange(\n prevSentAmount,\n sentAmount, 'absTrue'\n )}\n % \"\"{\" \"}\n
    \n ) : (\n
    \n -\n {getPercentageChange(\n prevSentAmount,\n sentAmount, 'absTrue'\n )}\n % \"\"{\" \"}\n
    \n )}\n
    \n {totalSentCountObject? \n
      \n
    • \n 0 ? totalSentCountObject[\"thirdLastMonth\"]: '2'}%`, }}\n >\n
    • \n
    • \n 0? totalSentCountObject[\"secondLastMonth\"] : '2'}%`, }}\n >\n
    • \n
    • \n 0 ? totalSentCountObject[\"lastMonth\"] : '2'}%`, }}\n >\n
    • \n
    • \n = 0 ? \"graph-up\" : \"graph-down\"}`}\n style={{height: `${totalSentCountObject[\"currentMonth\"] >0 ? totalSentCountObject[\"currentMonth\"] : '2'}%`, }}\n >\n
    • \n
    \n :<>}\n {/*
      \n
    • \n \n
    • \n
    • \n \n
    • \n
    • \n \n
    • \n
    • \n 0 ? \"graph-up\" : \"graph-down\"}`}\n style={{\n height: `60%`,\n }}\n >\n
    • \n
    */}\n
    \n
    \n
    \n
    \n
    \n
    \n\n \n \n
    \n \n );\n};\n\n//
    \n//
    \n//
    \n//
    \n//
    Transaction ID #314745
    \n// \n//
    \n//
    \n//
    \n//
    \n//
    \n//
    \n// Aug 13, 2020\n// GH₵277.00\n// Completed\n//
    \n//
    \n// Sender\n//
    \n// \"\"/\n// Diane Larbi
    dihunter228@gmail.com
    \n//
    \n//
    \n//
    \n// Receiver\n//
    \n// \n// School Fees\n//
    \n//
    \n//
    \n// Method\n// Request\n//
    \n//
    \n// Type\n// School Fees\n//
    \n//
    \n// Institute\n// Ghana International School\n//
    \n//
    \n// Location\n// Ghana\n//
    \n//
    \n// Fee Details\n// Quarterly fees\n//
    \n//
    \n// Student Number\n// 236722\n//
    \n//
    \n//
    \n//
    \n//
    \n//
    \n// \n//
    \n//
    \n//
    \n//
    \n//
    \n//
    \n//
    \n//
    \n\nexport default Dashboard;\n","import React, { useEffect, useState } from \"react\";\nimport { Chart } from \"chart.js\";\nimport \"react-responsive-select/dist/react-responsive-select.css\";\nimport { useDispatch } from \"react-redux\";\nimport {\n merchantTransactionStatisticsActionFn,\n} from \"../../redux/actions/transactionAction\";\n\nconst MerchantChart = (props) => {\n const dispatch = useDispatch();\n const [merchantTransData, setMerchantTransData] = useState([])\n\n\n useEffect(() => {\n getMerchantTransactionStats(6)\n }, []);\n\n \n //======== get Merchant transacrion stats ============================\n const getMerchantTransactionStats = async (month) => {\n try{\n const response = await dispatch(merchantTransactionStatisticsActionFn(month));\n const merchantTransactionStats = response?.payload;\n if (merchantTransactionStats){\n if(merchantTransactionStats?.status == 200){\n if(merchantTransactionStats?.data){\n barChart1(merchantTransactionStats?.data)\n setMerchantTransData(merchantTransactionStats?.data)\n }\n } else {\n console.error(merchantTransactionStats)\n }\n }\n } catch (err){\n console.error(err)\n }\n }\n\n\n\n const barChart1 = (merchantdata) => {\n var ctx2 = document.getElementById(\"myChart2\").getContext(\"2d\");\n var gradientFill = ctx2.createLinearGradient(0, 250, 0, 130);\n gradientFill.addColorStop(1, \"rgba(56, 182, 53, 1)\");\n gradientFill.addColorStop(0, \"rgba(255, 255, 255, 0)\");\n\n var gradientFill2 = ctx2.createLinearGradient(0, 250, 0, 80);\n gradientFill2.addColorStop(1, \"rgba(207, 238, 206, 1)\");\n gradientFill2.addColorStop(0, \"rgba(255, 255, 255, 0)\");\n var myChart2 = new Chart(ctx2, {\n type: \"line\",\n fillOpacity: 0.8,\n data: {\n labels: merchantdata?.result\n ? merchantdata?.result.map((a) => a.dateRange)\n : [0,0,0,0,0,0],\n datasets: [\n {\n label: \"Transactions\",\n backgroundColor: gradientFill,\n borderColor: \"#38B635\",\n pointBorderColor: \"#38B635\",\n borderWidth: 2,\n pointRadius: 4,\n pointHoverRadius: 4,\n pointBackgroundColor: \"#FFF\",\n data: merchantdata?.result\n ? merchantdata?.result.map((a) => a.count)\n : [0,0,0,0,0,0],\n },\n \n ],\n },\n options: {\n responsive: true,\n maintainAspectRatio: false,\n bezierCurve: false,\n elements: {\n line: {\n tension: 0,\n },\n },\n scales: {\n xAxes: [\n {\n gridLines: { color: \"rgba(0, 0, 0, 0)\" },\n },\n ],\n yAxes: [\n {\n ticks: { beginAtZero: true },\n gridLines: { color: \"rgba(244, 244, 244, 1)\" },\n },\n ],\n },\n\n tooltips: {\n custom: function (tooltip) {\n if (!tooltip) return;\n // disable displaying the color box;\n tooltip.displayColors = false;\n },\n callbacks: {\n // use label callback to return the desired label\n label: function (tooltipItem, data) {\n return \"GH₵\" + tooltipItem.yLabel;\n },\n // remove title\n title: function (tooltipItem, data) {\n return;\n },\n },\n backgroundColor: \"#FFF\",\n borderColor: \"rgba(0, 0, 0, 0.09)\",\n borderWidth: 1,\n bodyFontColor: \"rgba(0, 0, 0, 1)\",\n bodyAlign: \"center\",\n bodyFontSize: 14,\n bodyFontStyle: 500,\n },\n legend: {\n align: \"end\",\n labels: {\n boxWidth: 12,\n fontColor: \"#A4A7B0\",\n },\n },\n },\n });\n };\n\n \n return (\n
    \n
    \n
    \n
    \n
    \n

    Transactions Statistics

    \n
    \n getMerchantTransactionStats(e.target.value)}\n >\n \n \n \n \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n );\n};\n\nexport default MerchantChart;\n","\nimport { isEmpty } from \"lodash\";\nimport { Modal } from \"react-bootstrap\";\nimport React, { useEffect, useState } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport {\n getExportTransactionAction,\n getFilterTypeActionFn,\n getPdfTransactionDetailAction,\n getTransactionActionFn,\n getTransactionByIdActionFn,\n} from \"../../redux/actions/transactionAction\";\nimport moment from \"moment\";\nimport Calendar from \"react-calendar\";\nimport \"react-calendar/dist/Calendar.css\";\nimport exportFromJSON from 'export-from-json'\nimport ExportData from '../../redux/utilities/export'\nimport { renderToString } from 'react-dom/server'\nimport { jsPDF } from \"jspdf\"; \nimport { GET_PDF_TRANSACTIONS_DETAILS } from \"../../redux/constants\";\n\nconst MerchantTransactions = (props) => {\n const [show, setShow] = useState(false);\n const dispatch = useDispatch();\n\n const [transactionDataArr, setTransactionDataArr] = useState([]);\n const [transactionDetailById, setTransactionDetailById] = useState([])\n const [filters, setFilters] = useState([])\n\n const handleClose = () => setShow(false);\n const handleShow = () => setShow(true);\n const [isUserFilter, setIsUserFilter] = useState(false);\n const [isSort, setIsSort] = useState('\"\"');\n const [customRange, setCustomRange] = useState(\"\");\n const [isCurrentPage, setIsCurrentPage] = useState(1);\n const [isStatus, setIsStatus] = useState([]);\n const [isTransactionType, setIsTransactionType] = useState([]);\n const [isMethod, setIsMethod] = useState([]);\n const [isAmountType, setIsAmountType] = useState(\"\");\n const [showCalender, setShowCalender] = useState(false);\n const [isCalenderDate, setIsCalenderDate] = useState(\"\");\n const [isCalnder, setIsCalnder] = useState(true);\n const [tranactionExport, setTransactionExport] = useState([])\n const [searchText, setSearchText] = useState('');\n const [searchTrueORFalse, setSearchTrueORFalse] = useState(false)\n\n\n\n useEffect(() => {\n if (searchTrueORFalse == false){\n getInitialData()\n }\n }, [searchTrueORFalse]);\n\n\n const getInitialData = () => {\n const formData = {\n accountType: \"Merchant\",\n status: isStatus,\n type: isTransactionType,\n method: isMethod,\n sort: isAmountType, // High, Low, Recent\n time: isSort, //last_month, this_month, last_6_month\n custom_range: customRange, //If Date range is selected then time param should be empty\n page: 1, //default should be always 1\n search:searchTrueORFalse,\n searchText:searchText,\n };\n getTransactionsList(formData)\n getFilterList()\n }\n\n const clearFilter = () => {\n setIsStatus([]);\n setIsTransactionType([]);\n setIsMethod([]);\n setIsAmountType(\"\");\n };\n\n const getTransactionsList = async (formData) => {\n try{\n const response = await dispatch(getTransactionActionFn(formData));\n const transactionResponse = response?.payload;\n if(transactionResponse){\n if (transactionResponse?.status ==200){\n setTransactionDataArr(transactionResponse?.data)\n } else {\n console.error(transactionResponse)\n }\n }\n } catch(err){\n console.error(err)\n }\n }\n\n const getFilterList = async () =>{\n try{\n const response = await dispatch(getFilterTypeActionFn());\n const getFilterResponse = response?.payload;\n if (getFilterResponse){\n if (getFilterResponse?.status == 200 ){\n setFilters(getFilterResponse?.data)\n } else {\n console.error(getFilterResponse)\n }\n }\n } catch (err){\n console.error(err)\n }\n }\n\n const getTransactionById = async (id) =>{\n try{\n const response = await dispatch(getTransactionByIdActionFn(id));\n const transactionResponse = response?.payload;\n if (transactionResponse){\n if (transactionResponse?.status == 200 ){\n setTransactionDetailById(transactionResponse?.data?.data)\n setShow(true);\n } else {\n console.error(transactionResponse)\n }\n }\n } catch (err){\n console.error(err)\n }\n }\n\n const getSearchData = async () =>{\n try{\n if(searchText == ''){\n return false\n } else {\n\n const formData = {\n accountType: \"Merchant\",\n search:searchTrueORFalse,\n searchText:searchText,\n status: isStatus,\n type: isTransactionType,\n method: isMethod,\n sort: isAmountType, // High, Low, Recent\n time: isSort, //last_month, this_month, last_6_month\n custom_range: customRange, //If Date range is selected then time param should be empty\n page: isCurrentPage, //default should be always 1\n }\n const response = await dispatch(getTransactionActionFn(formData));\n const searchResponse = response?.payload;\n if (searchResponse){\n if (searchResponse?.status == 200 ){\n setTransactionDataArr(searchResponse?.data)\n } else {\n console.error(searchResponse)\n }\n }\n }\n } catch (err){\n console.error(err)\n }\n }\n\n const handleSearchTextChange = (e) => {\n const value = e.target.value\n setSearchText(value)\n if (value == \"\"){\n setSearchTrueORFalse(false)\n } else {\n setSearchTrueORFalse(true)\n }\n }\n\n const handleSearchEnterkey = (e) =>{\n const key = e.key\n if (key == 'Enter'){\n if (searchTrueORFalse == true){\n getSearchData()\n }\n }\n }\n\n const onChangeStatusHandler = (e) => {\n if (e.target.checked) {\n setIsStatus([...isStatus, e.target.value]);\n } else {\n let remove = isStatus.indexOf(e.target.value);\n setIsStatus(isStatus.filter((_, i) => i !== remove));\n }\n };\n\n const onChangeTransactionType = (e) => {\n if (e.target.checked) {\n setIsTransactionType([...isTransactionType, e.target.value]);\n } else {\n let remove = isTransactionType.indexOf(e.target.value);\n setIsTransactionType(isTransactionType.filter((_, i) => i !== remove));\n }\n };\n\n const onChangeMethodHandler = (e) => {\n if (e.target.checked) {\n setIsMethod([...isMethod, e.target.value]);\n } else {\n let remove = isMethod.indexOf(e.target.value);\n setIsMethod(isMethod.filter((_, i) => i !== remove));\n }\n };\n\n const onChangeAmountTypeHandler = (e) => {\n setIsAmountType(e.target.value);\n };\n\n const sortHander = (e) => {\n if (e.target.value === \"custom_range\") {\n setShowCalender(true);\n } else {\n setIsSort(e.target.value);\n const formData = {\n accountType: \"Merchant\",\n status: isStatus,\n type: isTransactionType,\n method: isMethod,\n sort: isAmountType, // High, Low, Recent\n time: e.target.value, //last_month, this_month, last_6_month\n custom_range: customRange, //If Date range is selected then time param should be empty\n page: isCurrentPage, //default should be always 1\n search:searchTrueORFalse,\n searchText:searchText,\n };\n dispatch(getTransactionActionFn(formData));\n setShowCalender(false);\n }\n };\n\n const selectDate = (value) => {\n const rangeDate =\n moment(value[0]).format(\"Y-MM-DD\") +\n \" \" +\n moment(value[1]).format(\"Y-MM-DD\");\n\n const formData = {\n accountType: \"Merchant\",\n status: isStatus,\n type: isTransactionType,\n method: isMethod,\n sort: isAmountType, // High, Low, Recent\n time: \"\", //last_month, this_month, last_6_month\n custom_range: rangeDate, //If Date range is selected then time param should be empty\n page: isCurrentPage, //default should be always 1\n search:searchTrueORFalse,\n searchText:searchText,\n };\n dispatch(getTransactionActionFn(formData));\n setIsCalenderDate(rangeDate);\n setIsCalnder(false);\n };\n\n const calenderToggle = () => {\n setIsCalnder(!isCalnder);\n };\n\n const applyFilter = (e) => {\n e.preventDefault();\n const formData = {\n accountType: \"Merchant\",\n status: isStatus,\n type: isTransactionType,\n method: isMethod,\n sort: isAmountType, // High, Low, Recent\n time: isSort, //last_month, this_month, last_6_month\n page: isCurrentPage, //default should be always 1\n search:searchTrueORFalse,\n searchText:searchText,\n };\n dispatch(getTransactionActionFn(formData));\n setIsUserFilter(false);\n\n // closing filter box\n const className = document.getElementsByClassName('dropdown-menu show')\n className[0].className = \"dropdown-menu\"\n };\n\n\n\n// ============== export data to excel sheet ==================\nconst exportData = async () => {\n try {\n const formData = {\n accountType: \"Merchant\",\n status: isStatus,\n type: isTransactionType,\n method: isMethod,\n sort: isAmountType, // High, Low, Recent\n time: isSort, //last_month, this_month, last_6_month\n custom_range: customRange, //If Date range is selected then time param should be empty\n page: isCurrentPage, //default should be always 1\n export: true, \n search:searchTrueORFalse,\n searchText:searchText,\n }\n const exportTransactionData = await dispatch(getExportTransactionAction(formData));\n const response = exportTransactionData?.payload\n if (response){\n if (response?.status){\n setTransactionExport(response?.result)\n const data = response && response?.result \n const fileName = 'download'\n const exportType = exportFromJSON.types.xls\n exportFromJSON({ data, fileName, exportType })\n }\n }\n } catch(err){\n console.error(err)\n }\n}\n\n// ========== export pdf ============================= \nconst exportPdf = async (transactionId) => {\n try{\n const exportPdfApiResponse = await dispatch(getPdfTransactionDetailAction(transactionId))\n const response = exportPdfApiResponse?.payload;\n if (response){\n if(response?.status == true) {\n const transDetails = response?.data?.transactionDetails \n const paymentDetails = response?.data?.paymentDetails \n if (transDetails){\n downloadPdf(transDetails, paymentDetails)\n }\n }\n }\n } catch (err) {\n console.error(err)\n }\n}\n//=========== download pdf ====================================\nconst downloadPdf =(transDetails, paymentDetails) =>{\n if(transDetails){\n const doc = new jsPDF('p','pt','legal');\n let a =renderToString()\n \n doc.html(a,{callback:function(doc){\n doc.save('transactionDetails.pdf')\n dispatch({ type: GET_PDF_TRANSACTIONS_DETAILS, payload:''});\n }})\n }\n}\n\n\n\n//=============Pagination====================Start==========\nconst paginationHander = (pageNumber) => {\n setIsCurrentPage(pageNumber);\n let formData = getFilter(pageNumber)\n dispatch(getTransactionActionFn(formData));\n};\n\nconst paginationList =()=>{\n const pageNumbers=[]; \n for(var i=1; i <= transactionDataArr?.totalPage; i++){\n pageNumbers.push(i)\n }\n if(transactionDataArr?.totalPage > 3){\n\n }\n const renderPageNumbers = pageNumbers.map(number => {\n if ( number === transactionDataArr?.currentPage - 2 || number === transactionDataArr?.currentPage + 2) {\n return ...\n } else if (number < 2 || number === pageNumbers.length || transactionDataArr?.currentPage===number || transactionDataArr?.currentPage===number - 1 || transactionDataArr?.currentPage===number + 1) {\n return (\n
  • paginationHander(number)}>\n {number}\n \n
  • \n );\n }\n \n });\n return \n \n}\n\nconst getFilter =(page)=>{\n const formData = { \n accountType: \"Merchant\",\n status: isStatus,\n type: isTransactionType,\n method: isMethod,\n sort: isAmountType, // High, Low, Recent\n time: isSort, //last_month, this_month, last_6_month\n page: page,\n search:searchTrueORFalse,\n searchText:searchText,\n }\n return formData\n}\n\n\nconst nextPaginationHander = (pageNumber) => {\n if (isCurrentPage !== pageNumber) {\n const p = isCurrentPage + 1;\n setIsCurrentPage(p);\n let formData = getFilter(p)\n getTransactionsList(formData)\n }\n};\n\nconst previousPaginationHander = () => {\n if (isCurrentPage > 1) {\n const p = isCurrentPage - 1;\n setIsCurrentPage(p);\n let formData = getFilter(p)\n getTransactionsList(formData)\n }\n};\n\nconst firstPaginationHander = () => {\n const p = 1;\n setIsCurrentPage(p);\n let formData = getFilter(p)\n getTransactionsList(formData)\n};\n\nconst lastPaginationHander = (pageNumber) => {\n const p = pageNumber;\n setIsCurrentPage(p);\n let formData = getFilter(p)\n getTransactionsList(formData)\n};\n\n//===================Pagination=======================End===================\n\n const showTransactionData = (id) => {\n if (id) {\n getTransactionById(id)\n }\n };\n\n\n const transactionDetails = () =>{\n if(transactionDetailById?.paymentDetails?.merchantType === \"Travel\"){\n return ( \n <>\n
    \n Method\n \n {transactionDetailById?.transactionDetails?.method}\n \n
    \n
    \n Type\n {transactionDetailById?.transactionDetails?.type}\n
    \n
    \n PRN Number\n \n
    \n
    \n Payment details\n {transactionDetailById?.transactionDetails?.paymentThrough}\n
    \n \n )\n }\n else if(transactionDetailById?.paymentDetails?.merchantType === \"Schools\"){\n return (\n <>\n
    \n Method\n {transactionDetailById?.transactionDetails?.method}\n
    \n
    \n Type\n {transactionDetailById?.transactionDetails?.type}\n
    \n
    \n Student Number\n {transactionDetailById?.paymentDetails?.data?.student_number}\n
    \n
    \n Payment details\n {transactionDetailById?.transactionDetails?.paymentThrough}\n
    \n
    \n Student Name\n {transactionDetailById?.paymentDetails?.data?.student_name}\n
    \n
    \n Fee Details\n {transactionDetailById?.paymentDetails?.data?.fee_detail}\n
    \n
    \n Institute\n {transactionDetailById?.paymentDetails?.data?.institute}\n
    \n
    \n Location\n {transactionDetailById?.paymentDetails?.data?.location}\n
    \n \n )\n } \n }\n\n\n const renderTableData = () => {\n return (\n !isEmpty(transactionDataArr) &&\n transactionDataArr?.result?.map((item, index) => {\n const {\n transactionId,\n transactionDate,\n type,\n receiverAvtar,\n senderAvtar,\n senderName,\n amount,\n transactionStatus,\n method,\n receiverName,\n action,\n } = item;\n return (\n \n \n \n \n showTransactionData(transactionId)}>\n #{transactionId}\n \n \n
    \n {transactionDate}\n {/* 08:13 PM{\" \"} */}\n
    \n \n \n
    \n \n \"\"/\n \n {senderName? senderName: 'NA'}\n
    \n \n \n {/*
    \n \n \"receiver\"/\n \n \n {type}\n
    */}\n
    \n \n \"\"\n \n \n {receiverName ? receiverName : \"NA\"}\n \n
    \n \n GH₵ {amount}\n {transactionStatus}\n {method}\n {type}\n \n {exportPdf(transactionId)}}\n style={{cursor:\"pointer\"}}\n >\n \n \n \n \n );\n })\n );\n };\n\n const handleSelectAll = (e) => {\n const checkbox = document.getElementById('selectall-checkbox')\n const transCheckbox = document.querySelectorAll('#transaction-checkbox')\n if (checkbox.checked){\n for (var chbox of transCheckbox ){\n chbox.checked = true\n }\n } else {\n for (var chbox of transCheckbox ){\n chbox.checked = false\n }\n }\n }\n\n\n return (\n <>\n
    \n
    \n
    \n

    Transactions

    \n
    \n
    \n {handleSearchTextChange(e)}} \n onKeyPress={handleSearchEnterkey}\n className=\"form-control\" placeholder=\"Search\" />\n {getSearchData()}} \n />\n \n
    \n
    \n setIsUserFilter(!isUserFilter)}\n style={{ cursor: \"pointer\" }}\n id=\"filterDropDown\"\n data-toggle=\"dropdown\"\n >\n Filters\n \n
    \n
    applyFilter(e)}>\n \n clearFilter()}\n />\n\n
    \n
    \n
    \n

    By status

    \n \n \n \n \n
    \n
    \n
    \n
    \n

    By transaction type

    \n
    \n
    \n {filters?.data?.length > 0 &&\n filters?.data.map((filter) => {\n return (\n \n );\n })}\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n

    By method

    \n \n \n
    \n
    \n
    \n
    \n

    Sort by

    \n \n \n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n sortHander(e)}\n style={{\n background: \"#f4f4f4\",\n border: \"none\",\n fontSize: \"12px\",\n padding: \"0 10px\",\n maxWidth: \"115px\",\n margin: \"0 5px\",\n cursor: \"pointer\"\n }}\n >\n \n \n \n \n \n \n
    \n {showCalender && (\n <>\n
    \n
    \n calenderToggle()}\n />\n \n
    \n {isCalnder && (\n selectDate(value)}\n next2Label={null}\n prev2Label={null}\n selectRange={true}\n returnValue=\"range\"\n />\n )}\n
    \n \n )}\n \n Export\n \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n {renderTableData()}\n\n {/* \n \n \n \n\n \n \n \n \n \n \n */}\n {/* \n \n \n \n\n \n \n \n \n \n \n \n */}\n {/* \n \n \n \n\n \n \n \n \n \n \n */}\n {/* \n \n \n \n\n \n \n \n \n \n \n */}\n
    \n \n Transaction IDDateSenderReceiverAmountStatusMethodTypeAction
    \n \n #314746\n
    \n Aug 13, 2020 08:13 PM{\" \"}\n
    \n
    \n
    \n \n \"\"\n \n \n Akua Ado
    akuado154@gmail.com\n
    \n
    \n
    GH₵87.12CompletedRequest-\n \n \n \n
    \n \n #314746\n
    \n Aug 13, 2020 08:13 PM{\" \"}\n
    \n
    \n
    \n \n \"\"\n \n \n EgyptAir
    Travel\n
    \n
    \n
    GH₵87.12CompletedPaymentTravel\n \n \n \n
    \n \n #314746\n
    \n Aug 13, 2020 08:13 PM{\" \"}\n
    \n
    \n
    \n \n \"\"\n \n MTN\n
    \n
    GH₵87.12CompletedPaymentShopping\n \n \n \n
    \n \n #314746\n
    \n Aug 13, 2020 08:13 PM{\" \"}\n
    \n
    \n
    \n \n \n \n School Fees\n
    \n
    GH₵87.12CompletedPaymentSchool Fees\n \n \n \n
    \n
    \n
    \n
    \n\n
    {paginationList()}
    \n
    \n \n\n {/* modal first */}\n \n
    \n
    \n Transaction ID {transactionDetailById?.transactionDetails?.transactionId}\n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n {transactionDetailById?.transactionDetails?.transactionDate}\n \n \n GH₵ {transactionDetailById?.transactionDetails?.amount}\n \n \n {transactionDetailById?.transactionDetails?.transactionStatus}\n \n
    \n
    \n Sender\n
    \n \n \n \n \n {transactionDetailById?.transactionDetails?.senderName}{\" \"}\n
    {\" \"}\n \n {transactionDetailById?.transactionDetails?.senderPhone}\n \n
    \n
    \n
    \n
    \n Receiver\n
    \n \n \n \n \n {transactionDetailById?.transactionDetails?.receiverName}{\" \"}\n
    {\" \"}\n \n {transactionDetailById?.transactionDetails?.receiverPhone}{\" \"}\n \n
    \n
    \n
    \n {transactionDetails()}\n
    \n
    \n
    \n \n
    \n
    \n
    \n\n {/*
    \n
    \n Transaction ID #314745\n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n Aug 13, 2020\n GH₵277.00\n Completed\n
    \n
    \n Sender\n
    \n \n \"\"\n \n \n Diane Larbi
    {\" \"}\n dihunter228@gmail.com\n
    \n
    \n
    \n
    \n Receiver\n
    \n \n \"\"\n \n \n Akua Ado
    {\" \"}\n akuado154@gmail.com\n
    \n
    \n
    \n
    \n Method\n Request\n
    \n
    \n
    \n
    \n
    \n
    \n
      \n
    • \n \n Refund\n \n
    • \n
    • \n \n Export\n \n
    • \n
    • \n \n Delete\n \n
    • \n
    \n
    \n
    \n
    \n
    \n
    */}\n \n {/* refund modal\n \n
    \n
    \n Refund a transaction\n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    Full refund

    \n \"\"\n
    \n GH₵277.00\n
    \n
    \n
    \n
    \n
    \n

    Partial refund

    \n \"\"\n
    \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n
    \n */}\n \n );\n};\n\nexport default MerchantTransactions;\n","import React, { useState, useEffect } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport ArrowDown from \"../../assets/images/arrow-down.svg\";\nimport ArrowUp from \"../../assets/images/arrow-up.svg\";\nimport MerchantChart from \"./merchant-charts\";\nimport Header from \"../common/header\";\nimport { userStatsActionFn } from \"../../redux/actions/userDetailsAction\";\nimport MerchantTransactions from \"./merchantTransactions\";\nimport { getGraphScaleValueArr, getGraphValueArr, getPercentageChange } from \"../../redux/utilities\";\n\n\nconst MerchantDashboard = (props) => {\n const dispatch = useDispatch();\n\n const [paymentCount, setPaymentCount] = useState(0);\n const [prevPaymentCount, setPrevPaymentCount] = useState(0);\n const [reqCount, setReqCount] = useState(0);\n const [prevReqCount,setPrevReqCount] = useState(0);\n const [receiveCount, setReceiveCount] = useState(0);\n const [prevReceiveCount,setPrevReceiveCount] = useState(0);\n const [sentAmount, setSentAmount] = useState(0);\n const [prevSentAmount,setPrevSentAmount] = useState(0);\n //======================= Small Graph ==================================\n const [valueArr, setValueArr] = useState({});\n const [graphScaleValue, setGraphScaleValue] = useState({});\n const [paymentCountObject, setPaymentCountObject] = useState({})\n const [requestCountObject, setRequestCountObject] = useState({})\n const [totalReceiveCountObject, setTotalReceiveCountObject] = useState({})\n const [totalSentCountObject, setTotalSentCountObject] = useState({})\n\n\n useEffect(() => {\n getUserWalletDetail()\n }, []);\n\n const getUserWalletDetail = async () => {\n try {\n const response = await dispatch(userStatsActionFn(\"Merchant\"));\n const getUserWalletResponse = response?.payload;\n if (getUserWalletResponse){\n if(getUserWalletResponse?.status == 200) {\n const {currentMonth, lastMonth } = getUserWalletResponse.data.result;\n // currentMonth\n setPaymentCount(currentMonth?.paymentCount);\n setReqCount(currentMonth?.requestCount);\n setReceiveCount(currentMonth?.totalReceive);\n setSentAmount(currentMonth?.totalSent);\n // lastMonth\n setPrevPaymentCount(lastMonth?.paymentCount);\n setPrevReqCount(lastMonth?.requestCount);\n setPrevReceiveCount(lastMonth?.totalReceive);\n setPrevSentAmount(lastMonth?.totalSent);\n // Small Graph \n getSmallGraphValue(getUserWalletResponse.data.result)\n\n } else {\n console.error(getUserWalletResponse)\n }\n }\n } catch (err) {\n console.error(err)\n }\n }\n\n const getSmallGraphValue = async (data) => {\n\n try{ \n const response = await getGraphValueArr(data);\n setValueArr(response)\n const values = await getGraphScaleValueArr(response)\n setGraphScaleValue(values)\n setPaymentCountObject(values['paymentCount'])\n setRequestCountObject(values['requestCount'])\n setTotalReceiveCountObject(values['totalReceive'])\n setTotalSentCountObject(values['totalSent'])\n } catch (err){\n console.error(err)\n }\n };\n\n\n return (\n <>\n
    \n
    \n
    \n
    \n
    \n
    \n

    {paymentCount}

    \n

    payments this month

    \n
    \n {getPercentageChange(\n prevPaymentCount,\n paymentCount\n ) >= 0 ? (\n
    \n +\n {getPercentageChange(\n prevPaymentCount,\n paymentCount, 'absTrue'\n )}\n % \"\"{\" \"}\n
    \n ) : \n (\n
    \n -\n {getPercentageChange(\n prevPaymentCount,\n paymentCount, 'absTrue'\n )}\n % \"\"{\" \"}\n
    \n \n )}\n\n
    \n {paymentCountObject? \n
      \n
    • \n 0 ? paymentCountObject[\"thirdLastMonth\"]: '2'}%`, }}\n >\n
    • \n
    • \n 0? paymentCountObject[\"secondLastMonth\"] : '2'}%`, }}\n >\n
    • \n
    • \n 0 ? paymentCountObject[\"lastMonth\"] : '2'}%`, }}\n >\n
    • \n
    • \n = 0 ? \"graph-up\" : \"graph-down\"}`}\n style={{height: `${paymentCountObject[\"currentMonth\"] >0 ? paymentCountObject[\"currentMonth\"] : '2'}%`, }}\n >\n
    • \n
    \n :<>}\n
    \n
    \n
    \n
    \n
    \n
    \n

    {reqCount}

    \n

    requests this month

    \n
    \n {getPercentageChange(\n prevReqCount,\n reqCount\n ) >= 0 ? (\n
    \n +\n {getPercentageChange(\n prevReqCount,\n reqCount, 'absTrue'\n )}\n % \"\"{\" \"}\n
    \n ) : \n (\n
    \n -\n {getPercentageChange(\n prevReqCount,\n reqCount, 'absTrue'\n )}\n % \"\"{\" \"}\n
    \n ) \n }\n \n
    \n {requestCountObject? \n
      \n
    • \n 0 ? requestCountObject[\"thirdLastMonth\"]: '2'}%`, }}\n >\n
    • \n
    • \n 0? requestCountObject[\"secondLastMonth\"] : '2'}%`, }}\n >\n
    • \n
    • \n 0 ? paymentCountObject[\"lastMonth\"] : '2'}%`, }}\n >\n
    • \n
    • \n = 0 ? \"graph-up\" : \"graph-down\"}`}\n style={{height: `${requestCountObject[\"currentMonth\"] >0 ? requestCountObject[\"currentMonth\"] : '2'}%`, }}\n >\n
    • \n
    \n :<>}\n
    \n
    \n
    \n
    \n
    \n
    \n

    GH₵ {receiveCount}

    \n

    received this month

    \n
    \n {getPercentageChange(\n prevReceiveCount,\n receiveCount\n ) >= 0 ? (\n
    \n +\n {getPercentageChange(\n prevReceiveCount,\n receiveCount, 'absTrue'\n )}\n % \"\"{\" \"}\n
    \n ):(\n
    \n -\n {getPercentageChange(\n prevReceiveCount,\n receiveCount, 'absTrue'\n )}\n % \"\"{\" \"}\n
    \n )}\n
    \n {totalReceiveCountObject? \n
      \n
    • \n 0 ? totalReceiveCountObject[\"thirdLastMonth\"]: '2'}%`, }}\n >\n
    • \n
    • \n 0? totalReceiveCountObject[\"secondLastMonth\"] : '2'}%`, }}\n >\n
    • \n
    • \n 0 ? totalReceiveCountObject[\"lastMonth\"] : '2'}%`, }}\n >\n
    • \n
    • \n = 0 ? \"graph-up\" : \"graph-down\"}`}\n style={{height: `${totalReceiveCountObject[\"currentMonth\"] >0 ? totalReceiveCountObject[\"currentMonth\"] : '2'}%`, }}\n >\n
    • \n
    \n :<>}\n
    \n
    \n
    \n
    \n
    \n
    \n

    GH₵ {sentAmount}

    \n

    sent this month

    \n
    \n {getPercentageChange(\n prevSentAmount,\n sentAmount\n ) >= 0 ? (\n
    \n +\n {getPercentageChange(\n prevSentAmount,\n sentAmount, 'absTrue'\n )}\n % \"\"{\" \"}\n
    \n ) : (\n
    \n -\n {getPercentageChange(\n prevSentAmount,\n sentAmount, 'absTrue'\n )}\n % \"\"{\" \"}\n
    \n )}\n
    \n {totalSentCountObject? \n
      \n
    • \n 0 ? totalSentCountObject[\"thirdLastMonth\"]: '2'}%`, }}\n >\n
    • \n
    • \n 0? totalSentCountObject[\"secondLastMonth\"] : '2'}%`, }}\n >\n
    • \n
    • \n 0 ? totalSentCountObject[\"lastMonth\"] : '2'}%`, }}\n >\n
    • \n
    • \n = 0 ? \"graph-up\" : \"graph-down\"}`}\n style={{height: `${totalSentCountObject[\"currentMonth\"] >0 ? totalSentCountObject[\"currentMonth\"] : '2'}%`, }}\n >\n
    • \n
    \n :<>}\n
    \n
    \n
    \n
    \n
    \n
    \n\n \n \n
    \n \n );\n};\n\n//
    \n//
    \n//
    \n//
    \n//
    Transaction ID #314745
    \n// \n//
    \n//
    \n//
    \n//
    \n//
    \n//
    \n// Aug 13, 2020\n// GH₵277.00\n// Completed\n//
    \n//
    \n// Sender\n//
    \n// \"\"/\n// Diane Larbi
    dihunter228@gmail.com
    \n//
    \n//
    \n//
    \n// Receiver\n//
    \n// \n// School Fees\n//
    \n//
    \n//
    \n// Method\n// Request\n//
    \n//
    \n// Type\n// School Fees\n//
    \n//
    \n// Institute\n// Ghana International School\n//
    \n//
    \n// Location\n// Ghana\n//
    \n//
    \n// Fee Details\n// Quarterly fees\n//
    \n//
    \n// Student Number\n// 236722\n//
    \n//
    \n//
    \n//
    \n//
    \n//
    \n// \n//
    \n//
    \n//
    \n//
    \n//
    \n//
    \n//
    \n//
    \n\nexport default MerchantDashboard;\n","import React from \"react\";\nimport { Route, Redirect } from \"react-router-dom\";\nimport { Loader } from \"../components/loader\";\n\n// handle the private routes\nfunction PrivateRoute({ component: Component,authTokens, ...rest }) {\n\n return (\n \n <>\n \n authTokens ? (\n <>\n \n \n \n ) : (\n \n )\n }\n />\n \n );\n}\nexport default PrivateRoute;","import { useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { BrowserRouter, Route, Switch } from \"react-router-dom\";\nimport UserSettings from \"../components/account/settings\";\nimport Login from \"../components/auth/login\";\nimport OTP from \"../components/auth/otp\";\nimport GenerateQRCode from \"../components/common/qrcode\";\nimport CustomerDashboard from \"../components/customer/customer-dashboard\";\nimport Dashboard from \"../components/dashboard/user-dashboard\";\nimport MerchantDashboard from \"../components/merchant/merchant-dashboard\";\nimport PrivateRoute from \"./PrivateRoute\";\n\nconst Routes = () => {\n const LoginData = useSelector(state => state?.LoginData?.loginSuccesData?.accessToken )\n const existingToken = localStorage.getItem('accessToken')\n const [isAuthenticated, setIsAuthenticated ] = useState(existingToken? true : false)\n\n useEffect(()=>{\n if (existingToken){\n setIsAuthenticated(true)\n }\n },[LoginData ])\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default Routes;\n","import React from \"react\";\nimport { Loader } from \"./components/loader\";\nimport Routes from \"./routes/routes\";\n\n\nfunction App(){\n return (\n
    \n
    \n {/* Go to routes folder */}\n \n
    \n \n
    \n );\n};\nexport default App","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n };\n \n export default reportWebVitals;\n ","import React from \"react\";\nimport \"./App.css\";\nimport ReactDOM from \"react-dom\";\nimport App from \"./App\";\n\nimport { Provider } from \"react-redux\";\nimport store, { persistor } from \"./redux/store/store\";\n\nimport reportWebVitals from \"./reportWebVitals\";\nimport { PersistGate } from \"redux-persist/integration/react\";\n\nReactDOM.render(\n \n \n \n \n \n \n ,\n document.getElementById(\"root\")\n);\n\nreportWebVitals();\n","export const GENERATEOTP = \"GENERATEOTP\";\nexport const CALLINGCODE = \"CALLINGCODE\";\nexport const OTPERROR = \"OTPERROR\";\nexport const GETPROVIDER = \"GETPROVIDER\";\nexport const LOGIN = \"LOGIN\";\nexport const LOGIN_ERROR = \"LOGIN_ERROR\";\nexport const GENERATE_TOKEN = \"GENERATE_TOKEN\";\nexport const LOGOUT = \"LOGOUT\";\nexport const USERDETAILS = \"USERDETAILS\"\nexport const SWITCHACCOUNT = \"SWITCHACCOUNT\"\nexport const GETTRANSACTIONS = \"GETTRANSACTIONS\"\nexport const GET_EXPORT_TRANSACTIONS = \"GET_EXPORT_TRANSACTIONS\"\nexport const GET_PDF_TRANSACTIONS_DETAILS = \"GET_PDF_TRANSACTIONS_DETAILS\"\nexport const STATISTICS = \"STATISTICS\"\nexport const TRANSACTION = \"TRANSACTION\"\nexport const TOPRECEIVERS = \"TOPRECEIVERS\"\nexport const PAYMENTVSREQUEST = \"PAYMENTVSREQUEST\"\nexport const TRANSACTIONTYPE = \"TRANSACTIONTYPE\"\nexport const FILTERTYPE = \"FILTERTYPE\"\nexport const TOPSENDERS = \"TOPSENDERS\"\nexport const REVENUEGRAPH = \"REVENUEGRAPH\"\nexport const CURRENTUSER = \"CURRENTUSER\"\nexport const MERCHANTSTATS = \"MERCHANTSTATS\"\nexport const BUSINESSUSERDATA = \"BUSINESSUSERDATA\"\nexport const LOADING = \"LOADING\";"],"sourceRoot":""}