{"version":3,"sources":["assets/images/MaxBounty_Square.png","assets/images/MaxBounty_Horizontal_White.png","assets/images/integration.jpg","assets/images/integration-2.png","assets/images/integration-3.png","container/Login/Login.js","component/Logo/Logo.js","container/Navigation/AccountDropdown/AccountDropdown.js","container/Navigation/Toolbar/Toolbar.js","component/ContactModal/ContactModal.js","container/Navigation/LeftNavigationBar/MBIntegrationModal/MBIntegrationModal.js","assets/JS/functions.js","container/Navigation/LeftNavigationBar/LeftNavigationBar.js","container/Navigation/BottomToolbar/NavigationDropdown/NavigationDropdown.js","container/Navigation/BottomToolbar/BottomToolbar.js","hoc/Layout/Layout.js","component/UI/Loading/Loading.js","container/Dashboard/Dashboard.js","container/Reports/ReportDropdown/ReportDropdown.js","container/Reports/ReportHeader/ReportHeader.js","container/Reports/ReportEarnings/ReportEarnings.js","container/Reports/ReportClicks/ReportClicks.js","container/Reports/ReportConversions/ReportConversions.js","container/Reports/ReportAffiliates/ReportAffiliates.js","container/Reports/ReportCreatives/ReportCreatives.js","container/Reports/ReportLandingPages/ReportLandingPages.js","component/UI/Pagination/Pagination.js","container/Reports/Reports.js","container/Campaigns/Campaigns.js","component/Footer/Footer.js","data/countrylist.js","container/CampaignPage/CampaignInfo/CampaignInfo.js","container/CampaignPage/CampaignRates/IntegrationModal/IntegrationModal.js","container/CampaignPage/CampaignRates/IntegrationPixel/IntegrationPixel.js","container/CampaignPage/CampaignRates/IntegrationMBTag/IntegrationMBTag.js","container/CampaignPage/CampaignRates/CampaignRates.js","container/CampaignPage/LandingPages/LandingPages.js","container/CampaignPage/Creatives/Creatives.js","container/CampaignPage/TodayStats/TodayStats.js","container/CampaignPage/MostRecentLeads/MostRecentLeads.js","container/CampaignPage/CampaignPage.js","component/UserDetails/UserDetails.js","component/UI/LoadingPage/LoadingPage.js","component/SystemMessage/SystemMessage.js","container/Invoices/Invoices.js","container/AccountBalance/AccountBalance.js","component/FormElements/Countries.js","data/statelist.js","component/FormElements/StatesProvinces.js","container/Settings/AccountInformation/AccountInformation.js","container/Settings/UserInformation/UserInformation.js","container/Settings/Settings.js","container/Users/CreateUser/CreateUser.js","container/Users/Users.js","container/OttLogin/OttLogin.js","container/FileUpload/FileUpload.js","App.js","serviceWorker.js","index.js","assets/images/dot-pattern.png","assets/images/login.mp4"],"names":["module","exports","Login","props","state","dataLoaded","validate","input_email","email","current","input_password","password","checkValidity","login","e","preventDefault","setState","data","target","value","fetch","process","method","credentials","headers","body","JSON","stringify","then","res","json","result","token","t","CryptoAES","encrypt","CryptoJS","enc","Base64","parse","mode","ECB","padding","pad","Pkcs7","toString","localStorage","setItem","window","location","reload","showSystemMessage","errors","message","error","formLogin","reportValidity","React","createRef","Fragment","className","style","background","backgroundImage","dotPattern","backgroundRepeat","height","width","position","zIndex","autoPlay","muted","loop","src","loginVideo","type","onSubmit","this","ref","maxbountyLogoSquare","alt","htmlFor","name","id","placeholder","autoFocus","required","disabled","icon","spin","Component","logo","maxBountyLogoDesktop","AccountDropdown","isDropdownOpen","toggle","logout","removeItem","Dropdown","isOpen","DropdownToggle","tag","onClick","data-toggle","aria-expanded","viewBox","fill","strokeWidth","size","DropdownMenu","DropdownItem","header","divider","to","href","Toolbar","contactModal","manager","phone","e_mail","im_handle","mbIntegrationModal","modalClosed","integrationImg","clearLocalStorageAndReload","verifyToken","authtoken","getItem","code","LeftNavigationBar","integrationModalOpen","isContactModalOpen","toggleContactModal","toggleIntegrationModal","catch","fontWeight","Modal","ContactModal","activeClassName","paddingLeft","MBIntegrationModal","rel","NavigationDropdown","dropdownOpen","bottomToolbar","Layout","children","Loading","maxWidth","marginTop","marginLeft","marginRight","Dashboard","accountTotals","dayStats","monthStats","invoiceStats","invoices","invoicesTotal","accountBalance","chartStats","todayStats","stats","totals","statType","statTime","handleStatTypeChange","event","fetchNewChartData","handleStateTimeChange","authToken","Promise","all","res1","res2","res3","res4","res5","accountTotalsResult","invoicesResult","accountBalanceResult","chartResult","todayResult","total","chartLabels","chartData","today","moment","format","monthStart","startOf","monthEnd","endOf","statLabelClasses","length","forEach","stat","push","date","first5invoices","slice","align","scope","pathname","search","Intl","NumberFormat","minimumFractionDigits","clicks","leads","cost","map","invoice","key","invoice_id","qb_link","status","amount","role","autoComplete","onChange","labels","datasets","lineTension","backgroundColor","borderColor","borderWidth","pointBackgroundColor","options","maintainAspectRatio","tooltips","intersect","scales","yAxes","ticks","beginAtZero","legend","display","colSpan","campaign_id","sales","ReportDropdown","right","direction","offerId","getReportLink","affiliateId","creativeId","landingPageId","startDate","endDate","ReportHeader","sortBy","title","alignment","handleSort","sort","classes","currentSort","chevron","column","order","sortChevron","ReportEarnings","_isMounted","report","campaign","Error","sorted","_","orderBy","mbToken","fetchUrl","handleDownloadData","console","log","formattedStartDate","formattedEndDate","campaignId","getCancelUrl","item","parseFloat","conversion","toFixed","epc","ReportClicks","landingPage","creative","key_id","utc","ReportConversions","getReportOutput","affFilter","affiliateFilter","offerFilter","affMatch","RegExp","undefined","filter","publisher_id","match","parseInt","startRow","endRow","click_id","campaign_name","reversal_date","subid1","subid2","payout_date","rate","handleTotalPages","total_pages","setOffers","uniqBy","pick","landing_page","ReportAffiliates","ReportCreatives","page","creative_id","creative_name","ReportLandingPages","landing_page_id","landing_page_name","Pagination","pages","range","totalPages","getClasses","currentPage","aria-label","index","handlePageChange","Reports","quickDate","selectedType","selectedStartDate","selectedEndDate","preparingCSV","CSVData","resultsPerPage","handleChangeStart","handleChangeEnd","handleQuickDate","subtract","handleChangeType","reportSelect","handleReport","requestedPage","url","history","prepareCSV","csvData","getCSVLink","formattedData","row","filename","link","cancel","offers","offerList","setAffiliateFilter","setOfferFilter","offerSelect","urlParams","queryString","oid","aid","cid","lpid","reportToDisplay","selectsStart","selected","Date","todayButton","selectsEnd","color","Campaigns","toggleDropdown","toggleFilter","filteredCampaigns","campaigns","footer","alignItems","countries","CampaignInfo","expandCountries","openDescriptionModal","getCountryList","list","arrayLen","allowed_countries","count","separator","country_code","CountryList","country","getOSlist","details","os_list","rows","os_filtering","os","displayedOS","desktop_traffic","toggleDescriptionModal","countryClasses","countryOverlayClasses","dangerouslySetInnerHTML","__html","description","fontSize","thumbnail","geo_filtering","expiry_date","tracking_type","integrationModal","borderRadius","margin","integration2","integration3","overflow","trackingDomain","integrationPixel","trackingType","wordWrap","whiteSpace","IntegrationMBTag","useState","rateNameInfo","updateRateNameInfo","merchantDataInfo","updateMerchantDataInfo","prepopInfo","updatePrepopInfo","saleAmountInfo","updateSaleAmountInfo","testingInfo","updateTestingInfo","exampleInfo","updateExampleInfo","pixel","advertiserId","text","paddingTop","rates","i","findIndex","rate_type","find","landingPages","lp","default_lp","test_link","CampaignRates","openPostbackModal","openIntegrationModal","rateInModal","togglePostbackModal","getModalType","IntegrationPixel","getCodeModalType","postback","lPage","default_flag","readOnly","landing_url","Creatives","showCreativeModal","selectedCreativeThumbnail","toggleCreativeModal","creatives","TodayStats","total_clicks","total_leads","total_sales","total_cost","MostRecentLeads","recentLeads","getMostRecentLeads","recent_leads","getStatus","statusLetter","reverseDate","lead","lead_date","CampaignPage","campaignData","getCampaignData","commission_rates","domains","tracking_domain","landing_pages","LandingPages","userDetails","advertiser","company","advertiser_id","LoadingPage","SystemMessage","in","timeout","classNames","hideSystemMessage","Invoices","fetchInvoices","withRouter","currentBalance","transactions","transaction","Countries","states","StatesProvinces","StateList","AccountInformation","getCountry","countryCode","getState","accountInfo","saveSettings","editName","editing","isFormHalfEdited","streetAddress1","address1","streetAddress2","address2","city","selectedIndex","zipCode","zipcode","mobilePhone","mobilephone","setEditing","inputChangeHandler","validatePhone","input_phone","setCustomValidity","test","address","address_two","phone_num","mobile_num","when","defaultValue","UserInformation","emailEditing","passwordEditing","userInfo","email_id","oldPassword","newPassword","confirmPassword","isPasswordMatching","persist","input_password2","password2","input_password3","password3","formType","postTheData","JSONbody","postURL","newPasswordConfirm","validateEmail","emailAccount","split","emailDomain","abuseCheck","includes","bounceCheck","blockCheck","spamCheck","swearCheck","old_password","settings","users","CreateUser","handleCreateUser","handleRoleSelection","handleInputChange","Users","openCreateUserModal","toggleCreateUserModal","closeModalAndUpdateUsers","fetchUsers","deleteUser","user_id","handleUserDelete","form_user_id","editRole","userId","user","selectedOption","OttLogin","_mounted","Cookies","get","refreshApp","FileUpload","handleFileSelection","filePath","selectedFile","files","onDescriptionChange","fileDescription","handleFileSubmission","fileElement","mb_file","FormData","append","encType","whitespace","library","add","faSpinner","fab","App","mobile_phone","street_address_1","street_address_2","zip_code","systemMessage","checkAuth","decodedToken","decrypt","CryptoENC","isAuth","fetchAdvertiserData","handleNameChange","prevProps","path","render","params","AccountBalance","Settings","component","Boolean","hostname","ReactDOM","document","getElementById","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.c2761282.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/MaxBounty_Square.63e8082e.png\";","module.exports = __webpack_public_path__ + \"static/media/MaxBounty_Horizontal_White.05a41ba0.png\";","module.exports = __webpack_public_path__ + \"static/media/integration.9b85aaff.jpg\";","module.exports = __webpack_public_path__ + \"static/media/integration-2.90d454a1.png\";","module.exports = __webpack_public_path__ + \"static/media/integration-3.4c10825b.png\";","import React, { Component } from 'react';\r\n\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport CryptoJS from 'crypto-js';\r\nimport CryptoAES from 'crypto-js/aes';\r\n\r\nimport maxbountyLogoSquare from '../../assets/images/MaxBounty_Square.png';\r\nimport dotPattern from '../../assets/images/dot-pattern.png';\r\nimport loginVideo from '../../assets/images/login.mp4';\r\n\r\nimport './Login.css';\r\n\r\nclass Login extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.formLogin = React.createRef();\r\n this.email = React.createRef();\r\n this.password = React.createRef();\r\n }\r\n\r\n state = {\r\n dataLoaded: true\r\n }\r\n\r\n validate = () => {\r\n\r\n /* Check required fields */\r\n const input_email = this.email.current;\r\n const input_password = this.password.current;\r\n\r\n if (input_email.checkValidity() === false || input_password.checkValidity() === false) {\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n\r\n login = (e) => {\r\n e.preventDefault()\r\n if (this.validate()) {\r\n /* This is where we do the login */\r\n this.setState({\r\n dataLoaded: false\r\n });\r\n\r\n const data = {\r\n \"email\": e.target.email.value,\r\n \"password\": e.target.password.value\r\n }\r\n\r\n fetch(`${process.env.REACT_APP_API_URL}/authentication`, {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify(data)\r\n })\r\n .then(res => res.json())\r\n .then(\r\n (result) => {\r\n if (result[\"success\"] === true) {\r\n\r\n /* Set the localStorage for authentication and authorization */\r\n const token = result[\"mb-app-token\"];\r\n const t = CryptoAES.encrypt(result[\"mb-app-token\"], CryptoJS.enc.Base64.parse(process.env.REACT_APP_KEY), { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 }).toString();\r\n\r\n localStorage.setItem('mb-auth-token', token);\r\n localStorage.setItem('mb-t', t);\r\n\r\n window.location.reload();\r\n } else {\r\n // if (result[\"allow_access\"] === false) {\r\n // window.location.replace('https://maxbounty.com/');\r\n // } else if (result[\"allow_access\"] === true) {\r\n // this.props.showSystemMessage(\"error\", result.errors.message);\r\n // }\r\n this.props.showSystemMessage(\"error\", result.errors.message);\r\n }\r\n\r\n this.setState({\r\n dataLoaded: true\r\n });\r\n },\r\n (error) => {\r\n this.props.showSystemMessage(\"error\", \"Connection error.\");\r\n this.setState({\r\n dataLoaded: true\r\n });\r\n }\r\n )\r\n\r\n } else {\r\n /* Forces html5 form validation */\r\n const formLogin = this.formLogin.current;\r\n formLogin.reportValidity();\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n\r\n
\r\n\r\n {/* Background Video */}\r\n
\r\n \r\n\r\n \r\n \"MaxBounty\"\r\n

Advertiser Login

\r\n \r\n \r\n \r\n \r\n {this.state.dataLoaded ?\r\n \r\n :\r\n \r\n }\r\n\r\n

2023 - MaxBounty Inc.

\r\n \r\n\r\n
\r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Login;","import React from 'react';\r\n\r\nimport maxBountyLogoDesktop from '../../assets/images/MaxBounty_Horizontal_White.png';\r\n\r\nimport './Logo.css';\r\n\r\nconst logo = () => (\r\n \r\n
\r\n \"MaxBounty\"\r\n
\r\n
\r\n);\r\n\r\nexport default logo;","import React, { Component } from 'react';\r\n\r\nimport { Link } from 'react-router-dom';\r\nimport { Dropdown, DropdownToggle, DropdownMenu, DropdownItem } from 'reactstrap';\r\nimport { User, ChevronDown } from \"react-feather\";\r\n\r\nimport './AccountDropdown.css';\r\n\r\nclass AccountDropdown extends Component {\r\n\r\n state = {\r\n isDropdownOpen: false\r\n }\r\n\r\n toggle = () => {\r\n this.setState({ isDropdownOpen: !this.state.isDropdownOpen });\r\n }\r\n\r\n logout = () => {\r\n //localStorage.clear();\r\n localStorage.removeItem('mb-aid');\r\n localStorage.removeItem('mb-auth-token');\r\n localStorage.removeItem('mb-t');\r\n /* Finally, reload the page. */\r\n window.location.reload();\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n System\r\n \r\n Account Settings\r\n \r\n Manage Users\r\n \r\n File Upload\r\n \r\n Logout\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default AccountDropdown;","import React, { Component } from 'react';\r\nimport { Link } from 'react-router-dom';\r\n\r\nimport Logo from '../../../component/Logo/Logo';\r\nimport AccountDropdown from '../AccountDropdown/AccountDropdown';\r\n\r\nimport './Toolbar.css';\r\n\r\nclass Toolbar extends Component {\r\n render() {\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default Toolbar;","import React from 'react';\r\n\r\nimport { Phone, Mail } from 'react-feather';\r\nimport { FaSkype } from 'react-icons/fa';\r\n\r\nconst contactModal = (props) => (\r\n
\r\n
\r\n
{props.manager.name}
\r\n

{props.manager.phone}

\r\n

{props.manager.e_mail}

\r\n

{props.manager.im_handle}

\r\n
\r\n
\r\n);\r\n\r\nexport default contactModal;","import React from 'react';\r\n\r\nimport { Link } from 'react-router-dom';\r\nimport { HelpCircle } from 'react-feather';\r\n\r\nimport integrationImg from '../../../../assets/images/integration.jpg';\r\n\r\nconst mbIntegrationModal = (props) => (\r\n
\r\n
\r\n
Integrating with MaxBounty
\r\n
\r\n
\r\n
\r\n

Integrating your site with the MaxBounty Advertising Platform will allow you to properly track all the leads we send you.

\r\n

The method of integration depends on the type of tracking your campaigns use, so detailed instructions can be found on the campaign details page. You can access your list of campaigns by clicking here.

\r\n

Once you're on the campaign details page, click the \" Integration\" link in the rates section. This will explain how to integrate your campaign with MaxBounty.

\r\n
\"integration\"
\r\n
\r\n
\r\n
\r\n);\r\n\r\nexport default mbIntegrationModal;","\r\nexport const yesNo = (value) => {\r\n if (value === 'Y') {\r\n return \"Yes\"\r\n } else {\r\n return \"No\"\r\n }\r\n}\r\n\r\nexport function debounce(func, wait, immediate) {\r\n let timeout;\r\n\r\n return function () {\r\n let context = this, args = arguments;\r\n\r\n let later = function () {\r\n timeout = null;\r\n if (!immediate) func.apply(context, args);\r\n };\r\n\r\n let callNow = immediate && !timeout;\r\n clearTimeout(timeout);\r\n timeout = setTimeout(later, wait);\r\n\r\n if (callNow) func.apply(context, args);\r\n }\r\n}\r\n\r\nexport const getCreativeName = (creativeType, creativeId, width, height) => {\r\n let creativeName;\r\n if (creativeType === 'B') {\r\n creativeName = `Banner_${creativeId} (${width} x ${height})`\r\n } else if (creativeType === 'F') {\r\n creativeName = `Flash_Banner_${creativeId} (${width} x ${height})`\r\n } else if (creativeType === 'E') {\r\n creativeName = `E-Mail_${creativeId}`\r\n } else if (creativeType === 'H') {\r\n creativeName = `HTML_${creativeId}`\r\n } else if (creativeType === 'T') {\r\n creativeName = `Text_${creativeId}`\r\n } else {\r\n if (creativeId === process.env.REACT_APP_SEARCH_CREATIVE_ID) {\r\n creativeName = \"Search Link\"\r\n } else if (creativeId === process.env.REACT_APP_CONTEXTUAL_CREATIVE_ID) {\r\n creativeName = \"Contextual Link\"\r\n } else if (creativeId === process.env.REACT_APP_RAW_CREATIVE_ID) {\r\n creativeName = \"Raw Link\"\r\n } else {\r\n creativeName = creativeId\r\n }\r\n }\r\n return creativeName;\r\n}\r\n\r\nexport function clearLocalStorageAndReload() {\r\n localStorage.removeItem('mb-auth-token');\r\n // window.location.replace('http://localhost:3000/dashboard'); // Redirect to dashboard page where login page will be shown if user is unauthenticated\r\n window.location.reload();\r\n}\r\n\r\nexport function verifyToken() {\r\n const authtoken = localStorage.getItem('mb-auth-token');\r\n\r\n return fetch(`${process.env.REACT_APP_API_URL}/application/verifyToken`, {\r\n method: 'GET',\r\n credentials: 'include',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'x-app-token': authtoken\r\n }\r\n })\r\n .then(res => res.json())\r\n .then(result => {\r\n if (result[\"success\"] === false) {\r\n if (result.code === 401) {\r\n return false;\r\n } else {\r\n return false;\r\n }\r\n }\r\n return true;\r\n });\r\n}","import React, { Component } from 'react';\r\n\r\nimport { NavLink } from 'react-router-dom';\r\n\r\nimport { Circle, Home, Layers, BarChart2, DollarSign, Box, MessageCircle } from 'react-feather';\r\nimport { Modal } from 'reactstrap';\r\n\r\nimport ContactModal from '../../../component/ContactModal/ContactModal';\r\nimport MBIntegrationModal from './MBIntegrationModal/MBIntegrationModal';\r\nimport { verifyToken, clearLocalStorageAndReload } from '../../../assets/JS/functions';\r\n\r\nimport './LeftNavigationBar.css';\r\n\r\nclass LeftNavigationBar extends Component {\r\n\r\n state = {\r\n integrationModalOpen: false,\r\n isContactModalOpen: false, // Controlling opening and closing of contact modal\r\n manager: {} // state object to store manager details\r\n }\r\n\r\n componentDidMount() {\r\n const authtoken = localStorage.getItem('mb-auth-token');\r\n\r\n verifyToken().then(result => {\r\n if (result === true) {\r\n return fetch(`${process.env.REACT_APP_API_URL}/advertiser/manager`, {\r\n method: 'GET',\r\n credentials: 'include',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'x-app-token': authtoken\r\n }\r\n })\r\n .then(res => res.json())\r\n .then(result => {\r\n if (result[\"success\"] === true) {\r\n this.setState({ manager: result.manager });\r\n } else if (result[\"success\"] === false) {\r\n if (result.code !== 401) {\r\n this.props.showSystemMessage('error', result.errors.message);\r\n }\r\n } else {\r\n this.props.showSystemMessage('error', 'There was an internal error while fetching manager details. Please try again later.');\r\n }\r\n });\r\n } else {\r\n clearLocalStorageAndReload();\r\n }\r\n }).catch(error => {\r\n this.props.showSystemMessage('error', 'Internal error');\r\n });\r\n }\r\n\r\n toggleContactModal = () => {\r\n this.setState({ isContactModalOpen: !this.state.isContactModalOpen });\r\n }\r\n\r\n toggleIntegrationModal = () => {\r\n this.setState({ integrationModalOpen: !this.state.integrationModalOpen });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default LeftNavigationBar;","import React, { Component } from 'react';\r\n\r\nimport { Dropdown, DropdownToggle, DropdownMenu, DropdownItem } from 'reactstrap';\r\nimport { Menu } from 'react-feather';\r\nimport { Link } from 'react-router-dom';\r\n\r\nclass NavigationDropdown extends Component {\r\n\r\n state = {\r\n dropdownOpen: false\r\n }\r\n\r\n toggle = () => {\r\n this.setState({\r\n dropdownOpen: !this.state.dropdownOpen\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Navigation\r\n \r\n Dashboard\r\n \r\n Campaigns\r\n \r\n Reports\r\n \r\n Invoices\r\n \r\n Integration\r\n \r\n Blog\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\n\r\nexport default NavigationDropdown;","import React from 'react';\r\n\r\nimport AccountDropdown from '../AccountDropdown/AccountDropdown';\r\nimport NavigationDropdown from './NavigationDropdown/NavigationDropdown';\r\n\r\nimport './BottomToolbar.css';\r\n\r\nconst bottomToolbar = () => (\r\n \r\n);\r\n\r\nexport default bottomToolbar;","import React, { Component } from 'react';\r\n\r\nimport Toolbar from '../../container/Navigation/Toolbar/Toolbar';\r\nimport LeftNavigationBar from '../../container/Navigation/LeftNavigationBar/LeftNavigationBar';\r\nimport BottomToolbar from '../../container/Navigation/BottomToolbar/BottomToolbar';\r\n\r\nimport './Layout.css';\r\n\r\nclass Layout extends Component {\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n
\r\n {this.props.children}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Layout;","import React, { Component } from 'react';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\n\r\nclass Loading extends Component {\r\n state = { }\r\n render() { \r\n\r\n return ( \r\n
\r\n
\r\n
\r\n
LOADING
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n \r\nexport default Loading;\r\n","import React, { Component } from 'react';\r\n\r\nimport { Link } from 'react-router-dom';\r\nimport moment from 'moment';\r\nimport { Line } from 'react-chartjs-2';\r\nimport Loading from '../../component/UI/Loading/Loading';\r\n\r\nimport './Dashboard.css';\r\n\r\nclass Dashboard extends Component {\r\n\r\n state = {\r\n accountTotals: { // Account Totals card\r\n dayStats: {},\r\n monthStats: {}\r\n },\r\n invoiceStats: { // Invoices card\r\n invoices: [],\r\n invoicesTotal: 0\r\n },\r\n accountBalance: 0,\r\n chartStats: [], // Trends\r\n todayStats: { // Todays's Stats\r\n stats: [],\r\n totals: {}\r\n },\r\n dataLoaded: false,\r\n statType: 'leads', // To keep track of selected statType and statTime to plot a chart\r\n statTime: 'week'\r\n }\r\n\r\n componentDidMount() {\r\n\r\n const authToken = localStorage.getItem('mb-auth-token');\r\n\r\n Promise.all([\r\n fetch(`${process.env.REACT_APP_API_URL}/advertiserStats/accountTotals`, {\r\n method: 'GET',\r\n credentials: 'include',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'x-app-token': authToken\r\n }\r\n }),\r\n fetch(`${process.env.REACT_APP_API_URL}/invoices`, {\r\n method: 'GET',\r\n credentials: 'include',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'x-app-token': authToken\r\n }\r\n }),\r\n fetch(`${process.env.REACT_APP_API_URL}/accountBalance`, {\r\n method: 'GET',\r\n credentials: 'include',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'x-app-token': authToken\r\n }\r\n }),\r\n fetch(`${process.env.REACT_APP_API_URL}/advertiserStats/chart`, {\r\n method: 'GET',\r\n credentials: 'include',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'x-app-token': authToken\r\n }\r\n }),\r\n fetch(`${process.env.REACT_APP_API_URL}/advertiserStats/todayStats`, {\r\n method: 'GET',\r\n credentials: 'include',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'x-app-token': authToken\r\n }\r\n })\r\n ])\r\n .then(([res1, res2, res3, res4, res5]) => Promise.all([res1.json(), res2.json(), res3.json(), res4.json(), res5.json()]))\r\n .then(([accountTotalsResult, invoicesResult, accountBalanceResult, chartResult, todayResult]) => {\r\n if (accountTotalsResult[\"success\"] === true) {\r\n this.setState({ accountTotals: { dayStats: accountTotalsResult.dayStats, monthStats: accountTotalsResult.monthStats }, dataLoaded: true });\r\n }\r\n if (invoicesResult[\"success\"] === true) {\r\n this.setState({ ...this.state, invoiceStats: { invoices: invoicesResult.invoices, invoicesTotal: invoicesResult.total }, dataLoaded: true });\r\n }\r\n if (accountBalanceResult[\"success\"] === true){\r\n this.setState({...this.state, accountBalance: accountBalanceResult.accountBalance, dataLoaded: true})\r\n }\r\n if (chartResult[\"success\"] === true) {\r\n this.setState({\r\n ...this.state, chartStats: chartResult.stats, dataLoaded: true\r\n });\r\n }\r\n if (todayResult[\"success\"] === true) {\r\n this.setState({ ...this.state, todayStats: { stats: todayResult.stats, totals: todayResult.totals } });\r\n }\r\n }).catch(error => this.props.showSystemMessage('error', error.message));\r\n }\r\n\r\n handleStatTypeChange = (event) => {\r\n this.setState({ ...this.state, chartStats: [], statType: event.target.value }, () => {\r\n this.fetchNewChartData();\r\n });\r\n }\r\n\r\n handleStateTimeChange = (event) => {\r\n this.setState({ ...this.state, chartStats: [], statTime: event.target.value }, () => {\r\n this.fetchNewChartData();\r\n });\r\n }\r\n\r\n fetchNewChartData = () => {\r\n const authtoken = localStorage.getItem('mb-auth-token');\r\n\r\n fetch(`${process.env.REACT_APP_API_URL}/advertiserStats/chart?type=${this.state.statType}&time=${this.state.statTime}`, {\r\n method: 'GET',\r\n credentials: 'include',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'x-app-token': authtoken\r\n }\r\n })\r\n .then(res => res.json())\r\n .then(result => {\r\n if (result[\"success\"] === true) {\r\n this.setState({ ...this.state, chartStats: result.stats });\r\n }\r\n })\r\n .catch(error => error);\r\n }\r\n\r\n render() {\r\n\r\n let chartLabels = [];\r\n let chartData = [];\r\n\r\n // const today = moment('2019-01-01').format('YYYY-MM-DD');\r\n // const monthStart = moment('2019-01-01').startOf('month').format('YYYY-MM-DD');\r\n // const monthEnd = moment('2019-01-01').endOf('month').format('YYYY-MM-DD');\r\n\r\n const today = moment().format('YYYY-MM-DD');\r\n const monthStart = moment().startOf('month').format('YYYY-MM-DD');\r\n const monthEnd = moment().endOf('month').format('YYYY-MM-DD');\r\n\r\n let statLabelClasses = \"btn btn-secondary btn-sm\";\r\n\r\n if (this.state.chartStats.length > 0) {\r\n this.state.chartStats.forEach(stat => {\r\n chartLabels.push(stat.date);\r\n chartData.push(stat.value);\r\n });\r\n }\r\n\r\n let first5invoices = [];\r\n\r\n if (this.state.invoiceStats.invoices.length > 5) {\r\n first5invoices = this.state.invoiceStats.invoices.slice(0, 5);\r\n } else {\r\n first5invoices = this.state.invoiceStats.invoices;\r\n }\r\n\r\n return (\r\n \r\n {this.state.dataLoaded ?\r\n
\r\n
\r\n
\r\n
\r\n
Account Totals
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
ClicksLeadsCost
Today{Intl.NumberFormat('en-GB', { minimumFractionDigits: 0 }).format(this.state.accountTotals.dayStats.clicks)}{Intl.NumberFormat('en-GB', { minimumFractionDigits: 0 }).format(this.state.accountTotals.dayStats.leads)}${Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(this.state.accountTotals.dayStats.cost)}
This Month{Intl.NumberFormat('en-GB', { minimumFractionDigits: 0 }).format(this.state.accountTotals.monthStats.clicks)}{Intl.NumberFormat('en-GB', { minimumFractionDigits: 0 }).format(this.state.accountTotals.monthStats.leads)}${Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(this.state.accountTotals.monthStats.cost)}
\r\n
\r\n
\r\n
\r\n\r\n { this.state.accountBalance !== 0 &&\r\n
\r\n
\r\n
Account Balance
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Credit / -Owing${Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(this.state.accountBalance*(-1))}
\r\n
\r\n
\r\n
\r\n }\r\n\r\n
\r\n
\r\n
Recent Invoices
\r\n
Show All
\r\n
\r\n
\r\n
\r\n \r\n \r\n {this.state.invoiceStats.invoices.length === 0 ?\r\n \r\n \r\n :\r\n first5invoices.map(invoice =>\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
No invoices found.
\r\n {invoice.qb_link ? Invoice #${invoice.invoice_id} : `Invoice #${invoice.invoice_id}`}\r\n {invoice.status}${Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(invoice.amount)}{moment(invoice.date).format(\"d MMM YYYY\")}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Trends\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n {/* Plot the chart */}\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
Today's Stats
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.todayStats.stats.length === 0 ?\r\n \r\n \r\n :\r\n this.state.todayStats.stats.map(stat =>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Campaign NameClicksLeadsSalesCost
No stats have been recorded today.
{stat.name}{Intl.NumberFormat('en-GB', { minimumFractionDigits: 0 }).format(stat.clicks)}{Intl.NumberFormat('en-GB', { minimumFractionDigits: 0 }).format(stat.leads)}${Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(stat.sales)}${Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(stat.cost)}
Totals{Intl.NumberFormat('en-GB', { minimumFractionDigits: 0 }).format(this.state.todayStats.totals.clicks)}{Intl.NumberFormat('en-GB', { minimumFractionDigits: 0 }).format(this.state.todayStats.totals.leads)}${Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(this.state.todayStats.totals.sales)}${Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(this.state.todayStats.totals.cost)}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n :\r\n \r\n }\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Dashboard;","import React, { Component } from 'react';\r\nimport { Dropdown, DropdownToggle, DropdownMenu, DropdownItem } from 'reactstrap';\r\nimport { ChevronDown } from 'react-feather';\r\nimport { Link } from 'react-router-dom';\r\n\r\nimport './ReportDropdown.css';\r\n\r\nclass ReportDropdown extends Component {\r\n \r\n state = {\r\n dropdownOpen: false \r\n };\r\n\r\n toggle = () => { \r\n this.setState({\r\n dropdownOpen: !this.state.dropdownOpen\r\n });\r\n } \r\n\r\n render() { \r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {this.props.offerId === 0 && \r\n \r\n By Campaign\r\n \r\n \r\n }\r\n {this.props.affiliateId === 0 && \r\n \r\n By Affiliate\r\n \r\n \r\n }\r\n {this.props.creativeId === 0 && this.props.offerId !== 0 &&\r\n \r\n By Creative\r\n \r\n \r\n }\r\n {this.props.landingPageId === 0 && this.props.offerId !== 0 &&\r\n \r\n By Landing Page \r\n \r\n } \r\n \r\n \r\n );\r\n }\r\n}\r\n \r\nexport default ReportDropdown;","import React from 'react';\r\nimport { ChevronDown, ChevronUp } from 'react-feather';\r\n\r\nconst ReportHeader = (props) => {\r\n\r\n const { sortBy, title, alignment, handleSort, sort } = props;\r\n let classes = \"sortable\";\r\n classes = (alignment === \"right\") ? classes + \" text-right\" : classes;\r\n\r\n function sortChevron(currentSort){\r\n let chevron;\r\n if (sort.column === currentSort){\r\n chevron = (sort.order === 'asc') ? : \r\n }\r\n return chevron;\r\n }\r\n\r\n return ( \r\n handleSort(sortBy)} className={classes}>{title} {sortChevron(sortBy)}\r\n );\r\n}\r\n \r\nexport default ReportHeader;","import React, { Component } from 'react';\r\nimport ReportDropdown from '../ReportDropdown/ReportDropdown';\r\nimport ReportHeader from '../ReportHeader/ReportHeader';\r\nimport { Link } from 'react-router-dom';\r\nimport { X } from 'react-feather';\r\nimport Loading from '../../../component/UI/Loading/Loading';\r\nimport { clearLocalStorageAndReload, verifyToken } from '../../../assets/JS/functions';\r\n\r\nimport moment from 'moment';\r\nimport _ from 'lodash';\r\n\r\nclass ReportEarnings extends Component {\r\n\r\n _isMounted = false;\r\n\r\n state = {\r\n dataLoaded: false,\r\n report: [],\r\n campaign: [],\r\n totals: {},\r\n sort: {\r\n column: 'earnings',\r\n order: 'desc'\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n\r\n this._isMounted = true;\r\n\r\n this.setState({\r\n dataLoaded: false\r\n });\r\n\r\n const mbToken = localStorage.getItem('mb-auth-token');\r\n \r\n let fetchUrl = `${process.env.REACT_APP_API_URL}/reports/earnings?startDate=${this.props.startDate}&endDate=${this.props.endDate}`;\r\n\r\n if (this.props.offerId > 0){\r\n fetchUrl = fetchUrl + `&oid=${this.props.offerId}`;\r\n }\r\n\r\n if (this.props.affiliateId > 0){\r\n fetchUrl = fetchUrl + `&aid=${this.props.affiliateId}`;\r\n }\r\n\r\n /* Get the affiliate object from the DB and populate the state information */\r\n verifyToken().then(result => {\r\n if (result === true) {\r\n return fetch(fetchUrl, {\r\n method: 'GET',\r\n credentials: 'include',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'x-app-token': mbToken\r\n }\r\n }).then(res => res.json())\r\n .then(\r\n (result) => {\r\n if (result[\"success\"] === true) {\r\n this.props.handleDownloadData(result);\r\n\r\n if (this._isMounted) {\r\n this.setState({\r\n dataLoaded: true,\r\n report: result.report,\r\n totals: result.totals,\r\n campaign: result.campaign\r\n });\r\n }\r\n } else if (result[\"success\"] === false) {\r\n if (result.code !== 401) {\r\n this.props.showSystemMessage(\"error\", \"There was an error fetching the data. Please try again.\");\r\n }\r\n } else {\r\n this.props.showSystemMessage(\"error\", result.errors.message);\r\n }\r\n });\r\n } else {\r\n clearLocalStorageAndReload();\r\n }\r\n }).catch(error => {\r\n console.log('Error in ReportEarnings: ', error);\r\n this.props.showSystemMessage(\"error\", \"Connection error.\");\r\n });\r\n }\r\n\r\n handleSort = (sortBy) => {\r\n const sort = { ...this.state.sort };\r\n\r\n if (sort.column === sortBy) {\r\n sort.order = (sort.order === 'asc') ? 'desc' : 'asc';\r\n } else {\r\n sort.column = sortBy;\r\n switch (sort.column) {\r\n case 'name':\r\n sort.order = 'asc'\r\n break;\r\n case 'clicks':\r\n sort.order = 'desc'\r\n break;\r\n case 'leads':\r\n sort.order = 'desc'\r\n break;\r\n case 'conversion':\r\n sort.order = 'desc'\r\n break;\r\n case 'sales':\r\n sort.order = 'desc'\r\n break;\r\n case 'cost':\r\n sort.order = 'desc'\r\n break;\r\n case 'epc':\r\n sort.order = 'desc'\r\n break;\r\n default:\r\n throw new Error(\"Invalid sorting method\");\r\n }\r\n\r\n }\r\n\r\n const sorted = _.orderBy(this.state.report, sortBy, sort.order)\r\n if (this._isMounted) {\r\n this.setState({\r\n report: sorted,\r\n sort: sort\r\n });\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n this._isMounted = false;\r\n }\r\n\r\n render() {\r\n\r\n let formattedStartDate = moment(this.props.startDate).format(\"YYYY-MM-DD\");\r\n let formattedEndDate = moment(this.props.endDate).format(\"YYYY-MM-DD\");\r\n\r\n let campaignId = this.state.campaign ? this.state.campaign.campaign_id : 0;\r\n\r\n return (\r\n \r\n\r\n {this.state.dataLoaded && this.state.campaign &&\r\n
\r\n Campaign Summary Report for: {this.state.campaign.name}  \r\n \r\n \r\n \r\n
\r\n }\r\n\r\n {this.state.dataLoaded && this.props.affiliateId > 0 &&\r\n
\r\n Affiliate ID: {this.props.affiliateId}  \r\n \r\n \r\n \r\n
\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.dataLoaded ?\r\n \r\n {this.state.report.length === 0 ?\r\n \r\n \r\n \r\n :\r\n \r\n\r\n {this.state.report.map(item => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n }\r\n \r\n :\r\n \r\n \r\n \r\n }\r\n\r\n \r\n
#ID 
No stats for this date range.
{item.campaign_id}{item.name}{Intl.NumberFormat('en-GB').format(item.clicks)}{Intl.NumberFormat('en-GB').format(item.leads)}{parseFloat(item.conversion*100).toFixed(2)}%${parseFloat(item.epc).toFixed(2)}${Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(item.sales)}${Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(item.cost)}
Totals{Intl.NumberFormat('en-GB').format(this.state.totals.clicks)}{Intl.NumberFormat('en-GB').format(this.state.totals.leads)}{parseFloat(this.state.totals.conversion*100).toFixed(2)}%${parseFloat(this.state.totals.epc).toFixed(2)}${Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(this.state.totals.sales)}${Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(this.state.totals.cost)} 
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default ReportEarnings;","import React, { Component } from 'react';\r\nimport ReportHeader from '../ReportHeader/ReportHeader';\r\nimport { Link } from 'react-router-dom';\r\nimport Loading from '../../../component/UI/Loading/Loading';\r\nimport { verifyToken, clearLocalStorageAndReload } from '../../../assets/JS/functions';\r\nimport { X } from 'react-feather';\r\nimport moment from 'moment';\r\nimport _ from 'lodash';\r\n\r\nclass ReportClicks extends Component {\r\n\r\n state = {\r\n dataLoaded: false,\r\n report: [],\r\n totals: [],\r\n campaign: [],\r\n sort: {\r\n column: 'date',\r\n order: 'asc'\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.setState({\r\n dataLoaded: false\r\n });\r\n\r\n const mbToken = localStorage.getItem('mb-auth-token');\r\n\r\n let fetchUrl = `${process.env.REACT_APP_API_URL}/reports/clicks?startDate=${this.props.startDate}&endDate=${this.props.endDate}`;\r\n\r\n if (this.props.offerId) {\r\n fetchUrl = fetchUrl + `&oid=${this.props.offerId}`\r\n }\r\n\r\n if (this.props.affiliateId) {\r\n fetchUrl = fetchUrl + `&aid=${this.props.affiliateId}`;\r\n }\r\n\r\n if (this.props.creativeId) {\r\n fetchUrl = fetchUrl + `&cid=${this.props.creativeId}`;\r\n }\r\n\r\n if (this.props.landingPageId) {\r\n fetchUrl = fetchUrl + `&lpid=${this.props.landingPageId}`;\r\n }\r\n\r\n /* Get the affiliate object from the DB and populate the state information */\r\n verifyToken().then(result => {\r\n if (result === true) {\r\n return fetch(fetchUrl, {\r\n method: 'GET',\r\n credentials: 'include',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'x-app-token': mbToken\r\n }\r\n })\r\n .then(res => res.json())\r\n .then(\r\n (result) => {\r\n if (result[\"success\"] === true) {\r\n this.props.handleDownloadData(result);\r\n \r\n this.setState({\r\n dataLoaded: true,\r\n report: result.report,\r\n totals: result.totals,\r\n campaign: result.campaign,\r\n landingPage: result.landingPage,\r\n creative: result.creative\r\n })\r\n } else if (result[\"success\"] === false) {\r\n if (result.code !== 401) {\r\n this.props.showSystemMessage(\"error\", \"There was an error fetching the data. Please try again.\");\r\n }\r\n } else {\r\n this.props.showSystemMessage(\"error\", result.errors.message);\r\n }\r\n });\r\n } else {\r\n clearLocalStorageAndReload();\r\n }\r\n }).catch(error => {\r\n console.log('Error in ReportClicks: ', error);\r\n });\r\n }\r\n\r\n handleSort = (sortBy) => {\r\n const sort = { ...this.state.sort };\r\n\r\n if (sort.column === sortBy) {\r\n sort.order = (sort.order === 'asc') ? 'desc' : 'asc';\r\n } else {\r\n sort.column = sortBy;\r\n switch (sort.column) {\r\n case 'date':\r\n sort.order = 'asc'\r\n break;\r\n case 'clicks':\r\n sort.order = 'desc'\r\n break;\r\n case 'leads':\r\n sort.order = 'desc'\r\n break;\r\n case 'conversion':\r\n sort.order = 'desc'\r\n break;\r\n case 'sales':\r\n sort.order = 'desc'\r\n break;\r\n case 'cost':\r\n sort.order = 'desc'\r\n break;\r\n case 'epc':\r\n sort.order = 'desc'\r\n break;\r\n default:\r\n throw new Error('Invalid sorting');\r\n }\r\n\r\n }\r\n\r\n const sorted = _.orderBy(this.state.report, sortBy, sort.order)\r\n\r\n this.setState({\r\n report: sorted,\r\n sort: sort\r\n })\r\n }\r\n\r\n render() {\r\n\r\n let formattedStartDate = moment(this.props.startDate).format(\"YYYY-MM-DD\");\r\n let formattedEndDate = moment(this.props.endDate).format(\"YYYY-MM-DD\");\r\n\r\n return (\r\n \r\n\r\n {this.state.dataLoaded && this.state.campaign &&\r\n
\r\n Click Report for: {this.state.campaign.name}  \r\n \r\n \r\n \r\n
\r\n }\r\n\r\n {this.state.dataLoaded && this.props.affiliateId > 0 &&\r\n
\r\n Affiliate ID: {this.props.affiliateId}  \r\n \r\n \r\n \r\n
\r\n }\r\n\r\n {this.state.dataLoaded && this.props.creativeId > 0 &&\r\n
\r\n Creative: {this.state.creative}  \r\n \r\n \r\n \r\n
\r\n }\r\n\r\n {this.state.dataLoaded && this.props.landingPageId > 0 &&\r\n
\r\n Landing Page: {this.state.landingPage}  \r\n \r\n \r\n \r\n
\r\n }\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.dataLoaded ?\r\n \r\n {this.state.report.length === 0 ?\r\n \r\n \r\n \r\n :\r\n \r\n\r\n {this.state.report.map(item =>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n }\r\n \r\n :\r\n \r\n \r\n \r\n }\r\n\r\n \r\n
No stats for this date range.
{moment.utc(item.date).format(\"YYYY-MM-DD\")}{Intl.NumberFormat('en-GB').format(item.clicks)}{Intl.NumberFormat('en-GB').format(item.leads)}{parseFloat(item.conversion).toFixed(2)}${parseFloat(item.epc).toFixed(2)}${Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(item.sales)}${Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(item.cost)}
Totals{Intl.NumberFormat('en-GB').format(this.state.totals.clicks)}{Intl.NumberFormat('en-GB').format(this.state.totals.leads)}${parseFloat(this.state.totals.conversion).toFixed(2)}${parseFloat(this.state.totals.epc).toFixed(2)}${Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(this.state.totals.sales)}${Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(this.state.totals.cost)}
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default ReportClicks;","import React, { Component } from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport Loading from '../../../component/UI/Loading/Loading';\r\nimport { verifyToken, clearLocalStorageAndReload } from '../../../assets/JS/functions';\r\nimport { X } from 'react-feather';\r\nimport moment from 'moment';\r\nimport _ from 'lodash';\r\n\r\nclass ReportConversions extends Component {\r\n\r\n state = {\r\n dataLoaded: false,\r\n report: [],\r\n campaign: {}\r\n }\r\n\r\n componentDidMount() {\r\n this.setState({\r\n dataLoaded: false\r\n })\r\n\r\n const mbToken = localStorage.getItem('mb-auth-token');\r\n\r\n let fetchUrl = `${process.env.REACT_APP_API_URL}/reports/conversions?startDate=${this.props.startDate}&endDate=${this.props.endDate}&page=all`;\r\n\r\n if (this.props.offerId) {\r\n fetchUrl = fetchUrl + `&oid=${this.props.offerId}`\r\n }\r\n\r\n if (this.props.affiliateId) {\r\n fetchUrl = fetchUrl + `&aid=${this.props.affiliateId}`;\r\n }\r\n\r\n if (this.props.creativeId) {\r\n fetchUrl = fetchUrl + `&cid=${this.props.creativeId}`;\r\n }\r\n\r\n if (this.props.landingPageId) {\r\n fetchUrl = fetchUrl + `&lpid=${this.props.landingPageId}`;\r\n }\r\n\r\n /* Get the affiliate object from the DB and populate the state information */\r\n\r\n verifyToken().then(result => {\r\n if (result === true) {\r\n return fetch(fetchUrl, {\r\n method: 'GET',\r\n credentials: 'include',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'x-app-token': mbToken\r\n }\r\n })\r\n .then(res => res.json())\r\n .then(\r\n (result) => {\r\n if (result[\"success\"] === true) {\r\n // Set the parent Reports.js state with the total pages for Pagination.\r\n this.props.handleTotalPages(result.total_pages);\r\n\r\n // Get the campaigns returned by this report\r\n this.props.setOffers(_.map(_.uniqBy(result.report, function (e) { return e.campaign_id }), function (campaign) { return _.pick(campaign, ['campaign_id', 'campaign_name']) }))\r\n\r\n // Update the current report with the data.\r\n this.setState({\r\n dataLoaded: true,\r\n report: result.report,\r\n campaign: result.campaign,\r\n creative: result.creative,\r\n landingPage: result.landing_page\r\n });\r\n } else if (result[\"success\"] === false) {\r\n if (result.code !== 401) {\r\n this.props.showSystemMessage(\"error\", \"There was an error fetching the data. Please try again.\");\r\n }\r\n } else {\r\n this.props.showSystemMessage(\"error\", result.errors.message);\r\n }\r\n });\r\n } else {\r\n clearLocalStorageAndReload();\r\n }\r\n }).catch(error => {\r\n console.log('Error in ReportConversions: ', error);\r\n this.props.showSystemMessage(\"error\", \"Connection error.\");\r\n });\r\n }\r\n\r\n getReportOutput = () => {\r\n\r\n let result = this.state.report;\r\n let affFilter = this.props.affiliateFilter;\r\n let offerFilter = this.props.offerFilter;\r\n let affMatch = new RegExp(affFilter, \"g\");\r\n let formattedStartDate = moment(this.props.startDate).format(\"YYYY-MM-DD\");\r\n let formattedEndDate = moment(this.props.endDate).format(\"YYYY-MM-DD\");\r\n\r\n if (affFilter !== undefined && affFilter !== null) {\r\n result = _.filter(result, function (item) {\r\n return item.publisher_id.toString().match(affMatch);\r\n });\r\n }\r\n\r\n if (offerFilter !== undefined && offerFilter !== null) {\r\n result = _.filter(result, function (item) {\r\n return parseInt(item.campaign_id) === parseInt(offerFilter)\r\n });\r\n }\r\n\r\n return result.slice(this.props.startRow, this.props.endRow).map(item => {\r\n return (\r\n \r\n {item.click_id}\r\n {moment.utc(item.date).format(\"YYYY-MM-DD HH:mm:ss\")}\r\n {item.campaign_name}\r\n {item.publisher_id}\r\n {item.data}\r\n {item.status} {item.status === 'Reversed' ? on {moment.utc(item.reversal_date).format(\"YYYY-MM-DD HH:mm:ss\")} : ''}\r\n \r\n \r\n {item.status === 'Payable' ? moment.utc(item.payout_date).format(\"YYYY-MM-DD HH:mm:ss\") : ''}\r\n ${Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(item.sales)}\r\n ${Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(item.rate)}\r\n \r\n )\r\n });\r\n }\r\n\r\n render() {\r\n\r\n let campaignId = this.state.campaign ? this.state.campaign.campaign_id : 0;\r\n\r\n return (\r\n \r\n\r\n {this.state.dataLoaded && this.state.campaign &&\r\n
\r\n Conversions Report for: {this.state.campaign.name}\r\n
\r\n }\r\n\r\n {this.state.dataLoaded && this.props.affiliateId > 0 &&\r\n
\r\n Affiliate ID: {this.props.affiliateId}  \r\n \r\n \r\n \r\n
\r\n }\r\n\r\n {this.state.dataLoaded && this.props.creativeId > 0 &&\r\n
\r\n Creative: {this.state.creative}  \r\n \r\n \r\n \r\n
\r\n }\r\n\r\n {this.state.dataLoaded && this.props.landingPageId > 0 &&\r\n
\r\n Landing Page: {this.state.landingPage}  \r\n \r\n \r\n \r\n
\r\n }\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.dataLoaded ?\r\n \r\n {this.state.report.length === 0 ?\r\n \r\n \r\n \r\n :\r\n \r\n {this.getReportOutput()}\r\n \r\n }\r\n \r\n :\r\n \r\n \r\n \r\n }\r\n\r\n \r\n
Click IDDate/Time (EST)CampaignAffiliate IDDataStatusSubId 1SubId 2Payment Date (EST)SalesCPA
No stats for this date range.
\r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default ReportConversions;","import React, { Component } from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport ReportDropdown from '../ReportDropdown/ReportDropdown';\r\nimport Loading from '../../../component/UI/Loading/Loading';\r\nimport { verifyToken, clearLocalStorageAndReload } from '../../../assets/JS/functions';\r\nimport { X } from 'react-feather';\r\nimport moment from 'moment';\r\nimport _ from 'lodash';\r\n\r\nclass ReportAffiliates extends Component {\r\n\r\n state = {\r\n dataLoaded: false,\r\n report: [],\r\n campaign: {}\r\n }\r\n\r\n componentDidMount() {\r\n this.setState({\r\n dataLoaded: false\r\n })\r\n\r\n const mbToken = localStorage.getItem('mb-auth-token');\r\n\r\n let fetchUrl = `${process.env.REACT_APP_API_URL}/reports/affiliates?startDate=${this.props.startDate}&endDate=${this.props.endDate}&page=all`;\r\n\r\n if (this.props.offerId) {\r\n fetchUrl = fetchUrl + `&oid=${this.props.offerId}`\r\n }\r\n\r\n if (this.props.affiliateId){\r\n fetchUrl = fetchUrl + `&aid=${this.props.affiliateId}`;\r\n }\r\n\r\n /* Get the affiliate object from the DB and populate the state information */\r\n\r\n verifyToken().then(result => {\r\n if (result === true) {\r\n return fetch(fetchUrl, {\r\n method: 'GET',\r\n credentials: 'include',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'x-app-token': mbToken\r\n }\r\n })\r\n .then(res => res.json())\r\n .then(\r\n (result) => {\r\n if (result[\"success\"] === true) {\r\n // Set the parent Reports.js state with the total pages for Pagination.\r\n this.props.handleTotalPages(result.total_pages);\r\n // Update the current report with the data.\r\n this.setState({\r\n dataLoaded: true,\r\n report: result.report,\r\n campaign: result.campaign,\r\n totals: result.totals\r\n });\r\n } else if (result[\"success\"] === false) {\r\n if (result.code !== 401) {\r\n this.props.showSystemMessage(\"error\", \"There was an error fetching the data. Please try again.\");\r\n }\r\n } else {\r\n this.props.showSystemMessage(\"error\", result.errors.message);\r\n }\r\n });\r\n } else {\r\n clearLocalStorageAndReload();\r\n }\r\n }).catch(error => {\r\n console.log('Error in ReportAffiliates: ', error);\r\n this.props.showSystemMessage(\"error\", \"Connection error.\");\r\n });\r\n }\r\n\r\n getReportOutput = () => {\r\n \r\n let result;\r\n let filter = this.props.affiliateFilter;\r\n let match = new RegExp(filter, \"g\");\r\n let formattedStartDate = moment(this.props.startDate).format(\"YYYY-MM-DD\");\r\n let formattedEndDate = moment(this.props.endDate).format(\"YYYY-MM-DD\");\r\n let campaignId = this.state.campaign ? this.state.campaign.campaign_id : 0;\r\n\r\n if (!this.props.affiliateFilter){\r\n result = this.state.report;\r\n } else {\r\n result = _.filter(this.state.report, function(item){\r\n return item.publisher_id.toString().match(match);\r\n });\r\n }\r\n\r\n return result.slice(this.props.startRow, this.props.endRow).map(item => (\r\n \r\n {item.publisher_id}\r\n \r\n {this.state.campaign ? \r\n {Intl.NumberFormat('en-GB').format(item.clicks)}\r\n :\r\n {Intl.NumberFormat('en-GB').format(item.clicks)}\r\n }\r\n \r\n {Intl.NumberFormat('en-GB').format(item.leads)}\r\n {parseFloat(item.conversion*100).toFixed(2)}%\r\n ${parseFloat(item.epc).toFixed(2)} \r\n ${Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(item.sales)}\r\n ${Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(item.cost)}\r\n \r\n \r\n ))\r\n }\r\n\r\n render() {\r\n\r\n return (\r\n \r\n\r\n {this.state.dataLoaded && this.state.campaign &&\r\n
\r\n Affiliate Report for: {this.state.campaign.name}  \r\n \r\n \r\n \r\n
\r\n }\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.dataLoaded ?\r\n \r\n {this.state.report.length === 0 ?\r\n \r\n \r\n \r\n :\r\n \r\n\r\n {this.getReportOutput()}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n }\r\n \r\n :\r\n \r\n \r\n \r\n }\r\n\r\n \r\n
Affiliate IDClicksLeadsCREPCSalesCost 
No stats for this date range.
Totals{Intl.NumberFormat('en-GB').format(this.state.totals.clicks)}{Intl.NumberFormat('en-GB').format(this.state.totals.leads)}{parseFloat(this.state.totals.conversion*100).toFixed(2)}%${parseFloat(this.state.totals.epc).toFixed(2)}${Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(this.state.totals.sales)}${Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(this.state.totals.cost)} 
\r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default ReportAffiliates;","import React, { Component } from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport Loading from '../../../component/UI/Loading/Loading';\r\nimport { verifyToken, clearLocalStorageAndReload } from '../../../assets/JS/functions';\r\nimport { X } from 'react-feather';\r\nimport moment from 'moment';\r\n\r\nclass ReportCreatives extends Component {\r\n\r\n state = {\r\n dataLoaded: false,\r\n report: [],\r\n campaign: []\r\n }\r\n\r\n componentDidMount() {\r\n this.setState({\r\n dataLoaded: false\r\n })\r\n\r\n const mbToken = localStorage.getItem('mb-auth-token'); \r\n\r\n let page = this.props.page - 1;\r\n\r\n let fetchUrl = `${process.env.REACT_APP_API_URL}/reports/creatives?startDate=${this.props.startDate}&endDate=${this.props.endDate}&page=${page}`;\r\n\r\n if (this.props.offerId) {\r\n fetchUrl = fetchUrl + `&oid=${this.props.offerId}`\r\n }\r\n\r\n if (this.props.affiliateId){\r\n fetchUrl = fetchUrl + `&aid=${this.props.affiliateId}`;\r\n }\r\n \r\n verifyToken().then(result => {\r\n if (result === true) {\r\n return fetch(fetchUrl, {\r\n method: 'GET',\r\n credentials: 'include',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'x-app-token': mbToken\r\n }\r\n })\r\n .then(res => res.json())\r\n .then(\r\n (result) => {\r\n if (result[\"success\"] === true) {\r\n this.props.handleDownloadData(result);\r\n\r\n // Update the current report with the data.\r\n this.setState({\r\n dataLoaded: true,\r\n report: result.report,\r\n campaign: result.campaign,\r\n totals: result.totals\r\n });\r\n } else if (result[\"success\"] === false) {\r\n if (result.code !== 401) {\r\n this.props.showSystemMessage(\"error\", \"There was an error fetching the data. Please try again.\");\r\n }\r\n } else {\r\n this.props.showSystemMessage(\"error\", result.errors.message);\r\n }\r\n });\r\n } else {\r\n clearLocalStorageAndReload();\r\n }\r\n }).catch(error => {\r\n console.log('Error in ReportCreatives: ', error);\r\n this.props.showSystemMessage(\"error\", \"Connection error.\");\r\n });\r\n } \r\n\r\n render() {\r\n\r\n let formattedStartDate = moment(this.props.startDate).format(\"YYYY-MM-DD\");\r\n let formattedEndDate = moment(this.props.endDate).format(\"YYYY-MM-DD\");\r\n\r\n return (\r\n \r\n\r\n {this.state.dataLoaded && this.state.campaign &&\r\n
\r\n Creative Report for: {this.state.campaign.name}  \r\n \r\n \r\n \r\n
\r\n }\r\n\r\n {this.state.dataLoaded && this.props.affiliateId > 0 &&\r\n
\r\n Affiliate ID: {this.props.affiliateId}  \r\n \r\n \r\n \r\n
\r\n }\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.dataLoaded ?\r\n \r\n {this.state.report.length === 0 ?\r\n \r\n \r\n \r\n :\r\n \r\n\r\n {this.state.report.map(item => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n }\r\n \r\n :\r\n \r\n \r\n \r\n }\r\n\r\n \r\n
CreativeClicksLeadsCREPCSalesCost
No stats for this date range.
{item.creative_name}{Intl.NumberFormat('en-GB').format(item.clicks)}{Intl.NumberFormat('en-GB').format(item.leads)}{parseFloat(item.conversion*100).toFixed(2)}%${parseFloat(item.epc).toFixed(2)}${Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(item.sales)}${Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(item.cost)}
Totals{Intl.NumberFormat('en-GB').format(this.state.totals.clicks)}{Intl.NumberFormat('en-GB').format(this.state.totals.leads)}{parseFloat(this.state.totals.conversion*100).toFixed(2)}%${parseFloat(this.state.totals.epc).toFixed(2)}${Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(this.state.totals.sales)}${Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(this.state.totals.cost)}
\r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default ReportCreatives;","import React, { Component } from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport Loading from '../../../component/UI/Loading/Loading';\r\nimport { verifyToken, clearLocalStorageAndReload } from '../../../assets/JS/functions';\r\nimport { X } from 'react-feather';\r\nimport moment from 'moment';\r\n\r\nclass ReportLandingPages extends Component {\r\n\r\n state = {\r\n dataLoaded: false,\r\n report: [],\r\n campaign: []\r\n }\r\n\r\n componentDidMount() {\r\n this.setState({\r\n dataLoaded: false\r\n })\r\n\r\n const mbToken = localStorage.getItem('mb-auth-token'); \r\n\r\n let page = this.props.page - 1;\r\n\r\n let fetchUrl = `${process.env.REACT_APP_API_URL}/reports/landingPages?startDate=${this.props.startDate}&endDate=${this.props.endDate}&page=${page}`;\r\n\r\n if (this.props.offerId) {\r\n fetchUrl = fetchUrl + `&oid=${this.props.offerId}`\r\n }\r\n\r\n if (this.props.affiliateId){\r\n fetchUrl = fetchUrl + `&aid=${this.props.affiliateId}`;\r\n }\r\n \r\n verifyToken().then(result => {\r\n if (result === true) {\r\n return fetch(fetchUrl, {\r\n method: 'GET',\r\n credentials: 'include',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'x-app-token': mbToken\r\n }\r\n })\r\n .then(res => res.json())\r\n .then(\r\n (result) => {\r\n if (result[\"success\"] === true) {\r\n this.props.handleDownloadData(result);\r\n\r\n // Update the current report with the data.\r\n this.setState({\r\n dataLoaded: true,\r\n report: result.report,\r\n campaign: result.campaign,\r\n totals: result.totals\r\n });\r\n } else if (result[\"success\"] === false) {\r\n if (result.code !== 401) {\r\n this.props.showSystemMessage(\"error\", \"There was an error fetching the data. Please try again.\");\r\n }\r\n } else {\r\n this.props.showSystemMessage(\"error\", result.errors.message);\r\n }\r\n });\r\n } else {\r\n clearLocalStorageAndReload();\r\n }\r\n }).catch(error => {\r\n console.log('Error in ReportLandingPages: ', error);\r\n this.props.showSystemMessage(\"error\", \"Connection error.\");\r\n });\r\n } \r\n\r\n render() {\r\n\r\n let formattedStartDate = moment(this.props.startDate).format(\"YYYY-MM-DD\");\r\n let formattedEndDate = moment(this.props.endDate).format(\"YYYY-MM-DD\");\r\n\r\n return (\r\n \r\n\r\n {this.state.dataLoaded && this.state.campaign &&\r\n
\r\n Landing Page Report for: {this.state.campaign.name}  \r\n \r\n \r\n \r\n
\r\n }\r\n\r\n {this.state.dataLoaded && this.props.affiliateId > 0 &&\r\n
\r\n Affiliate ID: {this.props.affiliateId}  \r\n \r\n \r\n \r\n
\r\n }\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.dataLoaded ?\r\n \r\n {this.state.report.length === 0 ?\r\n \r\n \r\n \r\n :\r\n \r\n\r\n {this.state.report.map(item => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n }\r\n \r\n :\r\n \r\n \r\n \r\n }\r\n\r\n \r\n
Landing PageClicksLeadsCREPCSalesCost
No stats for this date range.
{item.landing_page_name} ({item.landing_page_id}){Intl.NumberFormat('en-GB').format(item.clicks)}{Intl.NumberFormat('en-GB').format(item.leads)}{parseFloat(item.conversion*100).toFixed(2)}%${parseFloat(item.epc).toFixed(2)}${Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(item.sales)}${Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(item.cost)}
Totals{Intl.NumberFormat('en-GB').format(this.state.totals.clicks)}{Intl.NumberFormat('en-GB').format(this.state.totals.leads)}{parseFloat(this.state.totals.conversion*100).toFixed(2)}%${parseFloat(this.state.totals.epc).toFixed(2)}${Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(this.state.totals.sales)}${Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(this.state.totals.cost)}
\r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default ReportLandingPages;","import React from 'react';\r\nimport _ from 'lodash';\r\n\r\nconst Pagination = (props) => {\r\n\r\n const pages = _.range(1, props.totalPages + 1);\r\n\r\n function getClasses(page) {\r\n if (page === props.currentPage){\r\n return \"page-item my-1 active\"\r\n } else {\r\n return \"page-item my-1\"\r\n }\r\n }\r\n\r\n return (\r\n \r\n );\r\n}\r\n \r\nexport default Pagination;","import React, { Component } from 'react';\r\nimport { Download, Layers, Filter } from 'react-feather';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport DatePicker from 'react-datepicker';\r\nimport queryString from 'query-string';\r\nimport moment from 'moment';\r\nimport ReportEarnings from './ReportEarnings/ReportEarnings';\r\nimport ReportClicks from './ReportClicks/ReportClicks';\r\nimport ReportConversions from './ReportConversions/ReportConversions';\r\nimport ReportAffiliates from './ReportAffiliates/ReportAffiliates';\r\nimport ReportCreatives from './ReportCreatives/ReportCreatives';\r\nimport ReportLandingPages from './ReportLandingPages/ReportLandingPages';\r\nimport Pagination from '../../component/UI/Pagination/Pagination';\r\nimport { CSVLink } from 'react-csv';\r\n\r\nimport './Report.css';\r\nimport '../../../node_modules/react-datepicker/dist/react-datepicker.css';\r\n\r\nclass Reports extends Component {\r\n\r\n _isMounted = false;\r\n\r\n // When selecting the report type, we need to be able to grab the value. We use the Ref for this.\r\n constructor(props) {\r\n super(props);\r\n this.reportSelect = React.createRef();\r\n this.offerSelect = React.createRef();\r\n }\r\n\r\n state = {\r\n dataLoaded: false,\r\n type: 'earnings',\r\n offerId: '',\r\n affiliateId: '',\r\n creativeId: '',\r\n landingPageId: '',\r\n startDate: '',\r\n endDate: '',\r\n quickDate: 'month',\r\n selectedType: 'earnings',\r\n selectedStartDate: '',\r\n selectedEndDate: '',\r\n preparingCSV: false,\r\n CSVData: '',\r\n page: 1,\r\n totalPages: 1,\r\n resultsPerPage: 50\r\n }\r\n\r\n componentDidMount() {\r\n\r\n this._isMounted = true;\r\n let urlParams = queryString.parse(this.props.location.search);\r\n let affiliateId;\r\n let creativeId;\r\n let landingPageId;\r\n let offerId;\r\n let startDate;\r\n let endDate;\r\n let quickDate;\r\n let type;\r\n let page;\r\n\r\n // Get the report type if specified. Get the offer ID if specified.\r\n this.props.type ? type = this.props.type : type = 'earnings';\r\n\r\n // Get the date from URL. If there's nothing, then use today.\r\n if (urlParams.startDate && urlParams.endDate) {\r\n startDate = urlParams.startDate;\r\n endDate = urlParams.endDate;\r\n } else {\r\n startDate = moment().startOf(\"month\").format(\"YYYY-MM-DD\");\r\n endDate = moment().endOf(\"month\").format(\"YYYY-MM-DD\");\r\n }\r\n\r\n // Get the offer ID from the URL.\r\n offerId = urlParams.oid ? urlParams.oid : 0;\r\n\r\n // Get the affiliate ID from the URL.\r\n affiliateId = urlParams.aid ? urlParams.aid : 0;\r\n\r\n // Get the creative ID from the URL.\r\n creativeId = urlParams.cid ? urlParams.cid : 0;\r\n\r\n // Get the landing page ID from the URL.\r\n landingPageId = urlParams.lpid ? urlParams.lpid : 0;\r\n\r\n /* Get the page number from the URL. If none, then use 1. NOTE: The API starts at page 0, so we'll need to subtract 1 before\r\n fetching from the API */\r\n if (urlParams.page) {\r\n page = parseInt(urlParams.page);\r\n } else {\r\n page = 1;\r\n }\r\n\r\n let startRow = (page - 1) * this.state.resultsPerPage;\r\n let endRow = (page * this.state.resultsPerPage) - 1;\r\n\r\n // See if the dates are one of the quick dates\r\n if (startDate === moment().startOf(\"month\").format(\"YYYY-MM-DD\") && endDate === moment().endOf(\"month\").format(\"YYYY-MM-DD\")) {\r\n quickDate = \"month\";\r\n } else if (startDate === moment().subtract(1, \"month\").startOf(\"month\").format(\"YYYY-MM-DD\") && endDate === moment().subtract(1, \"month\").endOf(\"month\").format(\"YYYY-MM-DD\")) {\r\n quickDate = \"lastMonth\";\r\n } else if (startDate === moment().startOf(\"day\").format(\"YYYY-MM-DD\") && endDate === moment().startOf(\"day\").format(\"YYYY-MM-DD\")) {\r\n quickDate = \"today\";\r\n } else if (startDate === moment().subtract(1, \"d\").startOf(\"day\").format(\"YYYY-MM-DD\") && endDate === moment().subtract(1, \"d\").startOf(\"day\").format(\"YYYY-MM-DD\")) {\r\n quickDate = \"yesterday\";\r\n } else {\r\n quickDate = \"custom\";\r\n }\r\n\r\n // Update the state with the chosen dates\r\n this.setState({\r\n dataLoaded: true,\r\n type: type,\r\n offerId: offerId,\r\n affiliateId: affiliateId,\r\n creativeId: creativeId,\r\n landingPageId: landingPageId,\r\n startDate: moment(startDate).startOf(\"day\").format('YYYY-MM-DD HH:mm:ss'),\r\n endDate: moment(endDate).startOf(\"day\").format('YYYY-MM-DD HH:mm:ss'),\r\n quickDate: quickDate,\r\n selectedType: type,\r\n selectedStartDate: moment(startDate).startOf(\"day\").format('YYYY-MM-DD HH:mm:ss'),\r\n selectedEndDate: moment(endDate).startOf(\"day\").format('YYYY-MM-DD HH:mm:ss'),\r\n page: page,\r\n startRow: startRow,\r\n endRow: endRow\r\n });\r\n }\r\n\r\n handleChangeStart = date => {\r\n\r\n if (this._isMounted) {\r\n this.setState({\r\n selectedStartDate: date\r\n });\r\n }\r\n }\r\n\r\n handleChangeEnd = date => {\r\n\r\n if (this._isMounted) {\r\n this.setState({\r\n selectedEndDate: date\r\n });\r\n }\r\n }\r\n\r\n handleQuickDate = event => {\r\n let selectedStartDate = this.state.selectedStartDate;\r\n let selectedEndDate = this.state.selectedEndDate;\r\n\r\n switch (event.target.value) {\r\n case 'month':\r\n selectedStartDate = moment().startOf(\"month\").format('YYYY-MM-DD')\r\n selectedEndDate = moment().endOf(\"month\").format('YYYY-MM-DD')\r\n break;\r\n case 'lastMonth':\r\n selectedStartDate = moment().subtract(1, 'month').startOf(\"month\").format('YYYY-MM-DD')\r\n selectedEndDate = moment().subtract(1, 'month').endOf(\"month\").format('YYYY-MM-DD')\r\n break;\r\n case 'today':\r\n selectedStartDate = moment().startOf(\"day\").format('YYYY-MM-DD')\r\n selectedEndDate = moment().endOf(\"day\").format('YYYY-MM-DD')\r\n break;\r\n case 'yesterday':\r\n selectedStartDate = moment().subtract(1, 'day').startOf(\"day\").format('YYYY-MM-DD')\r\n selectedEndDate = moment().subtract(1, 'day').endOf(\"day\").format('YYYY-MM-DD')\r\n break;\r\n default:\r\n }\r\n\r\n if (this._isMounted) {\r\n this.setState({\r\n quickDate: event.target.value,\r\n selectedStartDate: selectedStartDate,\r\n selectedEndDate: selectedEndDate\r\n });\r\n }\r\n }\r\n\r\n handleChangeType = () => {\r\n\r\n if (this._isMounted) {\r\n this.setState({\r\n selectedType: this.reportSelect.current.value\r\n });\r\n }\r\n }\r\n\r\n handleTotalPages = (totalPages) => {\r\n\r\n if (this._isMounted) {\r\n this.setState({\r\n totalPages: totalPages\r\n });\r\n }\r\n }\r\n\r\n /* This will apply the settings based on the selected options */\r\n handleReport = (requestedPage = this.state.page) => {\r\n let startDate = moment(this.state.selectedStartDate).startOf(\"day\").format('YYYY-MM-DD');\r\n let endDate = moment(this.state.selectedEndDate).startOf(\"day\").format('YYYY-MM-DD');\r\n let type = this.state.selectedType;\r\n let offerId = this.state.offerId;\r\n let affiliateId = this.state.affiliateId;\r\n let creativeId = this.state.creativeId;\r\n let landingPageId = this.state.landingPageId;\r\n let page = requestedPage;\r\n let startRow = (page - 1) * this.state.resultsPerPage;\r\n let endRow = (page * this.state.resultsPerPage) - 1;\r\n\r\n if (this._isMounted) {\r\n this.setState({\r\n startDate: startDate,\r\n endDate: endDate,\r\n type: type,\r\n page: page,\r\n startRow: startRow,\r\n endRow: endRow\r\n });\r\n }\r\n\r\n let url = `/reports/${type}?startDate=${startDate}&endDate=${endDate}`;\r\n\r\n if (offerId > 0) {\r\n url = url + `&oid=${offerId}`;\r\n }\r\n\r\n if (affiliateId > 0) {\r\n url = url + `&aid=${affiliateId}`\r\n }\r\n\r\n if (creativeId > 0) {\r\n url = url + `&cid=${creativeId}`\r\n }\r\n\r\n if (landingPageId > 0) {\r\n url = url + `&lpid=${landingPageId}`\r\n }\r\n\r\n if (type === \"conversions\" || type === \"affiliates\") {\r\n url = url + `&page=${page}`\r\n }\r\n\r\n this.props.history.push(url);\r\n }\r\n\r\n handlePageChange = (requestedPage = this.state.page) => {\r\n let page = requestedPage;\r\n let startRow = (page - 1) * this.state.resultsPerPage;\r\n let endRow = (page * this.state.resultsPerPage) - 1;\r\n\r\n if (this._isMounted) {\r\n this.setState({\r\n page: page,\r\n startRow: startRow,\r\n endRow: endRow\r\n })\r\n }\r\n }\r\n\r\n prepareCSV = () => {\r\n\r\n if (this._isMounted) {\r\n this.setState({\r\n preparingCSV: true\r\n });\r\n }\r\n\r\n const mbToken = localStorage.getItem('mb-auth-token');\r\n let report;\r\n\r\n if (this.state.type === 'conversions') {\r\n report = 'conversions'\r\n } else if (this.state.type === 'affiliates') {\r\n report = 'affiliates'\r\n }\r\n\r\n let fetchUrl = `${process.env.REACT_APP_API_URL}/reports/${report}?startDate=${this.state.startDate}&endDate=${this.state.endDate}`;\r\n\r\n if (this.state.offerId > 0) {\r\n fetchUrl = fetchUrl + `&oid=${this.state.offerId}`;\r\n }\r\n\r\n if (this.state.affiliateId > 0) {\r\n fetchUrl = fetchUrl + `&aid=${this.state.affiliateId}`\r\n }\r\n\r\n if (this.state.type === \"conversions\" || this.state.type === \"affiliates\") {\r\n fetchUrl = fetchUrl + `&page=all`\r\n }\r\n\r\n /* Get the affiliate object from the DB and populate the state information */\r\n fetch(fetchUrl, {\r\n method: 'GET',\r\n credentials: 'include',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'x-app-token': mbToken\r\n }\r\n })\r\n .then(res => res.json())\r\n .then(\r\n (result) => {\r\n if (result[\"success\"] === true) {\r\n // Set the data for CSV download\r\n\r\n if (this._isMounted) {\r\n this.setState({\r\n preparingCSV: false,\r\n csvData: result\r\n });\r\n }\r\n } else if (result[\"success\"] === false) {\r\n this.props.showSystemMessage(\"error\", \"There was an error fetching the data. Please try again.\");\r\n } else {\r\n this.props.showSystemMessage(\"error\", result.errors.message);\r\n }\r\n })\r\n .catch(error => {\r\n console.log('Error in Reports: ', error);\r\n this.props.showSystemMessage(\"error\", \"Connection error.\");\r\n });\r\n }\r\n\r\n handleDownloadData = (data) => {\r\n\r\n if (this._isMounted) {\r\n this.setState({\r\n csvData: data\r\n });\r\n }\r\n }\r\n\r\n getCSVLink = () => {\r\n if (this.state.csvData) {\r\n\r\n // Grab the required data\r\n let { report, totals } = this.state.csvData;\r\n\r\n // Create the array that will hold the CSV data\r\n let formattedData = [];\r\n\r\n // Create the headers for the CSV, add the data, add the totals\r\n switch (this.state.type) {\r\n case 'earnings':\r\n // Headers\r\n formattedData.push(['ID', 'Campaign', 'Clicks', 'Leads', 'CR', 'EPC', 'Sales', 'Cost']);\r\n // Data\r\n report.map(row =>\r\n formattedData.push([row.campaign_id, row.name, Intl.NumberFormat('en-GB').format(row.clicks), Intl.NumberFormat('en-GB').format(row.leads), parseFloat(row.conversion).toFixed(2), parseFloat(row.epc).toFixed(2), Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(row.sales), Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(row.cost)])\r\n );\r\n // Totals\r\n formattedData.push(['', '', Intl.NumberFormat('en-GB').format(totals.clicks), Intl.NumberFormat('en-GB').format(totals.leads), parseFloat(totals.conversion).toFixed(2), parseFloat(totals.epc).toFixed(2), Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(totals.sales), Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(totals.cost)]);\r\n\r\n break;\r\n\r\n case 'clicks':\r\n // Headers\r\n formattedData.push(['Date', 'Clicks', 'Leads', 'CR', 'EPC', 'Sales', 'Cost']);\r\n // Data\r\n report.map(row =>\r\n formattedData.push([row.date, Intl.NumberFormat('en-GB').format(row.clicks), Intl.NumberFormat('en-GB').format(row.leads), parseFloat(row.conversion).toFixed(2), parseFloat(row.epc).toFixed(2), Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(row.sales), Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(row.cost)])\r\n );\r\n // Totals\r\n formattedData.push(['', Intl.NumberFormat('en-GB').format(totals.clicks), Intl.NumberFormat('en-GB').format(totals.leads), parseFloat(totals.conversion).toFixed(2), parseFloat(totals.epc).toFixed(2), Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(totals.sales), Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(totals.cost)]);\r\n\r\n break;\r\n\r\n case 'conversions':\r\n // Headers\r\n formattedData.push(['Click ID', 'Date/Time (EST)', 'Campaign ID', 'Campaign Name', 'Affiliate ID', 'Data', 'Status', 'SubId 1', 'SubId 2', 'Payment Date (EST)', 'Sales', 'CPA']);\r\n // Data\r\n report.map(row =>\r\n formattedData.push([row.click_id, row.date, row.campaign_id, row.campaign_name, row.publisher_id, row.data, row.status, row.subid1, row.subid2, row.payout_date, Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(row.sales), Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(row.rate)])\r\n );\r\n\r\n break;\r\n\r\n case 'affiliates':\r\n // Headers\r\n formattedData.push(['Affiliate ID', 'Clicks', 'Leads', 'CR', 'EPC', 'Sales', 'Cost']);\r\n // Data\r\n report.map(row =>\r\n formattedData.push([row.publisher_id, Intl.NumberFormat('en-GB').format(row.clicks), Intl.NumberFormat('en-GB').format(row.leads), parseFloat(row.conversion).toFixed(2), parseFloat(row.epc).toFixed(2), Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(row.sales), Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(row.cost)])\r\n );\r\n // Totals\r\n formattedData.push(['', Intl.NumberFormat('en-GB').format(totals.clicks), Intl.NumberFormat('en-GB').format(totals.leads), parseFloat(totals.conversion).toFixed(2), parseFloat(totals.epc).toFixed(2), Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(totals.sales), Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(totals.cost)]);\r\n\r\n break;\r\n\r\n case 'creatives':\r\n // Headers\r\n formattedData.push(['Creative', 'Clicks', 'Leads', 'CR', 'EPC', 'Sales', 'Cost']);\r\n // Data\r\n report.map(row =>\r\n formattedData.push([row.creative_name, Intl.NumberFormat('en-GB').format(row.clicks), Intl.NumberFormat('en-GB').format(row.leads), parseFloat(row.conversion).toFixed(2), parseFloat(row.epc).toFixed(2), Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(row.sales), Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(row.cost)])\r\n );\r\n // Totals\r\n formattedData.push(['', Intl.NumberFormat('en-GB').format(totals.clicks), Intl.NumberFormat('en-GB').format(totals.leads), parseFloat(totals.conversion).toFixed(2), parseFloat(totals.epc).toFixed(2), Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(totals.sales), Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(totals.cost)]);\r\n\r\n break;\r\n\r\n case 'landingPages':\r\n // Headers\r\n formattedData.push(['Landing Page ID', 'Landing Page Name', 'Clicks', 'Leads', 'CR', 'EPC', 'Sales', 'Cost']);\r\n // Data\r\n report.map(row =>\r\n formattedData.push([row.landing_page_id, row.landing_page_name, Intl.NumberFormat('en-GB').format(row.clicks), Intl.NumberFormat('en-GB').format(row.leads), parseFloat(row.conversion).toFixed(2), parseFloat(row.epc).toFixed(2), Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(row.sales), Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(row.cost)])\r\n );\r\n // Totals\r\n formattedData.push(['', '', Intl.NumberFormat('en-GB').format(totals.clicks), Intl.NumberFormat('en-GB').format(totals.leads), parseFloat(totals.conversion).toFixed(2), parseFloat(totals.epc).toFixed(2), Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(totals.sales), Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(totals.cost)]);\r\n\r\n break;\r\n\r\n default:\r\n throw new Error(\"Invalid report type\");\r\n }\r\n\r\n return Download CSV\r\n\r\n } else if (!this.state.csvData && (this.state.type === 'conversions' || this.state.type === 'affiliates')) {\r\n // There is no data in the csvData state yet and the type is conversions or affiliates (uses paging)\r\n if (this.state.preparingCSV === true) {\r\n return \r\n } else {\r\n return \r\n }\r\n }\r\n }\r\n\r\n getReportLink = (link, offerId, affiliateId, creativeId, landingPageId, startDate, endDate) => {\r\n let url = `/reports/${link}?startDate=${startDate}&endDate=${endDate}`\r\n\r\n if (offerId > 0) {\r\n url = url + `&oid=${offerId}`;\r\n }\r\n\r\n if (creativeId > 0) {\r\n url = url + `&cid=${creativeId}`;\r\n }\r\n\r\n if (landingPageId > 0) {\r\n url = url + `&lpid=${landingPageId}`;\r\n }\r\n\r\n if (affiliateId > 0) {\r\n url = url + `&aid=${affiliateId}`;\r\n }\r\n\r\n return url;\r\n }\r\n\r\n getCancelUrl = (link, cancel, offerId, affiliateId, creativeId, landingPageId, startDate, endDate) => {\r\n let url = `/reports/${link}?startDate=${startDate}&endDate=${endDate}`\r\n\r\n if (cancel === 'offer') {\r\n if (affiliateId > 0) {\r\n url = url + `&aid=${affiliateId}`\r\n }\r\n if (creativeId > 0) {\r\n url = url + `&cid=${creativeId}`;\r\n }\r\n if (landingPageId > 0) {\r\n url = url + `&lpid=${landingPageId}`;\r\n }\r\n }\r\n\r\n if (cancel === 'affiliate') {\r\n if (offerId > 0) {\r\n url = url + `&oid=${offerId}`;\r\n }\r\n if (creativeId > 0) {\r\n url = url + `&cid=${creativeId}`;\r\n }\r\n if (landingPageId > 0) {\r\n url = url + `&lpid=${landingPageId}`;\r\n }\r\n }\r\n\r\n if (cancel === 'creative') {\r\n if (offerId > 0) {\r\n url = url + `&oid=${offerId}`;\r\n }\r\n if (affiliateId > 0) {\r\n url = url + `&aid=${affiliateId}`\r\n }\r\n if (landingPageId > 0) {\r\n url = url + `&lpid=${landingPageId}`;\r\n }\r\n }\r\n\r\n if (cancel === 'landingPage') {\r\n if (offerId > 0) {\r\n url = url + `&oid=${offerId}`;\r\n }\r\n if (affiliateId > 0) {\r\n url = url + `&aid=${affiliateId}`\r\n }\r\n if (creativeId > 0) {\r\n url = url + `&cid=${creativeId}`;\r\n }\r\n }\r\n\r\n return url;\r\n\r\n }\r\n\r\n setOffers = (offers) => {\r\n this.setState({\r\n offerList: offers\r\n })\r\n }\r\n\r\n setAffiliateFilter = (e) => {\r\n this.setState({\r\n affiliateFilter: e.target.value\r\n })\r\n }\r\n\r\n setOfferFilter = () => {\r\n if (this._isMounted) {\r\n this.setState({\r\n offerFilter: parseInt(this.offerSelect.current.value)\r\n });\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n this._isMounted = false;\r\n }\r\n\r\n render() {\r\n\r\n let reportToDisplay;\r\n\r\n /* We set the key to the report settings that can change. This forces re-rendering of the component. */\r\n switch (this.state.type) {\r\n case \"earnings\": reportToDisplay = \r\n break;\r\n case \"clicks\": reportToDisplay = \r\n break;\r\n case \"conversions\": reportToDisplay = \r\n break;\r\n case \"affiliates\": reportToDisplay = \r\n break;\r\n case \"creatives\": reportToDisplay = \r\n break;\r\n case \"landingPages\": reportToDisplay = \r\n break;\r\n default: reportToDisplay = \r\n break;\r\n }\r\n\r\n return (\r\n\r\n
\r\n
\r\n
\r\n
Reports
\r\n
\r\n {this.getCSVLink()}\r\n {/* \r\n { this.state.downloadData && } */}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {this.state.offerId &&\r\n /* Only available if there is an offer selected. */\r\n \r\n }\r\n \r\n \r\n {this.state.offerId &&\r\n /* These options are only available if there is an offer selected. */\r\n \r\n \r\n \r\n \r\n }\r\n \r\n
\r\n
\r\n {this.state.selectedType !== 'referrals' &&\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {this.state.quickDate === 'custom' &&\r\n \r\n
\r\n { this.handleChangeStart(date) }}\r\n className=\"form-control form-control-sm display-inline-block mr-2 my-1\"\r\n todayButton={\"Today\"} />\r\n
\r\n
to
\r\n
\r\n { this.handleChangeEnd(date) }}\r\n className=\"form-control form-control-sm display-inline-block mr-2 my-1\"\r\n todayButton={\"Today\"} />\r\n
\r\n
\r\n }\r\n
\r\n }\r\n
\r\n this.handleReport()}\r\n className=\"btn btn-primary btn-sm\">Run Report\r\n
\r\n
\r\n
\r\n\r\n {(this.state.type === 'conversions' || this.state.type === 'affiliates') &&\r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n {this.state.type === 'conversions' &&\r\n \r\n \r\n {this.state.offerList && this.state.offerList.map(campaign => {\r\n return \r\n })}\r\n \r\n }\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n }\r\n
\r\n {this.state.dataLoaded &&\r\n /* Display the selected report */\r\n reportToDisplay\r\n }\r\n
\r\n {(this.state.type === 'conversions' || this.state.type === 'affiliates') &&\r\n
\r\n \r\n
\r\n }\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Reports;","import React, { Component } from 'react';\r\nimport { Filter, ChevronDown } from 'react-feather';\r\nimport { Dropdown, DropdownToggle, DropdownMenu, DropdownItem } from 'reactstrap';\r\nimport { Link } from 'react-router-dom';\r\n\r\nimport _ from 'lodash';\r\nimport Loading from '../../component/UI/Loading/Loading';\r\n\r\nclass Campaigns extends Component {\r\n\r\n state = {\r\n dataLoaded: false,\r\n dropdownOpen: false,\r\n filter: \"All\"\r\n }\r\n\r\n componentDidMount(){\r\n\r\n const mbToken = localStorage.getItem('mb-auth-token'); \r\n \r\n fetch(`${process.env.REACT_APP_API_URL}/campaigns`, {\r\n method: 'GET',\r\n credentials: 'include',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'x-app-token': mbToken\r\n }\r\n })\r\n .then(res => res.json())\r\n .then(\r\n (result) => {\r\n if (result[\"success\"] === true) {\r\n\r\n let filteredCampaigns = _.filter(result.campaigns, function(campaign){\r\n return campaign.status !== 'Cancelled'\r\n })\r\n\r\n this.setState({\r\n dataLoaded: true,\r\n campaigns: result.campaigns,\r\n filteredCampaigns: filteredCampaigns\r\n });\r\n } else if (result[\"success\"] === false) {\r\n this.props.showSystemMessage(\"error\", \"There was an error fetching the data. Please try again.\");\r\n } else {\r\n this.props.showSystemMessage(\"error\", result.errors.message);\r\n }\r\n })\r\n .catch(error => {\r\n console.log('Error in Reports: ', error);\r\n this.props.showSystemMessage(\"error\", \"Connection error.\");\r\n });\r\n }\r\n\r\n toggleDropdown = () => {\r\n this.setState({\r\n dropdownOpen: !this.state.dropdownOpen\r\n });\r\n }\r\n\r\n toggleFilter = (filter) => {\r\n\r\n let filteredCampaigns = this.state.campaigns;\r\n\r\n if (filter !== \"All\"){\r\n filteredCampaigns = _.filter(filteredCampaigns, function(campaign){\r\n return campaign.status === filter\r\n })\r\n } else {\r\n filteredCampaigns = _.filter(filteredCampaigns, function(campaign){\r\n return campaign.status !== 'Cancelled'\r\n })\r\n }\r\n\r\n this.setState({\r\n filter: filter,\r\n filteredCampaigns: filteredCampaigns\r\n })\r\n }\r\n\r\n render() { \r\n return (\r\n \r\n {this.state.dataLoaded ?\r\n
\r\n
\r\n
\r\n
Campaigns
\r\n
\r\n \r\n \r\n {this.state.filter} \r\n \r\n \r\n {this.toggleFilter(\"All\")}}>All\r\n {this.toggleFilter(\"Active\")}}>Active\r\n {this.toggleFilter(\"Hidden\")}}>Hidden\r\n {this.toggleFilter(\"Testing\")}}>Testing\r\n {this.toggleFilter(\"Cancelled\")}}>Cancelled\r\n {this.toggleFilter(\"By Request\")}}>By Request\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n { this.state.filteredCampaigns.length > 0 ?\r\n this.state.filteredCampaigns.map(campaign => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n })\r\n :\r\n \r\n \r\n \r\n }\r\n \r\n
Offer IDNameStatus
{campaign.campaign_id}{campaign.name}{campaign.status}
No campaigns.
\r\n
\r\n
\r\n
\r\n
\r\n :\r\n \r\n }\r\n
\r\n );\r\n }\r\n}\r\n \r\nexport default Campaigns;","import React from 'react';\r\nimport './Footer.css';\r\n\r\nconst footer = () => (\r\n
\r\n
\r\n 2023 - MaxBounty Inc.\r\n
\r\n
\r\n);\r\n\r\n\r\nexport default footer;","export default {\r\n countries: [\r\n {\r\n \"name\": \"Andorra\",\r\n \"code\": \"AD\",\r\n \"code_3\": \"AND\",\r\n \"codenum\": 20\r\n },\r\n {\r\n \"name\": \"Afghanistan\",\r\n \"code\": \"AF\",\r\n \"code_3\": \"AFG\",\r\n \"codenum\": 4\r\n },\r\n {\r\n \"name\": \"Antigua and Barbuda\",\r\n \"code\": \"AG\",\r\n \"code_3\": \"ATG\",\r\n \"codenum\": 28\r\n },\r\n {\r\n \"name\": \"Anguilla\",\r\n \"code\": \"AI\",\r\n \"code_3\": \"AIA\",\r\n \"codenum\": 660\r\n },\r\n {\r\n \"name\": \"Albania\",\r\n \"code\": \"AL\",\r\n \"code_3\": \"ALB\",\r\n \"codenum\": 8\r\n },\r\n {\r\n \"name\": \"Armenia\",\r\n \"code\": \"AM\",\r\n \"code_3\": \"ARM\",\r\n \"codenum\": 51\r\n },\r\n {\r\n \"name\": \"Angola\",\r\n \"code\": \"AO\",\r\n \"code_3\": \"AGO\",\r\n \"codenum\": 24\r\n },\r\n {\r\n \"name\": \"Antarctica\",\r\n \"code\": \"AQ\",\r\n \"code_3\": \"ATA\",\r\n \"codenum\": 10\r\n },\r\n {\r\n \"name\": \"Argentina\",\r\n \"code\": \"AR\",\r\n \"code_3\": \"ARG\",\r\n \"codenum\": 32\r\n },\r\n {\r\n \"name\": \"American Samoa\",\r\n \"code\": \"AS\",\r\n \"code_3\": \"ASM\",\r\n \"codenum\": 16\r\n },\r\n {\r\n \"name\": \"Austria\",\r\n \"code\": \"AT\",\r\n \"code_3\": \"AUT\",\r\n \"codenum\": 40\r\n },\r\n {\r\n \"name\": \"Australia\",\r\n \"code\": \"AU\",\r\n \"code_3\": \"AUS\",\r\n \"codenum\": 36\r\n },\r\n {\r\n \"name\": \"Aruba\",\r\n \"code\": \"AW\",\r\n \"code_3\": \"ABW\",\r\n \"codenum\": 533\r\n },\r\n {\r\n \"name\": \"Aland Islands\",\r\n \"code\": \"AX\",\r\n \"code_3\": \"ALA\",\r\n \"codenum\": 248\r\n },\r\n {\r\n \"name\": \"Azerbaijan\",\r\n \"code\": \"AZ\",\r\n \"code_3\": \"AZE\",\r\n \"codenum\": 31\r\n },\r\n {\r\n \"name\": \"Bosnia and Herzegovina\",\r\n \"code\": \"BA\",\r\n \"code_3\": \"BIH\",\r\n \"codenum\": 70\r\n },\r\n {\r\n \"name\": \"Barbados\",\r\n \"code\": \"BB\",\r\n \"code_3\": \"BRB\",\r\n \"codenum\": 52\r\n },\r\n {\r\n \"name\": \"Bangladesh\",\r\n \"code\": \"BD\",\r\n \"code_3\": \"BGD\",\r\n \"codenum\": 50\r\n },\r\n {\r\n \"name\": \"Belgium\",\r\n \"code\": \"BE\",\r\n \"code_3\": \"BEL\",\r\n \"codenum\": 56\r\n },\r\n {\r\n \"name\": \"Burkina Faso\",\r\n \"code\": \"BF\",\r\n \"code_3\": \"BFA\",\r\n \"codenum\": 854\r\n },\r\n {\r\n \"name\": \"Bulgaria\",\r\n \"code\": \"BG\",\r\n \"code_3\": \"BGR\",\r\n \"codenum\": 100\r\n },\r\n {\r\n \"name\": \"Bahrain\",\r\n \"code\": \"BH\",\r\n \"code_3\": \"BHR\",\r\n \"codenum\": 48\r\n },\r\n {\r\n \"name\": \"Burundi\",\r\n \"code\": \"BI\",\r\n \"code_3\": \"BDI\",\r\n \"codenum\": 108\r\n },\r\n {\r\n \"name\": \"Benin\",\r\n \"code\": \"BJ\",\r\n \"code_3\": \"BEN\",\r\n \"codenum\": 204\r\n },\r\n {\r\n \"name\": \"Saint Barthelemy\",\r\n \"code\": \"BL\",\r\n \"code_3\": \"BLM\",\r\n \"codenum\": 652\r\n },\r\n {\r\n \"name\": \"Bermuda\",\r\n \"code\": \"BM\",\r\n \"code_3\": \"BMU\",\r\n \"codenum\": 60\r\n },\r\n {\r\n \"name\": \"Brunei Darussalam\",\r\n \"code\": \"BN\",\r\n \"code_3\": \"BRN\",\r\n \"codenum\": 96\r\n },\r\n {\r\n \"name\": \"Bolivia, Plurinational State of\",\r\n \"code\": \"BO\",\r\n \"code_3\": \"BOL\",\r\n \"codenum\": 68\r\n },\r\n {\r\n \"name\": \"Bonaire, Sint Eustatius and Saba\",\r\n \"code\": \"BQ\",\r\n \"code_3\": \"BES\",\r\n \"codenum\": 535\r\n },\r\n {\r\n \"name\": \"Brazil\",\r\n \"code\": \"BR\",\r\n \"code_3\": \"BRA\",\r\n \"codenum\": 76\r\n },\r\n {\r\n \"name\": \"Bahamas\",\r\n \"code\": \"BS\",\r\n \"code_3\": \"BHS\",\r\n \"codenum\": 44\r\n },\r\n {\r\n \"name\": \"Bhutan\",\r\n \"code\": \"BT\",\r\n \"code_3\": \"BTN\",\r\n \"codenum\": 64\r\n },\r\n {\r\n \"name\": \"Bouvet Island\",\r\n \"code\": \"BV\",\r\n \"code_3\": \"BVT\",\r\n \"codenum\": 74\r\n },\r\n {\r\n \"name\": \"Botswana\",\r\n \"code\": \"BW\",\r\n \"code_3\": \"BWA\",\r\n \"codenum\": 72\r\n },\r\n {\r\n \"name\": \"Belarus\",\r\n \"code\": \"BY\",\r\n \"code_3\": \"BLR\",\r\n \"codenum\": 112\r\n },\r\n {\r\n \"name\": \"Belize\",\r\n \"code\": \"BZ\",\r\n \"code_3\": \"BLZ\",\r\n \"codenum\": 84\r\n },\r\n {\r\n \"name\": \"Canada\",\r\n \"code\": \"CA\",\r\n \"code_3\": \"CAN\",\r\n \"codenum\": 124\r\n },\r\n {\r\n \"name\": \"Cocos (Keeling) Islands\",\r\n \"code\": \"CC\",\r\n \"code_3\": \"CCK\",\r\n \"codenum\": 166\r\n },\r\n {\r\n \"name\": \"Congo, The Democratic Republic of The\",\r\n \"code\": \"CD\",\r\n \"code_3\": \"COD\",\r\n \"codenum\": 180\r\n },\r\n {\r\n \"name\": \"Central African Republic\",\r\n \"code\": \"CF\",\r\n \"code_3\": \"CAF\",\r\n \"codenum\": 140\r\n },\r\n {\r\n \"name\": \"Congo\",\r\n \"code\": \"CG\",\r\n \"code_3\": \"COG\",\r\n \"codenum\": 178\r\n },\r\n {\r\n \"name\": \"Switzerland\",\r\n \"code\": \"CH\",\r\n \"code_3\": \"CHE\",\r\n \"codenum\": 756\r\n },\r\n {\r\n \"name\": \"Cote D'ivoire\",\r\n \"code\": \"CI\",\r\n \"code_3\": \"CIV\",\r\n \"codenum\": 384\r\n },\r\n {\r\n \"name\": \"Cook Islands\",\r\n \"code\": \"CK\",\r\n \"code_3\": \"COK\",\r\n \"codenum\": 184\r\n },\r\n {\r\n \"name\": \"Chile\",\r\n \"code\": \"CL\",\r\n \"code_3\": \"CHL\",\r\n \"codenum\": 152\r\n },\r\n {\r\n \"name\": \"Cameroon\",\r\n \"code\": \"CM\",\r\n \"code_3\": \"CMR\",\r\n \"codenum\": 120\r\n },\r\n {\r\n \"name\": \"China\",\r\n \"code\": \"CN\",\r\n \"code_3\": \"CHN\",\r\n \"codenum\": 156\r\n },\r\n {\r\n \"name\": \"Colombia\",\r\n \"code\": \"CO\",\r\n \"code_3\": \"COL\",\r\n \"codenum\": 170\r\n },\r\n {\r\n \"name\": \"Costa Rica\",\r\n \"code\": \"CR\",\r\n \"code_3\": \"CRI\",\r\n \"codenum\": 188\r\n },\r\n {\r\n \"name\": \"Cuba\",\r\n \"code\": \"CU\",\r\n \"code_3\": \"CUB\",\r\n \"codenum\": 192\r\n },\r\n {\r\n \"name\": \"Cabo Verde\",\r\n \"code\": \"CV\",\r\n \"code_3\": \"CPV\",\r\n \"codenum\": 132\r\n },\r\n {\r\n \"name\": \"Curacao\",\r\n \"code\": \"CW\",\r\n \"code_3\": \"CUW\",\r\n \"codenum\": 531\r\n },\r\n {\r\n \"name\": \"Christmas Island\",\r\n \"code\": \"CX\",\r\n \"code_3\": \"CXR\",\r\n \"codenum\": 162\r\n },\r\n {\r\n \"name\": \"Cyprus\",\r\n \"code\": \"CY\",\r\n \"code_3\": \"CYP\",\r\n \"codenum\": 196\r\n },\r\n {\r\n \"name\": \"Czech Republic\",\r\n \"code\": \"CZ\",\r\n \"code_3\": \"CZE\",\r\n \"codenum\": 203\r\n },\r\n {\r\n \"name\": \"Germany\",\r\n \"code\": \"DE\",\r\n \"code_3\": \"DEU\",\r\n \"codenum\": 276\r\n },\r\n {\r\n \"name\": \"Djibouti\",\r\n \"code\": \"DJ\",\r\n \"code_3\": \"DJI\",\r\n \"codenum\": 262\r\n },\r\n {\r\n \"name\": \"Denmark\",\r\n \"code\": \"DK\",\r\n \"code_3\": \"DNK\",\r\n \"codenum\": 208\r\n },\r\n {\r\n \"name\": \"Dominica\",\r\n \"code\": \"DM\",\r\n \"code_3\": \"DMA\",\r\n \"codenum\": 212\r\n },\r\n {\r\n \"name\": \"Dominican Republic\",\r\n \"code\": \"DO\",\r\n \"code_3\": \"DOM\",\r\n \"codenum\": 214\r\n },\r\n {\r\n \"name\": \"Algeria\",\r\n \"code\": \"DZ\",\r\n \"code_3\": \"DZA\",\r\n \"codenum\": 12\r\n },\r\n {\r\n \"name\": \"Ecuador\",\r\n \"code\": \"EC\",\r\n \"code_3\": \"ECU\",\r\n \"codenum\": 218\r\n },\r\n {\r\n \"name\": \"Estonia\",\r\n \"code\": \"EE\",\r\n \"code_3\": \"EST\",\r\n \"codenum\": 233\r\n },\r\n {\r\n \"name\": \"Egypt\",\r\n \"code\": \"EG\",\r\n \"code_3\": \"EGY\",\r\n \"codenum\": 818\r\n },\r\n {\r\n \"name\": \"Western Sahara\",\r\n \"code\": \"EH\",\r\n \"code_3\": \"ESH\",\r\n \"codenum\": 732\r\n },\r\n {\r\n \"name\": \"Eritrea\",\r\n \"code\": \"ER\",\r\n \"code_3\": \"ERI\",\r\n \"codenum\": 232\r\n },\r\n {\r\n \"name\": \"Spain\",\r\n \"code\": \"ES\",\r\n \"code_3\": \"ESP\",\r\n \"codenum\": 724\r\n },\r\n {\r\n \"name\": \"Ethiopia\",\r\n \"code\": \"ET\",\r\n \"code_3\": \"ETH\",\r\n \"codenum\": 231\r\n },\r\n {\r\n \"name\": \"Finland\",\r\n \"code\": \"FI\",\r\n \"code_3\": \"FIN\",\r\n \"codenum\": 246\r\n },\r\n {\r\n \"name\": \"Fiji\",\r\n \"code\": \"FJ\",\r\n \"code_3\": \"FJI\",\r\n \"codenum\": 242\r\n },\r\n {\r\n \"name\": \"Falkland Islands (Malvinas)\",\r\n \"code\": \"FK\",\r\n \"code_3\": \"FLK\",\r\n \"codenum\": 238\r\n },\r\n {\r\n \"name\": \"Micronesia, Federated States of\",\r\n \"code\": \"FM\",\r\n \"code_3\": \"FSM\",\r\n \"codenum\": 583\r\n },\r\n {\r\n \"name\": \"Faroe Islands\",\r\n \"code\": \"FO\",\r\n \"code_3\": \"FRO\",\r\n \"codenum\": 234\r\n },\r\n {\r\n \"name\": \"France\",\r\n \"code\": \"FR\",\r\n \"code_3\": \"FRA\",\r\n \"codenum\": 250\r\n },\r\n {\r\n \"name\": \"Gabon\",\r\n \"code\": \"GA\",\r\n \"code_3\": \"GAB\",\r\n \"codenum\": 266\r\n },\r\n {\r\n \"name\": \"Grenada\",\r\n \"code\": \"GD\",\r\n \"code_3\": \"GRD\",\r\n \"codenum\": 308\r\n },\r\n {\r\n \"name\": \"Georgia\",\r\n \"code\": \"GE\",\r\n \"code_3\": \"GEO\",\r\n \"codenum\": 268\r\n },\r\n {\r\n \"name\": \"French Guiana\",\r\n \"code\": \"GF\",\r\n \"code_3\": \"GUF\",\r\n \"codenum\": 254\r\n },\r\n {\r\n \"name\": \"Guernsey\",\r\n \"code\": \"GG\",\r\n \"code_3\": \"GGY\",\r\n \"codenum\": 831\r\n },\r\n {\r\n \"name\": \"Ghana\",\r\n \"code\": \"GH\",\r\n \"code_3\": \"GHA\",\r\n \"codenum\": 288\r\n },\r\n {\r\n \"name\": \"Gibraltar\",\r\n \"code\": \"GI\",\r\n \"code_3\": \"GIB\",\r\n \"codenum\": 292\r\n },\r\n {\r\n \"name\": \"Greenland\",\r\n \"code\": \"GL\",\r\n \"code_3\": \"GRL\",\r\n \"codenum\": 304\r\n },\r\n {\r\n \"name\": \"Gambia\",\r\n \"code\": \"GM\",\r\n \"code_3\": \"GMB\",\r\n \"codenum\": 270\r\n },\r\n {\r\n \"name\": \"Guinea\",\r\n \"code\": \"GN\",\r\n \"code_3\": \"GIN\",\r\n \"codenum\": 324\r\n },\r\n {\r\n \"name\": \"Guadeloupe\",\r\n \"code\": \"GP\",\r\n \"code_3\": \"GLP\",\r\n \"codenum\": 312\r\n },\r\n {\r\n \"name\": \"Equatorial Guinea\",\r\n \"code\": \"GQ\",\r\n \"code_3\": \"GNQ\",\r\n \"codenum\": 226\r\n },\r\n {\r\n \"name\": \"Greece\",\r\n \"code\": \"GR\",\r\n \"code_3\": \"GRC\",\r\n \"codenum\": 300\r\n },\r\n {\r\n \"name\": \"South Georgia and The South Sandwich Islands\",\r\n \"code\": \"GS\",\r\n \"code_3\": \"SGS\",\r\n \"codenum\": 239\r\n },\r\n {\r\n \"name\": \"Guatemala\",\r\n \"code\": \"GT\",\r\n \"code_3\": \"GTM\",\r\n \"codenum\": 320\r\n },\r\n {\r\n \"name\": \"Guam\",\r\n \"code\": \"GU\",\r\n \"code_3\": \"GUM\",\r\n \"codenum\": 316\r\n },\r\n {\r\n \"name\": \"Guinea-Bissau\",\r\n \"code\": \"GW\",\r\n \"code_3\": \"GNB\",\r\n \"codenum\": 624\r\n },\r\n {\r\n \"name\": \"Guyana\",\r\n \"code\": \"GY\",\r\n \"code_3\": \"GUY\",\r\n \"codenum\": 328\r\n },\r\n {\r\n \"name\": \"Hong Kong\",\r\n \"code\": \"HK\",\r\n \"code_3\": \"HKG\",\r\n \"codenum\": 344\r\n },\r\n {\r\n \"name\": \"Heard Island and Mcdonald Islands\",\r\n \"code\": \"HM\",\r\n \"code_3\": \"HMD\",\r\n \"codenum\": 334\r\n },\r\n {\r\n \"name\": \"Honduras\",\r\n \"code\": \"HN\",\r\n \"code_3\": \"HND\",\r\n \"codenum\": 340\r\n },\r\n {\r\n \"name\": \"Croatia\",\r\n \"code\": \"HR\",\r\n \"code_3\": \"HRV\",\r\n \"codenum\": 191\r\n },\r\n {\r\n \"name\": \"Haiti\",\r\n \"code\": \"HT\",\r\n \"code_3\": \"HTI\",\r\n \"codenum\": 332\r\n },\r\n {\r\n \"name\": \"Hungary\",\r\n \"code\": \"HU\",\r\n \"code_3\": \"HUN\",\r\n \"codenum\": 348\r\n },\r\n {\r\n \"name\": \"Indonesia\",\r\n \"code\": \"ID\",\r\n \"code_3\": \"IDN\",\r\n \"codenum\": 360\r\n },\r\n {\r\n \"name\": \"Ireland\",\r\n \"code\": \"IE\",\r\n \"code_3\": \"IRL\",\r\n \"codenum\": 372\r\n },\r\n {\r\n \"name\": \"Israel\",\r\n \"code\": \"IL\",\r\n \"code_3\": \"ISR\",\r\n \"codenum\": 376\r\n },\r\n {\r\n \"name\": \"Isle of Man\",\r\n \"code\": \"IM\",\r\n \"code_3\": \"IMN\",\r\n \"codenum\": 833\r\n },\r\n {\r\n \"name\": \"India\",\r\n \"code\": \"IN\",\r\n \"code_3\": \"IND\",\r\n \"codenum\": 356\r\n },\r\n {\r\n \"name\": \"British Indian Ocean Territory\",\r\n \"code\": \"IO\",\r\n \"code_3\": \"IOT\",\r\n \"codenum\": 86\r\n },\r\n {\r\n \"name\": \"Iraq\",\r\n \"code\": \"IQ\",\r\n \"code_3\": \"IRQ\",\r\n \"codenum\": 368\r\n },\r\n {\r\n \"name\": \"Iran, Islamic Republic of\",\r\n \"code\": \"IR\",\r\n \"code_3\": \"IRN\",\r\n \"codenum\": 364\r\n },\r\n {\r\n \"name\": \"Iceland\",\r\n \"code\": \"IS\",\r\n \"code_3\": \"ISL\",\r\n \"codenum\": 352\r\n },\r\n {\r\n \"name\": \"Italy\",\r\n \"code\": \"IT\",\r\n \"code_3\": \"ITA\",\r\n \"codenum\": 380\r\n },\r\n {\r\n \"name\": \"Jersey\",\r\n \"code\": \"JE\",\r\n \"code_3\": \"JEY\",\r\n \"codenum\": 832\r\n },\r\n {\r\n \"name\": \"Jamaica\",\r\n \"code\": \"JM\",\r\n \"code_3\": \"JAM\",\r\n \"codenum\": 388\r\n },\r\n {\r\n \"name\": \"Jordan\",\r\n \"code\": \"JO\",\r\n \"code_3\": \"JOR\",\r\n \"codenum\": 400\r\n },\r\n {\r\n \"name\": \"Japan\",\r\n \"code\": \"JP\",\r\n \"code_3\": \"JPN\",\r\n \"codenum\": 392\r\n },\r\n {\r\n \"name\": \"Kenya\",\r\n \"code\": \"KE\",\r\n \"code_3\": \"KEN\",\r\n \"codenum\": 404\r\n },\r\n {\r\n \"name\": \"Kyrgyzstan\",\r\n \"code\": \"KG\",\r\n \"code_3\": \"KGZ\",\r\n \"codenum\": 417\r\n },\r\n {\r\n \"name\": \"Cambodia\",\r\n \"code\": \"KH\",\r\n \"code_3\": \"KHM\",\r\n \"codenum\": 116\r\n },\r\n {\r\n \"name\": \"Kiribati\",\r\n \"code\": \"KI\",\r\n \"code_3\": \"KIR\",\r\n \"codenum\": 296\r\n },\r\n {\r\n \"name\": \"Comoros\",\r\n \"code\": \"KM\",\r\n \"code_3\": \"COM\",\r\n \"codenum\": 174\r\n },\r\n {\r\n \"name\": \"Saint Kitts and Nevis\",\r\n \"code\": \"KN\",\r\n \"code_3\": \"KNA\",\r\n \"codenum\": 659\r\n },\r\n {\r\n \"name\": \"Korea, Democratic People's Republic of\",\r\n \"code\": \"KP\",\r\n \"code_3\": \"PRK\",\r\n \"codenum\": 408\r\n },\r\n {\r\n \"name\": \"Korea, Republic of\",\r\n \"code\": \"KR\",\r\n \"code_3\": \"KOR\",\r\n \"codenum\": 410\r\n },\r\n {\r\n \"name\": \"Kuwait\",\r\n \"code\": \"KW\",\r\n \"code_3\": \"KWT\",\r\n \"codenum\": 414\r\n },\r\n {\r\n \"name\": \"Cayman Islands\",\r\n \"code\": \"KY\",\r\n \"code_3\": \"CYM\",\r\n \"codenum\": 136\r\n },\r\n {\r\n \"name\": \"Kazakhstan\",\r\n \"code\": \"KZ\",\r\n \"code_3\": \"KAZ\",\r\n \"codenum\": 398\r\n },\r\n {\r\n \"name\": \"Lao People's Democratic Republic\",\r\n \"code\": \"LA\",\r\n \"code_3\": \"LAO\",\r\n \"codenum\": 418\r\n },\r\n {\r\n \"name\": \"Lebanon\",\r\n \"code\": \"LB\",\r\n \"code_3\": \"LBN\",\r\n \"codenum\": 422\r\n },\r\n {\r\n \"name\": \"Saint Lucia\",\r\n \"code\": \"LC\",\r\n \"code_3\": \"LCA\",\r\n \"codenum\": 662\r\n },\r\n {\r\n \"name\": \"Liechtenstein\",\r\n \"code\": \"LI\",\r\n \"code_3\": \"LIE\",\r\n \"codenum\": 438\r\n },\r\n {\r\n \"name\": \"Sri Lanka\",\r\n \"code\": \"LK\",\r\n \"code_3\": \"LKA\",\r\n \"codenum\": 144\r\n },\r\n {\r\n \"name\": \"Liberia\",\r\n \"code\": \"LR\",\r\n \"code_3\": \"LBR\",\r\n \"codenum\": 430\r\n },\r\n {\r\n \"name\": \"Lesotho\",\r\n \"code\": \"LS\",\r\n \"code_3\": \"LSO\",\r\n \"codenum\": 426\r\n },\r\n {\r\n \"name\": \"Lithuania\",\r\n \"code\": \"LT\",\r\n \"code_3\": \"LTU\",\r\n \"codenum\": 440\r\n },\r\n {\r\n \"name\": \"Luxembourg\",\r\n \"code\": \"LU\",\r\n \"code_3\": \"LUX\",\r\n \"codenum\": 442\r\n },\r\n {\r\n \"name\": \"Latvia\",\r\n \"code\": \"LV\",\r\n \"code_3\": \"LVA\",\r\n \"codenum\": 428\r\n },\r\n {\r\n \"name\": \"Libya\",\r\n \"code\": \"LY\",\r\n \"code_3\": \"LBY\",\r\n \"codenum\": 434\r\n },\r\n {\r\n \"name\": \"Morocco\",\r\n \"code\": \"MA\",\r\n \"code_3\": \"MAR\",\r\n \"codenum\": 504\r\n },\r\n {\r\n \"name\": \"Monaco\",\r\n \"code\": \"MC\",\r\n \"code_3\": \"MCO\",\r\n \"codenum\": 492\r\n },\r\n {\r\n \"name\": \"Moldova, Republic of\",\r\n \"code\": \"MD\",\r\n \"code_3\": \"MDA\",\r\n \"codenum\": 498\r\n },\r\n {\r\n \"name\": \"Montenegro\",\r\n \"code\": \"ME\",\r\n \"code_3\": \"MNE\",\r\n \"codenum\": 499\r\n },\r\n {\r\n \"name\": \"Saint Martin (French Part)\",\r\n \"code\": \"MF\",\r\n \"code_3\": \"MAF\",\r\n \"codenum\": 663\r\n },\r\n {\r\n \"name\": \"Madagascar\",\r\n \"code\": \"MG\",\r\n \"code_3\": \"MDG\",\r\n \"codenum\": 450\r\n },\r\n {\r\n \"name\": \"Marshall Islands\",\r\n \"code\": \"MH\",\r\n \"code_3\": \"MHL\",\r\n \"codenum\": 584\r\n },\r\n {\r\n \"name\": \"Macedonia, The Former Yugoslav Republic of\",\r\n \"code\": \"MK\",\r\n \"code_3\": \"MKD\",\r\n \"codenum\": 807\r\n },\r\n {\r\n \"name\": \"Mali\",\r\n \"code\": \"ML\",\r\n \"code_3\": \"MLI\",\r\n \"codenum\": 466\r\n },\r\n {\r\n \"name\": \"Myanmar\",\r\n \"code\": \"MM\",\r\n \"code_3\": \"MMR\",\r\n \"codenum\": 104\r\n },\r\n {\r\n \"name\": \"Mongolia\",\r\n \"code\": \"MN\",\r\n \"code_3\": \"MNG\",\r\n \"codenum\": 496\r\n },\r\n {\r\n \"name\": \"Macao\",\r\n \"code\": \"MO\",\r\n \"code_3\": \"MAC\",\r\n \"codenum\": 446\r\n },\r\n {\r\n \"name\": \"Northern Mariana Islands\",\r\n \"code\": \"MP\",\r\n \"code_3\": \"MNP\",\r\n \"codenum\": 580\r\n },\r\n {\r\n \"name\": \"Martinique\",\r\n \"code\": \"MQ\",\r\n \"code_3\": \"MTQ\",\r\n \"codenum\": 474\r\n },\r\n {\r\n \"name\": \"Mauritania\",\r\n \"code\": \"MR\",\r\n \"code_3\": \"MRT\",\r\n \"codenum\": 478\r\n },\r\n {\r\n \"name\": \"Montserrat\",\r\n \"code\": \"MS\",\r\n \"code_3\": \"MSR\",\r\n \"codenum\": 500\r\n },\r\n {\r\n \"name\": \"Malta\",\r\n \"code\": \"MT\",\r\n \"code_3\": \"MLT\",\r\n \"codenum\": 470\r\n },\r\n {\r\n \"name\": \"Mauritius\",\r\n \"code\": \"MU\",\r\n \"code_3\": \"MUS\",\r\n \"codenum\": 480\r\n },\r\n {\r\n \"name\": \"Maldives\",\r\n \"code\": \"MV\",\r\n \"code_3\": \"MDV\",\r\n \"codenum\": 462\r\n },\r\n {\r\n \"name\": \"Malawi\",\r\n \"code\": \"MW\",\r\n \"code_3\": \"MWI\",\r\n \"codenum\": 454\r\n },\r\n {\r\n \"name\": \"Mexico\",\r\n \"code\": \"MX\",\r\n \"code_3\": \"MEX\",\r\n \"codenum\": 484\r\n },\r\n {\r\n \"name\": \"Malaysia\",\r\n \"code\": \"MY\",\r\n \"code_3\": \"MYS\",\r\n \"codenum\": 458\r\n },\r\n {\r\n \"name\": \"Mozambique\",\r\n \"code\": \"MZ\",\r\n \"code_3\": \"MOZ\",\r\n \"codenum\": 508\r\n },\r\n {\r\n \"name\": \"Namibia\",\r\n \"code\": \"NA\",\r\n \"code_3\": \"NAM\",\r\n \"codenum\": 516\r\n },\r\n {\r\n \"name\": \"New Caledonia\",\r\n \"code\": \"NC\",\r\n \"code_3\": \"NCL\",\r\n \"codenum\": 540\r\n },\r\n {\r\n \"name\": \"Niger\",\r\n \"code\": \"NE\",\r\n \"code_3\": \"NER\",\r\n \"codenum\": 562\r\n },\r\n {\r\n \"name\": \"Norfolk Island\",\r\n \"code\": \"NF\",\r\n \"code_3\": \"NFK\",\r\n \"codenum\": 574\r\n },\r\n {\r\n \"name\": \"Nigeria\",\r\n \"code\": \"NG\",\r\n \"code_3\": \"NGA\",\r\n \"codenum\": 566\r\n },\r\n {\r\n \"name\": \"Nicaragua\",\r\n \"code\": \"NI\",\r\n \"code_3\": \"NIC\",\r\n \"codenum\": 558\r\n },\r\n {\r\n \"name\": \"Netherlands\",\r\n \"code\": \"NL\",\r\n \"code_3\": \"NLD\",\r\n \"codenum\": 528\r\n },\r\n {\r\n \"name\": \"Norway\",\r\n \"code\": \"NO\",\r\n \"code_3\": \"NOR\",\r\n \"codenum\": 578\r\n },\r\n {\r\n \"name\": \"Nepal\",\r\n \"code\": \"NP\",\r\n \"code_3\": \"NPL\",\r\n \"codenum\": 524\r\n },\r\n {\r\n \"name\": \"Nauru\",\r\n \"code\": \"NR\",\r\n \"code_3\": \"NRU\",\r\n \"codenum\": 520\r\n },\r\n {\r\n \"name\": \"Niue\",\r\n \"code\": \"NU\",\r\n \"code_3\": \"NIU\",\r\n \"codenum\": 570\r\n },\r\n {\r\n \"name\": \"New Zealand\",\r\n \"code\": \"NZ\",\r\n \"code_3\": \"NZL\",\r\n \"codenum\": 554\r\n },\r\n {\r\n \"name\": \"Oman\",\r\n \"code\": \"OM\",\r\n \"code_3\": \"OMN\",\r\n \"codenum\": 512\r\n },\r\n {\r\n \"name\": \"Panama\",\r\n \"code\": \"PA\",\r\n \"code_3\": \"PAN\",\r\n \"codenum\": 591\r\n },\r\n {\r\n \"name\": \"Peru\",\r\n \"code\": \"PE\",\r\n \"code_3\": \"PER\",\r\n \"codenum\": 604\r\n },\r\n {\r\n \"name\": \"French Polynesia\",\r\n \"code\": \"PF\",\r\n \"code_3\": \"PYF\",\r\n \"codenum\": 258\r\n },\r\n {\r\n \"name\": \"Papua New Guinea\",\r\n \"code\": \"PG\",\r\n \"code_3\": \"PNG\",\r\n \"codenum\": 598\r\n },\r\n {\r\n \"name\": \"Philippines\",\r\n \"code\": \"PH\",\r\n \"code_3\": \"PHL\",\r\n \"codenum\": 608\r\n },\r\n {\r\n \"name\": \"Pakistan\",\r\n \"code\": \"PK\",\r\n \"code_3\": \"PAK\",\r\n \"codenum\": 586\r\n },\r\n {\r\n \"name\": \"Poland\",\r\n \"code\": \"PL\",\r\n \"code_3\": \"POL\",\r\n \"codenum\": 616\r\n },\r\n {\r\n \"name\": \"Saint Pierre and Miquelon\",\r\n \"code\": \"PM\",\r\n \"code_3\": \"SPM\",\r\n \"codenum\": 666\r\n },\r\n {\r\n \"name\": \"Pitcairn\",\r\n \"code\": \"PN\",\r\n \"code_3\": \"PCN\",\r\n \"codenum\": 612\r\n },\r\n {\r\n \"name\": \"Puerto Rico\",\r\n \"code\": \"PR\",\r\n \"code_3\": \"PRI\",\r\n \"codenum\": 630\r\n },\r\n {\r\n \"name\": \"Palestine, State of\",\r\n \"code\": \"PS\",\r\n \"code_3\": \"PSE\",\r\n \"codenum\": 275\r\n },\r\n {\r\n \"name\": \"Portugal\",\r\n \"code\": \"PT\",\r\n \"code_3\": \"PRT\",\r\n \"codenum\": 620\r\n },\r\n {\r\n \"name\": \"Palau\",\r\n \"code\": \"PW\",\r\n \"code_3\": \"PLW\",\r\n \"codenum\": 585\r\n },\r\n {\r\n \"name\": \"Paraguay\",\r\n \"code\": \"PY\",\r\n \"code_3\": \"PRY\",\r\n \"codenum\": 600\r\n },\r\n {\r\n \"name\": \"Qatar\",\r\n \"code\": \"QA\",\r\n \"code_3\": \"QAT\",\r\n \"codenum\": 634\r\n },\r\n {\r\n \"name\": \"Reunion\",\r\n \"code\": \"RE\",\r\n \"code_3\": \"REU\",\r\n \"codenum\": 638\r\n },\r\n {\r\n \"name\": \"Romania\",\r\n \"code\": \"RO\",\r\n \"code_3\": \"ROU\",\r\n \"codenum\": 642\r\n },\r\n {\r\n \"name\": \"Serbia\",\r\n \"code\": \"RS\",\r\n \"code_3\": \"SRB\",\r\n \"codenum\": 688\r\n },\r\n {\r\n \"name\": \"Russian Federation\",\r\n \"code\": \"RU\",\r\n \"code_3\": \"RUS\",\r\n \"codenum\": 643\r\n },\r\n {\r\n \"name\": \"Rwanda\",\r\n \"code\": \"RW\",\r\n \"code_3\": \"RWA\",\r\n \"codenum\": 646\r\n },\r\n {\r\n \"name\": \"Saudi Arabia\",\r\n \"code\": \"SA\",\r\n \"code_3\": \"SAU\",\r\n \"codenum\": 682\r\n },\r\n {\r\n \"name\": \"Solomon Islands\",\r\n \"code\": \"SB\",\r\n \"code_3\": \"SLB\",\r\n \"codenum\": 90\r\n },\r\n {\r\n \"name\": \"Seychelles\",\r\n \"code\": \"SC\",\r\n \"code_3\": \"SYC\",\r\n \"codenum\": 690\r\n },\r\n {\r\n \"name\": \"Sudan\",\r\n \"code\": \"SD\",\r\n \"code_3\": \"SDN\",\r\n \"codenum\": 729\r\n },\r\n {\r\n \"name\": \"Sweden\",\r\n \"code\": \"SE\",\r\n \"code_3\": \"SWE\",\r\n \"codenum\": 752\r\n },\r\n {\r\n \"name\": \"Singapore\",\r\n \"code\": \"SG\",\r\n \"code_3\": \"SGP\",\r\n \"codenum\": 702\r\n },\r\n {\r\n \"name\": \"Saint Helena, Ascension and Tristan Da Cunha\",\r\n \"code\": \"SH\",\r\n \"code_3\": \"SHN\",\r\n \"codenum\": 654\r\n },\r\n {\r\n \"name\": \"Slovenia\",\r\n \"code\": \"SI\",\r\n \"code_3\": \"SVN\",\r\n \"codenum\": 705\r\n },\r\n {\r\n \"name\": \"Svalbard and Jan Mayen\",\r\n \"code\": \"SJ\",\r\n \"code_3\": \"SJM\",\r\n \"codenum\": 744\r\n },\r\n {\r\n \"name\": \"Slovakia\",\r\n \"code\": \"SK\",\r\n \"code_3\": \"SVK\",\r\n \"codenum\": 703\r\n },\r\n {\r\n \"name\": \"Sierra Leone\",\r\n \"code\": \"SL\",\r\n \"code_3\": \"SLE\",\r\n \"codenum\": 694\r\n },\r\n {\r\n \"name\": \"San Marino\",\r\n \"code\": \"SM\",\r\n \"code_3\": \"SMR\",\r\n \"codenum\": 674\r\n },\r\n {\r\n \"name\": \"Senegal\",\r\n \"code\": \"SN\",\r\n \"code_3\": \"SEN\",\r\n \"codenum\": 686\r\n },\r\n {\r\n \"name\": \"Somalia\",\r\n \"code\": \"SO\",\r\n \"code_3\": \"SOM\",\r\n \"codenum\": 706\r\n },\r\n {\r\n \"name\": \"Suriname\",\r\n \"code\": \"SR\",\r\n \"code_3\": \"SUR\",\r\n \"codenum\": 740\r\n },\r\n {\r\n \"name\": \"South Sudan\",\r\n \"code\": \"SS\",\r\n \"code_3\": \"SSD\",\r\n \"codenum\": 728\r\n },\r\n {\r\n \"name\": \"Sao Tome and Principe\",\r\n \"code\": \"ST\",\r\n \"code_3\": \"STP\",\r\n \"codenum\": 678\r\n },\r\n {\r\n \"name\": \"El Salvador\",\r\n \"code\": \"SV\",\r\n \"code_3\": \"SLV\",\r\n \"codenum\": 222\r\n },\r\n {\r\n \"name\": \"Sint Maarten (Dutch Part)\",\r\n \"code\": \"SX\",\r\n \"code_3\": \"SXM\",\r\n \"codenum\": 534\r\n },\r\n {\r\n \"name\": \"Syrian Arab Republic\",\r\n \"code\": \"SY\",\r\n \"code_3\": \"SYR\",\r\n \"codenum\": 760\r\n },\r\n {\r\n \"name\": \"Swaziland\",\r\n \"code\": \"SZ\",\r\n \"code_3\": \"SWZ\",\r\n \"codenum\": 748\r\n },\r\n {\r\n \"name\": \"Turks and Caicos Islands\",\r\n \"code\": \"TC\",\r\n \"code_3\": \"TCA\",\r\n \"codenum\": 796\r\n },\r\n {\r\n \"name\": \"Chad\",\r\n \"code\": \"TD\",\r\n \"code_3\": \"TCD\",\r\n \"codenum\": 148\r\n },\r\n {\r\n \"name\": \"French Southern Territories\",\r\n \"code\": \"TF\",\r\n \"code_3\": \"ATF\",\r\n \"codenum\": 260\r\n },\r\n {\r\n \"name\": \"Togo\",\r\n \"code\": \"TG\",\r\n \"code_3\": \"TGO\",\r\n \"codenum\": 768\r\n },\r\n {\r\n \"name\": \"Thailand\",\r\n \"code\": \"TH\",\r\n \"code_3\": \"THA\",\r\n \"codenum\": 764\r\n },\r\n {\r\n \"name\": \"Tajikistan\",\r\n \"code\": \"TJ\",\r\n \"code_3\": \"TJK\",\r\n \"codenum\": 762\r\n },\r\n {\r\n \"name\": \"Tokelau\",\r\n \"code\": \"TK\",\r\n \"code_3\": \"TKL\",\r\n \"codenum\": 772\r\n },\r\n {\r\n \"name\": \"Timor-Leste\",\r\n \"code\": \"TL\",\r\n \"code_3\": \"TLS\",\r\n \"codenum\": 626\r\n },\r\n {\r\n \"name\": \"Turkmenistan\",\r\n \"code\": \"TM\",\r\n \"code_3\": \"TKM\",\r\n \"codenum\": 795\r\n },\r\n {\r\n \"name\": \"Tunisia\",\r\n \"code\": \"TN\",\r\n \"code_3\": \"TUN\",\r\n \"codenum\": 788\r\n },\r\n {\r\n \"name\": \"Tonga\",\r\n \"code\": \"TO\",\r\n \"code_3\": \"TON\",\r\n \"codenum\": 776\r\n },\r\n {\r\n \"name\": \"Turkey\",\r\n \"code\": \"TR\",\r\n \"code_3\": \"TUR\",\r\n \"codenum\": 792\r\n },\r\n {\r\n \"name\": \"Trinidad and Tobago\",\r\n \"code\": \"TT\",\r\n \"code_3\": \"TTO\",\r\n \"codenum\": 780\r\n },\r\n {\r\n \"name\": \"Tuvalu\",\r\n \"code\": \"TV\",\r\n \"code_3\": \"TUV\",\r\n \"codenum\": 798\r\n },\r\n {\r\n \"name\": \"Taiwan, Province of China\",\r\n \"code\": \"TW\",\r\n \"code_3\": \"TWN\",\r\n \"codenum\": 158\r\n },\r\n {\r\n \"name\": \"Tanzania, United Republic of\",\r\n \"code\": \"TZ\",\r\n \"code_3\": \"TZA\",\r\n \"codenum\": 834\r\n },\r\n {\r\n \"name\": \"Ukraine\",\r\n \"code\": \"UA\",\r\n \"code_3\": \"UKR\",\r\n \"codenum\": 804\r\n },\r\n {\r\n \"name\": \"Uganda\",\r\n \"code\": \"UG\",\r\n \"code_3\": \"UGA\",\r\n \"codenum\": 800\r\n },\r\n {\r\n \"name\": \"United Arab Emirates\",\r\n \"code\": \"AE\",\r\n \"code_3\": \"ARE\",\r\n \"codenum\": 784\r\n },\r\n {\r\n \"name\": \"United Kingdom\",\r\n \"code\": \"GB\",\r\n \"code_3\": \"GBR\",\r\n \"codenum\": 826\r\n },\r\n {\r\n \"name\": \"United States\",\r\n \"code\": \"US\",\r\n \"code_3\": \"USA\",\r\n \"codenum\": 840\r\n },\r\n {\r\n \"name\": \"United States Minor Outlying Islands\",\r\n \"code\": \"UM\",\r\n \"code_3\": \"UMI\",\r\n \"codenum\": 581\r\n },\r\n {\r\n \"name\": \"Uruguay\",\r\n \"code\": \"UY\",\r\n \"code_3\": \"URY\",\r\n \"codenum\": 858\r\n },\r\n {\r\n \"name\": \"Uzbekistan\",\r\n \"code\": \"UZ\",\r\n \"code_3\": \"UZB\",\r\n \"codenum\": 860\r\n },\r\n {\r\n \"name\": \"Holy See\",\r\n \"code\": \"VA\",\r\n \"code_3\": \"VAT\",\r\n \"codenum\": 336\r\n },\r\n {\r\n \"name\": \"Saint Vincent and The Grenadines\",\r\n \"code\": \"VC\",\r\n \"code_3\": \"VCT\",\r\n \"codenum\": 670\r\n },\r\n {\r\n \"name\": \"Venezuela, Bolivarian Republic of\",\r\n \"code\": \"VE\",\r\n \"code_3\": \"VEN\",\r\n \"codenum\": 862\r\n },\r\n {\r\n \"name\": \"Virgin Islands, British\",\r\n \"code\": \"VG\",\r\n \"code_3\": \"VGB\",\r\n \"codenum\": 92\r\n },\r\n {\r\n \"name\": \"Virgin Islands, U.S.\",\r\n \"code\": \"VI\",\r\n \"code_3\": \"VIR\",\r\n \"codenum\": 850\r\n },\r\n {\r\n \"name\": \"Viet Nam\",\r\n \"code\": \"VN\",\r\n \"code_3\": \"VNM\",\r\n \"codenum\": 704\r\n },\r\n {\r\n \"name\": \"Vanuatu\",\r\n \"code\": \"VU\",\r\n \"code_3\": \"VUT\",\r\n \"codenum\": 548\r\n },\r\n {\r\n \"name\": \"Wallis and Futuna\",\r\n \"code\": \"WF\",\r\n \"code_3\": \"WLF\",\r\n \"codenum\": 876\r\n },\r\n {\r\n \"name\": \"Samoa\",\r\n \"code\": \"WS\",\r\n \"code_3\": \"WSM\",\r\n \"codenum\": 882\r\n },\r\n {\r\n \"name\": \"Yemen\",\r\n \"code\": \"YE\",\r\n \"code_3\": \"YEM\",\r\n \"codenum\": 887\r\n },\r\n {\r\n \"name\": \"Mayotte\",\r\n \"code\": \"YT\",\r\n \"code_3\": \"MYT\",\r\n \"codenum\": 175\r\n },\r\n {\r\n \"name\": \"South Africa\",\r\n \"code\": \"ZA\",\r\n \"code_3\": \"ZAF\",\r\n \"codenum\": 710\r\n },\r\n {\r\n \"name\": \"Zambia\",\r\n \"code\": \"ZM\",\r\n \"code_3\": \"ZMB\",\r\n \"codenum\": 894\r\n },\r\n {\r\n \"name\": \"Zimbabwe\",\r\n \"code\": \"ZW\",\r\n \"code_3\": \"ZWE\",\r\n \"codenum\": 716\r\n }\r\n ]\r\n}","import React, { Component } from 'react';\r\n\r\nimport CountryList from '../../../data/countrylist';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { Modal } from 'reactstrap';\r\n\r\nimport './CampaignInfo.css';\r\n\r\nclass CampaignInfo extends Component {\r\n\r\n state = {\r\n expandCountries: false,\r\n openDescriptionModal: false\r\n }\r\n\r\n getCountryList = () => {\r\n // Get the entire list of countries from the endpoint\r\n // Also need to determine if we're on the last country in the array, if we are, we don't put a comma\r\n let list = '';\r\n let arrayLen = this.props.data.allowed_countries.length;\r\n let count = 0;\r\n let separator = ', ';\r\n this.props.data.allowed_countries.map(country_code => {\r\n count = count + 1;\r\n if (count === arrayLen) {\r\n separator = '';\r\n }\r\n return CountryList.countries.filter(country => (country.code === country_code))[0] &&\r\n (list = list + CountryList.countries.filter(country => (country.code === country_code))[0].name + separator);\r\n });\r\n return list;\r\n }\r\n\r\n expandCountries = () => {\r\n if (this._isMounted) {\r\n this.setState({\r\n expandCountries: !this.state.expandCountries\r\n });\r\n }\r\n }\r\n\r\n getOSlist = () => {\r\n\r\n const { details, os_list } = this.props.data;\r\n let rows = [];\r\n\r\n if (details.os_filtering === 'Y') {\r\n os_list.map(os => {\r\n let displayedOS;\r\n if (os === 'iOS') {\r\n displayedOS = ;\r\n } else if (os === 'Android') {\r\n displayedOS = 'Android';\r\n }\r\n return rows.push({displayedOS} {os})\r\n });\r\n } else {\r\n if (details.desktop_traffic !== 'Y') {\r\n rows = 'All mobile operating system allowed';\r\n } else {\r\n rows = 'All device operating system allowed';\r\n }\r\n }\r\n return rows;\r\n }\r\n\r\n toggleDescriptionModal = () => {\r\n this.setState({ openDescriptionModal: !this.state.openDescriptionModal });\r\n }\r\n\r\n render() {\r\n\r\n const { allowed_countries, details } = this.props.data;\r\n\r\n // The classes for the country section will change depending on whether it's expanded or not.\r\n let countryClasses = 'position-relative country-container';\r\n let countryOverlayClasses = 'position-absolute text-center country-overlay';\r\n let countryCountIsBig = 5;\r\n\r\n if (this.state.expandCountries) {\r\n countryClasses = 'position-relative country-container open';\r\n countryOverlayClasses = 'position-absolute text-center country-overlay open';\r\n } else {\r\n if (allowed_countries.length > countryCountIsBig) {\r\n countryClasses = 'position-relative country-container closed';\r\n } else {\r\n countryClasses = 'position-relative country-container closed short';\r\n }\r\n countryOverlayClasses = 'position-absolute text-center country-overlay closed';\r\n }\r\n\r\n return (\r\n \r\n \r\n
\r\n
{this.props.data.details.name}
\r\n

\r\n

\r\n
\r\n
\r\n
\r\n Campaign Information\r\n
\r\n
\r\n
\r\n \"Landing\r\n
\r\n
\r\n
{details.name}
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* props.allowedCountries*/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Status\r\n {details.status === 'Cancelled' ?\r\n {details.status}\r\n :\r\n {details.status}\r\n } \r\n
Countries Allowed\r\n
\r\n {allowed_countries.length > countryCountIsBig && (\r\n
\r\n \r\n
\r\n )}\r\n {details.geo_filtering === 'Y' ?\r\n this.getCountryList()\r\n :\r\n Traffic allowed from all countries\r\n }\r\n
\r\n
Devices {this.getOSlist()}
Expiry Date {details.expiry_date}
Tracking Type\r\n {(details.tracking_type === 'S' || details.tracking_type === 'G') ?\r\n Server-to-server tracking\r\n : details.tracking_type === 'L' ?\r\n Pixel tracking\r\n : details.tracking_type === 'M' ?\r\n MaxBounty Tag\r\n : details.tracking_type === 'I'?\r\n iFrame tracking\r\n : details.tracking_type === 'A' ?\r\n API tracking\r\n :\r\n Unknown\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default CampaignInfo;","import React from 'react';\r\n\r\nimport integration2 from '../../../../assets/images/integration-2.png';\r\nimport integration3 from '../../../../assets/images/integration-3.png';\r\n\r\nimport './IntegrationModal.css';\r\n\r\nconst integrationModal = (props) => {\r\n\r\n return (\r\n
\r\n
\r\n
Using your MaxBounty Postback
\r\n
\r\n
\r\n
\r\n
Step 1
\r\n

When a potential customer clicks on one of our affiliate links,\r\n they are sent to your landing page along with some additional information int the URL. The key\r\n piece of the information is the clickID.

\r\n
\r\n
{\"http://www.your-landing-page.com?\"}{\"clickid={clickID}\"}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Step 2
\r\n

As the customer travels trhough your sales funnel, you must keep track of this clickID. Ask your developer to extract this information from the URL parameter and pass is along to subsequent pages. This can be done via URL parameters, cookies, or HTML5 local storage

\r\n
\r\n \"integration-2\"/\r\n
\r\n
\r\n
\r\n
\r\n
Step 3
\r\n

When your customer arrives on your \"Thank You\" page, they've reached the end of the conversion process. It is at this point that you need to grab the clickID, place it in the postback URL, and inform us of the conversion.

\r\n
\r\n \"integration-3\"/\r\n
\r\n

Here is the anatomy of your postback URL:

\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
ParameterWhat to pass to MaxBounty
mbrThe rate name for the payout (optional, but should be used if you have multiple rates)
mbdAn identifier from your system, such as a lead_id, order_id, etc. (optional)
mbiThe clickID we originally sent you (required)
mbsThe sale amount (required for revshare rates)
\r\n
\r\n \r\n\r\n

The \"mbd\" and \"mbs\" parameters should be filled with data from your system, while the \"mbi\" parameter must be the same clickID we originally sent you. Your final postback URL may look similar to this:

\r\n
\r\n
https:/www.{props.trackingDomain}.com/trk/lead?mbr=over_thirty&mbd=16hh8462h13&mbi=1902191751&mbs=25.00
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
Step 4
\r\n

The final part of the process is actually making a request to the postback URL. Currently, there are 3 ways of doing so. Your advertiser manager can help you choose the best method for your needs.

\r\n

**The following are just examples. Use the \"Get Code\" link to get your customized code.**

\r\n\r\n
\r\n
\r\n
1
\r\n
\r\n

\r\n Image Pixel
\r\n Place an image pixel somewhere on your thank you page.\r\n This will notify us that the conversion is complete.\r\n

\r\n
\r\n
<img src={`https://www.${props.trackingDomain}.com/trk/lead?mbr=18&mbd=137&mbi=1902191751&mbs=25.00`} width=0 height=0>
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
2
\r\n
\r\n

\r\n iFrame
\r\n Load the postback URL in an iFrame on your \"Thank You\" page.\r\n

\r\n
\r\n
<iframe src={`\"https://www.${props.trackingDomain}.com/trk/lead?mbr=18&mbd=137&mbi=1902191751&mbs=25.00\"`} width=0 height=0 frameborder=0></iframe>\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
2
\r\n
\r\n

\r\n Server
\r\n Store the postback URL in your database and make HTTP requests in a batch process at a later time.\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default integrationModal;","import React from 'react';\r\n\r\nconst integrationPixel = (props) => {\r\n let url;\r\n\r\n if (props.trackingType === 'L') {\r\n url = `;`;\r\n } else if (props.trackingType === 'I') {\r\n url = `;`;\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
Using your MaxBounty Postback
\r\n
\r\n
\r\n
\r\n
Step 1
\r\n

When a potential customer clicks on one of our affiliate links, we drop a cookie on their browser and then they are sent to your landing page.

\r\n
\r\n
\r\n
\r\n
Step 2
\r\n

When your customer arrives on your \"Thank You\" page, you must simply place the postback code on that thank you page to inform us of the conversion.

\r\n

You can find your customized postback code by clicking the \"Get Code\" link for each rate.

\r\n

The following is just an example of how your code may look.

\r\n
\r\n
\r\n                            <html>
\r\n   <head>
\r\n   </head>
\r\n   <body>\r\n

  ...Your thank you page code...

\r\n   \r\n {url}\r\n

\r\n   <body>
\r\n </html>\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default integrationPixel;","import React, { useState, useEffect } from 'react';\r\nimport { Copy, ChevronRight, ChevronDown } from 'react-feather';\r\nimport { CopyToClipboard } from 'react-copy-to-clipboard';\r\n\r\nimport './IntegrationMBTag.css';\r\n\r\nconst IntegrationMBTag = (props) => {\r\n\r\n let [rateNameInfo, updateRateNameInfo] = useState(false);\r\n let [merchantDataInfo, updateMerchantDataInfo] = useState(false);\r\n let [prepopInfo, updatePrepopInfo] = useState(false);\r\n let [saleAmountInfo, updateSaleAmountInfo] = useState(false);\r\n let [testingInfo, updateTestingInfo] = useState(false);\r\n let [exampleInfo, updateExampleInfo] = useState(false);\r\n\r\n let pixel =`\r\n`\r\n\r\n let functionCall = \r\n`\r\n\r\n`\r\n\r\n return ( \r\n
\r\n
\r\n
Your MaxBounty Tag
\r\n
\r\n
\r\n
Add the following code to the <head> section of your website's HTML. This is your MB Tag. Please note that it must be on every page of your site.
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
{pixel}
\r\n
\r\n
\r\n To track a lead, you can simply call our track event by placing your postback code in the <head> section of your page where the conversion should occur. The postback code must be below your MB Tag.\r\n



\r\n The following are EXAMPLES ONLY. To get your custom postback code, click the \"Get Code\" link for the appropriate rate.\r\n
\r\n This will trigger a lead upon page load.\r\n
\r\n
<script>mbc('track')</script>
\r\n
\r\n
\r\n You can also track a lead dynamically, for example with the click of a button.\r\n
\r\n This will trigger a lead upon a button click.\r\n
\r\n
{functionCall}
\r\n
\r\n
\r\n Your conversions will now begin tracking. Please reach out to your advertiser manager to test your integration.



\r\n The MB Tag has several advanced features that are simple to implement, click on a topic below to learn more.\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n { rateNameInfo &&\r\n
\r\n
\r\n The track event has an optional second argument that can receive various pieces of information. The argument must be a javascript object, and it can receive several parameters. If you are sending multiple parameters, they should be separated with a comma.



\r\n For example, if you have multiple rates, you can specify that a conversion will be paying one or the other with the mbr parameter, and setting it to one of your rate names.\r\n
\r\n
\r\n {props.rates.length < 1 ? \r\n
<script>mbc('track', {mbr:'example_rate'})</script>
\r\n :\r\n props.rates.map((rate, i) => (rate.status === 'Active' &&\r\n
\r\n
{rate.description}
\r\n
    <script>mbc('track', {mbr:'{rate.name ? rate.name : 'example_rate'}'})</script>
\r\n
\r\n ))\r\n } \r\n
\r\n
\r\n To ensure conversions pay the appropriate payout, please use the \"Get Code\" buttons beside your rates to copy your postback code.\r\n
\r\n
\r\n }\r\n
\r\n\r\n
\r\n \r\n { saleAmountInfo &&\r\n
\r\n
\r\n The track event has an optional second argument that can receive various pieces of information. The argument must be a javascript object, and it can receive several parameters. If you are sending multiple parameters, they should be separated with a comma.



\r\n For example, if your rate pays a percentage of sale, you can pass the sale amount using the mbs parameter. In the example below, a sale amount of $100 is being passed. Make sure to only include numeric values.\r\n
\r\n
\r\n {\r\n props.rates.findIndex(rate => rate.rate_type === 'Revshare') >= 0 ?\r\n
<script>mbc('track', {mbr:'{props.rates.find(rate => rate.rate_type === 'Revshare').name}', mbs:'100'})</script>
\r\n :\r\n
<script>mbc('track', {mbs:100})</script>
\r\n }\r\n
\r\n
\r\n }\r\n
\r\n\r\n
\r\n \r\n { merchantDataInfo &&\r\n
\r\n
\r\n The track event has an optional second argument that can receive various pieces of information. The argument must be a javascript object, and it can receive several parameters. If you are sending multiple parameters, they should be separated with a comma.



\r\n For example, if the conversion in your system creates an order ID of 123456, you can specify that a conversion came from this ID with the mbd parameter.\r\n
\r\n
\r\n You can pass MaxBounty an ID from your system along with each conversion. This will attribute a conversion to a particular order ID from your system, which can help identify the source of conversions.\r\n
\r\n
\r\n
<script>mbc('track', {mbd:'123456'})</script>
\r\n
\r\n
\r\n This will allow us to pinpoint exactly which conversion relates to a particular order from your system.\r\n
\r\n
\r\n }\r\n
\r\n\r\n
\r\n \r\n { exampleInfo &&\r\n
\r\n
\r\n The following is an example of the track event being called with three parameters in the second argument: a rate called \"payout\", an order ID of \"123456\", and a sale amount of $100.\r\n
\r\n
\r\n
<script>mbc('track', {mbr:'payout', mbd:'123456', mbs:100})</script>
\r\n
\r\n
\r\n }\r\n
\r\n\r\n
\r\n \r\n { prepopInfo &&\r\n
\r\n
\r\n The MB Tag has built-in functionality to enable prepop on your landing page forms. You can simply add the mb-prepop attribute to your form fields, and set it to an appropriate name. Usually, the value of the \"name\" field would be a good choice.



\r\n For example, if you have a field for a user's first name, you can add prepop functionality like so:\r\n
\r\n
\r\n
<input type=\"text\" name=\"first_name\" mb-prepop=\"first_name\"/>
\r\n
\r\n
\r\n Once you have set up mb-prepop attributes on your fields, please let your advertiser manager know their values, and they will update your campaign so that our affiliates will know what data to forward to your landing page. \r\n
\r\n
\r\n }\r\n
\r\n\r\n
\r\n \r\n { testingInfo &&\r\n
\r\n
\r\n Your advertiser manager will be in contact with you once your campaign is ready to start testing. Here are your testing links:\r\n
\r\n
\r\n {props.landingPages.length < 1 ? \r\n
No landing pages have been created. Please ask your advertiser manager to help you create one.
\r\n :\r\n props.landingPages.map((lp, i) => (\r\n
\r\n
{lp.name} {lp.default_lp === 'Y' && '(Default)'}
\r\n
    {lp.test_link}
\r\n
\r\n ))\r\n } \r\n
\r\n
\r\n }\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n );\r\n}\r\n \r\nexport default IntegrationMBTag;","import React, { Component } from 'react';\r\n\r\nimport { Modal } from 'reactstrap';\r\nimport { Copy, HelpCircle } from 'react-feather';\r\nimport { CopyToClipboard } from 'react-copy-to-clipboard';\r\n\r\nimport IntegrationModal from './IntegrationModal/IntegrationModal';\r\nimport IntegrationPixel from './IntegrationPixel/IntegrationPixel';\r\nimport IntegrationMBTag from './IntegrationMBTag/IntegrationMBTag';\r\n\r\nclass CampaignRates extends Component {\r\n\r\n state = {\r\n openPostbackModal: false,\r\n openIntegrationModal: false,\r\n rateInModal: {} // Holds rates whose postback is clicked\r\n }\r\n\r\n togglePostbackModal = (rate) => {\r\n this.setState({ openPostbackModal: !this.state.openPostbackModal, rateInModal: rate });\r\n }\r\n\r\n toggleIntegrationModal = () => {\r\n this.setState({ openIntegrationModal: !this.state.openIntegrationModal });\r\n }\r\n\r\n getModalType = () => {\r\n if (this.props.trackingType === 'S' || this.props.trackingType === 'G') {\r\n return ;\r\n } else if (this.props.trackingType === 'L' || this.props.trackingType === 'I') {\r\n return ;\r\n } else if (this.props.trackingType === 'M'){\r\n return \r\n }\r\n }\r\n\r\n getCodeModalType = () => {\r\n\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n\r\n \r\n
\r\n
Postback
\r\n {this.props.trackingType === 'M' &&\r\n
Add the following code to your website's HTML anywhere after your MaxBounty tag.
\r\n } \r\n
\r\n
{this.state.rateInModal.postback}
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {this.getModalType()}\r\n \r\n
\r\n
\r\n
Rates
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.props.rates.length < 1 ?\r\n \r\n \r\n :\r\n this.props.rates.map((rate, i) => (rate.status === 'Active' &&\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n }\r\n \r\n
DescriptionNameTypeRatePostback
No rates found.
{rate.description}{rate.name}{rate.rate_type}{rate.rate_type === 'Fixed' ? `$${parseFloat(rate.rate).toFixed(2)}`: `${rate.rate}%` }
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default CampaignRates;\r\n","import React from 'react';\r\n\r\nimport { CheckCircle } from 'react-feather';\r\n\r\nconst landingPages = (props) => (\r\n
\r\n
Landing Pages
\r\n
\r\n
\r\n \r\n \r\n {props.landingPages.length === 0 ?\r\n \r\n \r\n :\r\n props.landingPages.map(lPage => (\r\n \r\n \r\n \r\n \r\n ))\r\n }\r\n \r\n
No landing pages found.
{lPage.default_flag === 'Y' ? : null}\r\n {lPage.name}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n);\r\n\r\nexport default landingPages;","import React, { Component } from 'react';\r\nimport { Modal } from 'reactstrap';\r\n\r\nclass Creatives extends Component {\r\n\r\n state = {\r\n showCreativeModal: false,\r\n selectedCreativeThumbnail: ''\r\n }\r\n\r\n toggleCreativeModal = (thumbnail) => {\r\n this.setState({ showCreativeModal: !this.state.showCreativeModal, selectedCreativeThumbnail: thumbnail });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n
\r\n \"creative\r\n
\r\n
\r\n
\r\n
Creatives
\r\n
\r\n
\r\n \r\n \r\n {this.props.creatives.length === 0 ? :\r\n this.props.creatives.map(creative =>\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
No creatives.
{creative.type}_{creative.creative_id} ({creative.width}x{creative.height})\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Creatives;","import React, { Component } from 'react';\r\n\r\nimport { Link } from 'react-router-dom';\r\nimport moment from 'moment';\r\n\r\nclass TodayStats extends Component {\r\n\r\n state = {\r\n stats: {},\r\n dataLoaded: false\r\n }\r\n\r\n componentDidMount() {\r\n\r\n const authToken = localStorage.getItem('mb-auth-token');\r\n\r\n fetch(`${process.env.REACT_APP_API_URL}/advertiserStats/todayStats/${this.props.campaignId}`, {\r\n method: 'GET',\r\n credentials: 'include',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'x-app-token': authToken\r\n }\r\n })\r\n .then(res => res.json())\r\n .then(result => {\r\n \r\n if (result[\"success\"] === true) {\r\n this.setState({ stats: result.stats, dataLoaded: true });\r\n } else if (result[\"success\"] === false) {\r\n this.setState({ dataLoaded: true });\r\n } else {\r\n this.setState({ dataLoaded: true });\r\n this.props.showSystemMessage('error', 'An internal error occurred while fetching stats.');\r\n }\r\n })\r\n .catch(error => this.props.showSystemMessage('error', error.message));\r\n }\r\n\r\n render() {\r\n const today = moment().format('YYYY-MM-DD');\r\n return (\r\n
\r\n
\r\n
Today's Stats
\r\n\r\n
Detailed Report
\r\n\r\n
\r\n {this.state.dataLoaded &&\r\n
\r\n
\r\n

\r\n {this.state.stats ? this.state.stats.total_clicks : 0}

\r\n Clicks\r\n
\r\n
\r\n

{this.state.stats ? this.state.stats.total_leads : 0}

\r\n Leads\r\n
\r\n
\r\n

$\r\n {this.state.stats ? (this.state.stats.total_sales).toFixed(2) : 0}\r\n \r\n

\r\n Sales\r\n
\r\n
\r\n

$\r\n {this.state.stats ? (this.state.stats.total_cost).toFixed(2) : 0}

\r\n Cost\r\n
\r\n
}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default TodayStats;","import React, { Component } from 'react';\r\n\r\nimport { Link } from 'react-router-dom';\r\nimport moment from 'moment';\r\n\r\nclass MostRecentLeads extends Component {\r\n\r\n state = {\r\n recentLeads: [],\r\n dataLoaded: false\r\n }\r\n\r\n componentDidMount() {\r\n this.getMostRecentLeads();\r\n }\r\n\r\n getMostRecentLeads = () => {\r\n const authToken = localStorage.getItem('mb-auth-token');\r\n\r\n fetch(`${process.env.REACT_APP_API_URL}/advertiserStats/recentleads/${this.props.campaignId}`, {\r\n method: 'GET',\r\n credentials: 'include',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'x-app-token': authToken\r\n }\r\n })\r\n .then(res => res.json())\r\n .then(result => {\r\n if (result[\"success\"] === true) {\r\n this.setState({ recentLeads: result.recent_leads, dataLoaded: true });\r\n } else if (result[\"success\"] === false) {\r\n this.setState({ dataLoaded: true });\r\n } else {\r\n this.props.showSystemMessage('error', 'An internal error occurred while fetching recent leads.');\r\n this.setState({ dataLoaded: true });\r\n }\r\n })\r\n .catch(error => {\r\n this.props.showSystemMessage('error', error.message);\r\n });\r\n }\r\n\r\n getStatus = (statusLetter, reverseDate) => {\r\n switch (statusLetter) {\r\n case 'P':\r\n return 'Payable';\r\n case 'W':\r\n return 'Waiting';\r\n case 'X':\r\n return 'Cancelled';\r\n case 'Z':\r\n return 'Processing';\r\n case 'R':\r\n reverseDate = moment(reverseDate).format('YYYY/MM/DD');\r\n return `Reversed on ${reverseDate}`;\r\n default:\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n
Most Recent Leads
\r\n
\r\n Leads Report\r\n
\r\n
\r\n {this.state.dataLoaded &&\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.recentLeads.length <= 0\r\n ?\r\n \r\n \r\n \r\n \r\n \r\n \r\n :\r\n this.state.recentLeads.map(lead =>\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n \r\n
Date/TimeSalesCPAStatus
No recent leads.   
{moment(lead.lead_date).format(\"YYYY/MM/DD HH:mm:ss\")}${lead.amount}${lead.rate}{this.getStatus(lead.status, lead.reversal_date)}
\r\n
\r\n
}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default MostRecentLeads;","import React, { Component } from 'react';\r\n\r\nimport CampaignInfo from './CampaignInfo/CampaignInfo';\r\nimport CampaignRates from './CampaignRates/CampaignRates';\r\nimport LandingPages from './LandingPages/LandingPages';\r\nimport Creatives from './Creatives/Creatives';\r\nimport TodayStats from './TodayStats/TodayStats';\r\nimport MostRecentLeads from './MostRecentLeads/MostRecentLeads';\r\nimport Loading from '../../component/UI/Loading/Loading';\r\n\r\nimport './CampaignPage.css';\r\n\r\nclass CampaignPage extends Component {\r\n\r\n _isMounted = false;\r\n\r\n state = {\r\n dataLoaded: false,\r\n campaignData: '',\r\n todayStats: {}\r\n }\r\n\r\n componentDidMount() {\r\n this._isMounted = true;\r\n this.getCampaignData(this.props);\r\n }\r\n\r\n getCampaignData = () => {\r\n const authToken = localStorage.getItem('mb-auth-token');\r\n const urlParams = this.props.campaign_id;\r\n\r\n fetch(`${process.env.REACT_APP_API_URL}/campaign/${urlParams}`, {\r\n method: 'GET',\r\n credentials: 'include',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'x-app-token': authToken\r\n }\r\n })\r\n .then(res => {\r\n return res.json()\r\n })\r\n .then(result => {\r\n if (result[\"success\"] === true) {\r\n if (this._isMounted) {\r\n this.setState({ campaignData: result, dataLoaded: true });\r\n }\r\n } else if (result[\"success\"] === false) {\r\n if (this._isMounted) {\r\n this.setState({ dataLoaded: true });\r\n }\r\n } else {\r\n this.props.showSystemMessage('error', result.errors.message);\r\n if (this._isMounted) {\r\n this.setState({\r\n dataLoaded: true\r\n });\r\n }\r\n }\r\n })\r\n .catch(error => {\r\n this.props.showSystemMessage('error', error.message);\r\n if (this._isMounted) {\r\n this.setState({\r\n dataLoaded: true\r\n });\r\n }\r\n });\r\n }\r\n\r\n componentWillUnmount() {\r\n this._isMounted = false;\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n {this.state.dataLoaded && this.state.campaignData ?\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n : this.state.dataLoaded && !this.state.campaignData ?\r\n // This campaign doesn't exist\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Error\r\n
\r\n
\r\n This campaign doesn't exist.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n : !this.state.dataLoaded &&\r\n //Data hasn't been loaded yet\r\n\r\n
\r\n \r\n
\r\n }\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default CampaignPage;","import React from 'react';\r\n\r\nimport './UserDetails.css';\r\n\r\nconst userDetails = (props) => (\r\n
\r\n
{props.advertiser.name}
\r\n
@{props.advertiser.company} | Advertiser ID# {props.advertiser.advertiser_id}
\r\n
\r\n);\r\n\r\nexport default userDetails;\r\n\r\n","import React, { Component } from 'react';\r\nimport Loading from '../Loading/Loading';\r\n\r\nimport dotPattern from '../../../assets/images/dot-pattern.png';\r\nimport loginVideo from '../../../assets/images/login.mp4';\r\n\r\nimport './LoadingPage.css'\r\n\r\nclass LoadingPage extends Component {\r\n state = { }\r\n render() { \r\n return ( \r\n \r\n\r\n
\r\n\r\n {/* Background Video */}\r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n \r\nexport default LoadingPage;","import React, { Component } from 'react';\r\nimport { CSSTransition } from 'react-transition-group';\r\nimport { X } from 'react-feather';\r\n\r\nimport './SystemMessage.css';\r\n\r\nclass SystemMessage extends Component {\r\n\r\n state = {\r\n in: false\r\n }\r\n\r\n componentDidMount() {\r\n this.setState({\r\n in: true\r\n }) \r\n }\r\n\r\n componentWillUnmount(){\r\n this.setState({\r\n in: false \r\n })\r\n }\r\n\r\n render() { \r\n\r\n let classes = \"system-message d-flex align-items-center\";\r\n\r\n if(this.props.type === 'success'){\r\n classes = classes + ' success';\r\n }else if (this.props.type === 'error'){\r\n classes = classes + ' error';\r\n }\r\n\r\n return (\r\n \r\n
\r\n
\r\n
\r\n
{this.props.children}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n }\r\n}\r\n \r\nexport default SystemMessage;","import React, { Component } from 'react';\r\n\r\nimport { withRouter } from 'react-router-dom';\r\nimport moment from 'moment';\r\nimport { ExternalLink } from 'react-feather';\r\nimport queryString from 'query-string';\r\n\r\nimport Pagination from '../../component/UI/Pagination/Pagination';\r\nimport { verifyToken, clearLocalStorageAndReload } from '../../assets/JS/functions';\r\nimport './Invoices.css';\r\n\r\nclass Invoices extends Component {\r\n\r\n state = {\r\n invoices: [],\r\n invoicesTotal: 0,\r\n dataLoaded: false,\r\n page: 1,\r\n totalPages: 1,\r\n resultsPerPage: 50\r\n }\r\n\r\n componentDidMount() {\r\n let urlParams = queryString.parse(this.props.location.search);\r\n\r\n let page;\r\n\r\n if (urlParams.page) {\r\n page = parseInt(urlParams.page);\r\n } else {\r\n page = 1;\r\n }\r\n\r\n let startRow = (page - 1) * this.state.resultsPerPage;\r\n let endRow = (page * this.state.resultsPerPage) - 1;\r\n\r\n this.setState({\r\n dataLoaded: true,\r\n page: page,\r\n startRow: startRow,\r\n endRow: endRow\r\n }, () => {\r\n this.fetchInvoices();\r\n });\r\n }\r\n\r\n fetchInvoices = () => {\r\n\r\n const authtoken = localStorage.getItem('mb-auth-token');\r\n verifyToken().then(result => {\r\n if (result === true) {\r\n return fetch(`${process.env.REACT_APP_API_URL}/invoices`, {\r\n method: 'GET',\r\n credentials: 'include',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'x-app-token': authtoken\r\n }\r\n })\r\n .then(res => res.json())\r\n .then(result => {\r\n if (result[\"success\"] === true) {\r\n this.setState({ invoices: result.invoices, invoicesTotal: result.total, dataLoaded: true, totalPages: result.total_pages });\r\n } else if (result[\"success\"] === false) {\r\n if (result.code !== 401) {\r\n this.props.showSystemMessage(\"error\", \"There was an error fetching invoices. Please try again.\");\r\n }\r\n } else {\r\n this.props.showSystemMessage(\"error\", result.errors.message);\r\n }\r\n });\r\n } else {\r\n clearLocalStorageAndReload();\r\n }\r\n }).catch(error => {\r\n console.log(\"Error in Invoices: \", error);\r\n this.props.showSystemMessage(\"error\", \"Error while fetching invoices.\");\r\n });\r\n }\r\n\r\n toggle = () => {\r\n this.setState({ dropdownOpen: !this.state.dropdownOpen });\r\n }\r\n\r\n handlePageChange = (requestedPage = this.state.page) => {\r\n let page = requestedPage;\r\n let startRow = (page - 1) * this.state.resultsPerPage;\r\n let endRow = (page * this.state.resultsPerPage) - 1;\r\n\r\n this.setState({ page: page, startRow: startRow, endRow: endRow });\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n Invoices\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.dataLoaded && this.state.invoices.length === 0 ?\r\n \r\n \r\n \r\n \r\n \r\n \r\n :\r\n this.state.invoices.slice(this.state.startRow, this.state.endRow).map(invoice => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Invoice NumberStatusAmountDate 
You do not have any invoices.   
{invoice.invoice_id}{invoice.status}${Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(invoice.amount)}{moment(invoice.date).format(\"d MMM YYYY\")}{invoice.qb_link && View Invoice}
Total: ${Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(this.state.invoicesTotal)}  
\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(Invoices);","import React, { Component } from 'react';\r\n\r\nimport { withRouter } from 'react-router-dom';\r\nimport moment from 'moment';\r\nimport queryString from 'query-string';\r\n\r\nimport Pagination from '../../component/UI/Pagination/Pagination';\r\nimport { verifyToken, clearLocalStorageAndReload } from '../../assets/JS/functions';\r\n\r\nclass Invoices extends Component {\r\n\r\n state = {\r\n currentBalance: 0,\r\n transactions: [],\r\n total: 0,\r\n dataLoaded: false,\r\n page: 1,\r\n totalPages: 1,\r\n resultsPerPage: 50\r\n }\r\n\r\n componentDidMount() {\r\n let urlParams = queryString.parse(this.props.location.search);\r\n\r\n let page;\r\n\r\n if (urlParams.page) {\r\n page = parseInt(urlParams.page);\r\n } else {\r\n page = 1;\r\n }\r\n\r\n let startRow = (page - 1) * this.state.resultsPerPage;\r\n let endRow = (page * this.state.resultsPerPage) - 1;\r\n\r\n this.setState({\r\n dataLoaded: true,\r\n page: page,\r\n startRow: startRow,\r\n endRow: endRow\r\n }, () => {\r\n this.fetchInvoices();\r\n });\r\n }\r\n\r\n fetchInvoices = () => {\r\n\r\n const authtoken = localStorage.getItem('mb-auth-token');\r\n verifyToken().then(result => {\r\n if (result === true) {\r\n return fetch(`${process.env.REACT_APP_API_URL}/accountBalance/report`, {\r\n method: 'GET',\r\n credentials: 'include',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'x-app-token': authtoken\r\n }\r\n })\r\n .then(res => res.json())\r\n .then(result => {\r\n if (result[\"success\"] === true) {\r\n this.setState({ currentBalance: result.currentBalance, transactions: result.transactions, total: result.total, dataLoaded: true, totalPages: result.total_pages });\r\n } else if (result[\"success\"] === false) {\r\n if (result.code !== 401) {\r\n this.props.showSystemMessage(\"error\", \"There was an error fetching invoices. Please try again.\");\r\n }\r\n } else {\r\n this.props.showSystemMessage(\"error\", result.errors.message);\r\n }\r\n });\r\n } else {\r\n clearLocalStorageAndReload();\r\n }\r\n }).catch(error => {\r\n console.log(\"Error in Invoices: \", error);\r\n this.props.showSystemMessage(\"error\", \"Error while fetching invoices.\");\r\n });\r\n }\r\n\r\n toggle = () => {\r\n this.setState({ dropdownOpen: !this.state.dropdownOpen });\r\n }\r\n\r\n handlePageChange = (requestedPage = this.state.page) => {\r\n let page = requestedPage;\r\n let startRow = (page - 1) * this.state.resultsPerPage;\r\n let endRow = (page * this.state.resultsPerPage) - 1;\r\n\r\n this.setState({ page: page, startRow: startRow, endRow: endRow });\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n Account Balance\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.dataLoaded && this.state.transactions.length === 0 && this.state.currentBalance === 0 ?\r\n \r\n \r\n \r\n \r\n \r\n :\r\n \r\n \r\n \r\n \r\n \r\n \r\n { this.state.transactions.slice(this.state.startRow, this.state.endRow).map(transaction => (\r\n \r\n \r\n \r\n \r\n \r\n )) }\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
TransactionsAmountDate
You do not have any transactions.  
This Period${Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(this.state.currentBalance)}{moment().format(\"d MMM YYYY\")}
{transaction.type}${Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(transaction.amount)}{moment(transaction.date).format(\"d MMM YYYY\")}
Total:${Intl.NumberFormat('en-GB', { minimumFractionDigits: 2 }).format(this.state.total)}  
\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(Invoices);","import React, { Component } from 'react';\r\nimport CountryList from '../../data/countrylist';\r\n\r\nclass Countries extends Component {\r\n state = {\r\n countries: CountryList.countries\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n {this.state.countries.map(country => )}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default Countries;","export default {\r\n states: [\r\n {\r\n name: \"Alabama\",\r\n value: \"AL\"\r\n },\r\n {\r\n name: \"Alaska\",\r\n value: \"AK\"\r\n },\r\n {\r\n name: \"American Samoa\",\r\n value: \"AS\"\r\n },\r\n {\r\n name: \"Arizona\",\r\n value: \"AZ\"\r\n },\r\n {\r\n name: \"Arkansas\",\r\n value: \"AR\"\r\n },\r\n {\r\n name: \"California\",\r\n value: \"CA\"\r\n },\r\n {\r\n name: \"Colorado\",\r\n value: \"CO\"\r\n },\r\n {\r\n name: \"Connecticut\",\r\n value: \"CT\"\r\n },\r\n {\r\n name: \"Delaware\",\r\n value: \"DE\"\r\n },\r\n {\r\n name: \"District Of Columbia\",\r\n value: \"DC\"\r\n },\r\n {\r\n name: \"Federated States Of Micronesia\",\r\n value: \"FM\"\r\n },\r\n {\r\n name: \"Florida\",\r\n value: \"FL\"\r\n },\r\n {\r\n name: \"Georgia\",\r\n value: \"GA\"\r\n },\r\n {\r\n name: \"Guam\",\r\n value: \"GU\"\r\n },\r\n {\r\n name: \"Hawaii\",\r\n value: \"HI\"\r\n },\r\n {\r\n name: \"Idaho\",\r\n value: \"ID\"\r\n },\r\n {\r\n name: \"Illinois\",\r\n value: \"IL\"\r\n },\r\n {\r\n name: \"Indiana\",\r\n value: \"IN\"\r\n },\r\n {\r\n name: \"Iowa\",\r\n value: \"IA\"\r\n },\r\n {\r\n name: \"Kansas\",\r\n value: \"KS\"\r\n },\r\n {\r\n name: \"Kentucky\",\r\n value: \"KY\"\r\n },\r\n {\r\n name: \"Louisiana\",\r\n value: \"LA\"\r\n },\r\n {\r\n name: \"Maine\",\r\n value: \"ME\"\r\n },\r\n {\r\n name: \"Marshall Islands\",\r\n value: \"MH\"\r\n },\r\n {\r\n name: \"Maryland\",\r\n value: \"MD\"\r\n },\r\n {\r\n name: \"Massachusetts\",\r\n value: \"MA\"\r\n },\r\n {\r\n name: \"Michigan\",\r\n value: \"MI\"\r\n },\r\n {\r\n name: \"Minnesota\",\r\n value: \"MN\"\r\n },\r\n {\r\n name: \"Mississippi\",\r\n value: \"MS\"\r\n },\r\n {\r\n name: \"Missouri\",\r\n value: \"MO\"\r\n },\r\n {\r\n name: \"Montana\",\r\n value: \"MT\"\r\n },\r\n {\r\n name: \"Nebraska\",\r\n value: \"NE\"\r\n },\r\n {\r\n name: \"Nevada\",\r\n value: \"NV\"\r\n },\r\n {\r\n name: \"New Hampshire\",\r\n value: \"NH\"\r\n },\r\n {\r\n name: \"New Jersey\",\r\n value: \"NJ\"\r\n },\r\n {\r\n name: \"New Mexico\",\r\n value: \"NM\"\r\n },\r\n {\r\n name: \"New York\",\r\n value: \"NY\"\r\n },\r\n {\r\n name: \"North Carolina\",\r\n value: \"NC\"\r\n },\r\n {\r\n name: \"North Dakota\",\r\n value: \"ND\"\r\n },\r\n {\r\n name: \"Northern Mariana Islands\",\r\n value: \"MP\"\r\n },\r\n {\r\n name: \"Ohio\",\r\n value: \"OH\"\r\n },\r\n {\r\n name: \"Oklahoma\",\r\n value: \"OK\"\r\n },\r\n {\r\n name: \"Oregon\",\r\n value: \"OR\"\r\n },\r\n {\r\n name: \"Palau\",\r\n value: \"PW\"\r\n },\r\n {\r\n name: \"Pennsylvania\",\r\n value: \"PA\"\r\n },\r\n {\r\n name: \"Puerto Rico\",\r\n value: \"PR\"\r\n },\r\n {\r\n name: \"Rhode Island\",\r\n value: \"RI\"\r\n },\r\n {\r\n name: \"South Carolina\",\r\n value: \"SC\"\r\n },\r\n {\r\n name: \"South Dakota\",\r\n value: \"SD\"\r\n },\r\n {\r\n name: \"Tennessee\",\r\n value: \"TN\"\r\n },\r\n {\r\n name: \"Texas\",\r\n value: \"TX\"\r\n },\r\n {\r\n name: \"Utah\",\r\n value: \"UT\"\r\n },\r\n {\r\n name: \"Vermont\",\r\n value: \"VT\"\r\n },\r\n {\r\n name: \"Virgin Islands\",\r\n value: \"VI\"\r\n },\r\n {\r\n name: \"Virginia\",\r\n value: \"VA\"\r\n },\r\n {\r\n name: \"Washington\",\r\n value: \"WA\"\r\n },\r\n {\r\n name: \"West Virginia\",\r\n value: \"WV\"\r\n },\r\n {\r\n name: \"Wisconsin\",\r\n value: \"WI\"\r\n },\r\n {\r\n name: \"Wyoming\",\r\n value: \"WY\"\r\n },\r\n {\r\n name: \"Alberta\",\r\n value: \"AB\"\r\n },\r\n {\r\n name: \"British Columbia\",\r\n value: \"BC\"\r\n },\r\n {\r\n name: \"Manitoba\",\r\n value: \"MB\"\r\n },\r\n {\r\n name: \"New Brunswick\",\r\n value: \"NB\"\r\n },\r\n {\r\n name: \"Newfoundland and Labrador\",\r\n value: \"NL\"\r\n },\r\n {\r\n name: \"Northwest Territories\",\r\n value: \"NT\"\r\n },\r\n {\r\n name: \"Nova Scotia\",\r\n value: \"NS\"\r\n },\r\n {\r\n name: \"Nunavut\",\r\n value: \"NU\"\r\n },\r\n {\r\n name: \"Ontario\",\r\n value: \"ON\"\r\n },\r\n {\r\n name: \"Prince Edward Island\",\r\n value: \"PE\"\r\n },\r\n {\r\n name: \"Quebec\",\r\n value: \"QC\"\r\n },\r\n {\r\n name: \"Saskatchewan\",\r\n value: \"SK\"\r\n },\r\n {\r\n name: \"Yukon Territory\",\r\n value: \"YT\"\r\n }\r\n ]\r\n}","import React, { Component } from 'react';\r\nimport StateList from '../../data/statelist';\r\n\r\nclass StatesProvinces extends Component {\r\n\r\n state = {\r\n states: StateList.states\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n {this.state.states.map(state => )}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default StatesProvinces;","import React, { Component } from 'react';\r\n\r\nimport { Prompt } from 'react-router';\r\n\r\nimport Countries from '../../../component/FormElements/Countries';\r\nimport CountryList from '../../../data/countrylist';\r\nimport StateList from '../../../data/statelist';\r\nimport StatesProvinces from '../../../component/FormElements/StatesProvinces';\r\n\r\nclass AccountInformation extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n editing: false,\r\n accountInfo: {\r\n name: this.props.accountInfo.name,\r\n streetAddress1: this.props.accountInfo.address,\r\n streetAddress2: this.props.accountInfo.address_two,\r\n city: this.props.accountInfo.city,\r\n state: this.getState(this.props.accountInfo.country_code),\r\n country: {\r\n value: this.props.accountInfo.country_code,\r\n text: this.getCountry(this.props.accountInfo.country_code)\r\n },\r\n zipCode: this.props.accountInfo.zipcode,\r\n phone: this.props.accountInfo.phone_num,\r\n mobilePhone: this.props.accountInfo.mobile_num\r\n },\r\n isFormHalfEdited: false // To show incomplete form navigation prompt\r\n }\r\n }\r\n\r\n getCountry = (countryCode) => {\r\n const country = CountryList.countries.filter(country => country.code === countryCode)[0].name;\r\n return country;\r\n }\r\n\r\n getState = (countryCode) => {\r\n let state;\r\n if (countryCode === 'US' || countryCode === 'CA') {\r\n state = {\r\n value: StateList.states.filter(state => state.value === this.props.accountInfo.state)[0].value,\r\n text: this.props.accountInfo.state\r\n }\r\n } else {\r\n state = {\r\n value: '',\r\n text: ''\r\n }\r\n }\r\n return state;\r\n }\r\n\r\n saveSettings = (e) => {\r\n e.preventDefault();\r\n\r\n this.props.editName(e.target.name.value);\r\n\r\n this.setState({\r\n editing: !this.state.editing,\r\n isFormHalfEdited: false,\r\n accountInfo: {\r\n name: e.target.name.value,\r\n streetAddress1: e.target.address1.value,\r\n streetAddress2: e.target.address2.value,\r\n city: e.target.city.value,\r\n state: {\r\n value: e.target.state.value,\r\n text: e.target.state.options[e.target.state.selectedIndex].text\r\n },\r\n country: {\r\n value: e.target.country.value,\r\n text: e.target.country.options[e.target.country.selectedIndex].text\r\n },\r\n zipCode: e.target.zipcode.value,\r\n phone: e.target.phone.value,\r\n mobilePhone: e.target.mobilephone.value\r\n }\r\n }, () => {\r\n\r\n const authtoken = localStorage.getItem('mb-auth-token');\r\n\r\n fetch(`${process.env.REACT_APP_API_URL}/advertiser/accountInfo`, {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'x-app-token': authtoken\r\n },\r\n body: JSON.stringify({\r\n accountInfo: this.state.accountInfo\r\n })\r\n })\r\n .then(res => res.json())\r\n .then(result => {\r\n if (result[\"success\"] === true) {\r\n this.props.showSystemMessage('success', result.message);\r\n } else if (result[\"success\"] === false) {\r\n this.setState({ ...this.state, editing: true }, () => {\r\n this.props.showSystemMessage('error', result.errors.message);\r\n });\r\n } else {\r\n this.props.showSystemMessage('error', result.errors.message);\r\n }\r\n })\r\n .catch(error => this.props.showSystemMessage('error', error.message));\r\n });\r\n }\r\n\r\n setEditing = (e) => {\r\n e.preventDefault();\r\n this.setState({ editing: !this.state.editing, isFormHalfEdited: false });\r\n }\r\n\r\n inputChangeHandler = (e) => {\r\n if (e.target.name === 'phone' || e.target.name === \"mobilephone\") {\r\n this.validatePhone(e.target);\r\n }\r\n\r\n this.setState({ isFormHalfEdited: true });\r\n }\r\n\r\n validatePhone = (input_phone) => {\r\n input_phone.setCustomValidity(\"\");\r\n\r\n const phone = input_phone.value;\r\n\r\n if (input_phone.name === \"phone\" && !phone) {\r\n return true;\r\n }\r\n\r\n const validate = /^\\s*(?:\\+?(\\d{1,3}))?[-. (]*(\\d{3})[-. )]*(\\d{3})[-. ]*(\\d{4})(?: *x(\\d+))?\\s*$/.test(phone);\r\n\r\n if (input_phone.checkValidity() === false) {\r\n return false;\r\n } else if (!validate) {\r\n input_phone.setCustomValidity(\"This phone number is invalid.\");\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n
\r\n
\r\n
Account Information
\r\n
\r\n {this.state.editing ?\r\n \r\n \r\n \r\n \r\n :\r\n \r\n }\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Name\r\n {this.state.editing === false ?\r\n
{this.state.accountInfo.name}
\r\n :\r\n \r\n }\r\n
Address\r\n {this.state.editing === false ?\r\n \r\n
{this.state.accountInfo.streetAddress1}
\r\n {this.state.accountInfo.streetAddress2 !== '' &&\r\n
{this.state.accountInfo.streetAddress2}
\r\n }\r\n
\r\n :\r\n \r\n \r\n \r\n \r\n }\r\n
City\r\n {this.state.editing === false ?\r\n
{this.state.accountInfo.city}
\r\n :\r\n \r\n }\r\n
State\r\n {this.state.editing === false ?\r\n
{this.state.accountInfo.state.value}
\r\n :\r\n \r\n \r\n \r\n \r\n }\r\n
Country\r\n {this.state.editing === false ?\r\n
{this.state.accountInfo.country.value}
\r\n :\r\n \r\n \r\n \r\n \r\n }\r\n
Zip Code\r\n {this.state.editing === false ?\r\n
{this.state.accountInfo.zipCode}
\r\n :\r\n \r\n }\r\n
Phone\r\n {this.state.editing === false ?\r\n
{this.state.accountInfo.phone}
\r\n :\r\n \r\n }\r\n
Mobile Phone\r\n {this.state.editing === false ?\r\n
{this.state.accountInfo.mobilePhone}
\r\n :\r\n \r\n }\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default AccountInformation;","import React, { Component } from 'react';\r\n\r\nimport { Prompt } from 'react-router';\r\n\r\nclass UserInformation extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.old_password = React.createRef();\r\n this.password2 = React.createRef();\r\n this.password3 = React.createRef();\r\n this.email = React.createRef();\r\n }\r\n\r\n state = {\r\n emailEditing: false,\r\n passwordEditing: false,\r\n userInfo: {\r\n email: this.props.userInfo.email_id\r\n },\r\n oldPassword: '',\r\n newPassword: '',\r\n confirmPassword: '',\r\n isPasswordMatching: false,\r\n isFormHalfEdited: false\r\n }\r\n\r\n validate = (e) => {\r\n // The actual password validation will be done in the backend. We are just matching if both are same here.\r\n e.persist();\r\n const input_password2 = this.password2.current.value;\r\n const input_password3 = this.password3.current.value;\r\n\r\n if (input_password2.length > 0 && input_password3.length > 0) {\r\n\r\n if (input_password2 !== input_password3) {\r\n this.setState({ ...this.state, isPasswordMatching: false, isFormHalfEdited: true }, () => {\r\n e.target.setCustomValidity('Your new password do not match.');\r\n e.target.reportValidity();\r\n return false;\r\n });\r\n\r\n } else {\r\n this.setState({ ...this.state, isPasswordMatching: true, isFormHalfEdited: true }, () => {\r\n this.password3.current.setCustomValidity('');\r\n this.password2.current.setCustomValidity('');\r\n });\r\n return true;\r\n }\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n saveSettings = (e) => {\r\n e.preventDefault();\r\n\r\n let formType = e.target.name;\r\n\r\n if (e.target.name === 'emailForm') {\r\n this.setState({ emailEditing: false, userInfo: { email: e.target.email.value }, isFormHalfEdited: false }, () => {\r\n this.postTheData(formType);\r\n });\r\n\r\n } else if (e.target.name === 'passwordForm') {\r\n this.setState({ passwordEditing: false, ...this.state.userInfo, oldPassword: e.target.oldPassword.value, newPassword: e.target.password.value, confirmPassword: e.target.confirmPassword.value, isFormHalfEdited: false }, () => {\r\n this.postTheData(formType);\r\n });\r\n }\r\n }\r\n\r\n postTheData = (formType) => {\r\n\r\n let JSONbody;\r\n let postURL;\r\n\r\n const authtoken = localStorage.getItem('mb-auth-token');\r\n\r\n if (formType === 'emailForm') {\r\n postURL = `${process.env.REACT_APP_API_URL}/advertiser/emailSettings`;\r\n JSONbody = {\r\n email: this.state.userInfo.email\r\n };\r\n } else if (formType === 'passwordForm') {\r\n postURL = `${process.env.REACT_APP_API_URL}/advertiser/password`;\r\n JSONbody = {\r\n oldPassword: this.state.oldPassword,\r\n newPassword: this.state.newPassword,\r\n newPasswordConfirm: this.state.confirmPassword\r\n }\r\n }\r\n\r\n fetch(postURL, {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'x-app-token': authtoken\r\n },\r\n body: JSON.stringify(JSONbody)\r\n })\r\n .then(res => res.json())\r\n .then(result => {\r\n\r\n if (result[\"success\"] === true) {\r\n this.props.showSystemMessage('success', result.message);\r\n } else if (result[\"success\"] === false) {\r\n if (formType === 'emailForm') {\r\n this.setState({ ...this.state, emailEditing: true }, () => {\r\n this.props.showSystemMessage('error', result.errors.message);\r\n });\r\n } else {\r\n this.setState({ ...this.state, passwordEditing: true }, () => {\r\n this.props.showSystemMessage('error', result.errors.message);\r\n });\r\n }\r\n } else {\r\n this.props.showSystemMessage('error', result.errors.message);\r\n }\r\n })\r\n .catch(error => {\r\n console.log('Error in email updation: ', error);\r\n this.props.showSystemMessage('error', \"An internal error occurred while updating profile.\");\r\n });\r\n }\r\n\r\n setEditing = (e) => {\r\n e.preventDefault();\r\n if (e.target.name === 'emailForm') {\r\n this.setState({ emailEditing: !this.state.emailEditing, isFormHalfEdited: false });\r\n } else if (e.target.name === 'passwordForm') {\r\n this.setState({ passwordEditing: !this.state.passwordEditing, isFormHalfEdited: false });\r\n }\r\n }\r\n\r\n\r\n validateEmail = () => {\r\n const input_email = this.email.current;\r\n\r\n input_email.setCustomValidity(\"\");\r\n\r\n const emailAccount = input_email.value.split(\"@\")[0] + \"@\";\r\n const emailDomain = \"@\" + input_email.value.split(\"@\")[1];\r\n const abuseCheck = emailAccount.includes(\"abuse\");\r\n const bounceCheck = emailAccount.includes(\"bounce\");\r\n const blockCheck = emailAccount.includes(\"block\");\r\n const spamCheck = emailAccount.includes(\"spam\");\r\n const swearCheck = emailAccount.includes(\"fuck\");\r\n const validate = /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/.test(input_email.value);\r\n\r\n\r\n if (input_email.checkValidity() === false) {\r\n return false;\r\n } else if (emailAccount.length === 0 || emailDomain.length === 1 || abuseCheck || bounceCheck || blockCheck || spamCheck || swearCheck || !validate) {\r\n input_email.setCustomValidity(\"This email address is invalid.\");\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n inputChangeHandler = (e) => {\r\n if (e.target.name === 'email') {\r\n this.validateEmail();\r\n }\r\n\r\n this.setState({ isFormHalfEdited: true });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n
\r\n
\r\n
\r\n
Email Settings
\r\n
\r\n {this.state.emailEditing ?\r\n \r\n \r\n \r\n \r\n :\r\n \r\n }\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Email\r\n {this.state.emailEditing === false ?\r\n this.state.userInfo.email\r\n :\r\n \r\n }\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
Password Settings
\r\n
\r\n {this.state.passwordEditing ?\r\n \r\n \r\n \r\n \r\n :\r\n \r\n }\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n\r\n {this.state.passwordEditing === true ? (\r\n\r\n ) :\r\n \r\n }\r\n \r\n \r\n
Password\r\n \r\n \r\n this.validate(e)}\r\n required\r\n />\r\n \r\n this.validate(e)}\r\n required\r\n />\r\n *********
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default UserInformation;","import React from 'react';\r\n\r\nimport AccountInformation from './AccountInformation/AccountInformation';\r\nimport UserInformation from './UserInformation/UserInformation';\r\n\r\nconst settings = (props) => {\r\n\r\n return (\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default settings;","import React, { Component } from 'react';\r\n\r\nclass CreateUser extends Component {\r\n\r\n state = {\r\n email: '',\r\n role: 'manager',\r\n password: ''\r\n }\r\n\r\n handleCreateUser = (e) => {\r\n e.preventDefault();\r\n\r\n const authtoken = localStorage.getItem('mb-auth-token');\r\n\r\n fetch(`${process.env.REACT_APP_API_URL}/user/adduser`, {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'x-app-token': authtoken\r\n },\r\n body: JSON.stringify({\r\n email: this.state.email,\r\n role: this.state.role,\r\n password: this.state.password\r\n })\r\n })\r\n .then(res => res.json())\r\n .then(result => {\r\n if (result[\"success\"] === true) {\r\n this.props.showSystemMessage('success', result.message);\r\n this.props.modalClosed();\r\n } else {\r\n this.props.showSystemMessage('error', result.errors.message);\r\n this.props.modalClosed();\r\n }\r\n })\r\n .catch(error => {\r\n this.props.showSystemMessage('error', error.message);\r\n });\r\n }\r\n\r\n handleRoleSelection = (e) => {\r\n e.preventDefault();\r\n this.setState({ ...this.state, role: e.target.value });\r\n }\r\n\r\n handleInputChange = (e) => {\r\n if (e.target.name === 'form_email') {\r\n this.setState({ ...this.state, email: e.target.value });\r\n } else if (e.target.name === 'form_password') {\r\n this.setState({ ...this.state, password: e.target.value });\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
Create User
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
E-Mail\r\n \r\n
Role\r\n \r\n
Password\r\n \r\n
 \r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default CreateUser;","import React, { Component } from 'react';\r\n\r\nimport { Modal } from 'reactstrap';\r\n\r\nimport CreateUser from './CreateUser/CreateUser';\r\nimport Loading from '../../component/UI/Loading/Loading';\r\n\r\nclass Users extends Component {\r\n\r\n state = {\r\n users: [],\r\n dataLoaded: false,\r\n openCreateUserModal: false\r\n }\r\n\r\n toggleCreateUserModal = () => {\r\n this.setState({ openCreateUserModal: !this.state.openCreateUserModal });\r\n }\r\n\r\n closeModalAndUpdateUsers = () => {\r\n this.setState({ openCreateUserModal: false }, () => {\r\n this.fetchUsers();\r\n });\r\n }\r\n\r\n fetchUsers = () => {\r\n const authtoken = localStorage.getItem('mb-auth-token');\r\n\r\n fetch(`${process.env.REACT_APP_API_URL}/advertiser/users`, {\r\n method: 'GET',\r\n credentials: 'include',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'x-app-token': authtoken\r\n }\r\n })\r\n .then(res => res.json())\r\n .then(result => {\r\n if (result[\"success\"] === true) {\r\n this.setState({ users: result.users, dataLoaded: true })\r\n } else if (result[\"success\"] === false) {\r\n this.setState({ dataLoaded: true }, () => {\r\n this.props.showSystemMessage('error', result.errors.message);\r\n });\r\n } else {\r\n this.setState({ dataLoaded: true }, () => {\r\n this.props.showSystemMessage('error', 'There was an error while fetching users.');\r\n });\r\n }\r\n }).catch(error => {\r\n console.log('Error in Users: ', error);\r\n this.props.showSystemMessage('error', 'There was an error while fetching users.');\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n this.fetchUsers();\r\n }\r\n\r\n deleteUser = (user_id) => {\r\n const authtoken = localStorage.getItem('mb-auth-token');\r\n\r\n fetch(`${process.env.REACT_APP_API_URL}/user/deleteuser`, {\r\n method: 'DELETE',\r\n credentials: 'include',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'x-app-token': authtoken\r\n },\r\n body: JSON.stringify({\r\n user_id: user_id\r\n })\r\n })\r\n .then(res => res.json())\r\n .then(result => {\r\n if (result[\"success\"] === true) {\r\n this.setState({ dataLoaded: false }, () => {\r\n this.props.showSystemMessage('success', result.message);\r\n this.fetchUsers();\r\n });\r\n } else {\r\n this.props.showSystemMessage('error', result.errors.message);\r\n }\r\n })\r\n .catch(error => {\r\n this.props.showSystemMessage('error', 'An internal error occurred while deleting the user.', error.message);\r\n });\r\n }\r\n\r\n handleUserDelete = (e) => {\r\n e.preventDefault();\r\n const user_id = e.target.form_user_id.value;\r\n this.deleteUser(user_id);\r\n }\r\n\r\n editRole = (userId, e) => {\r\n const authtoken = localStorage.getItem('mb-auth-token');\r\n\r\n fetch(`${process.env.REACT_APP_API_URL}/user/editrole`, {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'x-app-token': authtoken\r\n },\r\n body: JSON.stringify({\r\n user_id: userId,\r\n role: e.target.value\r\n })\r\n })\r\n .then(res => res.json())\r\n .then(result => {\r\n if (result[\"success\"] === true) {\r\n this.props.showSystemMessage('success', result.message);\r\n } else {\r\n this.props.showSystemMessage('error', result.errors.message);\r\n }\r\n })\r\n .catch(error => {\r\n this.props.showSystemMessage('error', error.message);\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n
User Accounts
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.dataLoaded ?\r\n this.state.users.map(user => {\r\n\r\n let selectedOption =\r\n ();\r\n\r\n return \r\n \r\n \r\n \r\n \r\n \r\n })\r\n :\r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n\r\n \r\n
EmailRoleStatus 
{user.e_mail}{(user.role !== 'admin' && this.props.users.role === 'admin') ?\r\n
\r\n \r\n \r\n {selectedOption}\r\n
\r\n :\r\n (user.role)\r\n }
{user.status === 'A' ? 'Active' : 'Unknown'}{this.props.users.role === 'admin' && user.role !== 'admin' ?\r\n
\r\n \r\n \r\n \r\n
\r\n : null}
 \r\n \r\n   
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Users;","import React, { Component } from 'react';\r\nimport Cookies from 'js-cookie';\r\n\r\nclass OttLogin extends Component {\r\n\r\n state = {\r\n _mounted: false,\r\n token: Cookies.get('ADV-AUTH-TOKEN'),\r\n t: Cookies.get('ADV-T')\r\n }\r\n\r\n componentDidMount() {\r\n if (Cookies.get('ADV-AUTH-TOKEN') !== '' && Cookies.get('ADV-T') !== '') {\r\n localStorage.setItem('mb-auth-token', Cookies.get('ADV-AUTH-TOKEN'));\r\n localStorage.setItem('mb-t', Cookies.get('ADV-T'));\r\n this.setState({\r\n ...this.state,\r\n _mounted: true\r\n })\r\n }\r\n }\r\n\r\n refreshApp = () => {\r\n window.location.href = process.env.REACT_APP_PORTAL_URL;\r\n }\r\n\r\n render() {\r\n return (\r\n this.state._mounted ?\r\n
{this.refreshApp()}
\r\n :\r\n
Logging in
\r\n );\r\n }\r\n\r\n}\r\n\r\nexport default OttLogin;","import React, { Component } from 'react';\r\n\r\nclass FileUpload extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n filePath: \"\",\r\n fileDescription: \"\",\r\n selectedFile: \"\"\r\n }\r\n }\r\n\r\n handleFileSelection = (e) => {\r\n this.setState({ filePath: e.target.value, selectedFile: e.target.files[0] });\r\n }\r\n\r\n onDescriptionChange = (e) => {\r\n this.setState({ fileDescription: e.target.value });\r\n }\r\n\r\n handleFileSubmission = (e) => {\r\n let fileElement = e.target.mb_file;\r\n\r\n e.preventDefault();\r\n const data = new FormData();\r\n data.append('mb_file', this.state.selectedFile, this.state.selectedFile.name);\r\n data.append('file_description', this.state.fileDescription);\r\n\r\n const authtoken = localStorage.getItem('mb-auth-token');\r\n\r\n fetch(`${process.env.REACT_APP_API_URL}/upload`, {\r\n body: data,\r\n method: 'POST',\r\n credentials: \"include\",\r\n headers: {\r\n 'x-app-token': authtoken\r\n }\r\n })\r\n .then(res => res.json())\r\n .then(result => {\r\n if (result[\"success\"] === true) {\r\n // Clear all the details upon sucessful submission\r\n this.setState({ filePath: \"\", fileDescription: \"\", selectedFile: \"\" }, () => {\r\n fileElement.value = \"\";\r\n this.props.showSystemMessage('success', result.message);\r\n });\r\n\r\n } else if (result[\"success\"] === false) {\r\n if (result.code === 415) { // If file type is not allowed, then clear everything\r\n this.setState({ filePath: \"\", fileDescription: \"\", selectedFile: \"\" }, () => {\r\n fileElement.value = \"\";\r\n });\r\n }\r\n this.props.showSystemMessage('error', result.errors.message);\r\n } else {\r\n this.props.showSystemMessage('error', 'Internal error while trying to upload file. Please try again.');\r\n }\r\n })\r\n .catch(error => {\r\n this.setState({ filePath: \"\", fileDescription: \"\", selectedFile: \"\" }, () => {\r\n fileElement.value = \"\";\r\n this.props.showSystemMessage('error', error.message);\r\n });\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n
File Upload
\r\n
\r\n
\r\n
\r\n Allowed file types: pdf, doc, docx, xls, xlsx, xlt, xla, csv, txt\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default FileUpload;","import React, { Component } from 'react';\r\n\r\nimport { Switch, Route, withRouter, Redirect } from 'react-router-dom';\r\nimport CryptoJS from 'crypto-js';\r\nimport CryptoAES from 'crypto-js/aes';\r\nimport CryptoENC from 'crypto-js/enc-utf8';\r\n\r\nimport Login from './container/Login/Login';\r\nimport Layout from './hoc/Layout/Layout';\r\nimport Dashboard from './container/Dashboard/Dashboard';\r\nimport Reports from './container/Reports/Reports';\r\nimport Campaigns from './container/Campaigns/Campaigns';\r\nimport Footer from './component/Footer/Footer';\r\nimport CampaignPage from './container/CampaignPage/CampaignPage';\r\nimport UserDetails from './component/UserDetails/UserDetails';\r\nimport LoadingPage from './component/UI/LoadingPage/LoadingPage';\r\nimport SystemMessage from './component/SystemMessage/SystemMessage';\r\nimport Invoices from './container/Invoices/Invoices';\r\nimport AccountBalance from './container/AccountBalance/AccountBalance';\r\nimport Settings from './container/Settings/Settings';\r\nimport Users from './container/Users/Users';\r\nimport OttLogin from './container/OttLogin/OttLogin';\r\nimport FileUpload from './container/FileUpload/FileUpload';\r\n\r\nimport { library } from '@fortawesome/fontawesome-svg-core';\r\n//import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { faSpinner } from '@fortawesome/free-solid-svg-icons';\r\nimport { fab } from '@fortawesome/free-brands-svg-icons';\r\n\r\nimport './App.css';\r\n\r\n//fab imports all of the brand icons. You use it differently than other icons. example: icon={['fab','apple']}\r\nlibrary.add(faSpinner, fab);\r\n\r\n\r\nclass App extends Component {\r\n\r\n state = {\r\n dataLoaded: true, \r\n advertiser: {\r\n city: \"\",\r\n company: \"\",\r\n country_code: \"\",\r\n mobile_phone: \"\",\r\n name: \"\",\r\n phone: \"\",\r\n state: \"\",\r\n street_address_1: \"\",\r\n street_address_2: \"\",\r\n zip_code: \"\"\r\n },\r\n users: {\r\n id: 0,\r\n e_mail: \"\",\r\n role: \"\",\r\n status: \"\"\r\n },\r\n systemMessage: {\r\n display: false,\r\n type: \"\",\r\n message: \"\"\r\n }\r\n }\r\n\r\n checkAuth = () => {\r\n const mbToken = localStorage.getItem('mb-auth-token');\r\n const authToken = !localStorage.getItem('mb-t') ? '' : localStorage.getItem('mb-t');\r\n\r\n let decodedToken = '';\r\n\r\n try {\r\n decodedToken = CryptoAES.decrypt(authToken, CryptoJS.enc.Base64.parse(process.env.REACT_APP_KEY), { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 }).toString(CryptoENC);\r\n } catch (error) {\r\n decodedToken = '';\r\n }\r\n\r\n let isAuth = false;\r\n\r\n if (mbToken && (mbToken === decodedToken)) {\r\n isAuth = true;\r\n }\r\n\r\n return isAuth;\r\n }\r\n\r\n fetchAdvertiserData = () => {\r\n // Check to see if localstorage has been set\r\n // THIS IS SET UPON LOGIN AT api/authentication\r\n const mbToken = localStorage.getItem('mb-auth-token');\r\n\r\n let isAuth = this.checkAuth();\r\n //isAuth = true; /* For Testing */\r\n\r\n // if (mbToken) {\r\n // isAuth = true;\r\n // }\r\n\r\n if (isAuth) {\r\n\r\n this.setState({\r\n dataLoaded: false\r\n });\r\n\r\n fetch(`${process.env.REACT_APP_API_URL}/advertiser`, {\r\n method: 'GET',\r\n credentials: 'include',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'x-app-token': mbToken\r\n }\r\n })\r\n .then(res => res.json())\r\n .then(result => {\r\n if (result[\"success\"] === true) {\r\n this.setState({\r\n dataLoaded: true,\r\n advertiser: result.advertiser,\r\n users: result.user,\r\n systemMessage: this.state.systemMessage\r\n });\r\n } else if (result[\"success\"] === false) {\r\n this.showSystemMessage(\"error\", \"There was an error signing in. Please try again.\");\r\n this.logout();\r\n this.setState({\r\n dataLoaded: true\r\n });\r\n } else {\r\n this.showSystemMessage(\"error\", result.errors.message);\r\n this.logout();\r\n this.setState({\r\n dataLoaded: true\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n console.log('Error in App.js:', error);\r\n this.showSystemMessage(\"error\", \"Connection error.\");\r\n this.setState({\r\n dataLoaded: true\r\n });\r\n });\r\n\r\n } else {\r\n this.setState({\r\n ...this.state,\r\n logout:true\r\n })\r\n }\r\n }\r\n\r\n componentDidMount(){\r\n this.fetchAdvertiserData();\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if(this.props.location !== prevProps.location){\r\n this.fetchAdvertiserData();\r\n }\r\n }\r\n\r\n logout = () => {\r\n localStorage.removeItem('mb-auth-token');\r\n localStorage.removeItem('mb-t');\r\n }\r\n\r\n showSystemMessage = (type, message) => {\r\n // Available types\r\n // \"success\", \"error\"\r\n this.setState({\r\n systemMessage: {\r\n display: true,\r\n type: type,\r\n message: message\r\n }\r\n });\r\n }\r\n\r\n hideSystemMessage = () => {\r\n this.setState({\r\n systemMessage: {\r\n display: false,\r\n type: this.state.systemMessage.type,\r\n message: this.state.systemMessage.message\r\n }\r\n });\r\n }\r\n\r\n handleNameChange = (name) => {\r\n this.setState({\r\n advertiser: { ...this.state.advertiser, name: name },\r\n systemMessage: this.state.systemMessage\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n\r\n {this.state.systemMessage.display && (\r\n \r\n {this.state.systemMessage.message}\r\n \r\n )}\r\n\r\n { this.checkAuth() ?\r\n \r\n \r\n \r\n } />\r\n } />\r\n } />\r\n } />\r\n } />\r\n } />\r\n } />\r\n } />\r\n } />\r\n } />\r\n \r\n
\r\n \r\n :\r\n this.state.dataLoaded ?\r\n \r\n } />\r\n } /> \r\n \r\n :\r\n \r\n }\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(App);\r\n","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './index.css';\r\nimport App from './App';\r\nimport * as serviceWorker from './serviceWorker';\r\nimport 'bootstrap/dist/css/bootstrap.min.css';\r\nimport { BrowserRouter } from 'react-router-dom';\r\n\r\nReactDOM.render(, document.getElementById('root'));\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2REVERkRGMjg4RkIxMUU4OEVGRkEzRDZCN0QyQTEyNyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2REVERkRGMzg4RkIxMUU4OEVGRkEzRDZCN0QyQTEyNyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjZERURGREYwODhGQjExRTg4RUZGQTNENkI3RDJBMTI3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjZERURGREYxODhGQjExRTg4RUZGQTNENkI3RDJBMTI3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+tCXrZwAAACFJREFUeNpiZGBg+M8AIv7/ZwTRTAxogBEogyKAoQIgwABOKwcBZKwNbgAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"static/media/login.85de2a88.mp4\";"],"sourceRoot":""}