{"version":3,"sources":["reportWebVitals.js","Login.js","Dashboard.js","User.js","AddUser.js","Affiliates.js","Affiliate.js","Apartments.js","index.js","Upload.js"],"names":["reportWebVitals","onPerfEntry","Function","then","getCLS","getFID","getFCP","getLCP","getTTFB","useState","email","setEmail","password","setPassword","undefined","error","setError","history","useHistory","style","width","margin","marginTop","padding","backgroundColor","border","borderRadius","textAlign","fontSize","fontWeight","marginBottom","type","placeholder","height","display","onChange","e","target","value","color","onClick","fetch","res","json","sessionStorage","setItem","push","UserListContainer","users","setUsers","usersFetched","setUsersFetched","search","sortParam","sortDescending","filter","setFilter","page","setPage","useEffect","Boolean","getItem","ok","alert","toUser","id","setTab","handleHeaderClick","param","handlePageClick","gotoPage","filtered","length","x","firstName","toLowerCase","includes","lastName","cellPhone","replace","subState","oldCity","newCity","oldState","newState","active","sort","a","b","aIsString","isNaN","Date","getTime","bIsString","aDate","bDate","state","pending","completed","closed","arrow","noElements","tabStyle","lineHeight","cursor","className","float","list","UserList","numPages","Math","ceil","slice","min","justifyContent","minHeight","flex","overflowWrap","map","number","console","log","window","location","href","moveDate","toLocaleDateString","creationDate","marginRight","Array","i","marginLeft","Dashboard","maxWidth","UtilityBox","handleClick","name","checked","preventDefault","User","user","setUser","userFetched","setUserFetched","notes","setNotes","note","setNote","savingNote","setSavingNote","callDate","setCallDate","startDate","setStartDate","setMoveDate","createdDate","setCreatedDate","modifiedDate","setModifiedDate","useParams","nextCall","setStatus","setSubStatus","refreshNotes","status","editingListingLink","setEditingListingLink","subStatus","updateUserProperty","propertyName","result","toJSON","updateAnon","updateUtility","utilityName","utilities","saveNote","data","userId","text","method","body","JSON","stringify","headers","document","getElementById","catch","toDashboard","affiliate","field","isUtility","options","fieldStyles","handleCall","position","top","right","flexWrap","paddingRight","defaultValue","onBlur","paddingLeft","spouseFirstName","spouseLastName","spouseEmail","verticalAlign","src","homePhone","handleStatus","handleSubStatus","readOnly","authID","date","handleStartDate","selected","handleMoveDate","handleCreatedDate","handleModifiedDate","consultantEmail","showTimeSelect","timeIntervals","timeCaption","timeFormat","handleCallDate","dateFormat","textDecoration","listingLink","open","newAddress","split","join","newZip","newAddressType","maxLength","oldAddressType","oldAddress","oldZip","changeAddress","electricity","gas","water","trash","internet","phone","warranty","security","insurance","dmv","moving","supplies","housing","disabled","confirm","deleteNote","timeStamp","toLocaleString","wordWrap","submitChanges","AddUser","comments","affiliates","setAffiliates","affiliatesLoaded","setAffiliatesLoaded","chosenAffiliate","setChosenAffiliate","aff","affId","Number","Affiliates","affiliatesFetched","setAffiliatesFetched","affiliateItems","filteredUsers","borderBottom","left","textOverflow","whiteSpace","overflow","Affiliate","affiliateName","setAffiliateName","affiliateNameFetched","setAffiliateNameFetched","Apartments","query","URLSearchParams","useLocation","get","locationInput","setLocationInput","setSearching","searchApartments","setApartments","searchedApartments","setSearchedApartments","apartments","prevPage","nextPage","updateFilter","setFilters","filters","maxPrice","minPrice","beds","baths","dogs","cats","filteredApartments","apartment","minimumRent","maximumRent","maximumBathrooms","maximumBedrooms","maximumDogs","maximumCats","displayApartments","for","handleLocationInputChange","background","propertyID","thumbnailURL","maxHeight","paddingBottom","rent","city","propertyPhoneNumber","ReactDOM","render","StrictMode","path","component","exact","file","setFile","onDragOver","ev","onDrop","dataTransfer","items","kind","getAsFile","FormData","append","Login"],"mappings":"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","file":"static/js/main.ecbe681b.chunk.js","sourcesContent":["const reportWebVitals = onPerfEntry => {\r\n if (onPerfEntry && onPerfEntry instanceof Function) {\r\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\r\n getCLS(onPerfEntry);\r\n getFID(onPerfEntry);\r\n getFCP(onPerfEntry);\r\n getLCP(onPerfEntry);\r\n getTTFB(onPerfEntry);\r\n });\r\n }\r\n};\r\n\r\nexport default reportWebVitals;\r\n","import React, { useState } from 'react'\r\n\r\nimport { useHistory } from 'react-router-dom'\r\n\r\nexport default () => {\r\n const [email, setEmail] = useState('')\r\n const [password, setPassword] = useState('')\r\n const [error, setError] = useState(undefined)\r\n const history = useHistory()\r\n\r\n const login = () => {\r\n fetch('api/Login?email=' + email + '&password=' + password)\r\n .then(res => res.json())\r\n .then(json => {\r\n if (json == true) {\r\n sessionStorage.setItem('loggedIn', true)\r\n sessionStorage.setItem('email', email)\r\n history.push('/affiliates')\r\n } else {\r\n setError('Invalid login.')\r\n }\r\n })\r\n }\r\n\r\n return (\r\n
\r\n
ReloFrog Concierge
\r\n setEmail(e.target.value)} />\r\n setPassword(e.target.value)} />\r\n
\r\n {error &&
{error}
}\r\n \r\n
\r\n )\r\n}","import React, { useEffect, useState } from 'react'\r\nimport { useHistory } from 'react-router-dom'\r\n\r\nconst Dashboard = () => {\r\n \r\n\r\n return (\r\n
\r\n \r\n
\r\n )\r\n}\r\n\r\nconst UserListContainer = () => {\r\n const history = useHistory()\r\n const [users, setUsers] = useState([])\r\n const [usersFetched, setUsersFetched] = useState(false)\r\n const [filter, setFilter] = useState({\r\n search: '',\r\n sortParam: 'modifiedDate',\r\n sortDescending: true,\r\n type: 'all'\r\n })\r\n const [page, setPage] = useState(1)\r\n\r\n useEffect(() => {\r\n const validLogin = Boolean(sessionStorage.getItem('loggedIn'))\r\n\r\n if (!validLogin)\r\n history.push('/login')\r\n else {\r\n if (!usersFetched) {\r\n fetch('api/Users')\r\n .then((res) => {\r\n if (res.ok) return res.json()\r\n alert('Error fetching users.')\r\n })\r\n .then((users) => {\r\n setUsers(users)\r\n setUsersFetched(true)\r\n })\r\n }\r\n }\r\n })\r\n\r\n const toUpload = () => {\r\n history.push('/upload')\r\n }\r\n\r\n const toUser = (id) => {\r\n history.push('/user/' + id)\r\n }\r\n\r\n const toAddUser = () => {\r\n history.push('/user/add')\r\n }\r\n\r\n const sendTestEmail = () => {\r\n fetch('api/Users/testemail')\r\n .then((res) => {\r\n if (res.ok) console.log(res.json())\r\n else alert('Issue sending email')\r\n })\r\n }\r\n\r\n const setTab = (type) => {\r\n setFilter({ ...filter, type: type })\r\n setPage(1)\r\n }\r\n\r\n const handleSearchChange = (value) => {\r\n setFilter({ ...filter, search: value, type: 'all' })\r\n setPage(1)\r\n }\r\n\r\n const handleHeaderClick = (param) => {\r\n if (filter.sortParam === param)\r\n setFilter({ ...filter, sortDescending: !filter.sortDescending })\r\n else\r\n setFilter({ ...filter, sortParam: param, sortDescending: false })\r\n }\r\n\r\n const handlePageClick = (type, gotoPage) => {\r\n if (type === 'goto') {\r\n setPage(gotoPage)\r\n } else if (type === 'next') {\r\n setPage(page + 1)\r\n } else if (type === 'prev') {\r\n setPage(page - 1)\r\n }\r\n }\r\n\r\n let filtered = (filter.search && filter.search.length > 0) ?\r\n users.filter(x => x.firstName.toLowerCase().includes(filter.search)\r\n || x.lastName.toLowerCase().includes(filter.search)\r\n || x.email.toLowerCase().includes(filter.search)\r\n || x.cellPhone.replace(/\\D/g, '').includes(filter.search)\r\n || (x.subState && x.subState.toLowerCase().includes(filter.search))\r\n || filter.search.toLowerCase().includes(x.oldCity.toLowerCase())\r\n || filter.search.toLowerCase().includes(x.newCity.toLowerCase())\r\n || filter.search.toLowerCase().includes(x.oldState.toLowerCase())\r\n || filter.search.toLowerCase().includes(x.newState.toLowerCase()))\r\n : users\r\n\r\n filtered = filtered.sort((a, b) => {\r\n const aIsString = isNaN(new Date(a[filter.sortParam]).getTime())\r\n const bIsString = isNaN(new Date(b[filter.sortParam]).getTime())\r\n\r\n if (aIsString) {\r\n if (bIsString) {\r\n if (a[filter.sortParam] > b[filter.sortParam])\r\n return (filter.sortDescending) ? -1 : 1\r\n else if (a[filter.sortParam] < b[filter.sortParam])\r\n return (filter.sortDescending) ? 1 : -1\r\n else\r\n return 0\r\n } else {\r\n return -1\r\n }\r\n\r\n } else {\r\n if (bIsString) {\r\n return 1\r\n } else {\r\n const aDate = new Date(a[filter.sortParam])\r\n const bDate = new Date(b[filter.sortParam])\r\n\r\n if (aDate > bDate)\r\n return (filter.sortDescending) ? -1 : 1\r\n else if (aDate < bDate)\r\n return (filter.sortDescending) ? 1 : -1\r\n else\r\n return 0\r\n }\r\n }\r\n })\r\n\r\n const active = filtered.filter(x => x.state === 'active')\r\n const pending = filtered.filter(x => x.state === 'pending')\r\n const completed = filtered.filter(x => x.state === 'completed')\r\n const closed = filtered.filter(x => x.state === 'closed')\r\n\r\n const arrow = (filter.sortDescending) ? : \r\n\r\n const noElements = (filtered && filtered.length === 0)\r\n || (filter.type === 'active' && active.length === 0)\r\n || (filter.type === 'pending' && pending.length === 0)\r\n || (filter.type === 'completed' && completed.length === 0)\r\n || (filter.type === 'closed' && closed.length === 0)\r\n\r\n\r\n const tabStyle = {\r\n height: '24px',\r\n lineHeight: '24px',\r\n cursor: 'pointer',\r\n fontSize: '16px',\r\n border: '1px solid #ccc',\r\n borderRadius: '5px',\r\n margin: '5px'\r\n }\r\n\r\n return (\r\n
\r\n
Users
\r\n
\r\n handleSearchChange(e.target.value.toLowerCase())} />\r\n toUpload()}\r\n style={{ float: 'right', backgroundColor: 'white', cursor: 'pointer', border: '1px solid #aaa' }}\r\n >\r\n Upload Sheet\r\n \r\n toAddUser()}\r\n style={{ float: 'right', backgroundColor: 'white', cursor: 'pointer', border: '1px solid #aaa' }}\r\n >\r\n Add New User\r\n \r\n
\r\n
\r\n setTab('all')}\r\n style={{ ...tabStyle, backgroundColor: (filter.type === 'all') ? 'lightblue' : 'white' }}\r\n >\r\n All Users ({filtered.length})\r\n \r\n setTab('active')}\r\n style={{ ...tabStyle, backgroundColor: (filter.type === 'active') ? 'lightblue' : 'white' }}\r\n >\r\n Active Users ({active.length})\r\n \r\n setTab('pending')}\r\n style={{ ...tabStyle, backgroundColor: (filter.type === 'pending') ? 'lightblue' : 'white' }}\r\n >\r\n Pending Users ({pending.length})\r\n \r\n setTab('completed')}\r\n style={{ ...tabStyle, backgroundColor: (filter.type === 'completed') ? 'lightblue' : 'white' }}\r\n >\r\n Completed Users ({completed.length})\r\n \r\n setTab('closed')}\r\n style={{ ...tabStyle, backgroundColor: (filter.type === 'closed') ? 'lightblue' : 'white' }}\r\n >\r\n Closed Users ({closed.length})\r\n \r\n
\r\n
\r\n {noElements && (\r\n
There are no users to display.
\r\n )}\r\n {filter.type === 'all' && !noElements && }\r\n {filter.type === 'active' && !noElements && }\r\n {filter.type === 'pending' && !noElements && }\r\n {filter.type === 'completed' && !noElements && }\r\n {filter.type === 'closed' && !noElements && }\r\n
\r\n )\r\n}\r\n\r\nconst UserList = ({ list, toUser, handleHeaderClick, arrow, sortParam, page, handlePageClick }) => {\r\n\r\n const numPages = Math.ceil(list.length / 25)\r\n\r\n list = list.slice((page - 1) * 25, Math.min(page * 25, list.length))\r\n\r\n const handleCall = (number) => {\r\n console.log('handleCall');\r\n window.location.href = 'tel:' + number;\r\n }\r\n\r\n return (\r\n
\r\n
\r\n handleHeaderClick('lastName')}\r\n >\r\n Name {sortParam === 'lastName' && arrow}\r\n
\r\n handleHeaderClick('email')}\r\n >\r\n Email {sortParam === 'email' && arrow}\r\n
\r\n handleHeaderClick('cellPhone')}\r\n >\r\n Cell Phone {sortParam === 'cellPhone' && arrow}\r\n \r\n handleHeaderClick('moveDate')}\r\n >\r\n Move Date {sortParam === 'moveDate' && arrow}\r\n \r\n handleHeaderClick('modifiedDate')}\r\n >\r\n Last Modified {sortParam === 'modifiedDate' && arrow}\r\n \r\n handleHeaderClick('subState')}\r\n >\r\n Sub Status {sortParam === 'subState' && arrow}\r\n \r\n \r\n {\r\n list.map(x => {\r\n return (\r\n \r\n
toUser(x.id)}>{x.firstName + ' ' + x.lastName}
\r\n
toUser(x.id)}>{x.email}
\r\n
handleCall(x.cellPhone.replace(/\\D+/g, ''))}>{x.cellPhone.replace(/\\D+/g, '').replace(/(\\d{3})(\\d{3})(\\d{4})/, '($1) $2-$3')}
\r\n
toUser(x.id)}>{x.moveDate ? new Date(x.moveDate).toLocaleDateString() : 'None'}
\r\n
toUser(x.id)}>{new Date(x.creationDate).toLocaleDateString()}
\r\n
toUser(x.id)}>{x.subState ? x.subState : 'None'}
\r\n \r\n )\r\n })\r\n }\r\n
\r\n {page > 1 && handlePageClick('prev')} style={{ marginRight: '5px' }}><}\r\n {\r\n [...Array(numPages)].map((e, i) => {\r\n return handlePageClick('goto', i + 1)} style={{ color: (page === i + 1) ? 'royalblue' : '#333', margin: '0 5px' }}>{i + 1}\r\n })\r\n }\r\n {page < numPages && handlePageClick('next')} style={{ marginLeft: '5px' }}>>}\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default Dashboard","import React, { useState, useEffect } from 'react'\r\nimport { useParams, useHistory } from 'react-router-dom'\r\n\r\nimport DatePicker from 'react-datepicker'\r\nimport 'react-datepicker/dist/react-datepicker.css'\r\n\r\nconst User = () => {\r\n const [user, setUser] = useState()\r\n const [userFetched, setUserFetched] = useState(false)\r\n\r\n const [notes, setNotes] = useState([])\r\n const [note, setNote] = useState('')\r\n const [savingNote, setSavingNote] = useState(false)\r\n\r\n const [callDate, setCallDate] = useState()\r\n const [startDate, setStartDate] = useState()\r\n const [moveDate, setMoveDate] = useState()\r\n const [createdDate, setCreatedDate] = useState()\r\n const [modifiedDate, setModifiedDate] = useState()\r\n\r\n const { id } = useParams()\r\n const history = useHistory()\r\n\r\n useEffect(() => {\r\n const validLogin = Boolean(sessionStorage.getItem('loggedIn'))\r\n\r\n if (!validLogin)\r\n history.push('/login')\r\n else {\r\n if (!userFetched) {\r\n fetch('../api/Users/' + id)\r\n .then((res) => {\r\n if (res.ok) return res.json()\r\n alert('Error fetching user.')\r\n })\r\n .then((user) => {\r\n setUser(user)\r\n setUserFetched(true)\r\n\r\n setCallDate(user.nextCall ? new Date(user.nextCall) : undefined)\r\n setStartDate(user.startDate ? new Date(user.startDate) : undefined)\r\n setMoveDate(user.moveDate ? new Date(user.moveDate) : undefined)\r\n setCreatedDate(user.creationDate ? new Date(user.creationDate) : undefined)\r\n setModifiedDate(user.modifiedDate ? new Date(user.modifiedDate) : undefined)\r\n setStatus(user.state)\r\n setSubStatus(user.subState)\r\n\r\n refreshNotes(id)\r\n })\r\n }\r\n }\r\n })\r\n\r\n const handleCallDate = (date) => {\r\n setCallDate(date)\r\n updateUserProperty('nextCall', date)\r\n }\r\n\r\n const handleModifiedDate = (date) => {\r\n setModifiedDate(date)\r\n updateUserProperty('modifiedDate', date)\r\n }\r\n\r\n const handleMoveDate = (date) => {\r\n setMoveDate(date)\r\n updateUserProperty('moveDate', date)\r\n }\r\n\r\n const handleStartDate = (date) => {\r\n setStartDate(date)\r\n updateUserProperty('startDate', date)\r\n }\r\n\r\n const handleCreatedDate = (date) => {\r\n setCreatedDate(date)\r\n updateUserProperty('createdDate', date)\r\n }\r\n\r\n const [status, setStatus] = useState('')\r\n const handleStatus = (status) => {\r\n setStatus(status)\r\n updateUserProperty('state', status)\r\n }\r\n\r\n const [editingListingLink, setEditingListingLink] = useState(false);\r\n const handleListingLink = (value) => {\r\n setEditingListingLink(!editingListingLink);\r\n }\r\n\r\n const handleClickListingLink = () => {\r\n window.open(user.listingLink, '_blank');\r\n }\r\n\r\n const [subStatus, setSubStatus] = useState('')\r\n const handleSubStatus = (subStatus) => {\r\n setSubStatus(subStatus)\r\n setUser({ ...user, subState: subStatus })\r\n\r\n const data = {\r\n userId: id,\r\n text: 'Status updated to: ' + subStatus\r\n }\r\n\r\n fetch('../api/Users/notes', {\r\n method: 'POST',\r\n body: JSON.stringify(data),\r\n headers: {\r\n 'Content-Type': 'application/json;charset=UTF-8'\r\n }\r\n })\r\n .then((res) => {\r\n if (res.ok) {\r\n refreshNotes(id)\r\n }\r\n })\r\n .catch(error => alert(error))\r\n }\r\n\r\n const updateUserProperty = (propertyName, value) => {\r\n const result = {}\r\n result[propertyName] = (propertyName === 'moveDate' || propertyName === 'startDate' || propertyName === 'referenceDate' || propertyName === 'nextCall' || propertyName === 'createdDate') ? (new Date(value)).toJSON() : value\r\n setUser({\r\n ...user,\r\n ...result\r\n })\r\n\r\n updateAnon(propertyName, value)\r\n }\r\n\r\n const updateUtility = (utilityName) => {\r\n const result = {}\r\n result[utilityName] = !user.utilities[utilityName]\r\n setUser({\r\n ...user,\r\n utilities: { ...user.utilities, ...result }\r\n })\r\n\r\n updateAnon(utilityName, !user.utilities[utilityName], true)\r\n }\r\n\r\n const saveNote = () => {\r\n if (savingNote)\r\n return\r\n\r\n if (!note || note.length === 0)\r\n return\r\n\r\n setSavingNote(true)\r\n\r\n const data = {\r\n userId: id,\r\n text: note\r\n }\r\n\r\n fetch('../api/Users/notes', {\r\n method: 'POST',\r\n body: JSON.stringify(data),\r\n headers: {\r\n 'Content-Type': 'application/json;charset=UTF-8'\r\n }\r\n })\r\n .then((res) => {\r\n if (res.ok) {\r\n document.getElementById('note-box').value = null\r\n refreshNotes(id)\r\n setSavingNote(false)\r\n setNote('')\r\n }\r\n })\r\n .catch(error => alert(error))\r\n }\r\n\r\n const deleteNote = (id) => {\r\n if (window.confirm('Delete this note?')) {\r\n fetch('../api/Users/notes/' + id, {\r\n method: 'DELETE'\r\n })\r\n .then((res) => {\r\n if (res.ok)\r\n refreshNotes(user.id)\r\n })\r\n .catch(error => alert(error))\r\n }\r\n }\r\n\r\n const refreshNotes = (id) => {\r\n fetch('../api/Users/' + id + '/notes')\r\n .then((res) => {\r\n if (res.ok) return res.json()\r\n alert('Error getting notes')\r\n })\r\n .then((notes) => {\r\n setNotes(notes)\r\n })\r\n }\r\n\r\n const sendEmail = (id) => {\r\n fetch('../api/Users/' + id + '/email')\r\n .then((res) => {\r\n if (res.ok) console.log(res.body)\r\n else console.log(\"Error sending email.\")\r\n })\r\n }\r\n\r\n const toDashboard = () => {\r\n history.push('/affiliate/' + user.affiliate.id)\r\n }\r\n\r\n const updateAnon = (field, value, isUtility = false) => {\r\n const data = {\r\n user: user,\r\n options: user.utilities\r\n }\r\n\r\n if (isUtility)\r\n data.user.utilities[field] = value\r\n else\r\n data.user[field] = value\r\n\r\n fetch('../api/Users/update', {\r\n method: 'POST',\r\n body: JSON.stringify(data),\r\n headers: {\r\n 'Content-Type': 'application/json;charset=UTF-8'\r\n }\r\n })\r\n .then((res) => {\r\n if (res.ok)\r\n console.log('Saved')\r\n })\r\n .catch(error => console.log(error))\r\n }\r\n\r\n const submitChanges = () => {\r\n if (note || note.length > 0)\r\n saveNote()\r\n\r\n const data = {\r\n user: user,\r\n options: user.utilities\r\n }\r\n\r\n fetch('../api/Users/update', {\r\n method: 'POST',\r\n body: JSON.stringify(data),\r\n headers: {\r\n 'Content-Type': 'application/json;charset=UTF-8'\r\n }\r\n })\r\n .then((res) => {\r\n if (res.ok)\r\n alert(\"Changes saved.\")\r\n })\r\n .catch(error => alert(error))\r\n }\r\n\r\n const fieldStyles = {\r\n width: '100%',\r\n height: '25px',\r\n lineHeight: '25px',\r\n marginBottom: '5px',\r\n border: 'solid 1px #ccc',\r\n padding: '4px',\r\n borderRadius: '5px'\r\n }\r\n\r\n const handleCall = (number) => {\r\n window.location.href = 'tel:' + number;\r\n }\r\n\r\n const handleEmail = (email) => {\r\n window.location = \"mailto:\" + email;\r\n }\r\n\r\n /*\r\n
\r\n Accounting ↗\r\n
*/\r\n\r\n //< div style = {{ textAlign: 'right' }}> \r\n\r\n return (\r\n
\r\n { user && (\r\n
\r\n
\r\n
X
\r\n
{user.firstName + ' ' + user.lastName}
\r\n\r\n
\r\n
Personal Information
\r\n
\r\n
\r\n
\r\n
\r\n
First Name:
\r\n updateUserProperty('firstName', e.target.value)} />\r\n
\r\n
\r\n
Spouse First Name:
\r\n updateUserProperty('spouseFirstName', e.target.value)} />\r\n
\r\n
\r\n
\r\n
\r\n
Last Name:
\r\n updateUserProperty('lastName', e.target.value)} />\r\n
\r\n
\r\n
Spouse Last Name:
\r\n updateUserProperty('spouseLastName', e.target.value)} />\r\n
\r\n
\r\n
\r\n
\r\n
Email Address:
\r\n updateUserProperty('email', e.target.value)} />\r\n
\r\n
\r\n
Spouse Email Address:
\r\n updateUserProperty('spouseEmail', e.target.value)} />\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Cell Phone:
\r\n handleCall(user.cellPhone)} src=\"https://cdn2.iconfinder.com/data/icons/font-awesome/1792/phone-512.png\" width=\"25\" height=\"25\" />\r\n
\r\n updateUserProperty('cellPhone', e.target.value)} />\r\n
\r\n
\r\n
\r\n
Spouse Phone:
\r\n handleCall(user.homePhone)} src=\"https://cdn2.iconfinder.com/data/icons/font-awesome/1792/phone-512.png\" width=\"25\" height=\"25\" />\r\n
\r\n updateUserProperty('homePhone', e.target.value)} />\r\n
\r\n
\r\n
\r\n
Status:
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Company:
\r\n \r\n
\r\n
\r\n
Employee ID:
\r\n updateUserProperty('authID', e.target.value)} />\r\n
\r\n
\r\n
\r\n
\r\n
Start Date:
\r\n handleStartDate(date)} selected={startDate} />\r\n
\r\n
\r\n
Move Date:
\r\n handleMoveDate(date)} selected={moveDate} />\r\n
\r\n
\r\n
\r\n
\r\n
Created:
\r\n handleCreatedDate(date)} selected={createdDate} />\r\n
\r\n
\r\n
Modified:
\r\n handleModifiedDate(date)} selected={modifiedDate} />\r\n
\r\n
\r\n
\r\n
\r\n
Consultant Email:
\r\n handleEmail(user.email)}\r\n src=\"https://cdn4.iconfinder.com/data/icons/basic-user-interface-elements/700/mail-letter-offer-512.png\" width=\"25\" height=\"25\" style={{ cursor: 'pointer' }} />\r\n
\r\n updateUserProperty('consultantEmail', e.target.value)} />\r\n
\r\n
\r\n
Next Call:
\r\n handleCallDate(date)}\r\n selected={callDate}\r\n dateFormat=\"MM/dd/yyyy h:mm aa\"\r\n />\r\n
\r\n
\r\n
Listing Link: {editingListingLink ? 'Save' : 'Edit' }
\r\n {editingListingLink && (\r\n updateUserProperty('listingLink', e.target.value)} />\r\n )}\r\n {!editingListingLink && (user.listingLink && {user.listingLink} || 'None')}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Comcast ↗\r\n
\r\n
\r\n
Address Information
\r\n
\r\n
\r\n
\r\n To Address:\r\n \r\n \r\n \r\n
\r\n updateUserProperty('newAddress', e.target.value)} />\r\n
\r\n updateUserProperty('newCity', e.target.value)} />\r\n updateUserProperty('newState', e.target.value)} maxLength=\"2\" />\r\n updateUserProperty('newZip', e.target.value)} maxLength=\"5\" />\r\n
\r\n
\r\n
\r\n
\r\n From Address:\r\n \r\n \r\n \r\n
\r\n updateUserProperty('oldAddress', e.target.value)} />\r\n
\r\n updateUserProperty('oldCity', e.target.value)} />\r\n updateUserProperty('oldState', e.target.value)} maxLength=\"2\" />\r\n updateUserProperty('oldZip', e.target.value)} maxLength=\"5\" />\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Services
\r\n\r\n
\r\n updateUtility('changeAddress')} value={user.utilities.changeAddress} name={'Change of Address'} />\r\n updateUtility('electricity')} value={user.utilities.electricity} name={'Electricity'} />\r\n updateUtility('gas')} value={user.utilities.gas} name={'Gas'} />\r\n updateUtility('water')} value={user.utilities.water} name={'Water'} />\r\n updateUtility('trash')} value={user.utilities.trash} name={'Trash / Recycling'} />\r\n updateUtility('internet')} value={user.utilities.internet} name={'Broadband / TV'} />\r\n updateUtility('phone')} value={user.utilities.phone} name={'Phone / Mobile'} />\r\n updateUtility('warranty')} value={user.utilities.warranty} name={'Home Warranty'} />\r\n updateUtility('security')} value={user.utilities.security} name={'Home Security'} />\r\n updateUtility('insurance')} value={user.utilities.insurance} name={'Insurance'} />\r\n updateUtility('dmv')} value={user.utilities.dmv} name={'DMV'} />\r\n updateUtility('moving')} value={user.utilities.moving} name={'Moving'} />\r\n updateUtility('supplies')} value={user.utilities.supplies} name={'Moving Supplies'} />\r\n updateUtility('housing')} value={user.utilities.housing} name={'Housing'} />\r\n
\r\n
\r\n
\r\n
Notes
\r\n\r\n \r\n \r\n\r\n {notes && notes.length > 0 && (\r\n
\r\n {notes.map((note) => (\r\n
\r\n
deleteNote(note.id)} className=\"fas fa-trash-alt\" style={{ cursor: 'pointer', marginLeft: '10px' }}> {(new Date(note.timeStamp)).toLocaleString()}:
\r\n
{note.text}
\r\n
\r\n ))}\r\n
\r\n )}\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n )}\r\n
\r\n )\r\n}\r\n\r\nconst UtilityBox = ({ handleClick, value, name }) => {\r\n return (\r\n
\r\n e.preventDefault()}\r\n style={{ marginTop: '5px' }}\r\n />\r\n
{name}
\r\n
\r\n )\r\n}\r\n\r\nexport default User","import React, { useState, useEffect } from 'react'\r\nimport { useHistory } from 'react-router-dom'\r\n\r\nimport DatePicker from 'react-datepicker'\r\nimport 'react-datepicker/dist/react-datepicker.css'\r\n\r\nconst AddUser = () => {\r\n const [user, setUser] = useState({\r\n authID: '',\r\n firstName: '',\r\n lastName: '',\r\n email: '',\r\n password: '',\r\n cellPhone: '',\r\n homePhone: '',\r\n startDate: null,\r\n moveDate: null,\r\n nextCall: null,\r\n newAddress: '',\r\n newCity: '',\r\n newState: '',\r\n newZip: '',\r\n oldAddress: '',\r\n oldCity: '',\r\n oldState: '',\r\n oldZip: '',\r\n comments: '',\r\n status: 'pending',\r\n consultantEmail: '',\r\n utilities: {\r\n changeAddress: false,\r\n internet: false,\r\n phone: false,\r\n warranty: false,\r\n gas: false,\r\n water: false,\r\n electricity: false,\r\n security: false,\r\n moving: false,\r\n supplies: false,\r\n insurance: false,\r\n dmv: false,\r\n trash: false\r\n }\r\n })\r\n\r\n const [callDate, setCallDate] = useState()\r\n const [startDate, setStartDate] = useState()\r\n const [moveDate, setMoveDate] = useState()\r\n\r\n const [affiliates, setAffiliates] = useState([])\r\n const [affiliatesLoaded, setAffiliatesLoaded] = useState(false)\r\n const [chosenAffiliate, setChosenAffiliate] = useState()\r\n\r\n const history = useHistory()\r\n\r\n useEffect(() => {\r\n const validLogin = Boolean(sessionStorage.getItem('loggedIn'))\r\n\r\n if (!validLogin)\r\n history.push('/login')\r\n else {\r\n if (!affiliatesLoaded) {\r\n setAffiliatesLoaded(true)\r\n fetch('../api/Affiliates')\r\n .then((res) => res.json())\r\n .then((affiliates) => setAffiliates(affiliates))\r\n }\r\n }\r\n })\r\n\r\n const handleCallDate = (date) => {\r\n setCallDate(date)\r\n setUser({ ...user, nextCall: date.toJSON() })\r\n }\r\n\r\n const handleMoveDate = (date) => {\r\n setMoveDate(date)\r\n setUser({ ...user, moveDate: date.toJSON() })\r\n }\r\n\r\n const handleStartDate = (date) => {\r\n setStartDate(date)\r\n setUser({ ...user, startDate: date.toJSON() })\r\n }\r\n\r\n const updateUserProperty = (propertyName, value) => {\r\n const result = {}\r\n result[propertyName] = (propertyName === 'moveDate' || propertyName === 'startDate' || propertyName === 'referenceDate' || propertyName === 'nextCall') ? (new Date(value)).toJSON() : value\r\n setUser({\r\n ...user,\r\n ...result\r\n })\r\n }\r\n\r\n const updateUtility = (utilityName) => {\r\n const result = {}\r\n result[utilityName] = !user.utilities[utilityName]\r\n setUser({\r\n ...user,\r\n utilities: { ...user.utilities, ...result }\r\n })\r\n }\r\n\r\n const toDashboard = () => {\r\n history.push('/affiliate/' + chosenAffiliate)\r\n }\r\n\r\n const submitChanges = () => {\r\n const data = {\r\n user: user,\r\n options: user.utilities,\r\n affId: Number(chosenAffiliate)\r\n }\r\n\r\n fetch('../api/Users', {\r\n method: 'POST',\r\n body: JSON.stringify(data),\r\n headers: {\r\n 'Content-Type': 'application/json;charset=UTF-8'\r\n }\r\n })\r\n .then((res) => {\r\n if (res.ok) {\r\n alert(\"User has been added.\")\r\n toDashboard()\r\n }\r\n })\r\n .catch(error => alert(error))\r\n }\r\n\r\n const fieldStyles = {\r\n width: '100%',\r\n height: '25px',\r\n lineHeight: '25px',\r\n marginBottom: '5px',\r\n border: 'solid 1px #ccc',\r\n padding: '4px',\r\n borderRadius: '5px'\r\n }\r\n\r\n //< div style = {{ textAlign: 'right' }}> \r\n\r\n return (\r\n
\r\n { user && (\r\n
\r\n
\r\n
X
\r\n
Add New User
\r\n\r\n
\r\n
Personal Information
\r\n
\r\n
\r\n
\r\n
\r\n
First Name:
\r\n updateUserProperty('firstName', e.target.value)} />\r\n
\r\n
\r\n
Spouse First Name:
\r\n updateUserProperty('spouseFirstName', e.target.value)} />\r\n
\r\n
\r\n
\r\n
\r\n
Last Name:
\r\n updateUserProperty('lastName', e.target.value)} />\r\n
\r\n
\r\n
Spouse Last Name:
\r\n updateUserProperty('spouseLastName', e.target.value)} />\r\n
\r\n
\r\n
\r\n
\r\n
Email Address:
\r\n updateUserProperty('email', e.target.value)} />\r\n
\r\n
\r\n
Spouse Email Address:
\r\n updateUserProperty('spouseEmail', e.target.value)} />\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Cell Phone:
\r\n \r\n
\r\n updateUserProperty('cellPhone', e.target.value)} />\r\n
\r\n
\r\n
\r\n
Spouse Phone:
\r\n \r\n
\r\n updateUserProperty('homePhone', e.target.value)} />\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Company:
\r\n \r\n
\r\n
\r\n
Employee ID:
\r\n updateUserProperty('authID', e.target.value)} />\r\n
\r\n
\r\n
\r\n
Start Date:
\r\n handleStartDate(date)} selected={startDate} />\r\n
\r\n
\r\n
Employee ID:
\r\n updateUserProperty('authID', e.target.value)} />\r\n
\r\n
\r\n
Move Date:
\r\n handleMoveDate(date)} selected={moveDate} />\r\n
\r\n
\r\n
Consultant Email:
\r\n updateUserProperty('consultantEmail', e.target.value)} />\r\n
\r\n
\r\n
Next Call:
\r\n handleCallDate(date)} selected={callDate} dateFormat=\"MM/dd/yyyy h:mm aa\" />\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Address Information
\r\n
\r\n
\r\n
To Address:
\r\n updateUserProperty('newAddress', e.target.value)} />\r\n
\r\n updateUserProperty('newCity', e.target.value)} />\r\n updateUserProperty('newState', e.target.value)} maxLength=\"2\" />\r\n updateUserProperty('newZip', e.target.value)} maxLength=\"5\" />\r\n
\r\n
\r\n
\r\n
From Address:
\r\n updateUserProperty('oldAddress', e.target.value)} />\r\n
\r\n updateUserProperty('oldCity', e.target.value)} />\r\n updateUserProperty('oldState', e.target.value)} maxLength=\"2\" />\r\n updateUserProperty('oldZip', e.target.value)} maxLength=\"5\" />\r\n
\r\n
\r\n
\r\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 AddUser","import React, { useEffect, useState } from 'react'\r\nimport { useHistory } from 'react-router-dom'\r\n\r\nconst Affiliates = () => {\r\n const history = useHistory()\r\n const [affiliates, setAffiliates] = useState([])\r\n const [affiliatesFetched, setAffiliatesFetched] = useState(false)\r\n const [usersFetched, setUsersFetched] = useState(false);\r\n const [users, setUsers] = useState([]);\r\n const [filter, setFilter] = useState({\r\n search: '',\r\n sortParam: 'modifiedDate',\r\n sortDescending: true,\r\n type: 'all'\r\n })\r\n\r\n const goToAffiliate = (id) => {\r\n history.push('/affiliate/' + id)\r\n }\r\n\r\n useEffect(() => {\r\n const validLogin = Boolean(sessionStorage.getItem('loggedIn'))\r\n\r\n if (!validLogin)\r\n history.push('/login')\r\n else {\r\n if (!affiliatesFetched) {\r\n fetch('api/Affiliates')\r\n .then((res) => {\r\n if (res.ok) return res.json()\r\n alert('Error fetching affiliates.')\r\n })\r\n .then((affiliates) => {\r\n setAffiliates(affiliates)\r\n setAffiliatesFetched(true)\r\n })\r\n }\r\n if (!usersFetched) {\r\n fetch('../api/Users/')\r\n .then((res) => {\r\n if (res.ok) return res.json()\r\n alert('Error fetching users.')\r\n })\r\n .then((users) => {\r\n setUsers(users)\r\n setUsersFetched(true)\r\n })\r\n }\r\n }\r\n })\r\n\r\n const toUser = (id) => {\r\n history.push('/user/' + id)\r\n }\r\n\r\n const handleSearchChange = (value) => {\r\n setFilter({ ...filter, search: value, type: 'all' })\r\n }\r\n\r\n let filtered = (filter.search && filter.search.length > 0) ?\r\n users.filter(x => x.firstName.toLowerCase().includes(filter.search)\r\n || x.lastName.toLowerCase().includes(filter.search)\r\n || (x.firstName + ' ' + x.lastName).toLowerCase().includes(filter.search)\r\n || x.email.toLowerCase().includes(filter.search)\r\n || x.cellPhone.replace(/\\D/g, '').includes(filter.search))\r\n : [];\r\n\r\n const affiliateItems = affiliates.map((aff) => {\r\n return (\r\n goToAffiliate(aff.id)}\r\n style={{ textAlign: 'center', fontSize: '16px', cursor: 'pointer', border: '1px solid #ccc', borderRadius: '5px', padding: '10px', width: '200px', marginBottom: '20px' }}\r\n >\r\n {aff.name}\r\n \r\n )\r\n })\r\n\r\n const filteredUsers = filtered.map((user) => {\r\n return (\r\n
toUser(user.id)}>\r\n
{user.firstName + ' ' + user.lastName}
\r\n
{user.email}
\r\n
{user.cellPhone}
\r\n
\r\n );\r\n }).slice(0, 3);\r\n\r\n return (\r\n
\r\n
\r\n
\r\n handleSearchChange(e.target.value.toLowerCase())} />\r\n {filter.search.length > 0 && (\r\n
\r\n {filteredUsers}\r\n
\r\n )}\r\n
\r\n
Select A Corporate Affiliate or Affinity Partner
\r\n
\r\n {affiliateItems}\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default Affiliates","import React, { useEffect, useState } from 'react'\r\nimport { useHistory, useParams } from 'react-router-dom'\r\n\r\nconst Affiliate = () => {\r\n const history = useHistory()\r\n const [users, setUsers] = useState([])\r\n const [usersFetched, setUsersFetched] = useState(false)\r\n const [filter, setFilter] = useState({\r\n search: '',\r\n sortParam: 'modifiedDate',\r\n sortDescending: true,\r\n type: 'all'\r\n })\r\n const [page, setPage] = useState(1)\r\n\r\n const { id } = useParams()\r\n\r\n const [affiliateName, setAffiliateName] = useState()\r\n const [affiliateNameFetched, setAffiliateNameFetched] = useState(false)\r\n\r\n useEffect(() => {\r\n (async () => {\r\n const validLogin = Boolean(sessionStorage.getItem('loggedIn'))\r\n\r\n if (!validLogin)\r\n history.push('/login')\r\n else {\r\n if (!usersFetched) {\r\n const users = await fetch('../api/Users/byaffiliate/' + id).json();\r\n for (const user of users) {\r\n const notes = await fetch('../api/Users/' + id + '/notes').json();\r\n user.notes = notes;\r\n }\r\n setUsers(users)\r\n setUsersFetched(true)\r\n }\r\n\r\n if (!affiliateNameFetched) {\r\n fetch('../api/Affiliates/' + id)\r\n .then((res) => {\r\n if (res.ok) return res.json()\r\n alert('Error fetching affiliate.')\r\n })\r\n .then((affiliate) => {\r\n setAffiliateName(affiliate.name)\r\n setAffiliateNameFetched(true)\r\n })\r\n }\r\n }\r\n })();\r\n\r\n return () => {}\r\n })\r\n\r\n const toUpload = () => {\r\n history.push('/upload')\r\n }\r\n\r\n const toUser = (id) => {\r\n history.push('/user/' + id)\r\n }\r\n\r\n const toAddUser = () => {\r\n history.push('/user/add')\r\n }\r\n\r\n const toAffiliates = () => {\r\n history.push('/affiliates')\r\n }\r\n\r\n const sendTestEmail = () => {\r\n fetch('api/Users/testemail')\r\n .then((res) => {\r\n if (res.ok) console.log(res.json())\r\n else alert('Issue sending email')\r\n })\r\n }\r\n\r\n const setTab = (type) => {\r\n setFilter({ ...filter, type: type })\r\n setPage(1)\r\n }\r\n\r\n const handleSearchChange = (value) => {\r\n setFilter({ ...filter, search: value, type: 'all' })\r\n setPage(1)\r\n }\r\n\r\n const handleHeaderClick = (param) => {\r\n if (filter.sortParam === param)\r\n setFilter({ ...filter, sortDescending: !filter.sortDescending })\r\n else\r\n setFilter({ ...filter, sortParam: param, sortDescending: false })\r\n }\r\n\r\n const handlePageClick = (type, gotoPage) => {\r\n if (type === 'goto') {\r\n setPage(gotoPage)\r\n } else if (type === 'next') {\r\n setPage(page + 1)\r\n } else if (type === 'prev') {\r\n setPage(page - 1)\r\n }\r\n }\r\n\r\n let filtered = (filter.search && filter.search.length > 0) ?\r\n users.filter(x => x.firstName.toLowerCase().includes(filter.search)\r\n || x.lastName.toLowerCase().includes(filter.search)\r\n || x.email.toLowerCase().includes(filter.search)\r\n || x.cellPhone.replace(/\\D/g, '').includes(filter.search)\r\n || (x.subState && x.subState.toLowerCase().includes(filter.search))\r\n || filter.search.toLowerCase().includes(x.oldCity.toLowerCase())\r\n || filter.search.toLowerCase().includes(x.newCity.toLowerCase())\r\n || filter.search.toLowerCase().includes(x.oldState.toLowerCase())\r\n || filter.search.toLowerCase().includes(x.newState.toLowerCase())\r\n || x.notes.filter(note => note.text.toLowerCase().includes(filter.search.toLowerCase())))\r\n : users\r\n\r\n filtered = filtered.sort((a, b) => {\r\n const aIsString = isNaN(new Date(a[filter.sortParam]).getTime())\r\n const bIsString = isNaN(new Date(b[filter.sortParam]).getTime())\r\n\r\n if (aIsString) {\r\n if (bIsString) {\r\n if (a[filter.sortParam] > b[filter.sortParam])\r\n return (filter.sortDescending) ? -1 : 1\r\n else if (a[filter.sortParam] < b[filter.sortParam])\r\n return (filter.sortDescending) ? 1 : -1\r\n else\r\n return 0\r\n } else {\r\n return -1\r\n }\r\n\r\n } else {\r\n if (bIsString) {\r\n return 1\r\n } else {\r\n const aDate = new Date(a[filter.sortParam])\r\n const bDate = new Date(b[filter.sortParam])\r\n\r\n if (aDate > bDate)\r\n return (filter.sortDescending) ? -1 : 1\r\n else if (aDate < bDate)\r\n return (filter.sortDescending) ? 1 : -1\r\n else\r\n return 0\r\n }\r\n }\r\n })\r\n\r\n const active = filtered.filter(x => x.state === 'active')\r\n const pending = filtered.filter(x => x.state === 'pending')\r\n const completed = filtered.filter(x => x.state === 'completed')\r\n const closed = filtered.filter(x => x.state === 'closed')\r\n\r\n const arrow = (filter.sortDescending) ? : \r\n\r\n const noElements = (filtered && filtered.length === 0)\r\n || (filter.type === 'active' && active.length === 0)\r\n || (filter.type === 'pending' && pending.length === 0)\r\n || (filter.type === 'completed' && completed.length === 0)\r\n || (filter.type === 'closed' && closed.length === 0)\r\n\r\n\r\n const tabStyle = {\r\n height: '24px',\r\n lineHeight: '24px',\r\n cursor: 'pointer',\r\n fontSize: '16px',\r\n border: '1px solid #ccc',\r\n borderRadius: '5px',\r\n margin: '5px'\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
X
\r\n
{affiliateName}
\r\n
\r\n handleSearchChange(e.target.value.toLowerCase())} />\r\n toUpload()}\r\n style={{ float: 'right', backgroundColor: 'white', cursor: 'pointer', border: '1px solid #aaa' }}\r\n >\r\n Upload Sheet\r\n \r\n toAddUser()}\r\n style={{ float: 'right', backgroundColor: 'white', cursor: 'pointer', border: '1px solid #aaa' }}\r\n >\r\n Add New User\r\n \r\n
\r\n
\r\n setTab('all')}\r\n style={{ ...tabStyle, backgroundColor: (filter.type === 'all') ? 'lightblue' : 'white' }}\r\n >\r\n All Users ({filtered.length})\r\n \r\n setTab('active')}\r\n style={{ ...tabStyle, backgroundColor: (filter.type === 'active') ? 'lightblue' : 'white' }}\r\n >\r\n Active Users ({active.length})\r\n \r\n setTab('pending')}\r\n style={{ ...tabStyle, backgroundColor: (filter.type === 'pending') ? 'lightblue' : 'white' }}\r\n >\r\n Pending Users ({pending.length})\r\n \r\n setTab('completed')}\r\n style={{ ...tabStyle, backgroundColor: (filter.type === 'completed') ? 'lightblue' : 'white' }}\r\n >\r\n Completed Users ({completed.length})\r\n \r\n setTab('closed')}\r\n style={{ ...tabStyle, backgroundColor: (filter.type === 'closed') ? 'lightblue' : 'white' }}\r\n >\r\n Closed Users ({closed.length})\r\n \r\n
\r\n
\r\n {noElements && (\r\n
There are no users to display.
\r\n )}\r\n {filter.type === 'all' && !noElements && }\r\n {filter.type === 'active' && !noElements && }\r\n {filter.type === 'pending' && !noElements && }\r\n {filter.type === 'completed' && !noElements && }\r\n {filter.type === 'closed' && !noElements && }\r\n
\r\n
\r\n )\r\n}\r\n\r\nconst UserList = ({ list, toUser, handleHeaderClick, arrow, sortParam, page, handlePageClick }) => {\r\n\r\n const numPages = Math.ceil(list.length / 25)\r\n\r\n list = list.slice((page - 1) * 25, Math.min(page * 25, list.length))\r\n\r\n const handleCall = (number) => {\r\n window.location.href = 'tel:' + number;\r\n }\r\n\r\n return (\r\n
\r\n
\r\n handleHeaderClick('lastName')}\r\n >\r\n Name {sortParam === 'lastName' && arrow}\r\n
\r\n handleHeaderClick('email')}\r\n >\r\n Email {sortParam === 'email' && arrow}\r\n
\r\n handleHeaderClick('cellPhone')}\r\n >\r\n Cell Phone {sortParam === 'cellPhone' && arrow}\r\n \r\n handleHeaderClick('moveDate')}\r\n >\r\n Move Date {sortParam === 'moveDate' && arrow}\r\n \r\n handleHeaderClick('modifiedDate')}\r\n >\r\n Last Modified {sortParam === 'modifiedDate' && arrow}\r\n \r\n handleHeaderClick('subState')}\r\n >\r\n Sub Status {sortParam === 'subState' && arrow}\r\n \r\n \r\n {\r\n list.map(x => {\r\n return (\r\n \r\n
toUser(x.id)}>{x.firstName + ' ' + x.lastName}
\r\n
toUser(x.id)}>{x.email}
\r\n
handleCall(x.cellPhone.replace(/\\D+/g, ''))}>{x.cellPhone.replace(/\\D+/g, '').replace(/(\\d{3})(\\d{3})(\\d{4})/, '($1) $2-$3')}
\r\n
toUser(x.id)}>{x.moveDate ? new Date(x.moveDate).toLocaleDateString() : 'None'}
\r\n
toUser(x.id)}>{new Date(x.modifiedDate).toLocaleDateString()}
\r\n
toUser(x.id)}>{x.subState ? x.subState : 'None'}
\r\n \r\n )\r\n })\r\n }\r\n
\r\n {page > 1 && handlePageClick('prev')} style={{ marginRight: '5px' }}><}\r\n {\r\n [...Array(numPages)].map((e, i) => {\r\n return handlePageClick('goto', i + 1)} style={{ color: (page === i + 1) ? 'royalblue' : '#333', margin: '0 5px' }}>{i + 1}\r\n })\r\n }\r\n {page < numPages && handlePageClick('next')} style={{ marginLeft: '5px' }}>>}\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default Affiliate","import React, { useState, useEffect } from 'react'\r\nimport {\r\n useLocation,\r\n useHistory\r\n} from 'react-router-dom'\r\n\r\nconst useQuery = () => {\r\n return new URLSearchParams(useLocation().search);\r\n}\r\n\r\nconst Apartments = () => {\r\n let query = useQuery();\r\n\r\n let location = query.get(\"location\");\r\n\r\n const [locationInput, setLocationInput] = useState(location);\r\n\r\n const handleLocationInputChange = (location) => {\r\n setLocationInput(location);\r\n }\r\n\r\n const history = useHistory();\r\n\r\n const [searching, setSearching] = useState(false);\r\n const handleSearch = () => {\r\n history.push('apartments?location=' + locationInput);\r\n location = query.get('location');\r\n searchApartments();\r\n }\r\n\r\n const searchApartments = () => {\r\n setSearching(true);\r\n fetch('../api/Apartments/getbylocation/' + locationInput)\r\n .then((res) => {\r\n if (res.ok) return res.json();\r\n alert(\"Could not find apartments for this location.\");\r\n setSearching(false);\r\n })\r\n .then((json) => {\r\n console.log(json);\r\n setApartments(json);\r\n setSearching(false);\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n if (!searchedApartments) {\r\n setSearchedApartments(true);\r\n searchApartments();\r\n }\r\n });\r\n\r\n const [apartments, setApartments] = useState([]);\r\n const [searchedApartments, setSearchedApartments] = useState(false);\r\n\r\n const numPages = (apartments && apartments.length) ? Math.ceil(apartments.length / 25) : 0;\r\n const [page, setPage] = useState(1);\r\n\r\n const prevPage = () => {\r\n if (page > 1)\r\n setPage(page - 1);\r\n }\r\n\r\n const nextPage = () => {\r\n if (page < numPages)\r\n setPage(page + 1);\r\n }\r\n\r\n const toDetail = (id) => { }\r\n\r\n const call = (number) => {\r\n window.location.href = 'tel:' + number;\r\n }\r\n\r\n const updateFilter = (filter, value) => {\r\n const result = {};\r\n result[filter] = value;\r\n setFilters({ ...filters, ...result });\r\n }\r\n\r\n const [filters, setFilters] = useState({ maxPrice: 5000, minPrice: 0, beds: 0, baths: 0, dogs: false, cats: false });\r\n\r\n var filteredApartments = (apartments && apartments.length) ? apartments.filter((apartment) => {\r\n return apartment.minimumRent <= filters.maxPrice\r\n && apartment.maximumRent >= filters.minPrice\r\n && (filters.baths == undefined || apartment.maximumBathrooms >= filters.baths)\r\n && (filters.beds == undefined || apartment.maximumBedrooms >= filters.beds)\r\n && (!filters.dogs || apartment.maximumDogs > 0)\r\n && (!filters.cats || apartment.maximumCats > 0);\r\n }) : [];\r\n\r\n const displayApartments = (filteredApartments && filteredApartments.length) ? filteredApartments.slice((page - 1) * 24, Math.min(page * 24, filteredApartments.length)) : [];\r\n\r\n\r\n return (\r\n
\r\n
\r\n
Apartments
\r\n
\r\n \r\n handleLocationInputChange(e.target.value)} type=\"text\" id=\"location-input\" />\r\n\r\n \r\n Search\r\n \r\n
\r\n
\r\n
Price
\r\n
\r\n $ updateFilter('minPrice', e.target.value)} type=\"text\" style={{ width: '40%' }} />\r\n  - \r\n $ updateFilter('maxPrice', e.target.value)} type=\"text\" style={{ width: '40%' }} />\r\n
\r\n
\r\n
\r\n
Beds
\r\n
\r\n updateFilter('beds', e.target.value)} type=\"text\" style={{ width: '50%' }} /> and up\r\n
\r\n
\r\n
\r\n
Baths
\r\n
\r\n updateFilter('beds', e.target.value)} type=\"text\" style={{ width: '50%' }} /> and up\r\n
\r\n
\r\n
\r\n
Pets
\r\n
\r\n updateFilter('dogs', !filters.dogs)}\r\n style={{ background: (filters.dogs) ? '#efefef' : 'white', borderRadius: '5px', border: '1px solid #ccc', width: '60px', height: '30px', cursor: 'pointer', display: 'inline-block', fontSize: '12px', lineHeight: '30px' }}\r\n >\r\n Dogs\r\n \r\n updateFilter('cats', !filters.cats)}\r\n style={{ marginLeft: '10px', background: (filters.cats) ? '#efefef' : 'white', borderRadius: '5px', border: '1px solid #ccc', width: '60px', height: '30px', cursor: 'pointer', display: 'inline-block', fontSize: '12px', lineHeight: '30px' }}\r\n >\r\n Cats\r\n \r\n
\r\n
\r\n
\r\n
\r\n {(!displayApartments || !displayApartments.length) && (\r\n
No results to display.
\r\n )}\r\n {displayApartments && displayApartments.length && (\r\n <>\r\n
\r\n
{ page == 1 ? '' : 'Prev Page' }
\r\n
{page == numPages ? '' : 'Next Page'}
\r\n
\r\n Page\r\n {page} of {numPages}\r\n ({displayApartments && displayApartments.length ? displayApartments.length : 0} results)\r\n
\r\n
\r\n
\r\n {displayApartments.map((x) => {\r\n return (\r\n
\r\n
toDetail(x.propertyID)} style={{ textAlign: 'center' }}>
\r\n
\r\n
\r\n
{x.rent}
\r\n
\r\n
{x.propertyName}
\r\n
{x.city}
\r\n
\r\n
{x.beds} Beds
\r\n
{x.baths} Baths
\r\n
\r\n
\r\n call(x.propertyPhoneNumber.replace(/\\D+/g, ''))}>{x.propertyPhoneNumber.replace(/\\D+/g, '').replace(/(\\d{3})(\\d{3})(\\d{4})/, '($1) $2-$3')}
\r\n
\r\n
\r\n
\r\n )\r\n })}\r\n
\r\n
\r\n
{page == 1 ? '' : 'Prev Page'}
\r\n
{page == numPages ? '' : 'Next Page'}
\r\n
\r\n Page\r\n {page} of {numPages}\r\n ({displayApartments && displayApartments.length ? displayApartments.length : 0} results)\r\n
\r\n
\r\n \r\n )}\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default Apartments;\r\n\r\n/*Check Availability*/","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './index.css';\r\nimport reportWebVitals from './reportWebVitals';\r\nimport {\r\n BrowserRouter as Router,\r\n Switch,\r\n Route,\r\n Link,\r\n Redirect\r\n} from 'react-router-dom'\r\n\r\nimport Login from './Login'\r\nimport Dashboard from './Dashboard'\r\nimport Upload from './Upload'\r\nimport User from './User'\r\nimport AddUser from './AddUser'\r\nimport Affiliates from './Affiliates'\r\nimport Affiliate from './Affiliate'\r\nimport Apartments from './Apartments'\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById('root')\r\n);\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals();\r\n","import React, { useState } from 'react'\r\nimport { useHistory } from 'react-router-dom'\r\n\r\nexport default () => {\r\n const history = useHistory()\r\n\r\n const [file, setFile] = useState()\r\n\r\n const toDashboard = () => {\r\n history.push('/dashboard')\r\n }\r\n\r\n const handleSubmit = () => {\r\n //const file = document.querySelector('input[type=\"file\"]')\r\n\r\n if (window.FormData !== undefined) {\r\n const data = new FormData()\r\n data.append('file', file)//.files[0])\r\n\r\n fetch('api/Users/excel', {\r\n method: 'POST',\r\n body: data\r\n })\r\n .then((res) => {\r\n if (res.ok)\r\n history.push('/affiliates')\r\n })\r\n .catch(error => alert(error))\r\n }\r\n }\r\n\r\n const dropHandle = (ev) => {\r\n ev.preventDefault()\r\n\r\n if (ev.dataTransfer.items) {\r\n for (var i = 0; i < ev.dataTransfer.items.length; i++) {\r\n if (ev.dataTransfer.items[i].kind === 'file') {\r\n setFile(ev.dataTransfer.items[i].getAsFile())\r\n }\r\n }\r\n }\r\n }\r\n\r\n const dragHandle = (ev) => {\r\n ev.preventDefault()\r\n }\r\n\r\n return (\r\n
\r\n
X
\r\n
Upload File
\r\n
\r\n {file &&
{file.name}
}\r\n {!file &&
Drop your file here!
}\r\n
\r\n \r\n
\r\n )\r\n}\r\n\r\n//"],"sourceRoot":""}