{"version":3,"sources":["serviceWorker.js","UserContext.js","theme/palette.js","theme/typography.js","theme/overrides/index.js","theme/overrides/MuiButton.js","theme/overrides/MuiIconButton.js","theme/overrides/MuiPaper.js","theme/overrides/MuiTableCell.js","theme/overrides/MuiTableHead.js","theme/overrides/MuiTypography.js","theme/index.js","components/SearchInput/SearchInput.js","components/StatusBullet/StatusBullet.js","components/RouteWithLayout/RouteWithLayout.js","components/AuthenticatedRoute/AuthenticatedRoute.js","layouts/Main/components/Footer/Footer.js","layouts/Main/components/Sidebar/components/SidebarNav/SidebarNav.js","layouts/Main/components/Sidebar/Sidebar.js","layouts/Main/components/Topbar/Topbar.js","layouts/Main/Main.js","layouts/Minimal/components/Topbar/Topbar.js","layouts/Minimal/Minimal.js","layouts/Login/Login.js","layouts/NoLoginReferralLayout/components/Topbar/Topbar.js","layouts/ApptRequest/ApptRequest.js","layouts/NoLoginReferralLayout/NoLoginReferralLayout.js","views/NotFound/NotFound.js","views/Dashboard/components/TrafficByTier.js","views/Dashboard/components/AbandonRate.js","views/Dashboard/components/AverageHoldTime.js","views/Dashboard/components/AbandonRateNew.js","views/Dashboard/components/TotalCustomers.js","views/Dashboard/components/TotalProfit.js","views/Dashboard/Dashboard.js","common/apiUrl.js","views/SignIn/SignIn.js","views/ForgotPassword/ForgotPassword.js","views/ResetPassword/ResetPassword.js","views/Settings/components/AccountDetails/AccountDetails.js","views/Settings/components/AccountPassword/AccountPassword.js","views/Settings/components/UserManager/LocationList.js","views/Settings/components/UserManager/AddUserForm.js","views/Settings/components/UserManager/EditUserForm.js","views/Settings/components/UserManager/UserTable.js","views/Settings/components/UserManager/UserManager.js","views/Settings/components/LocationManager/AddLocationForm.js","views/Settings/components/LocationManager/LocationTable.js","views/Settings/components/LocationManager/LocationManager.js","views/Settings/Settings.js","views/Referral/components/UserManager/LocationList.js","views/Support/Support.js","views/Referral/components/UserManager/AddUserForm.js","views/Referral/components/UserManager/EditReferralForm.js","views/Referral/components/UserManager/UserTable.js","views/Referral/components/UserManager/UserManager.js","views/Referral/components/ReferralManager/Loading.js","common/Dropzone.js","views/Referral/components/ReferralManager/ReferralManager.js","views/Referral/Referral.js","views/ReferralNoLogin/components/Loading.js","views/ReferralNoLogin/components/NoLoginReferralManager/Loading.js","views/ReferralNoLogin/components/NoLoginReferralManager/NoLoginReferralManager.js","views/ReferralNoLogin/ReferralNoLogin.js","Routes.js","common/accessTokenManager.js","common/validators.js","mixins/chartjs.js","App.js","index.js"],"names":["Boolean","window","location","hostname","match","UserContext","createContext","white","ndGreenDark","ndGreenPrimary","ndGreenLight","Palette","black","primary","contrastText","dark","main","light","secondary","ndGreen","success","colors","green","info","blue","warning","orange","error","red","text","blueGrey","link","background","default","paper","icon","divider","grey","typography","h1","color","palette","fontWeight","fontSize","letterSpacing","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","button","caption","overline","textTransform","MuiButton","contained","boxShadow","backgroundColor","MuiIconButton","root","MuiPaper","elevation1","MuiTableCell","borderBottom","MuiTableHead","MuiTypography","gutterBottom","marginBottom","theme","createTheme","overrides","zIndex","appBar","drawer","responsiveFontSizes","makeStyles","borderRadius","alignItems","padding","spacing","display","flexBasis","marginRight","input","flexGrow","lineHeight","useStyles","flexShrink","sm","height","width","md","lg","neutral","danger","StatusBullet","props","className","size","rest","classes","clsx","defaultProps","RouteWithLayout","Layout","layout","Component","component","redirect","name","url","href","replace","results","RegExp","exec","decodeURIComponent","querystring","user","useContext","render","matchProps","isAuthenticated","to","AuthenticatedRoute","pathname","search","item","paddingTop","paddingBottom","justifyContent","fontWeightMedium","active","CustomRouterLink","forwardRef","ref","style","SidebarNav","pages","List","map","page","ListItem","disableGutters","Button","activeClassName","title","breakpoints","up","marginTop","flexDirection","margin","nav","Sidebar","open","variant","onClose","Drawer","anchor","signOutButton","marginLeft","signOutText","Topbar","setUser","history","useHistory","currentUser","username","onSidebarOpen","handleSignOut","event","a","preventDefault","config","method","headers","Accept","Cache","Authorization","accessToken","credentials","fetch","API_URL","tokenExpiresOn","push","AppBar","Toolbar","alt","src","Hidden","mdDown","Typography","IconButton","onClick","lgUp","shiftContent","paddingLeft","content","Main","children","useTheme","isDesktop","useMediaQuery","defaultMatches","useState","openSidebar","setOpenSidebar","shouldOpenSidebar","position","Minimal","minHeight","Login","maxHeight","avatar","differenceIcon","differenceValue","textAlign","image","maxWidth","NotFound","Grid","container","justify","xs","apiUrl","schema","email","presence","allowEmpty","message","length","maximum","password","grid","direction","cardBg","borderWidth","form","paddingRight","down","fontFamily","textField","signInButton","resMessage","logo","withRouter","severity","setSeverity","setMessage","isValid","values","touched","errors","formState","setFormState","useEffect","validate","handleChange","persist","target","type","checked","value","handleSignIn","body","JSON","stringify","response","json","data","customerStatus","hasError","field","xl","Card","CardContent","onSubmit","TextField","fullWidth","helperText","label","onChange","InputProps","Alert","disabled","Link","RouterLink","submitButton","subTitle","ForgotPassword","isLoading","handleSubmit","e","required","inputProps","maxLength","newPassword","format","pattern","flags","confirm","equality","attribute","contentHeader","contentBody","linkExpired","ResetPassword","setLink","isTokenValid","token","useParams","isAlpha","test","tokenLength","resetToken","fetchData","res","handleExpiredSubmit","cardHeader","list","overflow","first_name","minimum","last_name","mobile_phone","cardHeaderTitle","cardSubHeaderTitle","cardHeaderBackground","AddUserForm","initialFormState","role","isAgent","id","roles","handleInputChange","autoComplete","noValidate","addUser","CardHeader","disableTypography","subheader","Divider","x","toLowerCase","select","MenuItem","CardActions","loading","showAddUserForm","EditUserForm","updateUser","setEditing","table","minWidth","borderCollapse","borderSpacing","border","header","tableHead","tableRow","action","hover","UserTable","TableContainer","Paper","Table","TableHead","TableRow","TableCell","TableBody","users","index","editRow","currentUserId","deleteUser","colSpan","userTable","elevation","UserManager","setUsers","setIsLoading","setCurrentUser","editing","openSnack","setOpenSnack","openErrorSnack","setOpenErrorSnack","showAddUser","setShowAddUser","handleClose","reason","jwt_decode","userId","partnerId","axios","post","result","console","log","nUser","firstName","lastName","mobilePhone","createdBy","userLocationId","locationId","userCustomerId","customerId","organizationId","uUser","put","delete","filter","formatPrimaryPhoneLocal","phone","shortPhone","substring","handleShowAddUser","Snackbar","autoHideDuration","userMenuButton","Settings","selectedTab","setSelectedTab","Tabs","newValue","indicatorColor","Tab","not","b","indexOf","intersection","LocationList","React","setChecked","left","setLeft","right","setRight","leftChecked","rightChecked","handleToggle","currentIndex","newChecked","splice","numberOfChecked","items","handleToggleAll","customList","Checkbox","indeterminate","dense","labelId","ListItemIcon","tabIndex","disableRipple","ListItemText","concat","aria-label","selected","EditReferralForm","currentReferral","referral","setReferral","ddls","ddlData","currentDoc","docs","find","doc","providerid","physicianRequested","currentLocation","sites","site","siteid","preferredLocation","currentInsurance","insurances","insurance","insuranceid","insuranceId","currentBodyPart","bodyparts","bodypart","bodypartid","bodyPartId","currentComplaint","complaints","complaintId","currentAcuity","acuitys","acuity","acuityid","acuityId","currentReferredLocation","locations","locationid","prompt","align","referringPhysician","referringContact","referringOfficePhone","providername","sitename","patientContactName","primaryPhone","patientFirstName","patientLastName","gender","birthDate","ssn","streetAddress","zipCode","emailAddress","insuranceNumber","bodypartname","complaintname","acuityname","previousSurgery","previousSurgerySide","multiline","rows","otherInfo","apptReqStateReason","maxRows","referrals","apptrequestid","patientfirstname","lastname","referring_physician","referring_contact","apptReqState","setCurrentReferral","setDdls","getDdls","locId","sendToLocationId","spgetdropdowns","dropdowns","unmounted","referralId","paramReferral","partnerid","referring_office_phone","physician_requested","preferred_location","patient_contact_name","birthmonth","birthdayofmo","birthyear","street_address","zipcode","emailaddress","primaryphone","referralSourceId","referralsourceid","insnumber","complaintid","previous_surgery_side","otherinfo","requestStatus","requeststatus","apptreqstate","appt_req_state_reason","CircularIndeterminate","CircularProgress","progressIcon","Dropzone","files","setFiles","attachmentIds","setAttachmentIds","dbS3Save","file","path","fileType","apptId","fileName","rky","objectId","local","attachId","attachmentId","configSign","formData","FormData","append","Object","entries","fields","forEach","k","v","dbS3Delete","fileToDelete","attachmentForRemoval","updatedAttachmentIds","fileObjects","onAdd","newFiles","f","onDelete","deleted","acceptedFiles","alertSnackbarProps","anchorOrigin","horizontal","vertical","dropzoneText","filesLimit","maxFileSize","clearOnUnmount","numericality","onlyInteger","greaterThanOrEqualTo","ReferralManager","initialState","preferredApptTime","attachmentPath","attachmentFName","referralContactEmail","sent","setSent","partnerLocations","setPartnerLocations","setCurrentComplaint","setApptId","setRky","setLocationAbbr","fetchPartnerLocations","fetchUserDetails","sendReferral","rsapptrequestid","locationabbr","handlePhoneChange","locationname","utils","DateFnsUtils","DatePicker","disableToolbar","inputVariant","maxDate","Date","now","minDate","openTo","date","InputLabelProps","shrink","endAdornment","InputAdornment","unfilteredComplaints","complaint","Referral","trimmedReferralId","newReferral","referralList","NoLoginReferralManager","referralPartnerId","locationName","ReferralNoLogin","locationIsValid","setLocationIsValid","setLocationId","setLocationName","setPartnerIsValid","setPartnerId","partner","trimmedPartner","undefined","configPartnerFetch","partnerAbbr","fetchPartnerId","Routes","exact","from","ReferralNoLoginView","NoLoginLayout","ReferralView","MainLayout","SettingsView","SignInView","LoginLayout","ForgotPasswordView","ResetPasswordView","NotFoundView","MinimalLayout","accessTokenManager","getRefreshedToken","newAccessToken","setToken","interceptors","request","use","Promise","reject","status","resolve","options","Chart","helpers","extend","elements","Rectangle","prototype","draw","top","bottom","signX","signY","borderSkipped","radius","ctx","this","_chart","vm","_view","cornerRadius","base","y","barSize","Math","min","abs","halfStroke","borderLeft","borderRight","borderTop","beginPath","fillStyle","strokeStyle","borderColor","lineWidth","corners","startCorner","cornerAt","corner","moveTo","i","nextCornerId","floor","xTl","xTr","yTl","yTr","xBl","xBr","yBl","yBr","lineTo","quadraticCurveTo","fill","stroke","browserHistory","createBrowserHistory","validators","App","useMemo","create","baseURL","withCredentials","createAuthRefreshInterceptor","failedRequest","AccessTokenManager","then","tokenRefreshResponse","unescape","pauseInstanceWhileRefreshing","statusCodes","Provider","ThemeProvider","ReactDOM","document","getElementById","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.c9376155.chunk.js","sourcesContent":["// 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 http://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 http://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 http://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 { createContext } from 'react';\r\n\r\nexport const UserContext = createContext();\r\n","import { colors } from \"@material-ui/core\";\r\n\r\nconst white = \"#FFFFFF\";\r\nconst black = \"#000000\";\r\n\r\nconst ndPrimaryDark = \"#314e80\";\r\nconst ndPrimary = \"#4770B7\";\r\nconst ndPrimaryLight = \"#6b8cc5\";\r\n\r\nconst ndGreenDark = \"#00927f\";\r\nconst ndGreenPrimary = \"#3EC3AE\";\r\nconst ndGreenLight = \"#78f6e0\";\r\n\r\nconst Palette = {\r\n black,\r\n white,\r\n primary: {\r\n contrastText: white,\r\n dark: ndPrimaryDark,\r\n main: ndPrimary,\r\n light: ndPrimaryLight,\r\n },\r\n secondary: {\r\n contrastText: white,\r\n dark: ndGreenDark,\r\n main: ndGreenPrimary,\r\n light: ndGreenLight,\r\n },\r\n ndGreen: {\r\n contrastText: white,\r\n dark: ndGreenDark,\r\n main: ndGreenPrimary,\r\n light: ndGreenLight,\r\n },\r\n success: {\r\n contrastText: white,\r\n dark: colors.green[900],\r\n main: colors.green[600],\r\n light: colors.green[400],\r\n },\r\n info: {\r\n contrastText: white,\r\n dark: colors.blue[900],\r\n main: colors.blue[600],\r\n light: colors.blue[400],\r\n },\r\n warning: {\r\n contrastText: white,\r\n dark: colors.orange[900],\r\n main: colors.orange[600],\r\n light: colors.orange[400],\r\n },\r\n error: {\r\n contrastText: white,\r\n dark: colors.red[900],\r\n main: colors.red[600],\r\n light: colors.red[400],\r\n },\r\n text: {\r\n primary: colors.blueGrey[900],\r\n secondary: colors.blueGrey[600],\r\n link: colors.blue[600],\r\n },\r\n background: {\r\n default: \"#F4F6F8\",\r\n paper: white,\r\n },\r\n icon: colors.blueGrey[600],\r\n divider: colors.grey[200],\r\n};\r\n\r\nexport default Palette;\r\n","import palette from \"./palette\";\r\n\r\nconst typography = {\r\n h1: {\r\n color: palette.text.primary,\r\n fontWeight: 500,\r\n // fontSize: \"35px\",\r\n fontSize: \"2.188rem\",\r\n letterSpacing: \"-0.24px\",\r\n // //lineHeight: \"40px\",\r\n //lineHeight: \"2.5rem\",\r\n },\r\n h2: {\r\n color: palette.text.primary,\r\n fontWeight: 500,\r\n // fontSize: \"29px\",\r\n fontSize: \"1.813rem\",\r\n letterSpacing: \"-0.24px\",\r\n // //lineHeight: \"32px\",\r\n //lineHeight: \"2rem\",\r\n },\r\n h3: {\r\n color: palette.text.primary,\r\n fontWeight: 500,\r\n // fontSize: \"24px\",\r\n fontSize: \"1.5rem\",\r\n letterSpacing: \"-0.06px\",\r\n // //lineHeight: \"28px\",\r\n //lineHeight: \"1.75rem\",\r\n },\r\n h4: {\r\n color: palette.text.primary,\r\n fontWeight: 500,\r\n // fontSize: \"20px\",\r\n fontSize: \"1.25rem\",\r\n letterSpacing: \"-0.06px\",\r\n // //lineHeight: \"24px\",\r\n //lineHeight: \"1.5rem\",\r\n },\r\n h5: {\r\n color: palette.text.primary,\r\n fontWeight: 500,\r\n // fontSize: \"16px\",\r\n fontSize: \"1rem\",\r\n letterSpacing: \"-0.05px\",\r\n // //lineHeight: \"20px\",\r\n //lineHeight: \"1.25rem\",\r\n },\r\n h6: {\r\n color: palette.text.primary,\r\n fontWeight: 500,\r\n // fontSize: \"14px\",\r\n fontSize: \"0.875rem\",\r\n letterSpacing: \"-0.05px\",\r\n // //lineHeight: \"20px\",\r\n //lineHeight: \"1.25rem\",\r\n },\r\n subtitle1: {\r\n color: palette.text.primary,\r\n // fontSize: \"16px\",\r\n fontSize: \"1rem\",\r\n letterSpacing: \"-0.05px\",\r\n // //lineHeight: \"25px\",\r\n //lineHeight: \"1.563rem\",\r\n },\r\n subtitle2: {\r\n color: palette.text.secondary,\r\n fontWeight: 400,\r\n //fontSize: \"14px\",\r\n fontSize: \"0.875rem\",\r\n letterSpacing: \"-0.05px\",\r\n // //lineHeight: \"21px\",\r\n //lineHeight: \"1.313rem\",\r\n },\r\n body1: {\r\n color: palette.text.primary,\r\n // fontSize: \"14px\",\r\n fontSize: \"0.875rem\",\r\n letterSpacing: \"-0.05px\",\r\n // //lineHeight: \"21px\",\r\n //lineHeight: \"1.313\",\r\n },\r\n body2: {\r\n color: palette.text.secondary,\r\n // fontSize: \"12px\",\r\n fontSize: \"0.75rem\",\r\n letterSpacing: \"-0.04px\",\r\n // //lineHeight: \"18px\",\r\n //lineHeight: \"1.125rem\",\r\n },\r\n button: {\r\n color: palette.text.primary,\r\n // fontSize: \"14px\",\r\n fontSize: \"0.875rem\",\r\n },\r\n caption: {\r\n color: palette.text.secondary,\r\n //fontSize: \"11px\",\r\n fontSize: \"0.688rem\",\r\n letterSpacing: \"0.33px\",\r\n // //lineHeight: \"13px\",\r\n //lineHeight: \"0.813rem\",\r\n },\r\n overline: {\r\n color: palette.text.secondary,\r\n //fontSize: \"11px\",\r\n fontSize: \"0.688rem\",\r\n fontWeight: 500,\r\n letterSpacing: \"0.33px\",\r\n // //lineHeight: \"13px\",\r\n //lineHeight: \"0.813rem\",\r\n textTransform: \"uppercase\",\r\n },\r\n};\r\n\r\nexport default typography;\r\n","import MuiButton from \"./MuiButton\";\r\nimport MuiIconButton from \"./MuiIconButton\";\r\nimport MuiPaper from \"./MuiPaper\";\r\nimport MuiTableCell from \"./MuiTableCell\";\r\nimport MuiTableHead from \"./MuiTableHead\";\r\nimport MuiTypography from \"./MuiTypography\";\r\n\r\nexport default {\r\n MuiButton,\r\n MuiIconButton,\r\n MuiPaper,\r\n MuiTableCell,\r\n MuiTableHead,\r\n MuiTypography,\r\n};\r\n","const MuiButton = {\r\n contained: {\r\n boxShadow:\r\n \"0 1px 1px 0 rgba(0,0,0,0.14), 0 2px 1px -1px rgba(0,0,0,0.12), 0 1px 3px 0 rgba(0,0,0,0.20)\",\r\n backgroundColor: \"#FFFFFF\",\r\n },\r\n};\r\n\r\nexport default MuiButton;\r\n","import palette from \"../palette\";\r\n\r\nconst MuiIconButton = {\r\n root: {\r\n color: palette.icon,\r\n \"&:hover\": {\r\n backgroundColor: \"rgba(0, 0, 0, 0.03)\",\r\n },\r\n },\r\n};\r\n\r\nexport default MuiIconButton;\r\n","const MuiPaper = {\r\n elevation1: {\r\n boxShadow: \"0 0 0 1px rgba(63,63,68,0.05), 0 1px 3px 0 rgba(63,63,68,0.15)\",\r\n },\r\n};\r\n\r\nexport default MuiPaper;\r\n","import palette from \"../palette\";\r\nimport typography from \"../typography\";\r\n\r\nconst MuiTableCell = {\r\n root: {\r\n ...typography.body1,\r\n borderBottom: `1px solid ${palette.divider}`,\r\n },\r\n};\r\n\r\nexport default MuiTableCell;\r\n","import { colors } from \"@material-ui/core\";\r\n\r\nconst MuiTableHead = {\r\n root: {\r\n backgroundColor: colors.grey[50],\r\n },\r\n};\r\n\r\nexport default MuiTableHead;\r\n","const MuiTypography = {\r\n gutterBottom: {\r\n marginBottom: 8,\r\n },\r\n};\r\n\r\nexport default MuiTypography;\r\n","import { createTheme, responsiveFontSizes } from \"@material-ui/core\";\r\n\r\nimport palette from \"./palette\";\r\nimport typography from \"./typography\";\r\nimport overrides from \"./overrides\";\r\n\r\nlet theme = createTheme({\r\n palette,\r\n typography,\r\n overrides,\r\n zIndex: {\r\n appBar: 1200,\r\n drawer: 1100,\r\n },\r\n});\r\n\r\ntheme = responsiveFontSizes(theme);\r\n\r\nexport default theme;\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport clsx from \"clsx\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport { Paper, Input } from \"@material-ui/core\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n borderRadius: \"4px\",\r\n alignItems: \"center\",\r\n padding: theme.spacing(1),\r\n display: \"flex\",\r\n flexBasis: 420,\r\n },\r\n icon: {\r\n marginRight: theme.spacing(1),\r\n color: theme.palette.text.secondary,\r\n },\r\n input: {\r\n flexGrow: 1,\r\n fontSize: \"14px\",\r\n lineHeight: 1,\r\n letterSpacing: \"-0.05px\",\r\n },\r\n}));\r\n\r\nconst SearchInput = (props) => {\r\n const { className, onChange, style, ...rest } = props;\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nSearchInput.propTypes = {\r\n className: PropTypes.string,\r\n onChange: PropTypes.func,\r\n style: PropTypes.object,\r\n};\r\n\r\nexport default SearchInput;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@material-ui/styles';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n display: 'inline-block',\r\n borderRadius: '50%',\r\n flexGrow: 0,\r\n flexShrink: 0\r\n },\r\n sm: {\r\n height: theme.spacing(1),\r\n width: theme.spacing(1)\r\n },\r\n md: {\r\n height: theme.spacing(2),\r\n width: theme.spacing(2)\r\n },\r\n lg: {\r\n height: theme.spacing(3),\r\n width: theme.spacing(3)\r\n },\r\n neutral: {\r\n backgroundColor: theme.palette.neutral\r\n },\r\n primary: {\r\n backgroundColor: theme.palette.primary.main\r\n },\r\n info: {\r\n backgroundColor: theme.palette.info.main\r\n },\r\n warning: {\r\n backgroundColor: theme.palette.warning.main\r\n },\r\n danger: {\r\n backgroundColor: theme.palette.error.main\r\n },\r\n success: {\r\n backgroundColor: theme.palette.success.main\r\n }\r\n}));\r\n\r\nconst StatusBullet = props => {\r\n const { className, size, color, ...rest } = props;\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nStatusBullet.propTypes = {\r\n className: PropTypes.string,\r\n color: PropTypes.oneOf([\r\n 'neutral',\r\n 'primary',\r\n 'info',\r\n 'success',\r\n 'warning',\r\n 'danger'\r\n ]),\r\n size: PropTypes.oneOf(['sm', 'md', 'lg'])\r\n};\r\n\r\nStatusBullet.defaultProps = {\r\n size: 'md',\r\n color: 'default'\r\n};\r\n\r\nexport default StatusBullet;\r\n","import React, { useContext } from \"react\";\r\nimport { Route, Redirect } from \"react-router-dom\";\r\nimport PropTypes from \"prop-types\";\r\nimport { UserContext } from \"../../UserContext\";\r\n\r\nconst querystring = (name, url = window.location.href) => {\r\n name = name.replace(/[[]]/g, \"\\\\$&\");\r\n\r\n const regex = new RegExp(\"[?&]\" + name + \"(=([^&#]*)|&|#|$)\", \"i\");\r\n const results = regex.exec(url);\r\n\r\n if (!results) {\r\n return null;\r\n }\r\n if (!results[2]) {\r\n return \"\";\r\n }\r\n\r\n return decodeURIComponent(results[2].replace(/\\+/g, \" \"));\r\n};\r\n\r\nconst RouteWithLayout = (props) => {\r\n const { layout: Layout, component: Component, ...rest } = props;\r\n const redirect = querystring(\"redirect\");\r\n\r\n const { user } = useContext(UserContext);\r\n\r\n return (\r\n \r\n !user.isAuthenticated ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n )\r\n }\r\n />\r\n );\r\n};\r\n\r\nRouteWithLayout.propTypes = {\r\n component: PropTypes.any.isRequired,\r\n layout: PropTypes.any.isRequired,\r\n path: PropTypes.string,\r\n};\r\n\r\nexport default RouteWithLayout;\r\n","import React, { useContext } from \"react\";\r\nimport { Route, Redirect } from \"react-router-dom\";\r\nimport PropTypes from \"prop-types\";\r\nimport { UserContext } from \"../../UserContext\";\r\n\r\nexport const AuthenticatedRoute = (props) => {\r\n let { layout: Layout, component: Component, ...rest } = props;\r\n const { user } = useContext(UserContext);\r\n\r\n return (\r\n \r\n user.isAuthenticated ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n )\r\n }\r\n />\r\n );\r\n};\r\n\r\nAuthenticatedRoute.propTypes = {\r\n component: PropTypes.any.isRequired,\r\n layout: PropTypes.any.isRequired,\r\n path: PropTypes.string,\r\n};\r\n\r\nexport default AuthenticatedRoute;\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport clsx from \"clsx\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport { Typography, Link } from \"@material-ui/core\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n padding: theme.spacing(4),\r\n background: theme.palette.background.default,\r\n },\r\n}));\r\n\r\nconst Footer = (props) => {\r\n const { className, ...rest } = props;\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n \r\n © 2021  \r\n \r\n NextDocSolutions.com\r\n \r\n \r\n \r\n The right appointment with the right provider.\r\n \r\n
\r\n );\r\n};\r\n\r\nFooter.propTypes = {\r\n className: PropTypes.string,\r\n};\r\n\r\nexport default Footer;\r\n","/* eslint-disable react/no-multi-comp */\r\n/* eslint-disable react/display-name */\r\nimport React, { forwardRef } from 'react';\r\nimport { NavLink as RouterLink } from 'react-router-dom';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { List, ListItem, Button, colors } from '@material-ui/core';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {},\r\n item: {\r\n display: 'flex',\r\n paddingTop: 0,\r\n paddingBottom: 0\r\n },\r\n button: {\r\n color: colors.blueGrey[800],\r\n padding: '10px 8px',\r\n justifyContent: 'flex-start',\r\n textTransform: 'none',\r\n letterSpacing: 0,\r\n width: '100%',\r\n fontWeight: theme.typography.fontWeightMedium\r\n },\r\n icon: {\r\n color: theme.palette.icon,\r\n width: 24,\r\n height: 24,\r\n display: 'flex',\r\n alignItems: 'center',\r\n marginRight: theme.spacing(1)\r\n },\r\n active: {\r\n color: theme.palette.primary.main,\r\n fontWeight: theme.typography.fontWeightMedium,\r\n '& $icon': {\r\n color: theme.palette.primary.main\r\n }\r\n }\r\n}));\r\n\r\nconst CustomRouterLink = forwardRef((props, ref) => (\r\n \r\n \r\n \r\n));\r\n\r\nconst SidebarNav = props => {\r\n const { pages, className, ...rest } = props;\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n {pages.map(page => (\r\n \r\n \r\n
{page.icon}
\r\n {page.title}\r\n \r\n \r\n ))}\r\n \r\n );\r\n};\r\n\r\nSidebarNav.propTypes = {\r\n className: PropTypes.string,\r\n pages: PropTypes.array.isRequired\r\n};\r\n\r\nexport default SidebarNav;\r\n","import React from \"react\";\r\nimport clsx from \"clsx\";\r\nimport PropTypes from \"prop-types\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport { Drawer } from \"@material-ui/core\";\r\n// import DashboardIcon from \"@material-ui/icons/Dashboard\";\r\nimport SettingsIcon from \"@material-ui/icons/Settings\";\r\n// import ContactSupportIcon from \"@material-ui/icons/ContactSupport\";\r\nimport TelegramIcon from \"@material-ui/icons/Telegram\";\r\n\r\nimport { SidebarNav } from \"./components\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n drawer: {\r\n width: 240,\r\n [theme.breakpoints.up(\"lg\")]: {\r\n marginTop: 64,\r\n height: \"calc(100% - 64px)\",\r\n },\r\n },\r\n root: {\r\n backgroundColor: theme.palette.white,\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n height: \"100%\",\r\n padding: theme.spacing(2),\r\n },\r\n divider: {\r\n margin: theme.spacing(2, 0),\r\n },\r\n nav: {\r\n marginBottom: theme.spacing(2),\r\n },\r\n}));\r\n\r\nconst Sidebar = (props) => {\r\n const { open, variant, onClose, className, ...rest } = props;\r\n\r\n const classes = useStyles();\r\n\r\n const pages = [\r\n {\r\n title: \"Referrals\",\r\n href: \"/referral\",\r\n icon: ,\r\n },\r\n {\r\n title: \"Settings\",\r\n href: \"/settings\",\r\n icon: ,\r\n },\r\n ];\r\n\r\n // const pages = [\r\n // {\r\n // title: \"Dashboard\",\r\n // href: \"/dashboard\",\r\n // icon: ,\r\n // },\r\n // {\r\n // title: \"Referrals\",\r\n // href: \"/referral\",\r\n // icon: ,\r\n // },\r\n // {\r\n // title: \"Settings\",\r\n // href: \"/settings\",\r\n // icon: ,\r\n // },\r\n // {\r\n // title: \"Support\",\r\n // href: \"/support\",\r\n // icon: ,\r\n // },\r\n // ];\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nSidebar.propTypes = {\r\n className: PropTypes.string,\r\n onClose: PropTypes.func,\r\n open: PropTypes.bool.isRequired,\r\n variant: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default Sidebar;\r\n","import React, { useContext } from \"react\";\r\nimport { UserContext } from \"../../../../UserContext\";\r\nimport { Link as RouterLink, useHistory } from \"react-router-dom\";\r\nimport clsx from \"clsx\";\r\nimport PropTypes from \"prop-types\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport { AppBar, Toolbar, Hidden, IconButton } from \"@material-ui/core\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport InputIcon from \"@material-ui/icons/Input\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n boxShadow: \"none\",\r\n },\r\n flexGrow: {\r\n flexGrow: 1,\r\n },\r\n signOutButton: {\r\n marginLeft: theme.spacing(1),\r\n },\r\n signOutText: {\r\n color: theme.palette.white,\r\n padding: theme.spacing(1),\r\n },\r\n}));\r\n\r\nconst Topbar = (props) => {\r\n const { user, setUser } = useContext(UserContext);\r\n const history = useHistory();\r\n\r\n const currentUser = user.username;\r\n\r\n const { className, onSidebarOpen, ...rest } = props;\r\n\r\n const classes = useStyles();\r\n\r\n const handleSignOut = async (event) => {\r\n event.preventDefault();\r\n\r\n try {\r\n const API_URL =\r\n process.env.NODE_ENV === \"development\"\r\n ? \"http://localhost:4000\"\r\n : \"https://api.nextdrvisit.com\";\r\n\r\n const config = {\r\n method: \"POST\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n Cache: \"no-cache\",\r\n Authorization: `Bearer ${user.accessToken}`,\r\n },\r\n credentials: \"include\",\r\n };\r\n\r\n fetch(API_URL + \"/auth/logout\", config);\r\n setUser({\r\n username: \"\",\r\n isAuthenticated: false,\r\n accessToken: \"\",\r\n tokenExpiresOn: \"\",\r\n });\r\n history.push(\"/sign-in\");\r\n } catch (error) {\r\n history.push(\"/sign-in\");\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \"Logo\"\r\n \r\n
\r\n \r\n \r\n Hi, {currentUser}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nTopbar.propTypes = {\r\n className: PropTypes.string,\r\n onSidebarOpen: PropTypes.func,\r\n};\r\n\r\nexport default Topbar;\r\n","import React, { useState } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport clsx from \"clsx\";\r\nimport { makeStyles, useTheme } from \"@material-ui/styles\";\r\nimport { useMediaQuery } from \"@material-ui/core\";\r\n\r\nimport { Sidebar, Topbar } from \"./components\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n paddingTop: 56,\r\n height: \"100%\",\r\n [theme.breakpoints.up(\"sm\")]: {\r\n paddingTop: 64,\r\n },\r\n },\r\n shiftContent: {\r\n paddingLeft: 240,\r\n },\r\n content: {\r\n height: \"100%\",\r\n },\r\n}));\r\n\r\nconst Main = (props) => {\r\n const { children } = props;\r\n\r\n const classes = useStyles();\r\n const theme = useTheme();\r\n const isDesktop = useMediaQuery(theme.breakpoints.up(\"lg\"), {\r\n defaultMatches: true,\r\n });\r\n\r\n const [openSidebar, setOpenSidebar] = useState(false);\r\n\r\n const handleSidebarOpen = () => {\r\n setOpenSidebar(true);\r\n };\r\n\r\n const handleSidebarClose = () => {\r\n setOpenSidebar(false);\r\n };\r\n\r\n const shouldOpenSidebar = isDesktop ? true : openSidebar;\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n {children}\r\n {/*
*/}\r\n
\r\n
\r\n );\r\n};\r\n\r\nMain.propTypes = {\r\n children: PropTypes.node,\r\n};\r\n\r\nexport default Main;\r\n","import React from \"react\";\r\nimport { Link as RouterLink } from \"react-router-dom\";\r\nimport clsx from \"clsx\";\r\nimport PropTypes from \"prop-types\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport { AppBar, Toolbar } from \"@material-ui/core\";\r\n\r\nconst useStyles = makeStyles(() => ({\r\n root: {\r\n boxShadow: \"none\",\r\n },\r\n}));\r\n\r\nconst Topbar = (props) => {\r\n const { className, ...rest } = props;\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n \r\n \"Logo\"\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nTopbar.propTypes = {\r\n className: PropTypes.string,\r\n};\r\n\r\nexport default Topbar;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/styles';\r\n\r\nimport { Topbar } from './components';\r\n\r\nconst useStyles = makeStyles(() => ({\r\n root: {\r\n paddingTop: 64,\r\n height: '100%'\r\n },\r\n content: {\r\n height: '100%'\r\n }\r\n}));\r\n\r\nconst Minimal = props => {\r\n const { children } = props;\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n \r\n
{children}
\r\n
\r\n );\r\n};\r\n\r\nMinimal.propTypes = {\r\n children: PropTypes.node,\r\n className: PropTypes.string\r\n};\r\n\r\nexport default Minimal;\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n background: theme.palette.primary.main,\r\n minHeight: \"100vh\",\r\n paddingTop: \"5%\",\r\n height: \"100%\",\r\n },\r\n content: {\r\n height: \"100%\",\r\n },\r\n}));\r\n\r\nconst Login = (props) => {\r\n const { children } = props;\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n
{children}
\r\n
\r\n );\r\n};\r\n\r\nLogin.propTypes = {\r\n children: PropTypes.node,\r\n className: PropTypes.string,\r\n};\r\n\r\nexport default Login;\r\n","import React, { useContext } from \"react\";\r\nimport { UserContext } from \"../../../../UserContext\";\r\nimport { Link as RouterLink, useHistory } from \"react-router-dom\";\r\nimport clsx from \"clsx\";\r\nimport PropTypes from \"prop-types\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport { AppBar, Toolbar } from \"@material-ui/core\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n boxShadow: \"none\",\r\n },\r\n flexGrow: {\r\n flexGrow: 1,\r\n },\r\n signOutButton: {\r\n marginLeft: theme.spacing(1),\r\n },\r\n signOutText: {\r\n color: theme.palette.white,\r\n padding: theme.spacing(1),\r\n },\r\n}));\r\n\r\nconst Topbar = (props) => {\r\n const { user, setUser } = useContext(UserContext);\r\n const history = useHistory();\r\n\r\n\r\n const { className, onSidebarOpen, ...rest } = props;\r\n\r\n const classes = useStyles();\r\n\r\n\r\n return (\r\n \r\n \r\n \r\n \"Logo\"\r\n \r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nTopbar.propTypes = {\r\n className: PropTypes.string,\r\n onSidebarOpen: PropTypes.func,\r\n};\r\n\r\nexport default Topbar;\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n background: theme.palette.primary.main,\r\n maxHeight: \"100vh\",\r\n height: \"100vh\",\r\n position: \"fixed\",\r\n },\r\n content: {\r\n height: \"100%\",\r\n },\r\n}));\r\n\r\nconst Login = (props) => {\r\n const { children } = props;\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n
{children}
\r\n
\r\n );\r\n};\r\n\r\nLogin.propTypes = {\r\n children: PropTypes.node,\r\n className: PropTypes.string,\r\n};\r\n\r\nexport default Login;\r\n","import React, { useState } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport clsx from \"clsx\";\r\nimport { makeStyles, useTheme } from \"@material-ui/styles\";\r\nimport { useMediaQuery } from \"@material-ui/core\";\r\n\r\nimport { Topbar } from \"./components\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n paddingTop: 56,\r\n height: \"100%\",\r\n [theme.breakpoints.up(\"sm\")]: {\r\n paddingTop: 64,\r\n },\r\n },\r\n shiftContent: {\r\n paddingLeft: 10,\r\n },\r\n content: {\r\n height: \"100%\",\r\n },\r\n}));\r\n\r\nconst Main = (props) => {\r\n const { children } = props;\r\n\r\n const classes = useStyles();\r\n const theme = useTheme();\r\n const isDesktop = useMediaQuery(theme.breakpoints.up(\"lg\"), {\r\n defaultMatches: true,\r\n });\r\n\r\n return (\r\n \r\n \r\n
\r\n {children}\r\n {/*
*/}\r\n
\r\n
\r\n );\r\n};\r\n\r\nMain.propTypes = {\r\n children: PropTypes.node,\r\n};\r\n\r\nexport default Main;\r\n","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport { Grid, Typography } from \"@material-ui/core\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n padding: theme.spacing(4),\r\n },\r\n content: {\r\n paddingTop: 150,\r\n textAlign: \"center\",\r\n },\r\n image: {\r\n marginTop: 50,\r\n display: \"inline-block\",\r\n maxWidth: \"100%\",\r\n width: 560,\r\n },\r\n}));\r\n\r\nconst NotFound = () => {\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n \r\n 404: The page you are looking for isn’t here\r\n \r\n \r\n You either tried some shady route, or you came here by mistake.\r\n Whichever it is, try using the navigation.\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default NotFound;\r\n","import React from \"react\";\nimport clsx from \"clsx\";\nimport PropTypes from \"prop-types\";\nimport { Doughnut } from \"react-chartjs-2\";\nimport {\n Box,\n Card,\n CardContent,\n CardHeader,\n Divider,\n Typography,\n colors,\n makeStyles,\n useTheme,\n} from \"@material-ui/core\";\n\nimport PriorityHighIcon from \"@material-ui/icons/PriorityHigh\";\n\nimport SentimentSatisfiedAltIcon from \"@material-ui/icons/SentimentSatisfiedAlt\";\n\nimport SentimentSatisfiedIcon from \"@material-ui/icons/SentimentSatisfied\";\n\nimport LowPriorityIcon from \"@material-ui/icons/LowPriority\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n height: \"100%\",\n },\n}));\n\nconst TrafficByTier = ({ className, ...rest }) => {\n const classes = useStyles();\n const theme = useTheme();\n\n const data = {\n datasets: [\n {\n data: [25, 35, 30, 10],\n backgroundColor: [\n theme.palette.ndGreen.main,\n colors.orange[600],\n theme.palette.primary.main,\n colors.red[600],\n ],\n borderWidth: 8,\n borderColor: colors.common.white,\n hoverBorderColor: colors.common.white,\n },\n ],\n labels: [\"ASAP\", \"AM\", \"PM\", \"24hr\"],\n };\n\n const options = {\n animation: false,\n cutoutPercentage: 80,\n layout: { padding: 0 },\n legend: {\n display: false,\n },\n maintainAspectRatio: false,\n responsive: true,\n tooltips: {\n backgroundColor: theme.palette.background.default,\n bodyFontColor: theme.palette.text.secondary,\n borderColor: theme.palette.divider,\n borderWidth: 1,\n enabled: true,\n footerFontColor: theme.palette.text.secondary,\n intersect: false,\n mode: \"index\",\n titleFontColor: theme.palette.text.primary,\n },\n };\n\n const devices = [\n {\n title: \"ASAP\",\n value: 25,\n icon: PriorityHighIcon,\n color: theme.palette.ndGreen.main,\n },\n {\n title: \"AM\",\n value: 35,\n icon: SentimentSatisfiedAltIcon,\n color: colors.orange[600],\n },\n {\n title: \"PM\",\n value: 30,\n icon: SentimentSatisfiedIcon,\n color: theme.palette.primary.main,\n },\n {\n title: \"24hr\",\n value: 10,\n icon: LowPriorityIcon,\n color: colors.red[600],\n },\n ];\n\n return (\n \n \n \n \n \n \n \n \n {devices.map(({ color, icon: Icon, title, value }) => (\n \n \n \n {title}\n \n \n {value}%\n \n \n ))}\n \n \n \n );\n};\n\nTrafficByTier.propTypes = {\n className: PropTypes.string,\n};\n\nexport default TrafficByTier;\n","import React from \"react\";\nimport clsx from \"clsx\";\nimport PropTypes from \"prop-types\";\nimport { Bar } from \"react-chartjs-2\";\nimport {\n Box,\n Button,\n Card,\n CardContent,\n CardHeader,\n Divider,\n useTheme,\n makeStyles,\n colors,\n} from \"@material-ui/core\";\nimport ArrowDropDownIcon from \"@material-ui/icons/ArrowDropDown\";\nimport ArrowRightIcon from \"@material-ui/icons/ArrowRight\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {},\n}));\n\nconst AbandonRate = ({ className, ...rest }) => {\n const classes = useStyles();\n const theme = useTheme();\n\n const data = {\n datasets: [\n {\n backgroundColor: theme.palette.primary.main,\n data: [30, 35, 41, 32, 38, 41, 52],\n label: \"Appointments\",\n },\n {\n backgroundColor: colors.grey[200],\n data: [34, 61, 50, 41, 49, 55, 68],\n label: \"Requests\",\n },\n ],\n labels: [\n \"Jeff Ellis\",\n \"Jane Smith\",\n \"John Doe\",\n \"Curtis Jones\",\n \"Alvin Martinez\",\n \"Ted Lasso\",\n ],\n };\n\n const options = {\n animation: false,\n cornerRadius: 20,\n layout: { padding: 0 },\n legend: { display: false },\n maintainAspectRatio: false,\n responsive: true,\n scales: {\n xAxes: [\n {\n barThickness: 12,\n maxBarThickness: 10,\n barPercentage: 0.5,\n categoryPercentage: 0.5,\n ticks: {\n fontColor: theme.palette.text.secondary,\n },\n gridLines: {\n display: false,\n drawBorder: false,\n },\n },\n ],\n yAxes: [\n {\n ticks: {\n fontColor: theme.palette.text.secondary,\n beginAtZero: true,\n min: 0,\n },\n gridLines: {\n borderDash: [2],\n borderDashOffset: [2],\n color: theme.palette.divider,\n drawBorder: false,\n zeroLineBorderDash: [2],\n zeroLineBorderDashOffset: [2],\n zeroLineColor: theme.palette.divider,\n },\n },\n ],\n },\n tooltips: {\n backgroundColor: theme.palette.background.default,\n bodyFontColor: theme.palette.text.secondary,\n borderColor: theme.palette.divider,\n borderWidth: 1,\n enabled: true,\n footerFontColor: theme.palette.text.secondary,\n intersect: false,\n mode: \"index\",\n titleFontColor: theme.palette.text.primary,\n },\n };\n\n return (\n \n } size=\"small\" variant=\"text\">\n Today\n \n }\n title=\"Appointments Scheduled vs. Appointments Requested - by Agent\"\n />\n \n \n \n \n \n \n \n \n }\n size=\"small\"\n variant=\"text\"\n >\n Details\n \n \n \n );\n};\n\nAbandonRate.propTypes = {\n className: PropTypes.string,\n};\n\nexport default AbandonRate;\n","import React from \"react\";\nimport clsx from \"clsx\";\nimport PropTypes from \"prop-types\";\nimport {\n Avatar,\n Box,\n Card,\n CardContent,\n Grid,\n Typography,\n colors,\n makeStyles,\n} from \"@material-ui/core\";\nimport ArrowDownwardIcon from \"@material-ui/icons/ArrowDownward\";\nimport MoneyIcon from \"@material-ui/icons/Money\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n height: \"100%\",\n },\n avatar: {\n backgroundColor: colors.red[600],\n height: 56,\n width: 56,\n },\n differenceIcon: {\n color: colors.red[900],\n },\n differenceValue: {\n color: colors.red[900],\n marginRight: theme.spacing(1),\n },\n}));\n\nconst AverageHoldTime = ({ className, ...rest }) => {\n const classes = useStyles();\n\n return (\n \n \n \n \n \n AVG HOLD TIME\n \n \n 3m 27s\n \n \n \n \n \n \n \n \n \n \n \n 12%\n \n \n Since last month\n \n \n \n \n );\n};\n\nAverageHoldTime.propTypes = {\n className: PropTypes.string,\n};\n\nexport default AverageHoldTime;\n","import React from \"react\";\nimport clsx from \"clsx\";\nimport PropTypes from \"prop-types\";\nimport {\n Avatar,\n Box,\n Card,\n CardContent,\n Grid,\n Typography,\n makeStyles,\n} from \"@material-ui/core\";\nimport ArrowDownwardIcon from \"@material-ui/icons/ArrowDownward\";\nimport MoneyIcon from \"@material-ui/icons/Money\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n height: \"100%\",\n },\n avatar: {\n backgroundColor: theme.palette.ndGreen.main,\n height: 56,\n width: 56,\n },\n differenceIcon: {\n color: theme.palette.ndGreen.main,\n },\n differenceValue: {\n color: theme.palette.ndGreen.dark,\n marginRight: theme.spacing(1),\n },\n}));\n\nconst AbandonRateNew = ({ className, ...rest }) => {\n const classes = useStyles();\n\n return (\n \n \n \n \n \n ABANDON RATE\n \n \n 3%\n \n \n \n \n \n \n \n \n \n \n \n 14%\n \n \n Since last month\n \n \n \n \n );\n};\n\nAbandonRateNew.propTypes = {\n className: PropTypes.string,\n};\n\nexport default AbandonRateNew;\n","import React from \"react\";\nimport clsx from \"clsx\";\nimport PropTypes from \"prop-types\";\nimport {\n Avatar,\n Box,\n Card,\n CardContent,\n Grid,\n Typography,\n makeStyles,\n colors,\n} from \"@material-ui/core\";\nimport ArrowUpwardIcon from \"@material-ui/icons/ArrowUpward\";\nimport PeopleIcon from \"@material-ui/icons/PeopleOutlined\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n height: \"100%\",\n },\n avatar: {\n backgroundColor: colors.orange[600],\n height: 56,\n width: 56,\n },\n differenceIcon: {\n color: colors.orange[600],\n },\n differenceValue: {\n color: colors.orange[600],\n marginRight: theme.spacing(1),\n },\n}));\n\nconst TotalCustomers = ({ className, ...rest }) => {\n const classes = useStyles();\n\n return (\n \n \n \n \n \n TOTAL PATIENTS\n \n \n 4,142\n \n \n \n \n \n \n \n \n \n \n \n 16%\n \n \n Since last month\n \n \n \n \n );\n};\n\nTotalCustomers.propTypes = {\n className: PropTypes.string,\n};\n\nexport default TotalCustomers;\n","import React from \"react\";\nimport clsx from \"clsx\";\nimport PropTypes from \"prop-types\";\nimport {\n Avatar,\n Card,\n CardContent,\n Grid,\n Typography,\n makeStyles,\n} from \"@material-ui/core\";\nimport AttachMoneyIcon from \"@material-ui/icons/AttachMoney\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n height: \"100%\",\n },\n avatar: {\n backgroundColor: theme.palette.primary.main,\n height: 56,\n width: 56,\n },\n}));\n\nconst TotalProfit = ({ className, ...rest }) => {\n const classes = useStyles();\n\n return (\n \n \n \n \n \n TOTAL PROFIT\n \n \n $1,482,798\n \n \n \n \n \n \n \n \n \n \n );\n};\n\nTotalProfit.propTypes = {\n className: PropTypes.string,\n};\n\nexport default TotalProfit;\n","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport { Grid } from \"@material-ui/core\";\r\nimport {\r\n TrafficByTier,\r\n AbandonRate,\r\n AverageHoldTime,\r\n TotalCustomers,\r\n AbandonRateNew,\r\n TotalProfit,\r\n} from \"./components\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n backgroundColor: theme.palette.background.default,\r\n minHeight: \"100%\",\r\n padding: theme.spacing(4),\r\n },\r\n}));\r\n\r\nconst Dashboard = () => {\r\n const classes = useStyles();\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 \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default Dashboard;\r\n","const apiUrl =\n process.env.NODE_ENV === \"development\"\n ? \"http://localhost:4000\"\n : \"https://api.nextdrvisit.com\";\n\nexport default apiUrl;\n","import React, { useState, useEffect, useContext } from \"react\";\r\nimport { Link as RouterLink, withRouter } from \"react-router-dom\";\r\nimport { UserContext } from \"../../UserContext\";\r\nimport apiUrl from \"../../common/apiUrl.js\";\r\nimport validate from \"validate.js\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport {\r\n Grid,\r\n Button,\r\n TextField,\r\n Link,\r\n Typography,\r\n Card,\r\n CardContent,\r\n} from \"@material-ui/core\";\r\nimport Alert from \"@material-ui/lab/Alert\";\r\n\r\nconst schema = {\r\n email: {\r\n presence: { allowEmpty: false, message: \"is required\" },\r\n length: {\r\n maximum: 64,\r\n },\r\n },\r\n password: {\r\n presence: { allowEmpty: false, message: \"is required\" },\r\n length: {\r\n maximum: 128,\r\n },\r\n },\r\n};\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n background: \"#4770b7\",\r\n height: \"100%\",\r\n width: \"100%\",\r\n },\r\n grid: {\r\n spacing: 0,\r\n display: \"flex\",\r\n direction: \"column\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n paddingTop: theme.spacing(7),\r\n },\r\n cardBg: {\r\n backgroundColor: theme.palette.background.default,\r\n borderWidth: \"2px\",\r\n },\r\n form: {\r\n paddingTop: 50,\r\n paddingLeft: 50,\r\n paddingRight: 50,\r\n paddingBottom: 50,\r\n flexBasis: 500,\r\n [theme.breakpoints.down(\"sm\")]: {\r\n paddingLeft: theme.spacing(2),\r\n paddingRight: theme.spacing(2),\r\n },\r\n },\r\n title: {\r\n marginBottom: theme.spacing(2),\r\n fontFamily: \"Source Sans Pro\",\r\n fontWeight: 900,\r\n },\r\n input: {\r\n background: \"white\",\r\n },\r\n textField: {\r\n marginTop: theme.spacing(2),\r\n },\r\n signInButton: {\r\n margin: theme.spacing(4, 0),\r\n },\r\n resMessage: {\r\n marginTop: theme.spacing(2),\r\n },\r\n logo: {\r\n marginTop: theme.spacing(5),\r\n marginBottom: theme.spacing(1),\r\n display: \"flex\",\r\n direction: \"column\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n },\r\n}));\r\n\r\nconst SignIn = () => {\r\n const classes = useStyles();\r\n\r\n const [severity, setSeverity] = useState(\"\");\r\n const [message, setMessage] = useState(\"\");\r\n const [formState, setFormState] = useState({\r\n isValid: false,\r\n values: {},\r\n touched: {},\r\n errors: {},\r\n });\r\n\r\n useEffect(() => {\r\n const errors = validate(formState.values, schema);\r\n\r\n setFormState((formState) => ({\r\n ...formState,\r\n isValid: errors ? false : true,\r\n errors: errors || {},\r\n }));\r\n }, [formState.values]);\r\n\r\n const handleChange = (event) => {\r\n event.persist();\r\n\r\n setFormState((formState) => ({\r\n ...formState,\r\n values: {\r\n ...formState.values,\r\n [event.target.name]:\r\n event.target.type === \"checkbox\"\r\n ? event.target.checked\r\n : event.target.value,\r\n },\r\n touched: {\r\n ...formState.touched,\r\n [event.target.name]: true,\r\n },\r\n }));\r\n };\r\n\r\n const { setUser } = useContext(UserContext);\r\n const handleSignIn = async (event) => {\r\n event.preventDefault();\r\n const email = formState.values.email;\r\n const password = formState.values.password;\r\n\r\n const config = {\r\n method: \"POST\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n Cache: \"no-cache\",\r\n },\r\n credentials: \"include\",\r\n body: JSON.stringify({\r\n username: email,\r\n password: password,\r\n }),\r\n };\r\n\r\n try {\r\n const response = await fetch(apiUrl + \"/auth/rlogin\", config);\r\n const data = await response.json();\r\n\r\n if (data) {\r\n setUser({\r\n username: data.username,\r\n isAuthenticated: data.isAuthenticated,\r\n customerStatus: data.customerStatus,\r\n accessToken: data.accessToken,\r\n tokenExpiresOn: data.tokenExpiresOn,\r\n });\r\n\r\n if (data.severity !== \"success\") {\r\n setSeverity(data.severity);\r\n setMessage(data.message);\r\n }\r\n }\r\n } catch (error) {\r\n setSeverity(\"error\");\r\n setMessage(error.message);\r\n return error;\r\n }\r\n };\r\n\r\n const hasError = (field) =>\r\n formState.touched[field] && formState.errors[field] ? true : false;\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \"Logo\"\r\n
\r\n
\r\n \r\n Sign in\r\n \r\n \r\n \r\n {message && (\r\n
\r\n {message}\r\n
\r\n )}\r\n \r\n Sign in!\r\n \r\n \r\n Forgot password?{\" \"}\r\n \r\n Reset 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 withRouter(SignIn);\r\n","import React, { useState, useEffect } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport validate from \"validate.js\";\nimport PropTypes from \"prop-types\";\nimport apiUrl from \"../../common/apiUrl.js\";\nimport { makeStyles } from \"@material-ui/styles\";\nimport {\n Card,\n CardContent,\n Button,\n TextField,\n Grid,\n Typography,\n} from \"@material-ui/core\";\nimport Alert from \"@material-ui/lab/Alert\";\n\nconst schema = {\n email: {\n presence: { allowEmpty: false, message: \"is required\" },\n email: true,\n length: {\n maximum: 64,\n },\n },\n};\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n height: \"100%\",\n },\n grid: {\n spacing: 0,\n display: \"flex\",\n direction: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n paddingTop: theme.spacing(7),\n },\n cardBg: {\n backgroundColor: theme.palette.background.default,\n borderWidth: \"2px\",\n },\n form: {\n paddingTop: 50,\n paddingLeft: 50,\n paddingRight: 50,\n paddingBottom: 50,\n flexBasis: 500,\n [theme.breakpoints.down(\"sm\")]: {\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2),\n },\n },\n title: {\n marginBottom: theme.spacing(2),\n fontFamily: \"Source Sans Pro\",\n fontWeight: 900,\n },\n input: {\n background: \"white\",\n },\n textField: {\n marginTop: theme.spacing(2),\n },\n submitButton: {\n margin: theme.spacing(4, 0),\n },\n resMessage: {\n marginTop: theme.spacing(2),\n },\n logo: {\n marginTop: theme.spacing(5),\n marginBottom: theme.spacing(1),\n display: \"flex\",\n direction: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n subTitle: {\n paddingLeft: \"2px\",\n paddingRight: \"2px\",\n color: \"rgba(0, 0, 0, 0.65)\",\n },\n}));\n\nconst ForgotPassword = () => {\n const classes = useStyles();\n\n const [severity, setSeverity] = useState(\"\");\n const [message, setMessage] = useState(\"\");\n const [formState, setFormState] = useState({\n isValid: false,\n values: {\n email: \"\",\n },\n touched: {},\n errors: {},\n isLoading: false,\n });\n\n useEffect(() => {\n const errors = validate(formState.values, schema);\n\n setFormState((formState) => ({\n ...formState,\n isValid: errors ? false : true,\n errors: errors || {},\n }));\n }, [formState.values]);\n\n const handleChange = (event) => {\n event.persist();\n\n setFormState((formState) => ({\n ...formState,\n values: {\n ...formState.values,\n [event.target.name]:\n event.target.type === \"checkbox\"\n ? event.target.checked\n : event.target.value,\n },\n touched: {\n ...formState.touched,\n [event.target.name]: true,\n },\n }));\n };\n\n const handleSubmit = async (e) => {\n e.preventDefault();\n\n setFormState((formState) => ({\n ...formState,\n isLoading: true,\n }));\n\n try {\n const response = await fetch(apiUrl + \"/auth/partner-forgot-password\", {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n Cache: \"no-cache\",\n },\n credentials: \"include\",\n body: JSON.stringify({\n email: formState.values.email,\n }),\n });\n\n const data = await response.json();\n\n if (data) {\n setFormState((formState) => ({\n ...formState,\n isLoading: false,\n }));\n\n setSeverity(data.severity);\n setMessage(data.message);\n }\n } catch (e) {\n setFormState((formState) => ({\n ...formState,\n isLoading: false,\n }));\n\n setSeverity(\"error\");\n setMessage(\n \"There was a problem sending your reset email. Please try again.\"\n );\n return e;\n }\n };\n\n const hasError = (field) =>\n formState.touched[field] && formState.errors[field] ? true : false;\n\n return (\n
\n \n \n \n \n
\n \"Logo\"\n
\n
\n \n Forgot Password\n \n \n Enter the email address you use to login to NextDoc below to\n have a password reset link emailed to you.\n \n \n {message && (\n
\n {message}\n
\n )}\n \n Send Reset Email\n \n \n \n Return to sign in\n \n \n \n
\n
\n
\n
\n
\n );\n};\n\nForgotPassword.propTypes = {\n className: PropTypes.string,\n};\n\nexport default ForgotPassword;\n","import React, { useState, useEffect } from \"react\";\r\nimport { useParams, useHistory } from \"react-router-dom\";\r\nimport validate from \"validate.js\";\r\nimport PropTypes from \"prop-types\";\r\nimport apiUrl from \"../../common/apiUrl.js\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport {\r\n Card,\r\n CardContent,\r\n Button,\r\n TextField,\r\n Grid,\r\n Typography,\r\n} from \"@material-ui/core\";\r\nimport Alert from \"@material-ui/lab/Alert\";\r\n\r\nconst schema = {\r\n newPassword: {\r\n presence: true,\r\n format: {\r\n pattern:\r\n \"^(?=[ -~]*?[A-Z])(?=[ -~]*?[a-z])(?=[ -~]*?[0-9])(?=[ -~]*?[#?()_+=~`!@$%^&*-])[ -~]{8,72}$\",\r\n flags: \"i\",\r\n message:\r\n \"requires a minimum of eight characters, at least one uppercase letter, one lowercase letter, one number, and one special character\",\r\n },\r\n },\r\n confirm: {\r\n presence: true,\r\n equality: {\r\n attribute: \"newPassword\",\r\n message: \"^The passwords do not match\",\r\n },\r\n },\r\n};\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n height: \"100%\",\r\n },\r\n grid: {\r\n spacing: 0,\r\n display: \"flex\",\r\n direction: \"column\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n paddingTop: theme.spacing(7),\r\n },\r\n cardBg: {\r\n backgroundColor: theme.palette.background.default,\r\n borderWidth: \"2px\",\r\n },\r\n contentHeader: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n paddingTop: theme.spacing(5),\r\n paddingBottom: theme.spacing(2),\r\n paddingLeft: theme.spacing(2),\r\n paddingRight: theme.spacing(2),\r\n },\r\n contentBody: {\r\n flexGrow: 1,\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n },\r\n form: {\r\n paddingTop: 50,\r\n paddingLeft: 50,\r\n paddingRight: 50,\r\n paddingBottom: 50,\r\n flexBasis: 500,\r\n [theme.breakpoints.down(\"sm\")]: {\r\n paddingLeft: theme.spacing(2),\r\n paddingRight: theme.spacing(2),\r\n },\r\n },\r\n title: {\r\n marginBottom: theme.spacing(2),\r\n fontFamily: \"Source Sans Pro\",\r\n fontWeight: 900,\r\n },\r\n input: {\r\n background: \"white\",\r\n },\r\n textField: {\r\n marginTop: theme.spacing(2),\r\n },\r\n submitButton: {\r\n margin: theme.spacing(4, 0),\r\n },\r\n resMessage: {\r\n marginTop: theme.spacing(2),\r\n },\r\n logo: {\r\n marginTop: theme.spacing(5),\r\n marginBottom: theme.spacing(5),\r\n display: \"flex\",\r\n direction: \"column\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n },\r\n linkExpired: {\r\n paddingTop: theme.spacing(4),\r\n },\r\n}));\r\n\r\nconst ResetPassword = (props) => {\r\n const classes = useStyles();\r\n\r\n const [severity, setSeverity] = useState(\"\");\r\n const [message, setMessage] = useState(\"\");\r\n const [link, setLink] = useState(\"\");\r\n const [formState, setFormState] = useState({\r\n isValid: false,\r\n values: {\r\n newPassword: \"\",\r\n confirm: \"\",\r\n },\r\n touched: {},\r\n errors: {},\r\n isTokenValid: false,\r\n isLoading: false,\r\n });\r\n\r\n let history = useHistory();\r\n const { token } = useParams();\r\n\r\n const testAlphaNumeric = new RegExp(/^[a-z0-9]+$/i);\r\n const isAlpha = testAlphaNumeric.test(token);\r\n const tokenLength = token.length;\r\n\r\n if (!isAlpha || !tokenLength === 64) {\r\n history.push(\"/sign-in\");\r\n }\r\n\r\n useEffect(() => {\r\n const config = {\r\n method: \"POST\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n Cache: \"no-cache\",\r\n },\r\n credentials: \"include\",\r\n body: JSON.stringify({\r\n resetToken: token,\r\n }),\r\n };\r\n\r\n const fetchData = async () => {\r\n try {\r\n const response = await fetch(`${apiUrl}/auth/validate-token`, config);\r\n const tokenData = await response.json();\r\n\r\n if (tokenData.data === \"\") {\r\n setFormState((formState) => ({\r\n ...formState,\r\n isTokenValid: false,\r\n }));\r\n } else {\r\n setFormState((formState) => ({\r\n ...formState,\r\n isTokenValid: true,\r\n }));\r\n }\r\n } catch (error) {\r\n setFormState((formState) => ({\r\n ...formState,\r\n isTokenValid: false,\r\n }));\r\n }\r\n };\r\n fetchData();\r\n }, [token, history]);\r\n\r\n useEffect(() => {\r\n const errors = validate(formState.values, schema);\r\n\r\n setFormState((formState) => ({\r\n ...formState,\r\n isValid: errors ? false : true,\r\n errors: errors || {},\r\n }));\r\n }, [formState.values]);\r\n\r\n const handleChange = (event) => {\r\n event.persist();\r\n\r\n setFormState((formState) => ({\r\n ...formState,\r\n values: {\r\n ...formState.values,\r\n [event.target.name]:\r\n event.target.type === \"checkbox\"\r\n ? event.target.checked\r\n : event.target.value,\r\n },\r\n touched: {\r\n ...formState.touched,\r\n [event.target.name]: true,\r\n },\r\n }));\r\n };\r\n\r\n const handleSubmit = async (e) => {\r\n e.preventDefault();\r\n\r\n setFormState((formState) => ({\r\n ...formState,\r\n isLoading: true,\r\n }));\r\n\r\n try {\r\n const res = await fetch(apiUrl + \"/auth/reset-password\", {\r\n method: \"POST\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n Cache: \"no-cache\",\r\n },\r\n credentials: \"include\",\r\n body: JSON.stringify({\r\n resetToken: token,\r\n password: formState.values.newPassword,\r\n }),\r\n });\r\n\r\n const data = await res.json();\r\n\r\n if (data) {\r\n setFormState((formState) => ({\r\n ...formState,\r\n isLoading: false,\r\n }));\r\n setSeverity(data.severity);\r\n setMessage(data.message);\r\n if (data.link) {\r\n setLink(data.link);\r\n }\r\n }\r\n } catch (error) {\r\n setFormState((formState) => ({\r\n ...formState,\r\n isLoading: false,\r\n }));\r\n\r\n setSeverity(\"error\");\r\n setMessage(error.message);\r\n\r\n return error;\r\n }\r\n };\r\n\r\n const handleExpiredSubmit = async (e) => {\r\n e.preventDefault();\r\n history.push(\"/forgot-password\");\r\n };\r\n\r\n const hasError = (field) =>\r\n formState.touched[field] && formState.errors[field] ? true : false;\r\n\r\n return (\r\n
\r\n {!formState.isTokenValid ? (\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \"Logo\"\r\n
\r\n \r\n Your password reset link has expired. Please click the\r\n button below to send an updated reset link.\r\n \r\n
\r\n \r\n Send New Reset 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 \r\n \r\n \r\n
\r\n \"Logo\"\r\n
\r\n
\r\n \r\n Create New Password\r\n \r\n \r\n \r\n {message && (\r\n
\r\n \r\n {message}\r\n {link !== \"\" ? (\r\n \r\n Click here to Sign In\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n
\r\n )}\r\n \r\n Update Password\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n );\r\n};\r\n\r\nResetPassword.propTypes = {\r\n className: PropTypes.string,\r\n};\r\n\r\nexport default ResetPassword;\r\n","import React, { useState, useContext, useEffect } from 'react';\r\nimport { useFetch } from '../../../../common/useFetch';\r\nimport { fetchData } from '../../../../common/fetchData';\r\nimport { UserContext } from '../../../../UserContext';\r\nimport validate from 'validate.js';\r\nimport clsx from 'clsx';\r\nimport Snackbar from '@material-ui/core/Snackbar';\r\nimport MuiAlert from '@material-ui/lab/Alert';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport jwt_decode from 'jwt-decode';\r\nimport {\r\n Card,\r\n CardHeader,\r\n CardContent,\r\n CardActions,\r\n Divider,\r\n Grid,\r\n Button,\r\n TextField\r\n} from '@material-ui/core';\r\n\r\nconst schema = {\r\n firstName: {\r\n presence: true,\r\n length: {\r\n minimum: 1,\r\n maximum: 20\r\n },\r\n format: {\r\n pattern: '[a-z0-9]+',\r\n flags: 'i',\r\n message: 'can only contain a-z and 0-9'\r\n }\r\n },\r\n lastName: {\r\n presence: true,\r\n length: {\r\n minimum: 1,\r\n maximum: 20\r\n },\r\n format: {\r\n pattern: '[a-z0-9]+',\r\n flags: 'i',\r\n message: 'can only contain a-z and 0-9'\r\n }\r\n },\r\n email: {\r\n presence: { allowEmpty: false, message: 'is required' },\r\n email: true,\r\n length: {\r\n maximum: 64\r\n }\r\n },\r\n phone: {\r\n presence: { allowEmpty: false, message: 'is required 123-456-7890' },\r\n length: {\r\n maximum: 12\r\n }\r\n }\r\n};\r\n\r\nconst useStyles = makeStyles(() => ({\r\n root: {}\r\n}));\r\n\r\nfunction Alert(props) {\r\n return ;\r\n}\r\n\r\nconst AccountDetails = (props) => {\r\n const [formState, setFormState] = useState({\r\n isValid: false,\r\n values: {\r\n firstName: '',\r\n lastName: '',\r\n email: '',\r\n phone: '',\r\n role: '',\r\n coach: ''\r\n },\r\n touched: {},\r\n errors: {},\r\n isLoading: false\r\n });\r\n\r\n const [openSnack, setOpenSnack] = useState(false);\r\n const [openErrorSnack, setOpenErrorSnack] = useState(false);\r\n\r\n const handleClose = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n\r\n setOpenSnack(false);\r\n setOpenErrorSnack(false);\r\n };\r\n\r\n const { user, setUser } = useContext(UserContext);\r\n const { userId } = jwt_decode(user.accessToken);\r\n\r\n const config = {\r\n method: 'POST',\r\n headers: {\r\n Accept: 'application/json',\r\n 'Content-Type': 'application/json',\r\n Cache: 'no-cache',\r\n Authorization: `Bearer ${user.accessToken}`\r\n },\r\n credentials: 'include',\r\n body: JSON.stringify({\r\n currentUserId: userId\r\n })\r\n };\r\n\r\n const { data } = useFetch('/user/me', config);\r\n\r\n useEffect(() => {\r\n if (data) {\r\n setFormState((formState) => ({\r\n ...formState,\r\n values: {\r\n firstName: data.user.first_name,\r\n lastName: data.user.last_name,\r\n email: data.user.email,\r\n phone: data.user.mobile_phone\r\n }\r\n }));\r\n }\r\n // eslint-disable-next-line\r\n }, [data]);\r\n\r\n useEffect(() => {\r\n const errors = validate(formState.values, schema);\r\n\r\n setFormState((formState) => ({\r\n ...formState,\r\n isValid: errors ? false : true,\r\n errors: errors || {}\r\n }));\r\n }, [formState.values]);\r\n\r\n const handleChange = (event) => {\r\n event.persist();\r\n\r\n setFormState((formState) => ({\r\n ...formState,\r\n values: {\r\n ...formState.values,\r\n [event.target.name]:\r\n event.target.type === 'checkbox'\r\n ? event.target.checked\r\n : event.target.value\r\n },\r\n touched: {\r\n ...formState.touched,\r\n [event.target.name]: true\r\n }\r\n }));\r\n };\r\n\r\n const handleSubmit = async (e) => {\r\n e.preventDefault();\r\n\r\n setFormState((formState) => ({\r\n ...formState,\r\n isLoading: true\r\n }));\r\n\r\n try {\r\n const { data, newUser } = await fetchData(\r\n '/user',\r\n user.accessToken,\r\n 'PUT',\r\n {\r\n userId: userId,\r\n first_name: formState.values.firstName,\r\n last_name: formState.values.lastName,\r\n email: formState.values.email,\r\n mobile_phone: formState.values.phone\r\n }\r\n );\r\n\r\n if (data) {\r\n setFormState((formState) => ({\r\n ...formState,\r\n values: {\r\n firstName: data.user.first_name,\r\n lastName: data.user.last_name,\r\n email: data.user.email,\r\n phone: data.user.mobile_phone\r\n },\r\n isLoading: false\r\n }));\r\n }\r\n setOpenSnack(true);\r\n\r\n if (newUser) {\r\n setUser(newUser);\r\n }\r\n } catch (e) {\r\n setFormState((formState) => ({\r\n ...formState,\r\n isLoading: false\r\n }));\r\n setOpenErrorSnack(true);\r\n return e;\r\n }\r\n };\r\n\r\n const { className, ...rest } = props;\r\n\r\n const classes = useStyles();\r\n\r\n const hasError = (field) =>\r\n formState.touched[field] && formState.errors[field] ? true : false;\r\n\r\n return (\r\n
\r\n \r\n \r\n User updated successfully!\r\n \r\n \r\n \r\n \r\n User update failed. Please try again.\r\n \r\n \r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Update Profile\r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nAccountDetails.propTypes = {\r\n className: PropTypes.string\r\n};\r\n\r\nexport default AccountDetails;\r\n","import React, { useState, useContext, useEffect } from 'react';\r\nimport validate from 'validate.js';\r\nimport PropTypes from 'prop-types';\r\nimport { fetchData } from '../../../../common/fetchData';\r\nimport clsx from 'clsx';\r\nimport Snackbar from '@material-ui/core/Snackbar';\r\nimport MuiAlert from '@material-ui/lab/Alert';\r\nimport { UserContext } from '../../../../UserContext';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport jwt_decode from 'jwt-decode';\r\nimport {\r\n Card,\r\n CardHeader,\r\n CardContent,\r\n CardActions,\r\n Divider,\r\n Button,\r\n TextField\r\n} from '@material-ui/core';\r\n\r\nconst schema = {\r\n currentPassword: {\r\n presence: true,\r\n length: {\r\n minimum: 8,\r\n maximum: 100\r\n }\r\n },\r\n newPassword: {\r\n presence: true,\r\n format: {\r\n pattern:\r\n '^(?=[ -~]*?[A-Z])(?=[ -~]*?[a-z])(?=[ -~]*?[0-9])(?=[ -~]*?[#?!@$%^&*-])[ -~]{8,72}$',\r\n flags: 'i',\r\n message:\r\n 'requires a minimum eight characters, at least one uppercase letter, one lowercase letter, one number, and one special character'\r\n }\r\n },\r\n confirm: {\r\n presence: true,\r\n equality: {\r\n attribute: 'newPassword',\r\n message: '^The passwords do not match'\r\n }\r\n }\r\n};\r\n\r\nconst useStyles = makeStyles(() => ({\r\n root: {}\r\n}));\r\n\r\nfunction Alert(props) {\r\n return ;\r\n}\r\n\r\nconst AccountPassword = props => {\r\n const [openSnack, setOpenSnack] = useState(false);\r\n const [openErrorSnack, setOpenErrorSnack] = useState(false);\r\n\r\n const handleClose = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n\r\n setOpenSnack(false);\r\n setOpenErrorSnack(false);\r\n };\r\n\r\n const [formState, setFormState] = useState({\r\n isValid: false,\r\n values: {\r\n currentPassword: '',\r\n newPassword: '',\r\n confirm: ''\r\n },\r\n touched: {},\r\n errors: {},\r\n isLoading: false\r\n });\r\n\r\n useEffect(() => {\r\n const errors = validate(formState.values, schema);\r\n\r\n setFormState(formState => ({\r\n ...formState,\r\n isValid: errors ? false : true,\r\n errors: errors || {}\r\n }));\r\n }, [formState.values]);\r\n\r\n const handleChange = event => {\r\n event.persist();\r\n\r\n setFormState(formState => ({\r\n ...formState,\r\n values: {\r\n ...formState.values,\r\n [event.target.name]:\r\n event.target.type === 'checkbox'\r\n ? event.target.checked\r\n : event.target.value\r\n },\r\n touched: {\r\n ...formState.touched,\r\n [event.target.name]: true\r\n }\r\n }));\r\n };\r\n\r\n const { user, setUser } = useContext(UserContext);\r\n const { userId } = jwt_decode(user.accessToken);\r\n\r\n const handleSubmit = async e => {\r\n e.preventDefault();\r\n\r\n setFormState(formState => ({\r\n ...formState,\r\n isLoading: true\r\n }));\r\n\r\n try {\r\n const { data, newUser } = await fetchData(\r\n '/user/pw',\r\n user.accessToken,\r\n 'PUT',\r\n {\r\n userId: userId,\r\n currentPassword: formState.values.currentPassword,\r\n newPassword: formState.values.newPassword\r\n }\r\n );\r\n\r\n if (data) {\r\n setFormState(formState => ({\r\n ...formState,\r\n isLoading: false\r\n }));\r\n }\r\n setOpenSnack(true);\r\n\r\n if (newUser) {\r\n setUser(newUser);\r\n }\r\n } catch (e) {\r\n setFormState(formState => ({\r\n ...formState,\r\n isLoading: false\r\n }));\r\n setOpenErrorSnack(true);\r\n return e;\r\n }\r\n };\r\n\r\n const { className, ...rest } = props;\r\n\r\n const classes = useStyles();\r\n\r\n const hasError = field =>\r\n formState.touched[field] && formState.errors[field] ? true : false;\r\n\r\n return (\r\n
\r\n \r\n \r\n Password updated successfully!\r\n \r\n \r\n \r\n \r\n Password update failed. Please try again.\r\n \r\n \r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Update Password\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nAccountPassword.propTypes = {\r\n className: PropTypes.string\r\n};\r\n\r\nexport default AccountPassword;\r\n","import React from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport Grid from \"@material-ui/core/Grid\";\nimport List from \"@material-ui/core/List\";\nimport Card from \"@material-ui/core/Card\";\nimport CardHeader from \"@material-ui/core/CardHeader\";\nimport ListItem from \"@material-ui/core/ListItem\";\nimport ListItemText from \"@material-ui/core/ListItemText\";\nimport ListItemIcon from \"@material-ui/core/ListItemIcon\";\nimport Checkbox from \"@material-ui/core/Checkbox\";\nimport Button from \"@material-ui/core/Button\";\nimport Divider from \"@material-ui/core/Divider\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n margin: \"auto\",\n },\n cardHeader: {\n padding: theme.spacing(1, 2),\n },\n list: {\n width: 200,\n height: 230,\n backgroundColor: theme.palette.background.paper,\n overflow: \"auto\",\n },\n button: {\n margin: theme.spacing(0.5, 0),\n },\n}));\n\nfunction not(a, b) {\n return a.filter((value) => b.indexOf(value) === -1);\n}\n\nfunction intersection(a, b) {\n return a.filter((value) => b.indexOf(value) !== -1);\n}\n\nfunction union(a, b) {\n return [...a, ...not(b, a)];\n}\n\nexport default function LocationList() {\n const classes = useStyles();\n const [checked, setChecked] = React.useState([]);\n const [left, setLeft] = React.useState([0, 1, 2, 3]);\n const [right, setRight] = React.useState([4, 5, 6, 7]);\n\n const leftChecked = intersection(checked, left);\n const rightChecked = intersection(checked, right);\n\n const handleToggle = (value) => () => {\n const currentIndex = checked.indexOf(value);\n const newChecked = [...checked];\n\n if (currentIndex === -1) {\n newChecked.push(value);\n } else {\n newChecked.splice(currentIndex, 1);\n }\n\n setChecked(newChecked);\n };\n\n const numberOfChecked = (items) => intersection(checked, items).length;\n\n const handleToggleAll = (items) => () => {\n if (numberOfChecked(items) === items.length) {\n setChecked(not(checked, items));\n } else {\n setChecked(union(checked, items));\n }\n };\n\n const handleCheckedRight = () => {\n setRight(right.concat(leftChecked));\n setLeft(not(left, leftChecked));\n setChecked(not(checked, leftChecked));\n };\n\n const handleCheckedLeft = () => {\n setLeft(left.concat(rightChecked));\n setRight(not(right, rightChecked));\n setChecked(not(checked, rightChecked));\n };\n\n const customList = (title, items) => (\n \n \n }\n title={title}\n subheader={`${numberOfChecked(items)}/${items.length} selected`}\n />\n \n \n {items.map((value) => {\n const labelId = `transfer-list-all-item-${value}-label`;\n\n return (\n \n \n \n \n \n \n );\n })}\n \n \n \n );\n\n return (\n \n {customList(\"Locations Available\", left)}\n \n \n \n >\n \n \n <\n \n \n \n {customList(\"Locations Assigned\", right)}\n \n );\n}\n","import React, { useState, useEffect } from \"react\";\r\nimport {\r\n TextField,\r\n Grid,\r\n Button,\r\n Card,\r\n Divider,\r\n CardContent,\r\n CardActions,\r\n CardHeader,\r\n MenuItem,\r\n makeStyles,\r\n Typography,\r\n} from \"@material-ui/core\";\r\nimport validate from \"validate.js\";\r\nimport LocationList from \"./LocationList\";\r\n\r\nconst schema = {\r\n first_name: {\r\n presence: true,\r\n length: {\r\n minimum: 1,\r\n maximum: 20,\r\n },\r\n format: {\r\n pattern: \"[a-z0-9]+\",\r\n flags: \"i\",\r\n message: \"can only contain a-z and 0-9\",\r\n },\r\n },\r\n last_name: {\r\n presence: true,\r\n length: {\r\n minimum: 1,\r\n maximum: 20,\r\n },\r\n format: {\r\n pattern: \"[a-z0-9]+\",\r\n flags: \"i\",\r\n message: \"can only contain a-z and 0-9\",\r\n },\r\n },\r\n email: {\r\n presence: { allowEmpty: false, message: \"is required\" },\r\n email: true,\r\n length: {\r\n maximum: 64,\r\n },\r\n },\r\n mobile_phone: {\r\n presence: {\r\n allowEmpty: false,\r\n message: \"is required in the format 123-456-7890\",\r\n },\r\n length: {\r\n minimum: 12,\r\n },\r\n format: {\r\n pattern: \"^(\\\\+0?1\\\\s)?\\\\(?\\\\d{3}\\\\)?[\\\\s.-]\\\\d{3}[\\\\s.-]\\\\d{4}$\",\r\n flags: \"i\",\r\n message: \"is required in the format 123-456-7890\",\r\n },\r\n },\r\n};\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n cardHeaderTitle: {\r\n color: \"#FFFFFF\",\r\n fontSize: \"1rem\",\r\n fontWeight: 600,\r\n },\r\n cardSubHeaderTitle: {\r\n color: \"#FFFFFF\",\r\n },\r\n cardHeaderBackground: {\r\n backgroundColor: theme.palette.primary.main,\r\n },\r\n}));\r\n\r\nconst AddUserForm = (props) => {\r\n const classes = useStyles();\r\n\r\n const initialFormState = {\r\n isValid: false,\r\n values: {\r\n first_name: \"\",\r\n last_name: \"\",\r\n mobile_phone: \"\",\r\n email: \"\",\r\n role: 3,\r\n isAgent: false,\r\n password: \"\",\r\n confirm: \"\",\r\n },\r\n touched: {},\r\n errors: {},\r\n isLoading: false,\r\n };\r\n\r\n const [user, setUser] = useState(initialFormState);\r\n const [roles] = useState([\r\n { id: 2, role: \"Admin\" },\r\n { id: 3, role: \"User\" },\r\n ]);\r\n\r\n useEffect(() => {\r\n const errors = validate(user.values, schema);\r\n\r\n setUser((user) => ({\r\n ...user,\r\n isValid: errors ? false : true,\r\n errors: errors || {},\r\n }));\r\n }, [user.values]);\r\n\r\n const handleInputChange = (event) => {\r\n event.persist();\r\n\r\n setUser((user) => ({\r\n ...user,\r\n values: {\r\n ...user.values,\r\n [event.target.name]:\r\n event.target.type === \"checkbox\"\r\n ? event.target.checked\r\n : event.target.value,\r\n },\r\n touched: {\r\n ...user.touched,\r\n [event.target.name]: true,\r\n },\r\n }));\r\n };\r\n\r\n const handlePhoneChange = (event) => {\r\n event.persist();\r\n\r\n var x = event.target.value\r\n .replace(/\\D/g, \"\")\r\n .match(/(\\d{0,3})(\\d{0,3})(\\d{0,4})/);\r\n x = event.target.value = !x[2]\r\n ? x[1]\r\n : x[1] + \"-\" + x[2] + (x[3] ? \"-\" + x[3] : \"\");\r\n\r\n setUser((user) => ({\r\n ...user,\r\n values: {\r\n ...user.values,\r\n [event.target.name]:\r\n event.target.type === \"checkbox\" ? event.target.checked : x,\r\n },\r\n touched: {\r\n ...user.touched,\r\n [event.target.name]: true,\r\n },\r\n }));\r\n };\r\n\r\n const handleSubmit = (event) => {\r\n event.preventDefault();\r\n\r\n props.addUser(user.values);\r\n setUser(initialFormState);\r\n };\r\n\r\n const hasError = (field) =>\r\n user.touched[field] && user.errors[field] ? true : false;\r\n\r\n return (\r\n \r\n
\r\n \r\n Create A New User\r\n \r\n }\r\n subheader={\r\n \r\n Only admins can manage users\r\n \r\n }\r\n className={classes.cardHeaderBackground}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {roles.map((role) => (\r\n \r\n {role.role}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Create User\r\n \r\n props.showAddUserForm()}\r\n variant=\"contained\"\r\n >\r\n Cancel\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default AddUserForm;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport {\r\n TextField,\r\n Grid,\r\n Button,\r\n Card,\r\n Divider,\r\n CardContent,\r\n CardActions,\r\n CardHeader,\r\n MenuItem,\r\n} from \"@material-ui/core\";\r\nimport validate from \"validate.js\";\r\n\r\nconst schema = {\r\n first_name: {\r\n presence: true,\r\n length: {\r\n minimum: 1,\r\n maximum: 20,\r\n },\r\n format: {\r\n pattern: \"[a-z0-9]+\",\r\n flags: \"i\",\r\n message: \"can only contain a-z and 0-9\",\r\n },\r\n },\r\n last_name: {\r\n presence: true,\r\n length: {\r\n minimum: 1,\r\n maximum: 20,\r\n },\r\n format: {\r\n pattern: \"[a-z0-9]+\",\r\n flags: \"i\",\r\n message: \"can only contain a-z and 0-9\",\r\n },\r\n },\r\n email: {\r\n presence: { allowEmpty: false, message: \"is required\" },\r\n email: true,\r\n length: {\r\n maximum: 64,\r\n },\r\n },\r\n mobile_phone: {\r\n presence: {\r\n allowEmpty: false,\r\n message: \"is required in the format 123-456-7890\",\r\n },\r\n length: {\r\n minimum: 12,\r\n },\r\n format: {\r\n pattern: \"^(\\\\+0?1\\\\s)?\\\\(?\\\\d{3}\\\\)?[\\\\s.-]\\\\d{3}[\\\\s.-]\\\\d{4}$\",\r\n flags: \"i\",\r\n message: \"is required in the format 123-456-7890\",\r\n },\r\n },\r\n};\r\n\r\nconst EditUserForm = (props) => {\r\n const [user, setUser] = useState(props.currentUser);\r\n const [roles] = useState([\r\n { id: 1, role: \"Admin\" },\r\n { id: 2, role: \"User\" },\r\n ]);\r\n\r\n useEffect(() => {\r\n setUser(props.currentUser);\r\n }, [props]);\r\n\r\n useEffect(() => {\r\n const errors = validate(user.values, schema);\r\n\r\n setUser((user) => ({\r\n ...user,\r\n isValid: errors ? false : true,\r\n errors: errors || {},\r\n }));\r\n }, [user.values]);\r\n\r\n const handleInputChange = (event) => {\r\n event.persist();\r\n\r\n setUser((user) => ({\r\n ...user,\r\n values: {\r\n ...user.values,\r\n [event.target.name]:\r\n event.target.type === \"checkbox\"\r\n ? event.target.checked\r\n : event.target.value,\r\n },\r\n touched: {\r\n ...user.touched,\r\n [event.target.name]: true,\r\n },\r\n }));\r\n };\r\n\r\n const handlePhoneChange = (event) => {\r\n event.persist();\r\n\r\n var x = event.target.value\r\n .replace(/\\D/g, \"\")\r\n .match(/(\\d{0,3})(\\d{0,3})(\\d{0,4})/);\r\n x = event.target.value = !x[2]\r\n ? x[1]\r\n : x[1] + \"-\" + x[2] + (x[3] ? \"-\" + x[3] : \"\");\r\n\r\n setUser((user) => ({\r\n ...user,\r\n values: {\r\n ...user.values,\r\n [event.target.name]:\r\n event.target.type === \"checkbox\" ? event.target.checked : x,\r\n },\r\n touched: {\r\n ...user.touched,\r\n [event.target.name]: true,\r\n },\r\n }));\r\n };\r\n\r\n const handleSubmit = (event) => {\r\n event.preventDefault();\r\n\r\n props.updateUser(user.values.id, user);\r\n };\r\n\r\n const hasError = (field) =>\r\n user.touched[field] && user.errors[field] ? true : false;\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 \r\n \r\n\r\n \r\n \r\n {roles.map((role) => (\r\n \r\n {role.role}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Update User\r\n \r\n props.setEditing(false)}\r\n variant=\"contained\"\r\n >\r\n Cancel\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default EditUserForm;\r\n","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport {\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableContainer,\r\n TableHead,\r\n TableRow,\r\n Paper,\r\n IconButton,\r\n} from \"@material-ui/core\";\r\nimport DeleteOutlineIcon from \"@material-ui/icons/DeleteOutline\";\r\nimport EditIcon from \"@material-ui/icons/Edit\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n table: {\r\n minWidth: 650,\r\n borderCollapse: \"collapse\",\r\n borderSpacing: 0,\r\n width: \"100%\",\r\n border: \"1px solid #ddd\",\r\n },\r\n header: {\r\n color: \"#FFFFFF\",\r\n textAlign: \"left\",\r\n padding: \"1rem\",\r\n fontSize: \"1rem\",\r\n fontWeight: 600,\r\n },\r\n tableHead: {\r\n backgroundColor: theme.palette.primary.main,\r\n },\r\n tableRow: {\r\n \"&:nth-of-type(even)\": {\r\n backgroundColor: theme.palette.action.hover,\r\n },\r\n },\r\n}));\r\n\r\nconst UserTable = (props) => {\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {props && props.role <= 2 && (\r\n Edit / Archive\r\n )}\r\n First\r\n Last\r\n Email\r\n Role\r\n \r\n \r\n \r\n {props.users && props.users.length > 0 ? (\r\n props.users.map((user, index) => (\r\n \r\n {props && props.role <= 2 && (\r\n \r\n {\r\n props.editRow(user);\r\n }}\r\n type=\"submit\"\r\n >\r\n \r\n \r\n {props.currentUserId !== user.id ? (\r\n props.deleteUser(user.id)}\r\n type=\"submit\"\r\n >\r\n \r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n )}\r\n\r\n \r\n \r\n {user.first_name}\r\n \r\n {user.last_name}\r\n {user.email}\r\n {user.role === \"1\" ? \"Admin\" : \"User\"}\r\n \r\n ))\r\n ) : (\r\n \r\n Click above to add users!\r\n \r\n )}\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default UserTable;\r\n","import React, { useState, useEffect, useContext, Fragment } from \"react\";\r\nimport { UserContext } from \"../../../../UserContext\";\r\nimport jwt_decode from \"jwt-decode\";\r\nimport AddUserForm from \"./AddUserForm\";\r\nimport EditUserForm from \"./EditUserForm\";\r\nimport UserTable from \"./UserTable\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport { Snackbar, AppBar, Toolbar, Button } from \"@material-ui/core\";\r\nimport MuiAlert from \"@material-ui/lab/Alert\";\r\nimport axios from \"axios\";\r\nimport apiUrl from \"../../../../common/apiUrl\";\r\n\r\nconst useStyles = makeStyles(() => ({\r\n userTable: {\r\n paddingTop: \"2rem\",\r\n },\r\n}));\r\n\r\nfunction Alert(props) {\r\n return ;\r\n}\r\n\r\nconst UserManager = () => {\r\n const classes = useStyles();\r\n\r\n const initialFormState = {\r\n id: null,\r\n first_name: \"\",\r\n last_name: \"\",\r\n mobile_phone: \"\",\r\n email: \"\",\r\n password: \"\",\r\n role: \"\",\r\n isAgent: \"\",\r\n };\r\n\r\n const [users, setUsers] = useState();\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [currentUser, setCurrentUser] = useState(initialFormState);\r\n const [editing, setEditing] = useState(false);\r\n const [openSnack, setOpenSnack] = useState(false);\r\n const [openErrorSnack, setOpenErrorSnack] = useState(false);\r\n const [showAddUser, setShowAddUser] = useState(false);\r\n\r\n const handleClose = (event, reason) => {\r\n if (reason === \"clickaway\") {\r\n return;\r\n }\r\n\r\n setOpenSnack(false);\r\n setOpenErrorSnack(false);\r\n };\r\n\r\n const { user } = useContext(UserContext);\r\n const { userId, partnerId, role } = jwt_decode(user.accessToken);\r\n\r\n useEffect(() => {\r\n let unmounted = false;\r\n const fetchData = async () => {\r\n try {\r\n const result = await axios.post(apiUrl + \"/referral/users\", {\r\n partnerId: partnerId,\r\n });\r\n setUsers(result.data.data);\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n };\r\n fetchData();\r\n return () => {\r\n // eslint-disable-next-line\r\n unmounted = true;\r\n };\r\n }, []);\r\n\r\n const addUser = async (nUser) => {\r\n //e.preventDefault();\r\n\r\n setIsLoading(true);\r\n\r\n try {\r\n const result = await axios.post(apiUrl + \"/referral/user\", {\r\n firstName: nUser.first_name,\r\n lastName: nUser.last_name,\r\n mobilePhone: nUser.mobile_phone,\r\n email: nUser.email,\r\n password: nUser.password,\r\n role: nUser.role,\r\n createdBy: userId,\r\n userLocationId: nUser.locationId,\r\n userCustomerId: nUser.customerId,\r\n organizationId: nUser.organizationId,\r\n partnerId: partnerId,\r\n });\r\n\r\n setUsers([...users, result.data]);\r\n\r\n setIsLoading(false);\r\n setOpenSnack(true);\r\n } catch (error) {\r\n console.log(error);\r\n setIsLoading(false);\r\n setOpenErrorSnack(true);\r\n // return error\r\n }\r\n };\r\n\r\n const updateUser = async (id, uUser) => {\r\n setEditing(false);\r\n\r\n setIsLoading(true);\r\n\r\n try {\r\n const result = await axios.put(apiUrl + \"/user\", {\r\n first_name: uUser.first_name,\r\n last_name: uUser.last_name,\r\n mobile_phone: uUser.mobile_phone,\r\n email: uUser.email,\r\n password: uUser.password,\r\n role: uUser.role,\r\n createdBy: userId,\r\n userLocationId: uUser.locationId,\r\n userCustomerId: uUser.customerId,\r\n organizationId: uUser.organizationId,\r\n partnerId: partnerId,\r\n });\r\n\r\n if (result.data) {\r\n setUsers(users.map((user) => (user.id === id ? uUser.values : user)));\r\n }\r\n setIsLoading(false);\r\n setOpenSnack(true);\r\n } catch (error) {\r\n console.log(error);\r\n setIsLoading(false);\r\n setOpenErrorSnack(true);\r\n // return error\r\n }\r\n };\r\n\r\n const deleteUser = async (id) => {\r\n setEditing(false);\r\n\r\n setIsLoading(true);\r\n\r\n try {\r\n const result = await axios.delete(apiUrl + \"/user\", {\r\n userId: id,\r\n });\r\n\r\n if (result.data) {\r\n setUsers(users.filter((user) => user.id !== id));\r\n }\r\n\r\n setIsLoading(false);\r\n setOpenSnack(true);\r\n } catch (error) {\r\n console.log(error);\r\n setIsLoading(false);\r\n setOpenErrorSnack(true);\r\n // return error\r\n }\r\n };\r\n\r\n const formatPrimaryPhoneLocal = (phone) => {\r\n var shortPhone = phone.substring(2);\r\n\r\n var x = shortPhone.replace(/\\D/g, \"\").match(/(\\d{0,3})(\\d{0,3})(\\d{0,4})/);\r\n x = shortPhone = !x[2]\r\n ? x[1]\r\n : x[1] + \"-\" + x[2] + (x[3] ? \"-\" + x[3] : \"\");\r\n\r\n return x;\r\n };\r\n\r\n const editRow = (user) => {\r\n setEditing(true);\r\n\r\n setCurrentUser({\r\n isValid: true,\r\n values: {\r\n id: user.id,\r\n first_name: user.first_name,\r\n last_name: user.last_name,\r\n email: user.email,\r\n mobile_phone: formatPrimaryPhoneLocal(user.mobile_phone),\r\n role: user.role,\r\n },\r\n touched: {},\r\n errors: {},\r\n isLoading: false,\r\n });\r\n };\r\n\r\n const handleShowAddUser = () => {\r\n setShowAddUser((showAddUser) => !showAddUser);\r\n };\r\n\r\n return (\r\n <>\r\n {role && role <= 2 ? (\r\n \r\n \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 User updated successfully!\r\n \r\n \r\n \r\n \r\n User update failed. Please try again.\r\n \r\n \r\n
\r\n
\r\n {editing ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n {showAddUser && (\r\n handleShowAddUser()}\r\n addUser={addUser}\r\n loading={isLoading}\r\n />\r\n )}\r\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 UserManager;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport {\r\n TextField,\r\n Grid,\r\n Button,\r\n Card,\r\n Divider,\r\n CardContent,\r\n CardActions,\r\n CardHeader,\r\n MenuItem,\r\n makeStyles,\r\n Typography,\r\n} from \"@material-ui/core\";\r\nimport validate from \"validate.js\";\r\n\r\nconst schema = {\r\n first_name: {\r\n presence: true,\r\n length: {\r\n minimum: 1,\r\n maximum: 20,\r\n },\r\n format: {\r\n pattern: \"[a-z0-9]+\",\r\n flags: \"i\",\r\n message: \"can only contain a-z and 0-9\",\r\n },\r\n },\r\n last_name: {\r\n presence: true,\r\n length: {\r\n minimum: 1,\r\n maximum: 20,\r\n },\r\n format: {\r\n pattern: \"[a-z0-9]+\",\r\n flags: \"i\",\r\n message: \"can only contain a-z and 0-9\",\r\n },\r\n },\r\n email: {\r\n presence: { allowEmpty: false, message: \"is required\" },\r\n email: true,\r\n length: {\r\n maximum: 64,\r\n },\r\n },\r\n mobile_phone: {\r\n presence: {\r\n allowEmpty: false,\r\n message: \"is required in the format 123-456-7890\",\r\n },\r\n length: {\r\n minimum: 12,\r\n },\r\n format: {\r\n pattern: \"^(\\\\+0?1\\\\s)?\\\\(?\\\\d{3}\\\\)?[\\\\s.-]\\\\d{3}[\\\\s.-]\\\\d{4}$\",\r\n flags: \"i\",\r\n message: \"is required in the format 123-456-7890\",\r\n },\r\n },\r\n password: {\r\n presence: true,\r\n format: {\r\n pattern:\r\n \"^(?=[ -~]*?[A-Z])(?=[ -~]*?[a-z])(?=[ -~]*?[0-9])(?=[ -~]*?[#?!@$%^&*-])[ -~]{8,72}$\",\r\n flags: \"i\",\r\n message:\r\n \"requires a minimum eight characters, at least one uppercase letter, one lowercase letter, one number, and one special character\",\r\n },\r\n },\r\n confirm: {\r\n presence: true,\r\n equality: {\r\n attribute: \"password\",\r\n message: \"<- The passwords do not match\",\r\n },\r\n },\r\n};\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n cardHeaderTitle: {\r\n color: \"#FFFFFF\",\r\n fontSize: \"1rem\",\r\n fontWeight: 600,\r\n },\r\n cardSubHeaderTitle: {\r\n color: \"#FFFFFF\",\r\n },\r\n cardHeaderBackground: {\r\n backgroundColor: theme.palette.primary.main,\r\n },\r\n}));\r\n\r\nconst AddLocationForm = (props) => {\r\n const classes = useStyles();\r\n\r\n const initialFormState = {\r\n isValid: false,\r\n values: {\r\n locationName: \"\",\r\n phone: \"\",\r\n city: \"\",\r\n state: \"\",\r\n zip: \"\",\r\n locationAbbr: \"\",\r\n locationUrl: \"\",\r\n },\r\n touched: {},\r\n errors: {},\r\n isLoading: false,\r\n };\r\n\r\n const [location, setLocation] = useState(initialFormState);\r\n\r\n useEffect(() => {\r\n const errors = validate(location.values, schema);\r\n\r\n setLocation((location) => ({\r\n ...location,\r\n isValid: errors ? false : true,\r\n errors: errors || {},\r\n }));\r\n }, [location.values]);\r\n\r\n const handleInputChange = (event) => {\r\n event.persist();\r\n\r\n setLocation((location) => ({\r\n ...location,\r\n values: {\r\n ...location.values,\r\n [event.target.name]:\r\n event.target.type === \"checkbox\"\r\n ? event.target.checked\r\n : event.target.value,\r\n },\r\n touched: {\r\n ...location.touched,\r\n [event.target.name]: true,\r\n },\r\n }));\r\n };\r\n\r\n const handlePhoneChange = (event) => {\r\n event.persist();\r\n\r\n var x = event.target.value\r\n .replace(/\\D/g, \"\")\r\n .match(/(\\d{0,3})(\\d{0,3})(\\d{0,4})/);\r\n x = event.target.value = !x[2]\r\n ? x[1]\r\n : x[1] + \"-\" + x[2] + (x[3] ? \"-\" + x[3] : \"\");\r\n\r\n setLocation((location) => ({\r\n ...location,\r\n values: {\r\n ...location.values,\r\n [event.target.name]:\r\n event.target.type === \"checkbox\" ? event.target.checked : x,\r\n },\r\n touched: {\r\n ...location.touched,\r\n [event.target.name]: true,\r\n },\r\n }));\r\n };\r\n\r\n const handleSubmit = (event) => {\r\n event.preventDefault();\r\n\r\n props.addUser(location.values);\r\n setLocation(initialFormState);\r\n };\r\n\r\n const hasError = (field) =>\r\n location.touched[field] && location.errors[field] ? true : false;\r\n\r\n return (\r\n \r\n
\r\n \r\n Create A New Location\r\n \r\n }\r\n subheader={\r\n \r\n Only admins can manage locations\r\n \r\n }\r\n className={classes.cardHeaderBackground}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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\r\n \r\n Yes\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Create User\r\n \r\n props.showAddLocationForm()}\r\n variant=\"contained\"\r\n >\r\n Cancel\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default AddLocationForm;\r\n","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport {\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableContainer,\r\n TableHead,\r\n TableRow,\r\n Paper,\r\n IconButton,\r\n} from \"@material-ui/core\";\r\nimport DeleteOutlineIcon from \"@material-ui/icons/DeleteOutline\";\r\nimport EditIcon from \"@material-ui/icons/Edit\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n table: {\r\n minWidth: 650,\r\n borderCollapse: \"collapse\",\r\n borderSpacing: 0,\r\n width: \"100%\",\r\n border: \"1px solid #ddd\",\r\n },\r\n header: {\r\n color: \"#FFFFFF\",\r\n textAlign: \"left\",\r\n padding: \"1rem\",\r\n fontSize: \"1rem\",\r\n fontWeight: 600,\r\n },\r\n tableHead: {\r\n backgroundColor: theme.palette.primary.main,\r\n },\r\n tableRow: {\r\n \"&:nth-of-type(even)\": {\r\n backgroundColor: theme.palette.action.hover,\r\n },\r\n },\r\n}));\r\n\r\nconst LocationTable = (props) => {\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n Edit / Delete\r\n First\r\n Last\r\n Email\r\n Agent\r\n Role\r\n \r\n \r\n \r\n {props.users && props.users.length > 0 ? (\r\n props.users.map((user, index) => (\r\n \r\n \r\n {\r\n props.editRow(user);\r\n }}\r\n type=\"submit\"\r\n >\r\n \r\n \r\n {props.currentUserId !== user.id ? (\r\n props.deleteUser(user.id)}\r\n type=\"submit\"\r\n >\r\n \r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n\r\n \r\n \r\n {user.first_name}\r\n \r\n {user.last_name}\r\n {user.email}\r\n \r\n
{user.is_agent === true ? \"Yes\" : \"No\"}
\r\n
\r\n {user.role === \"1\" ? \"Admin\" : \"User\"}\r\n
\r\n ))\r\n ) : (\r\n \r\n Click above to add users!\r\n \r\n )}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default LocationTable;\r\n","import React, { useState, useEffect, useContext, Fragment } from \"react\";\r\nimport { UserContext } from \"../../../../UserContext\";\r\nimport jwt_decode from \"jwt-decode\";\r\nimport AddUserForm from \"./AddLocationForm\";\r\nimport EditUserForm from \"./EditLocationForm\";\r\nimport UserTable from \"./LocationTable\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport { Snackbar, AppBar, Toolbar, Button } from \"@material-ui/core\";\r\nimport MuiAlert from \"@material-ui/lab/Alert\";\r\nimport axios from \"axios\";\r\nimport apiUrl from \"../../../../common/apiUrl\";\r\n\r\nconst useStyles = makeStyles(() => ({\r\n userTable: {\r\n paddingTop: \"2rem\",\r\n },\r\n}));\r\n\r\nfunction Alert(props) {\r\n return ;\r\n}\r\n\r\nconst LocationManager = () => {\r\n const classes = useStyles();\r\n\r\n const initialFormState = {\r\n id: null,\r\n first_name: \"\",\r\n last_name: \"\",\r\n mobile_phone: \"\",\r\n email: \"\",\r\n password: \"\",\r\n role: \"\",\r\n isAgent: \"\",\r\n };\r\n\r\n const [users, setUsers] = useState();\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [currentUser, setCurrentUser] = useState(initialFormState);\r\n const [editing, setEditing] = useState(false);\r\n const [openSnack, setOpenSnack] = useState(false);\r\n const [openErrorSnack, setOpenErrorSnack] = useState(false);\r\n const [showAddUser, setShowAddUser] = useState(false);\r\n\r\n const handleClose = (event, reason) => {\r\n if (reason === \"clickaway\") {\r\n return;\r\n }\r\n\r\n setOpenSnack(false);\r\n setOpenErrorSnack(false);\r\n };\r\n\r\n const { user } = useContext(UserContext);\r\n const { userId } = jwt_decode(user.accessToken);\r\n\r\n useEffect(() => {\r\n let unmounted = false;\r\n const fetchData = async () => {\r\n try {\r\n const result = await axios.post(apiUrl + \"/user/list\", {\r\n organizationId: 2,\r\n });\r\n setUsers(result.data.data);\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n };\r\n fetchData();\r\n return () => {\r\n // eslint-disable-next-line\r\n unmounted = true;\r\n };\r\n }, []);\r\n\r\n const addUser = async (nUser) => {\r\n //e.preventDefault();\r\n\r\n setIsLoading(true);\r\n\r\n try {\r\n const result = await axios.post(apiUrl + \"/user\", {\r\n first_name: nUser.first_name,\r\n last_name: nUser.last_name,\r\n mobile_phone: nUser.mobile_phone,\r\n email: nUser.email,\r\n password: nUser.password,\r\n role: nUser.role,\r\n createdBy: nUser.createdBy,\r\n userLocationId: nUser.locationId,\r\n userCustomerId: nUser.customerId,\r\n organizationId: nUser.organizationId,\r\n });\r\n\r\n setUsers([...users, result.data]);\r\n\r\n setIsLoading(false);\r\n setOpenSnack(true);\r\n } catch (error) {\r\n console.log(error);\r\n setIsLoading(false);\r\n setOpenErrorSnack(true);\r\n // return error\r\n }\r\n };\r\n\r\n const updateUser = async (id, uUser) => {\r\n setEditing(false);\r\n\r\n setIsLoading(true);\r\n\r\n try {\r\n const result = await axios.put(apiUrl + \"/user\", {\r\n first_name: uUser.first_name,\r\n last_name: uUser.last_name,\r\n mobile_phone: uUser.mobile_phone,\r\n email: uUser.email,\r\n password: uUser.password,\r\n role: uUser.role,\r\n createdBy: uUser.createdBy,\r\n userLocationId: uUser.locationId,\r\n userCustomerId: uUser.customerId,\r\n organizationId: uUser.organizationId,\r\n });\r\n\r\n if (result.data) {\r\n setUsers(users.map((user) => (user.id === id ? uUser.values : user)));\r\n }\r\n setIsLoading(false);\r\n setOpenSnack(true);\r\n } catch (error) {\r\n console.log(error);\r\n setIsLoading(false);\r\n setOpenErrorSnack(true);\r\n // return error\r\n }\r\n };\r\n\r\n const deleteUser = async (id) => {\r\n setEditing(false);\r\n\r\n setIsLoading(true);\r\n\r\n try {\r\n const result = await axios.delete(apiUrl + \"/user\", {\r\n userId: id,\r\n });\r\n\r\n if (result.data) {\r\n setUsers(users.filter((user) => user.id !== id));\r\n }\r\n\r\n setIsLoading(false);\r\n setOpenSnack(true);\r\n } catch (error) {\r\n console.log(error);\r\n setIsLoading(false);\r\n setOpenErrorSnack(true);\r\n // return error\r\n }\r\n };\r\n\r\n const editRow = (user) => {\r\n setEditing(true);\r\n\r\n setCurrentUser({\r\n isValid: true,\r\n values: {\r\n id: user.id,\r\n first_name: user.first_name,\r\n last_name: user.last_name,\r\n email: user.email,\r\n password: user.password,\r\n role: user.role,\r\n isAgent: user.is_agent,\r\n },\r\n touched: {},\r\n errors: {},\r\n isLoading: false,\r\n });\r\n };\r\n\r\n const handleShowAddLocation = () => {\r\n setShowAddUser((showAddUser) => !showAddUser);\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n Create Location\r\n \r\n \r\n \r\n
\r\n \r\n \r\n User updated successfully!\r\n \r\n \r\n \r\n \r\n User update failed. Please try again.\r\n \r\n \r\n
\r\n
\r\n {editing ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n {showAddUser && (\r\n handleShowAddLocation()}\r\n addUser={addUser}\r\n loading={isLoading}\r\n />\r\n )}\r\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 LocationManager;\r\n","import React, { useState } from \"react\";\r\nimport { Grid, Tabs, Tab, makeStyles, AppBar } from \"@material-ui/core\";\r\n\r\n// import { UserManager, AccountDetails, AccountPassword } from \"./components\";\r\n\r\nimport { UserManager } from \"./components\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n padding: theme.spacing(4),\r\n },\r\n userMenuButton: {\r\n marginRight: theme.spacing(2),\r\n },\r\n}));\r\n\r\nconst Settings = () => {\r\n const classes = useStyles();\r\n\r\n // tabs\r\n const tabNameToIndex = {\r\n 0: \"Users\",\r\n };\r\n\r\n const indexToTabName = {\r\n users: 0,\r\n };\r\n\r\n const [selectedTab, setSelectedTab] = useState(indexToTabName[\"users\"]);\r\n const [selected, setSelected] = useState(null);\r\n\r\n const updateSelected = (event) => {\r\n setSelected(event);\r\n };\r\n\r\n const handleChange = (event, newValue) => {\r\n // history.push(`/home/${tabNameToIndex[newValue]}`);\r\n setSelectedTab(newValue);\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {selectedTab === 0 && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default Settings;\r\n","import React from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport Grid from \"@material-ui/core/Grid\";\nimport List from \"@material-ui/core/List\";\nimport Card from \"@material-ui/core/Card\";\nimport CardHeader from \"@material-ui/core/CardHeader\";\nimport ListItem from \"@material-ui/core/ListItem\";\nimport ListItemText from \"@material-ui/core/ListItemText\";\nimport ListItemIcon from \"@material-ui/core/ListItemIcon\";\nimport Checkbox from \"@material-ui/core/Checkbox\";\nimport Button from \"@material-ui/core/Button\";\nimport Divider from \"@material-ui/core/Divider\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n margin: \"auto\",\n },\n cardHeader: {\n padding: theme.spacing(1, 2),\n },\n list: {\n width: 200,\n height: 230,\n backgroundColor: theme.palette.background.paper,\n overflow: \"auto\",\n },\n button: {\n margin: theme.spacing(0.5, 0),\n },\n}));\n\nfunction not(a, b) {\n return a.filter((value) => b.indexOf(value) === -1);\n}\n\nfunction intersection(a, b) {\n return a.filter((value) => b.indexOf(value) !== -1);\n}\n\nfunction union(a, b) {\n return [...a, ...not(b, a)];\n}\n\nexport default function LocationList() {\n const classes = useStyles();\n const [checked, setChecked] = React.useState([]);\n const [left, setLeft] = React.useState([0, 1, 2, 3]);\n const [right, setRight] = React.useState([4, 5, 6, 7]);\n\n const leftChecked = intersection(checked, left);\n const rightChecked = intersection(checked, right);\n\n const handleToggle = (value) => () => {\n const currentIndex = checked.indexOf(value);\n const newChecked = [...checked];\n\n if (currentIndex === -1) {\n newChecked.push(value);\n } else {\n newChecked.splice(currentIndex, 1);\n }\n\n setChecked(newChecked);\n };\n\n const numberOfChecked = (items) => intersection(checked, items).length;\n\n const handleToggleAll = (items) => () => {\n if (numberOfChecked(items) === items.length) {\n setChecked(not(checked, items));\n } else {\n setChecked(union(checked, items));\n }\n };\n\n const handleCheckedRight = () => {\n setRight(right.concat(leftChecked));\n setLeft(not(left, leftChecked));\n setChecked(not(checked, leftChecked));\n };\n\n const handleCheckedLeft = () => {\n setLeft(left.concat(rightChecked));\n setRight(not(right, rightChecked));\n setChecked(not(checked, rightChecked));\n };\n\n const customList = (title, items) => (\n \n \n }\n title={title}\n subheader={`${numberOfChecked(items)}/${items.length} selected`}\n />\n \n \n {items.map((value) => {\n const labelId = `transfer-list-all-item-${value}-label`;\n\n return (\n \n \n \n \n \n \n );\n })}\n \n \n \n );\n\n return (\n \n {customList(\"Locations Available\", left)}\n \n \n \n >\n \n \n <\n \n \n \n {customList(\"Locations Assigned\", right)}\n \n );\n}\n","import React from \"react\";\r\nimport { Grid, Tabs, Tab, makeStyles } from \"@material-ui/core\";\r\n\r\n// import { UserManager } from \"./components\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n padding: theme.spacing(4),\r\n },\r\n}));\r\n\r\nconst Support = () => {\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n \r\n \r\n Coming Soon\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default Support;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport {\r\n TextField,\r\n Grid,\r\n Button,\r\n Card,\r\n Divider,\r\n CardContent,\r\n CardActions,\r\n CardHeader,\r\n MenuItem,\r\n makeStyles,\r\n Typography,\r\n} from \"@material-ui/core\";\r\nimport validate from \"validate.js\";\r\nimport LocationList from \"./LocationList\";\r\n\r\nconst schema = {\r\n first_name: {\r\n presence: true,\r\n length: {\r\n minimum: 1,\r\n maximum: 20,\r\n },\r\n format: {\r\n pattern: \"[a-z0-9]+\",\r\n flags: \"i\",\r\n message: \"can only contain a-z and 0-9\",\r\n },\r\n },\r\n last_name: {\r\n presence: true,\r\n length: {\r\n minimum: 1,\r\n maximum: 20,\r\n },\r\n format: {\r\n pattern: \"[a-z0-9]+\",\r\n flags: \"i\",\r\n message: \"can only contain a-z and 0-9\",\r\n },\r\n },\r\n email: {\r\n presence: { allowEmpty: false, message: \"is required\" },\r\n email: true,\r\n length: {\r\n maximum: 64,\r\n },\r\n },\r\n mobile_phone: {\r\n presence: {\r\n allowEmpty: false,\r\n message: \"is required in the format 123-456-7890\",\r\n },\r\n length: {\r\n minimum: 12,\r\n },\r\n format: {\r\n pattern: \"^(\\\\+0?1\\\\s)?\\\\(?\\\\d{3}\\\\)?[\\\\s.-]\\\\d{3}[\\\\s.-]\\\\d{4}$\",\r\n flags: \"i\",\r\n message: \"is required in the format 123-456-7890\",\r\n },\r\n },\r\n password: {\r\n presence: true,\r\n format: {\r\n pattern:\r\n \"^(?=[ -~]*?[A-Z])(?=[ -~]*?[a-z])(?=[ -~]*?[0-9])(?=[ -~]*?[#?!@$%^&*-])[ -~]{8,72}$\",\r\n flags: \"i\",\r\n message:\r\n \"requires a minimum eight characters, at least one uppercase letter, one lowercase letter, one number, and one special character\",\r\n },\r\n },\r\n confirm: {\r\n presence: true,\r\n equality: {\r\n attribute: \"password\",\r\n message: \"<- The passwords do not match\",\r\n },\r\n },\r\n};\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n cardHeaderTitle: {\r\n color: \"#FFFFFF\",\r\n fontSize: \"1rem\",\r\n fontWeight: 600,\r\n },\r\n cardSubHeaderTitle: {\r\n color: \"#FFFFFF\",\r\n },\r\n cardHeaderBackground: {\r\n backgroundColor: theme.palette.primary.main,\r\n },\r\n}));\r\n\r\nconst AddUserForm = (props) => {\r\n const classes = useStyles();\r\n\r\n const initialFormState = {\r\n isValid: false,\r\n values: {\r\n first_name: \"\",\r\n last_name: \"\",\r\n mobile_phone: \"\",\r\n email: \"\",\r\n role: 3,\r\n isAgent: false,\r\n password: \"\",\r\n confirm: \"\",\r\n },\r\n touched: {},\r\n errors: {},\r\n isLoading: false,\r\n };\r\n\r\n const [user, setUser] = useState(initialFormState);\r\n const [roles] = useState([\r\n { id: 2, role: \"Admin\" },\r\n { id: 3, role: \"User\" },\r\n ]);\r\n\r\n useEffect(() => {\r\n const errors = validate(user.values, schema);\r\n\r\n setUser((user) => ({\r\n ...user,\r\n isValid: errors ? false : true,\r\n errors: errors || {},\r\n }));\r\n }, [user.values]);\r\n\r\n const handleInputChange = (event) => {\r\n event.persist();\r\n\r\n setUser((user) => ({\r\n ...user,\r\n values: {\r\n ...user.values,\r\n [event.target.name]:\r\n event.target.type === \"checkbox\"\r\n ? event.target.checked\r\n : event.target.value,\r\n },\r\n touched: {\r\n ...user.touched,\r\n [event.target.name]: true,\r\n },\r\n }));\r\n };\r\n\r\n const handlePhoneChange = (event) => {\r\n event.persist();\r\n\r\n var x = event.target.value\r\n .replace(/\\D/g, \"\")\r\n .match(/(\\d{0,3})(\\d{0,3})(\\d{0,4})/);\r\n x = event.target.value = !x[2]\r\n ? x[1]\r\n : x[1] + \"-\" + x[2] + (x[3] ? \"-\" + x[3] : \"\");\r\n\r\n setUser((user) => ({\r\n ...user,\r\n values: {\r\n ...user.values,\r\n [event.target.name]:\r\n event.target.type === \"checkbox\" ? event.target.checked : x,\r\n },\r\n touched: {\r\n ...user.touched,\r\n [event.target.name]: true,\r\n },\r\n }));\r\n };\r\n\r\n const handleSubmit = (event) => {\r\n event.preventDefault();\r\n\r\n props.addUser(user.values);\r\n setUser(initialFormState);\r\n };\r\n\r\n const hasError = (field) =>\r\n user.touched[field] && user.errors[field] ? true : false;\r\n\r\n return (\r\n \r\n
\r\n \r\n Create A New User\r\n \r\n }\r\n subheader={\r\n \r\n Only admins can manage users\r\n \r\n }\r\n className={classes.cardHeaderBackground}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {roles.map((role) => (\r\n \r\n {role.role}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n No\r\n \r\n Yes\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Create User\r\n \r\n props.showAddUserForm()}\r\n variant=\"contained\"\r\n >\r\n Cancel\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default AddUserForm;\r\n","import React, { useState, useEffect, useContext } from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport {\r\n TextField,\r\n Grid,\r\n Button,\r\n Card,\r\n Divider,\r\n CardContent,\r\n CardActions,\r\n CardHeader,\r\n MenuItem,\r\n Typography,\r\n} from \"@material-ui/core\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n userTable: {\r\n paddingTop: \"2rem\",\r\n },\r\n input: {\r\n background: \"white\",\r\n },\r\n grid: {\r\n spacing: 0,\r\n display: \"flex\",\r\n direction: \"column\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n paddingTop: theme.spacing(7),\r\n },\r\n contentHeader: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n paddingTop: theme.spacing(5),\r\n paddingBottom: theme.spacing(2),\r\n paddingLeft: theme.spacing(2),\r\n paddingRight: theme.spacing(2),\r\n },\r\n contentBody: {\r\n flexGrow: 1,\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n },\r\n logo: {\r\n marginTop: theme.spacing(5),\r\n marginBottom: theme.spacing(5),\r\n display: \"flex\",\r\n direction: \"column\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n },\r\n linkExpired: {\r\n paddingTop: theme.spacing(4),\r\n },\r\n}));\r\n\r\nconst EditReferralForm = (props) => {\r\n const history = useHistory();\r\n const [referral, setReferral] = useState(props.currentReferral);\r\n const ddls = props.ddlData;\r\n\r\n // get dropdown values\r\n const currentDoc = ddls.docs.find(\r\n (doc) => doc.providerid === referral.values.physicianRequested\r\n );\r\n\r\n const currentLocation = ddls.sites.find(\r\n (site) => site.siteid === referral.values.preferredLocation\r\n );\r\n\r\n const currentInsurance = ddls.insurances.find(\r\n (insurance) => insurance.insuranceid === referral.values.insuranceId\r\n );\r\n\r\n const currentBodyPart = ddls.bodyparts.find(\r\n (bodypart) => bodypart.bodypartid === referral.values.bodyPartId\r\n );\r\n\r\n const currentComplaint = ddls.complaints.find(\r\n (bodypart) => bodypart.bodypartid === referral.values.complaintId\r\n );\r\n\r\n const currentAcuity = ddls.acuitys.find(\r\n (acuity) => acuity.acuityid === referral.values.acuityId\r\n );\r\n\r\n const currentReferredLocation = ddls.locations.find(\r\n (location) => location.locationid === referral.values.locationId\r\n );\r\n\r\n const classes = useStyles();\r\n\r\n useEffect(() => {\r\n setReferral(props.currentReferral);\r\n }, [props]);\r\n\r\n const handleClose = () => {\r\n props.setEditing(false);\r\n history.push(\"/referral\");\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 Referred to Location\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n Referrer Information\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n Patient Information\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n Condition Details\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Referral Status\r\n \r\n \r\n {referral && referral?.values?.apptReqStateReason && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\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 EditReferralForm;\r\n","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport {\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableContainer,\r\n TableHead,\r\n TableRow,\r\n Paper,\r\n IconButton,\r\n} from \"@material-ui/core\";\r\nimport PageviewIcon from \"@material-ui/icons/Pageview\";\r\nimport EditIcon from \"@material-ui/icons/Edit\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n table: {\r\n minWidth: 650,\r\n borderCollapse: \"collapse\",\r\n borderSpacing: 0,\r\n width: \"100%\",\r\n border: \"1px solid #ddd\",\r\n },\r\n header: {\r\n color: \"#FFFFFF\",\r\n textAlign: \"left\",\r\n padding: \"1rem\",\r\n fontSize: \"1rem\",\r\n fontWeight: 600,\r\n },\r\n tableHead: {\r\n backgroundColor: theme.palette.primary.main,\r\n },\r\n tableRow: {\r\n \"&:nth-of-type(even)\": {\r\n backgroundColor: theme.palette.action.hover,\r\n },\r\n },\r\n}));\r\n\r\nconst UserTable = (props) => {\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {/* Date */}\r\n Referral ID\r\n Patient First Name\r\n Patient Last Name\r\n \r\n Referring Physician\r\n \r\n Referring Contact\r\n Status\r\n \r\n \r\n \r\n {props.referrals && props.referrals.length > 0 ? (\r\n props.referrals.map((referral, index) => (\r\n \r\n \r\n {\r\n props.editRow(referral);\r\n }}\r\n type=\"submit\"\r\n >\r\n \r\n \r\n \r\n\r\n {/* {referral.dtcreated} */}\r\n {referral.apptrequestid}\r\n {referral.patientfirstname}\r\n {referral.lastname}\r\n {referral.referring_physician}\r\n {referral.referring_contact}\r\n \r\n {referral.apptReqState === 1\r\n ? \"Active\"\r\n : referral.apptReqState === 2\r\n ? \"Pending\"\r\n : \"Complete\"}\r\n \r\n \r\n ))\r\n ) : (\r\n \r\n Click above to send referrals!\r\n \r\n )}\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default UserTable;\r\n","import React, { useState, useEffect, useContext, Fragment } from \"react\";\r\nimport { UserContext } from \"../../../../UserContext\";\r\nimport jwt_decode from \"jwt-decode\";\r\nimport AddUserForm from \"./AddUserForm\";\r\nimport EditReferralForm from \"./EditReferralForm\";\r\nimport UserTable from \"./UserTable\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport { Snackbar, AppBar, Toolbar, Button } from \"@material-ui/core\";\r\nimport MuiAlert from \"@material-ui/lab/Alert\";\r\nimport axios from \"axios\";\r\nimport apiUrl from \"../../../../common/apiUrl\";\r\n\r\nconst useStyles = makeStyles(() => ({\r\n userTable: {\r\n paddingTop: \"2rem\",\r\n },\r\n}));\r\n\r\nfunction Alert(props) {\r\n return ;\r\n}\r\n\r\nconst UserManager = (props) => {\r\n const classes = useStyles();\r\n const [users, setUsers] = useState();\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [currentReferral, setCurrentReferral] = useState();\r\n const [editing, setEditing] = useState(false);\r\n const [openSnack, setOpenSnack] = useState(false);\r\n const [openErrorSnack, setOpenErrorSnack] = useState(false);\r\n const [showAddUser, setShowAddUser] = useState(false);\r\n const [ddls, setDdls] = useState({});\r\n\r\n const handleClose = (event, reason) => {\r\n if (reason === \"clickaway\") {\r\n return;\r\n }\r\n\r\n setOpenSnack(false);\r\n setOpenErrorSnack(false);\r\n };\r\n\r\n const { user } = useContext(UserContext);\r\n const { userId, partnerId } = jwt_decode(user.accessToken);\r\n\r\n const getDdls = async (locId) => {\r\n setIsLoading(true);\r\n\r\n try {\r\n const result = await axios.post(apiUrl + \"/referral/ddl\", {\r\n userId: userId,\r\n sendToLocationId: locId,\r\n });\r\n\r\n setDdls(() => result.data.data[0].spgetdropdowns.dropdowns[0]);\r\n\r\n setIsLoading(false);\r\n } catch (error) {\r\n console.log(error);\r\n setIsLoading(false);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n let unmounted = false;\r\n const fetchData = async () => {\r\n try {\r\n const result = await axios.post(apiUrl + \"/referral/sent\", {\r\n partnerId: partnerId,\r\n });\r\n if (!unmounted) {\r\n if (props && props.referralId) {\r\n const paramReferral = result.data.data.find(\r\n (referral) => referral.apptrequestid === props.referralId\r\n );\r\n if (paramReferral) {\r\n editRow(paramReferral);\r\n setUsers(result.data.data);\r\n } else {\r\n setUsers(result.data.data);\r\n }\r\n } else {\r\n setUsers(result.data.data);\r\n }\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n };\r\n fetchData();\r\n return () => {\r\n // eslint-disable-next-line\r\n unmounted = true;\r\n };\r\n }, []);\r\n\r\n const editRow = async (referral) => {\r\n await getDdls(referral.locationid);\r\n\r\n setCurrentReferral({\r\n isValid: true,\r\n values: {\r\n apptrequestid: referral.apptrequestid,\r\n locationId: referral.locationid,\r\n partnerId: referral.partnerid,\r\n referringPhysician: referral.referring_physician,\r\n referringContact: referral.referring_contact,\r\n referringOfficePhone: referral.referring_office_phone,\r\n physicianRequested: referral.physician_requested,\r\n preferredLocation: referral.preferred_location,\r\n patientContactName: referral.patient_contact_name,\r\n patientFirstName: referral.patientfirstname,\r\n patientLastName: referral.lastname,\r\n gender: referral.gender,\r\n birthDate: `${referral.birthmonth}/${referral.birthdayofmo}/${referral.birthyear}`,\r\n ssn: referral.ssn,\r\n streetAddress: referral.street_address,\r\n zipCode: referral.zipcode,\r\n emailAddress: referral.emailaddress,\r\n primaryPhone: referral.primaryphone,\r\n referralSourceId: referral.referralsourceid,\r\n insuranceId: referral.insuranceid,\r\n insuranceNumber: referral.insnumber,\r\n bodyPartId: referral.bodypartid,\r\n complaintId: referral.complaintid,\r\n acuityId: referral.acuityid,\r\n previousSurgery: false,\r\n previousSurgerySide: referral.previous_surgery_side,\r\n otherInfo: referral.otherinfo,\r\n requestStatus: referral.requeststatus,\r\n apptReqState: referral.apptreqstate,\r\n apptReqStateReason: referral.appt_req_state_reason,\r\n },\r\n touched: {},\r\n errors: {},\r\n isLoading: false,\r\n });\r\n\r\n setEditing(true);\r\n };\r\n\r\n const handleShowAddUser = () => {\r\n setShowAddUser((showAddUser) => !showAddUser);\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n \r\n \r\n Referral updated successfully!\r\n \r\n \r\n \r\n \r\n Referral update failed. Please try again.\r\n \r\n \r\n
\r\n
\r\n {editing ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n {showAddUser && (\r\n handleShowAddUser()}\r\n loading={isLoading}\r\n />\r\n )}\r\n \r\n )}\r\n
\r\n {!editing && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default UserManager;\r\n","import React from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: \"flex\",\n \"& > * + *\": {\n marginLeft: theme.spacing(2),\n },\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n}));\n\nexport default function CircularIndeterminate() {\n const classes = useStyles();\n\n return (\n
\n \n
\n );\n}\n","import React, { useState } from \"react\";\nimport { DropzoneAreaBase } from \"material-ui-dropzone\";\nimport apiUrl from \"./apiUrl\";\n\nexport default function Dropzone(props) {\n const [files, setFiles] = useState([]);\n const [attachmentIds, setAttachmentIds] = useState([]);\n\n const dbS3Save = async (event) => {\n try {\n const file = event[0].file.path;\n const fileType = event[0].file.type;\n const apptId = props.apptId;\n const fileName = file;\n\n const config = {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n Cache: \"no-cache\",\n },\n body: JSON.stringify({\n rky: props.rky,\n objectId: fileName,\n }),\n };\n\n // save locally\n const local = await (\n await fetch(`${apiUrl}/appt/attachment`, config)\n ).json();\n\n if (local && local.data !== \"-1\") {\n const attachId = local.data;\n\n setAttachmentIds((attachmentIds) => [\n ...attachmentIds,\n {\n attachmentId: attachId,\n fileName: fileName,\n },\n ]);\n\n const configSign = {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n Cache: \"no-cache\",\n },\n body: JSON.stringify({\n apptId: apptId,\n objectId: fileName,\n attachId: attachId,\n }),\n };\n\n const data = await (\n await fetch(`${apiUrl}/appt/get-signed-url`, configSign)\n ).json();\n\n const formData = new FormData();\n\n formData.append(\"Content-Type\", fileType);\n Object.entries(data.fields).forEach(([k, v]) => {\n formData.append(k, v);\n });\n formData.append(\"file\", event[0].file);\n\n await fetch(data.url, {\n method: \"POST\",\n body: formData,\n });\n }\n } catch (error) {\n console.log(error);\n }\n };\n\n const handleAdd = (newFiles) => {\n newFiles = newFiles.filter(\n (file) => !files.find((f) => f.data === file.data)\n );\n setFiles(() => [...files, ...newFiles]);\n\n // save to db and s3\n dbS3Save(newFiles);\n };\n\n const handleDelete = (deleted) => {\n setFiles(() => files.filter((f) => f !== deleted));\n\n // remove from db and s3\n dbS3Delete(deleted);\n };\n\n const dbS3Delete = async (fileToDelete) => {\n try {\n const file = fileToDelete.file.path;\n\n const apptId = props.apptId;\n const fileName = file;\n\n const attachmentForRemoval = attachmentIds.filter(\n (attachmentId) => attachmentId.fileName === fileName\n );\n\n const updatedAttachmentIds = attachmentIds.filter(\n (attachmentId) => attachmentId.fileName !== fileName\n );\n\n setAttachmentIds(() => updatedAttachmentIds);\n\n const config = {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n Cache: \"no-cache\",\n },\n body: JSON.stringify({\n rky: props.rky,\n objectId: fileName,\n apptId: apptId,\n attachmentId: attachmentForRemoval[0].attachmentId,\n }),\n };\n\n await (await fetch(`${apiUrl}/appt/rm`, config)).json();\n } catch (error) {\n console.log(error);\n }\n };\n\n return (\n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\r\nimport { UserContext } from \"../../../../UserContext\";\r\nimport jwt_decode from \"jwt-decode\";\r\nimport validate from \"validate.js\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport {\r\n Snackbar,\r\n Button,\r\n Typography,\r\n Grid,\r\n TextField,\r\n MenuItem,\r\n Card,\r\n CardContent,\r\n InputAdornment,\r\n} from \"@material-ui/core\";\r\nimport MuiAlert from \"@material-ui/lab/Alert\";\r\nimport DateFnsUtils from \"@date-io/date-fns\";\r\nimport { MuiPickersUtilsProvider, DatePicker } from \"@material-ui/pickers\";\r\nimport axios from \"axios\";\r\nimport apiUrl from \"../../../../common/apiUrl\";\r\nimport Loading from \"./Loading\";\r\nimport ThumbUpIcon from \"@material-ui/icons/ThumbUp\";\r\nimport DateRangeIcon from \"@material-ui/icons/DateRange\";\r\nimport Dropzone from \"../../../../common/Dropzone\";\r\n\r\nconst schema = {\r\n locationId: {\r\n presence: true,\r\n numericality: {\r\n onlyInteger: true,\r\n greaterThanOrEqualTo: 0,\r\n message: \"is required\",\r\n },\r\n },\r\n preferredLocation: {\r\n presence: true,\r\n numericality: {\r\n onlyInteger: true,\r\n greaterThanOrEqualTo: 0,\r\n message: \"is required\",\r\n },\r\n },\r\n insuranceId: {\r\n presence: true,\r\n numericality: {\r\n onlyInteger: true,\r\n greaterThanOrEqualTo: 0,\r\n message: \"is required\",\r\n },\r\n },\r\n bodyPartId: {\r\n presence: true,\r\n numericality: {\r\n onlyInteger: true,\r\n greaterThanOrEqualTo: 0,\r\n message: \"is required\",\r\n },\r\n },\r\n complaintId: {\r\n presence: true,\r\n numericality: {\r\n onlyInteger: true,\r\n greaterThanOrEqualTo: 0,\r\n message: \"is required\",\r\n },\r\n },\r\n acuityId: {\r\n presence: true,\r\n numericality: {\r\n onlyInteger: true,\r\n greaterThanOrEqualTo: 0,\r\n message: \"is required\",\r\n },\r\n },\r\n referringPhysician: {\r\n presence: { allowEmpty: false, message: \"is required\" },\r\n length: {\r\n maximum: 64,\r\n },\r\n },\r\n referringContact: {\r\n presence: { allowEmpty: false, message: \"is required\" },\r\n length: {\r\n maximum: 64,\r\n },\r\n },\r\n referringOfficePhone: {\r\n presence: {\r\n allowEmpty: false,\r\n message: \"is required in the format 123-456-7890\",\r\n },\r\n length: {\r\n minimum: 12,\r\n },\r\n format: {\r\n pattern: \"^(\\\\+0?1\\\\s)?\\\\(?\\\\d{3}\\\\)?[\\\\s.-]\\\\d{3}[\\\\s.-]\\\\d{4}$\",\r\n flags: \"i\",\r\n message: \"is required in the format 123-456-7890\",\r\n },\r\n },\r\n patientFirstName: {\r\n presence: { allowEmpty: false, message: \"is required\" },\r\n length: {\r\n maximum: 128,\r\n },\r\n },\r\n patientLastName: {\r\n presence: { allowEmpty: false, message: \"is required\" },\r\n length: {\r\n maximum: 128,\r\n },\r\n },\r\n streetAddress: {\r\n presence: { allowEmpty: false, message: \"is required\" },\r\n length: {\r\n minimum: 2,\r\n maximum: 150,\r\n },\r\n },\r\n zipCode: {\r\n presence: { allowEmpty: false, message: \"is required\" },\r\n length: {\r\n minimum: 5,\r\n maximum: 5,\r\n },\r\n format: {\r\n pattern: \"[0-9]+\",\r\n flags: \"i\",\r\n message: \"can only contain 0-9\",\r\n },\r\n },\r\n primaryPhone: {\r\n presence: {\r\n allowEmpty: false,\r\n message: \"is required in the format 123-456-7890\",\r\n },\r\n length: {\r\n minimum: 12,\r\n },\r\n format: {\r\n pattern: \"^(\\\\+0?1\\\\s)?\\\\(?\\\\d{3}\\\\)?[\\\\s.-]\\\\d{3}[\\\\s.-]\\\\d{4}$\",\r\n flags: \"i\",\r\n message: \"is required in the format 123-456-7890\",\r\n },\r\n },\r\n ssn: {\r\n length: {\r\n maximum: 11,\r\n },\r\n },\r\n birthDate: {\r\n presence: {\r\n allowEmpty: false,\r\n message: \"is required\",\r\n },\r\n },\r\n};\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n userTable: {\r\n paddingTop: \"2rem\",\r\n },\r\n input: {\r\n background: \"white\",\r\n },\r\n grid: {\r\n spacing: 0,\r\n display: \"flex\",\r\n direction: \"column\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n paddingTop: theme.spacing(7),\r\n },\r\n contentHeader: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n paddingTop: theme.spacing(5),\r\n paddingBottom: theme.spacing(2),\r\n paddingLeft: theme.spacing(2),\r\n paddingRight: theme.spacing(2),\r\n },\r\n contentBody: {\r\n flexGrow: 1,\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n },\r\n logo: {\r\n marginTop: theme.spacing(5),\r\n marginBottom: theme.spacing(3),\r\n display: \"flex\",\r\n direction: \"column\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n },\r\n linkExpired: {\r\n paddingTop: theme.spacing(4),\r\n textAlign: \"center\",\r\n marginBottom: \"6em\",\r\n },\r\n}));\r\n\r\nfunction Alert(props) {\r\n return ;\r\n}\r\n\r\nconst ReferralManager = () => {\r\n const classes = useStyles();\r\n\r\n const initialState = {\r\n isValid: false,\r\n values: {\r\n userId: \"\",\r\n locationId: \"\",\r\n partnerId: \"\",\r\n referringPhysician: \"\",\r\n referringContact: \"\",\r\n referringOfficePhone: \"\",\r\n physicianRequested: \"\",\r\n preferredLocation: \"\",\r\n preferredApptTime: \"\",\r\n patientContactName: \"\",\r\n patientFirstName: \"\",\r\n patientLastName: \"\",\r\n gender: \"\",\r\n birthDate: null,\r\n ssn: \"\",\r\n streetAddress: \"\",\r\n zipCode: \"\",\r\n emailAddress: \"\",\r\n primaryPhone: \"\",\r\n referralSourceId: \"\",\r\n insuranceId: \"\",\r\n insuranceNumber: \"\",\r\n bodyPartId: \"\",\r\n complaintId: \"\",\r\n acuityId: \"\",\r\n previousSurgery: false,\r\n previousSurgerySide: \"\",\r\n attachmentPath: \"\",\r\n attachmentFName: \"\",\r\n otherInfo: \"\",\r\n referralContactEmail: \"\",\r\n },\r\n touched: {},\r\n errors: {},\r\n isLoading: false,\r\n };\r\n\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [sent, setSent] = useState(false);\r\n const [severity] = useState(\"\");\r\n const [message] = useState(\"\");\r\n const [openSnack, setOpenSnack] = useState(false);\r\n const [openErrorSnack, setOpenErrorSnack] = useState(false);\r\n const [ddls, setDdls] = useState({});\r\n const [partnerLocations, setPartnerLocations] = useState();\r\n const [currentComplaint, setCurrentComplaint] = useState(1);\r\n const [apptId, setApptId] = useState();\r\n const [rky, setRky] = useState();\r\n const [locationAbbr, setLocationAbbr] = useState();\r\n const [formState, setFormState] = useState(initialState);\r\n\r\n const handleClose = (event, reason) => {\r\n if (reason === \"clickaway\") {\r\n return;\r\n }\r\n\r\n setOpenSnack(false);\r\n setOpenErrorSnack(false);\r\n };\r\n\r\n const { user } = useContext(UserContext);\r\n const { userId, partnerId } = jwt_decode(user.accessToken);\r\n\r\n useEffect(() => {\r\n const fetchPartnerLocations = async () => {\r\n setIsLoading(true);\r\n\r\n try {\r\n const result = await axios.post(\r\n apiUrl + \"/referral/partner-locations\",\r\n {\r\n partnerId: partnerId,\r\n }\r\n );\r\n\r\n setPartnerLocations(() => result.data.data);\r\n\r\n setIsLoading(false);\r\n } catch (error) {\r\n console.log(error);\r\n setIsLoading(false);\r\n }\r\n };\r\n\r\n fetchPartnerLocations();\r\n }, [partnerId]);\r\n\r\n useEffect(() => {\r\n let unmounted = false;\r\n\r\n if (\r\n formState.values.locationId !== \"\" &&\r\n formState.values.locationId !== true\r\n ) {\r\n const getDdls = async () => {\r\n //e.preventDefault();\r\n\r\n setIsLoading(true);\r\n\r\n try {\r\n const result = await axios.post(apiUrl + \"/referral/ddl\", {\r\n userId: userId,\r\n sendToLocationId: formState.values.locationId,\r\n });\r\n\r\n if (result && !unmounted) {\r\n setDdls(() => result.data.data[0].spgetdropdowns.dropdowns[0]);\r\n }\r\n\r\n setIsLoading(false);\r\n } catch (error) {\r\n console.log(error);\r\n setIsLoading(false);\r\n }\r\n };\r\n\r\n getDdls();\r\n }\r\n\r\n return () => {\r\n unmounted = true;\r\n };\r\n }, [formState.values.locationId, userId]);\r\n\r\n useEffect(() => {\r\n const errors = validate(formState.values, schema);\r\n\r\n setFormState((formState) => ({\r\n ...formState,\r\n isValid: errors ? false : true,\r\n errors: errors || {},\r\n }));\r\n }, [formState.values]);\r\n\r\n useEffect(() => {\r\n let unmounted = false;\r\n\r\n const fetchUserDetails = async () => {\r\n try {\r\n const result = await axios.post(apiUrl + \"/user/detail\", {\r\n userId: userId,\r\n });\r\n\r\n if (result && !unmounted && formState.values.locationId !== \"\") {\r\n setFormState((formState) => ({\r\n ...formState,\r\n values: {\r\n ...formState.values,\r\n referringContact:\r\n `${result.data.data[0].first_name} ${result.data.data[0].last_name}` ||\r\n \"\",\r\n referralContactEmail: result.data.data[0].email || \"\",\r\n },\r\n }));\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n };\r\n\r\n fetchUserDetails();\r\n\r\n return () => {\r\n unmounted = true;\r\n };\r\n }, [formState.values.locationId, userId]);\r\n\r\n const sendReferral = async () => {\r\n setIsLoading(true);\r\n\r\n let unmounted = false;\r\n\r\n try {\r\n const result = await axios.post(apiUrl + \"/referral/send\", {\r\n userId: userId,\r\n locationId: formState.values.locationId,\r\n partnerId: partnerId,\r\n referringPhysician: formState.values.referringPhysician,\r\n referringContact: formState.values.referringContact,\r\n referringOfficePhone: formState.values.referringOfficePhone,\r\n physicianRequested: formState.values.physicianRequested,\r\n preferredLocation: formState.values.preferredLocation,\r\n preferredApptTime: 1,\r\n patientContactName: formState.values.patientContactName,\r\n patientFirstName: formState.values.patientFirstName,\r\n patientLastName: formState.values.patientLastName,\r\n gender: formState.values.gender,\r\n birthDate: formState.values.birthDate,\r\n ssn: formState.values.ssn,\r\n streetAddress: formState.values.streetAddress,\r\n zipCode: formState.values.zipCode,\r\n emailAddress: formState.values.emailAddress,\r\n primaryPhone: formState.values.primaryPhone,\r\n // referralSourceId: formState.values.referralSourceId,\r\n referralSourceId: 12,\r\n insuranceId: formState.values.insuranceId,\r\n insuranceNumber: formState.values.insuranceNumber,\r\n bodyPartId: formState.values.bodyPartId,\r\n complaintId: formState.values.complaintId,\r\n acuityId: formState.values.acuityId,\r\n previousSurgery: formState.values.previousSurgery,\r\n previousSurgerySide: formState.values.previousSurgerySide,\r\n attachmentPath: formState.values.attachmentPath,\r\n attachmentFName: formState.values.attachmentFName,\r\n otherInfo: formState.values.otherInfo,\r\n referralContactEmail: formState.values.referralContactEmail,\r\n });\r\n\r\n if (result && !unmounted) {\r\n setApptId(() => result.data.data[0].rsapptrequestid);\r\n setRky(() => result.data.data[0].rky);\r\n setLocationAbbr(() => result.data.data[0].locationabbr);\r\n setIsLoading(false);\r\n }\r\n\r\n setOpenSnack(true);\r\n setSent(() => true);\r\n } catch (error) {\r\n console.log(error);\r\n setIsLoading(false);\r\n setOpenErrorSnack(true);\r\n setSent(() => false);\r\n }\r\n return () => {\r\n unmounted = true;\r\n };\r\n };\r\n\r\n const resetReferralForm = () => {\r\n setFormState(() => initialState);\r\n setSent(() => false);\r\n };\r\n\r\n const handleChange = (event) => {\r\n setFormState((formState) => ({\r\n ...formState,\r\n values: {\r\n ...formState.values,\r\n [event.target.name]:\r\n event.target.type === \"checkbox\"\r\n ? event.target.checked\r\n : event.target.value,\r\n },\r\n touched: {\r\n ...formState.touched,\r\n [event.target.name]: true,\r\n },\r\n }));\r\n\r\n if (event.target.name === \"bodyPartId\") {\r\n setFormState((formState) => ({\r\n ...formState,\r\n values: {\r\n ...formState.values,\r\n complaintId: \"\",\r\n },\r\n touched: {\r\n ...formState.touched,\r\n [event.target.name]: true,\r\n },\r\n }));\r\n }\r\n };\r\n\r\n const handlePhoneChange = (event) => {\r\n event.persist();\r\n\r\n var x = event.target.value\r\n .replace(/\\D/g, \"\")\r\n .match(/(\\d{0,3})(\\d{0,3})(\\d{0,4})/);\r\n x = event.target.value = !x[2]\r\n ? x[1]\r\n : x[1] + \"-\" + x[2] + (x[3] ? \"-\" + x[3] : \"\");\r\n\r\n setFormState((formState) => ({\r\n ...formState,\r\n values: {\r\n ...formState.values,\r\n [event.target.name]:\r\n event.target.type === \"checkbox\" ? event.target.checked : x,\r\n },\r\n touched: {\r\n ...formState.touched,\r\n [event.target.name]: true,\r\n },\r\n }));\r\n };\r\n\r\n const handleSSNChange = (event) => {\r\n event.persist();\r\n\r\n var x = event.target.value\r\n .replace(/\\D/g, \"\")\r\n .match(/(\\d{0,3})(\\d{0,2})(\\d{0,4})/);\r\n x = event.target.value = !x[2]\r\n ? x[1]\r\n : x[1] + \"-\" + x[2] + (x[3] ? \"-\" + x[3] : \"\");\r\n\r\n setFormState((formState) => ({\r\n ...formState,\r\n values: {\r\n ...formState.values,\r\n [event.target.name]:\r\n event.target.type === \"checkbox\" ? event.target.checked : x,\r\n },\r\n touched: {\r\n ...formState.touched,\r\n [event.target.name]: true,\r\n },\r\n }));\r\n };\r\n\r\n const handleDateChange = (date) => {\r\n setFormState((formState) => ({\r\n ...formState,\r\n values: {\r\n ...formState.values,\r\n birthDate: date,\r\n },\r\n }));\r\n };\r\n\r\n const hasError = (field) =>\r\n formState.touched[field] && formState.errors[field] ? true : false;\r\n\r\n return (\r\n <>\r\n {/* \r\n \r\n \r\n \r\n \r\n MSMOC\r\n \r\n \r\n \r\n \r\n \r\n */}\r\n {isLoading ? (\r\n \r\n ) : sent === false ? (\r\n
\r\n
\r\n \r\n \r\n Referral sent successfully!\r\n \r\n \r\n \r\n \r\n Failed to send referral. Please try again.\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Choose A Location To Send Your Referral\r\n \r\n \r\n\r\n \r\n \r\n {!partnerLocations ? (\r\n \r\n {\"Please Select\"}\r\n \r\n ) : (\r\n partnerLocations.map((location) => (\r\n \r\n {location.locationname}\r\n \r\n ))\r\n )}\r\n \r\n \r\n\r\n {formState.values.locationId !== \"\" &&\r\n formState.values.locationId !== true ? (\r\n <>\r\n \r\n \r\n Referrer Information\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n {ddls.docs ? (\r\n ddls.docs.map((doc) => (\r\n \r\n {doc.providername}\r\n \r\n ))\r\n ) : (\r\n \r\n {\"Please Select\"}\r\n \r\n )}\r\n \r\n \r\n\r\n \r\n \r\n {ddls.sites ? (\r\n ddls.sites.map((site) => (\r\n \r\n {site.sitename}\r\n \r\n ))\r\n ) : (\r\n \r\n {\"Please Select\"}\r\n \r\n )}\r\n \r\n \r\n\r\n \r\n \r\n Patient Information\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n Male\r\n Female\r\n \r\n \r\n\r\n {/* \r\n \r\n \r\n \r\n */}\r\n\r\n \r\n \r\n \r\n \r\n \r\n ),\r\n }}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n {ddls.insurances ? (\r\n ddls.insurances.map((insurance) => (\r\n \r\n {insurance.insurance}\r\n \r\n ))\r\n ) : (\r\n \r\n {\"Please Select\"}\r\n \r\n )}\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n Condition Details\r\n \r\n \r\n\r\n \r\n {\r\n handleChange(e);\r\n setCurrentComplaint(() => e.target.value);\r\n }}\r\n required\r\n select\r\n type=\"text\"\r\n value={formState.values.bodyPartId}\r\n variant=\"outlined\"\r\n InputProps={{\r\n className: classes.input,\r\n }}\r\n >\r\n {ddls.bodyparts ? (\r\n ddls.bodyparts.map((bodypart) => (\r\n \r\n {bodypart.bodypartname}\r\n \r\n ))\r\n ) : (\r\n \r\n {\"Please Select\"}\r\n \r\n )}\r\n \r\n \r\n\r\n \r\n \r\n {ddls.complaints ? (\r\n ddls.complaints\r\n .filter(\r\n (unfilteredComplaints) =>\r\n unfilteredComplaints.bodypartid ===\r\n currentComplaint\r\n )\r\n .map((complaint) => (\r\n \r\n {complaint.complaintname}\r\n \r\n ))\r\n ) : (\r\n \r\n {\"Please Select\"}\r\n \r\n )}\r\n \r\n \r\n\r\n \r\n \r\n {ddls.acuitys ? (\r\n ddls.acuitys.map((acuity) => (\r\n \r\n {acuity.acuityname}\r\n \r\n ))\r\n ) : (\r\n \r\n {\"Please Select\"}\r\n \r\n )}\r\n \r\n \r\n\r\n \r\n \r\n No\r\n Yes\r\n \r\n \r\n\r\n \r\n \r\n Left\r\n Right\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n Send Referral And Add Attachments\r\n \r\n \r\n\r\n {message && (\r\n
\r\n {message}\r\n
\r\n )}\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n ) : (\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n Your referral was sent successfully!\r\n \r\n
\r\n\r\n \r\n \r\n Attach Documents To The Referral\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n I'm Finished!\r\n \r\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 ReferralManager;\r\n","import React, { useState } from \"react\";\r\nimport { Grid, Tabs, Tab, makeStyles, AppBar } from \"@material-ui/core\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport { UserManager, ReferralManager } from \"./components\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n padding: theme.spacing(4),\r\n },\r\n userMenuButton: {\r\n marginRight: theme.spacing(2),\r\n },\r\n}));\r\n\r\nconst Referral = () => {\r\n const classes = useStyles();\r\n\r\n // tabs\r\n const tabNameToIndex = {\r\n 0: \"New Referral\",\r\n 1: \"Referral List\",\r\n };\r\n\r\n const indexToTabName = {\r\n newReferral: 0,\r\n referralList: 1,\r\n };\r\n\r\n /** get referralId if passed via URL and pass to UserManager */\r\n const { referralId } = useParams();\r\n const trimmedReferralId = referralId ? referralId.substring(0, 20) : null;\r\n\r\n const [selectedTab, setSelectedTab] = useState(\r\n indexToTabName[trimmedReferralId ? \"referralList\" : \"newReferral\"]\r\n );\r\n const [selected, setSelected] = useState(null);\r\n\r\n const updateSelected = (event) => {\r\n setSelected(event);\r\n };\r\n\r\n const handleChange = (event, newValue) => {\r\n // history.push(`/home/${tabNameToIndex[newValue]}`);\r\n setSelectedTab(newValue);\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {selectedTab === 0 && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {selectedTab === 1 && (\r\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 Referral;\r\n","import React from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: \"flex\",\n \"& > * + *\": {\n marginLeft: theme.spacing(2),\n },\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n}));\n\nexport default function CircularIndeterminate() {\n const classes = useStyles();\n\n return (\n
\n \n
\n );\n}\n","import React from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: \"flex\",\n \"& > * + *\": {\n marginLeft: theme.spacing(2),\n },\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n}));\n\nexport default function CircularIndeterminate() {\n const classes = useStyles();\n\n return (\n
\n \n
\n );\n}\n","import React, { useState, useEffect } from \"react\";\r\nimport validate from \"validate.js\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport {\r\n Snackbar,\r\n Button,\r\n Typography,\r\n MenuItem,\r\n Grid,\r\n TextField,\r\n Card,\r\n CardContent,\r\n InputAdornment,\r\n} from \"@material-ui/core\";\r\nimport MuiAlert from \"@material-ui/lab/Alert\";\r\nimport DateFnsUtils from \"@date-io/date-fns\";\r\nimport { MuiPickersUtilsProvider, DatePicker } from \"@material-ui/pickers\";\r\nimport axios from \"axios\";\r\nimport apiUrl from \"../../../../common/apiUrl\";\r\nimport Loading from \"./Loading\";\r\nimport ThumbUpIcon from \"@material-ui/icons/ThumbUp\";\r\nimport DateRangeIcon from \"@material-ui/icons/DateRange\";\r\nimport Dropzone from \"../../../../common/Dropzone\";\r\n\r\nconst schema = {\r\n locationId: {\r\n presence: true,\r\n numericality: {\r\n onlyInteger: true,\r\n greaterThanOrEqualTo: 0,\r\n message: \"is required\",\r\n },\r\n },\r\n preferredLocation: {\r\n presence: true,\r\n numericality: {\r\n onlyInteger: true,\r\n greaterThanOrEqualTo: 0,\r\n message: \"is required\",\r\n },\r\n },\r\n insuranceId: {\r\n presence: true,\r\n numericality: {\r\n onlyInteger: true,\r\n greaterThanOrEqualTo: 0,\r\n message: \"is required\",\r\n },\r\n },\r\n bodyPartId: {\r\n presence: true,\r\n numericality: {\r\n onlyInteger: true,\r\n greaterThanOrEqualTo: 0,\r\n message: \"is required\",\r\n },\r\n },\r\n complaintId: {\r\n presence: true,\r\n numericality: {\r\n onlyInteger: true,\r\n greaterThanOrEqualTo: 0,\r\n message: \"is required\",\r\n },\r\n },\r\n acuityId: {\r\n presence: true,\r\n numericality: {\r\n onlyInteger: true,\r\n greaterThanOrEqualTo: 0,\r\n message: \"is required\",\r\n },\r\n },\r\n referringPhysician: {\r\n presence: { allowEmpty: false, message: \"is required\" },\r\n length: {\r\n maximum: 64,\r\n },\r\n },\r\n referringContact: {\r\n presence: { allowEmpty: false, message: \"is required\" },\r\n length: {\r\n maximum: 64,\r\n },\r\n },\r\n referringOfficePhone: {\r\n presence: {\r\n allowEmpty: false,\r\n message: \"is required in the format 123-456-7890\",\r\n },\r\n length: {\r\n minimum: 12,\r\n },\r\n format: {\r\n pattern: \"^(\\\\+0?1\\\\s)?\\\\(?\\\\d{3}\\\\)?[\\\\s.-]\\\\d{3}[\\\\s.-]\\\\d{4}$\",\r\n flags: \"i\",\r\n message: \"is required in the format 123-456-7890\",\r\n },\r\n },\r\n patientFirstName: {\r\n presence: { allowEmpty: false, message: \"is required\" },\r\n length: {\r\n maximum: 128,\r\n },\r\n },\r\n patientLastName: {\r\n presence: { allowEmpty: false, message: \"is required\" },\r\n length: {\r\n maximum: 128,\r\n },\r\n },\r\n streetAddress: {\r\n presence: { allowEmpty: false, message: \"is required\" },\r\n length: {\r\n minimum: 2,\r\n maximum: 150,\r\n },\r\n },\r\n zipCode: {\r\n presence: { allowEmpty: false, message: \"is required\" },\r\n length: {\r\n minimum: 5,\r\n maximum: 5,\r\n },\r\n format: {\r\n pattern: \"[0-9]+\",\r\n flags: \"i\",\r\n message: \"can only contain 0-9\",\r\n },\r\n },\r\n primaryPhone: {\r\n presence: {\r\n allowEmpty: false,\r\n message: \"is required in the format 123-456-7890\",\r\n },\r\n length: {\r\n minimum: 12,\r\n },\r\n format: {\r\n pattern: \"^(\\\\+0?1\\\\s)?\\\\(?\\\\d{3}\\\\)?[\\\\s.-]\\\\d{3}[\\\\s.-]\\\\d{4}$\",\r\n flags: \"i\",\r\n message: \"is required in the format 123-456-7890\",\r\n },\r\n },\r\n ssn: {\r\n length: {\r\n maximum: 11,\r\n },\r\n },\r\n birthDate: {\r\n presence: {\r\n allowEmpty: false,\r\n message: \"is required\",\r\n },\r\n },\r\n};\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n userTable: {\r\n paddingTop: \"2rem\",\r\n },\r\n input: {\r\n background: \"white\",\r\n },\r\n grid: {\r\n spacing: 0,\r\n display: \"flex\",\r\n direction: \"column\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n paddingTop: theme.spacing(7),\r\n },\r\n contentHeader: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n paddingTop: theme.spacing(5),\r\n paddingBottom: theme.spacing(2),\r\n paddingLeft: theme.spacing(2),\r\n paddingRight: theme.spacing(2),\r\n },\r\n contentBody: {\r\n flexGrow: 1,\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n },\r\n logo: {\r\n marginTop: theme.spacing(5),\r\n marginBottom: theme.spacing(3),\r\n display: \"flex\",\r\n direction: \"column\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n },\r\n linkExpired: {\r\n paddingTop: theme.spacing(4),\r\n textAlign: \"center\",\r\n marginBottom: \"6em\",\r\n },\r\n}));\r\n\r\nfunction Alert(props) {\r\n return ;\r\n}\r\n\r\nconst NoLoginReferralManager = (props) => {\r\n const classes = useStyles();\r\n\r\n const initialState = {\r\n isValid: false,\r\n values: {\r\n userId: \"\",\r\n locationId: props.locationId ? props.locationId : null,\r\n partnerId: props.referralPartnerId ? props.referralPartnerId : 11,\r\n referringPhysician: \"\",\r\n referringContact: \"\",\r\n referringOfficePhone: \"\",\r\n physicianRequested: \"\",\r\n preferredLocation: \"\",\r\n preferredApptTime: \"\",\r\n patientContactName: \"\",\r\n patientFirstName: \"\",\r\n patientLastName: \"\",\r\n gender: \"\",\r\n birthDate: null,\r\n ssn: \"\",\r\n streetAddress: \"\",\r\n zipCode: \"\",\r\n emailAddress: \"\",\r\n primaryPhone: \"\",\r\n referralSourceId: \"\",\r\n insuranceId: \"\",\r\n insuranceNumber: \"\",\r\n bodyPartId: \"\",\r\n complaintId: \"\",\r\n acuityId: \"\",\r\n previousSurgery: false,\r\n previousSurgerySide: \"\",\r\n attachmentPath: \"\",\r\n attachmentFName: \"\",\r\n otherInfo: \"\",\r\n referralContactEmail: \"\",\r\n },\r\n touched: {},\r\n errors: {},\r\n isLoading: false,\r\n };\r\n\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [sent, setSent] = useState(false);\r\n const [severity, setSeverity] = useState(\"\");\r\n const [message, setMessage] = useState(\"\");\r\n const [openSnack, setOpenSnack] = useState(false);\r\n const [openErrorSnack, setOpenErrorSnack] = useState(false);\r\n const [ddls, setDdls] = useState({});\r\n const [partnerLocations, setPartnerLocations] = useState();\r\n const [currentComplaint, setCurrentComplaint] = useState(1);\r\n const [apptId, setApptId] = useState();\r\n const [rky, setRky] = useState();\r\n const [locationAbbr, setLocationAbbr] = useState();\r\n const [formState, setFormState] = useState(initialState);\r\n\r\n const handleClose = (event, reason) => {\r\n if (reason === \"clickaway\") {\r\n return;\r\n }\r\n\r\n setOpenSnack(false);\r\n setOpenErrorSnack(false);\r\n };\r\n\r\n useEffect(() => {\r\n const errors = validate(formState.values, schema);\r\n\r\n setFormState((formState) => ({\r\n ...formState,\r\n isValid: errors ? false : true,\r\n errors: errors || {},\r\n }));\r\n }, [formState.values]);\r\n\r\n useEffect(() => {\r\n const fetchPartnerLocations = async () => {\r\n setIsLoading(true);\r\n\r\n try {\r\n const result = await axios.post(\r\n apiUrl + \"/referral/partner-locations\",\r\n {\r\n partnerId: props.referralPartnerId ? props.referralPartnerId : 11,\r\n }\r\n );\r\n\r\n setPartnerLocations(() => result.data.data);\r\n\r\n setIsLoading(false);\r\n } catch (error) {\r\n console.log(error);\r\n setIsLoading(false);\r\n }\r\n };\r\n\r\n fetchPartnerLocations();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (\r\n formState.values.locationId !== \"\" &&\r\n formState.values.locationId !== true\r\n ) {\r\n const getDdls = async () => {\r\n //e.preventDefault();\r\n\r\n setIsLoading(true);\r\n\r\n try {\r\n const result = await axios.post(apiUrl + \"/referral/ddl\", {\r\n userId: \"9221794d-5b58-44cd-b092-825ffcd66b69\",\r\n sendToLocationId: props.locationId,\r\n });\r\n\r\n if (result !== null) {\r\n setDdls(() => result.data.data[0].spgetdropdowns.dropdowns[0]);\r\n setIsLoading(false);\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n setIsLoading(false);\r\n }\r\n };\r\n\r\n getDdls();\r\n }\r\n }, [formState.values.locationId]);\r\n\r\n useEffect(() => {\r\n const errors = validate(formState.values, schema);\r\n\r\n setFormState((formState) => ({\r\n ...formState,\r\n isValid: errors ? false : true,\r\n errors: errors || {},\r\n }));\r\n }, [formState.values]);\r\n\r\n const sendReferral = async () => {\r\n //e.preventDefault();\r\n\r\n setIsLoading(true);\r\n\r\n let unmounted = false;\r\n\r\n try {\r\n const result = await axios.post(apiUrl + \"/referral/send\", {\r\n userId: \"9221794d-5b58-44cd-b092-825ffcd66b69\",\r\n locationId: formState.values.locationId,\r\n partnerId: props.referralPartnerId ? props.referralPartnerId : 11,\r\n referringPhysician: formState.values.referringPhysician,\r\n referringContact: formState.values.referringContact,\r\n referringOfficePhone: formState.values.referringOfficePhone,\r\n physicianRequested: formState.values.physicianRequested,\r\n preferredLocation: formState.values.preferredLocation,\r\n preferredApptTime: 1,\r\n patientContactName: formState.values.patientContactName,\r\n patientFirstName: formState.values.patientFirstName,\r\n patientLastName: formState.values.patientLastName,\r\n gender: formState.values.gender,\r\n birthDate: formState.values.birthDate,\r\n ssn: formState.values.ssn,\r\n streetAddress: formState.values.streetAddress,\r\n zipCode: formState.values.zipCode,\r\n emailAddress: formState.values.emailAddress,\r\n primaryPhone: formState.values.primaryPhone,\r\n // referralSourceId: formState.values.referralSourceId,\r\n referralSourceId: 12,\r\n insuranceId: formState.values.insuranceId,\r\n insuranceNumber: formState.values.insuranceNumber,\r\n bodyPartId: formState.values.bodyPartId,\r\n complaintId: formState.values.complaintId,\r\n acuityId: formState.values.acuityId,\r\n previousSurgery: formState.values.previousSurgery,\r\n previousSurgerySide: formState.values.previousSurgerySide,\r\n attachmentPath: formState.values.attachmentPath,\r\n attachmentFName: formState.values.attachmentFName,\r\n otherInfo: formState.values.otherInfo,\r\n referralContactEmail: formState.values.referralContactEmail,\r\n });\r\n\r\n if (result && !unmounted) {\r\n setApptId(() => result.data.data[0].rsapptrequestid);\r\n setRky(() => result.data.data[0].rky);\r\n setLocationAbbr(() => result.data.data[0].locationabbr);\r\n setIsLoading(false);\r\n }\r\n\r\n setOpenSnack(true);\r\n setSent(() => true);\r\n } catch (error) {\r\n console.log(error);\r\n setIsLoading(false);\r\n setOpenErrorSnack(true);\r\n setSent(() => false);\r\n }\r\n return () => {\r\n unmounted = true;\r\n };\r\n };\r\n\r\n const resetReferralForm = () => {\r\n setFormState(() => initialState);\r\n setSent(() => false);\r\n };\r\n\r\n const handleChange = (event) => {\r\n setFormState((formState) => ({\r\n ...formState,\r\n values: {\r\n ...formState.values,\r\n [event.target.name]:\r\n event.target.type === \"checkbox\"\r\n ? event.target.checked\r\n : event.target.value,\r\n },\r\n touched: {\r\n ...formState.touched,\r\n [event.target.name]: true,\r\n },\r\n }));\r\n\r\n if (event.target.name === \"bodyPartId\") {\r\n setFormState((formState) => ({\r\n ...formState,\r\n values: {\r\n ...formState.values,\r\n complaintId: \"\",\r\n },\r\n touched: {\r\n ...formState.touched,\r\n [event.target.name]: true,\r\n },\r\n }));\r\n }\r\n };\r\n\r\n const handlePhoneChange = (event) => {\r\n event.persist();\r\n\r\n var x = event.target.value\r\n .replace(/\\D/g, \"\")\r\n .match(/(\\d{0,3})(\\d{0,3})(\\d{0,4})/);\r\n x = event.target.value = !x[2]\r\n ? x[1]\r\n : x[1] + \"-\" + x[2] + (x[3] ? \"-\" + x[3] : \"\");\r\n\r\n setFormState((formState) => ({\r\n ...formState,\r\n values: {\r\n ...formState.values,\r\n [event.target.name]:\r\n event.target.type === \"checkbox\" ? event.target.checked : x,\r\n },\r\n touched: {\r\n ...formState.touched,\r\n [event.target.name]: true,\r\n },\r\n }));\r\n };\r\n\r\n const handleSSNChange = (event) => {\r\n event.persist();\r\n\r\n var x = event.target.value\r\n .replace(/\\D/g, \"\")\r\n .match(/(\\d{0,3})(\\d{0,2})(\\d{0,4})/);\r\n x = event.target.value = !x[2]\r\n ? x[1]\r\n : x[1] + \"-\" + x[2] + (x[3] ? \"-\" + x[3] : \"\");\r\n\r\n setFormState((formState) => ({\r\n ...formState,\r\n values: {\r\n ...formState.values,\r\n [event.target.name]:\r\n event.target.type === \"checkbox\" ? event.target.checked : x,\r\n },\r\n touched: {\r\n ...formState.touched,\r\n [event.target.name]: true,\r\n },\r\n }));\r\n };\r\n\r\n const handleDateChange = (date) => {\r\n setFormState((formState) => ({\r\n ...formState,\r\n values: {\r\n ...formState.values,\r\n birthDate: date,\r\n },\r\n }));\r\n };\r\n\r\n const hasError = (field) =>\r\n formState.touched[field] && formState.errors[field] ? true : false;\r\n\r\n return (\r\n <>\r\n {/* \r\n \r\n \r\n \r\n \r\n MSMOC\r\n \r\n \r\n \r\n \r\n \r\n */}\r\n {isLoading ? (\r\n \r\n ) : sent === false ? (\r\n
\r\n
\r\n \r\n \r\n Referral sent successfully!\r\n \r\n \r\n \r\n \r\n Failed to send referral. Please try again.\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Send a referral to the following location\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n {formState.values.locationId !== \"\" &&\r\n formState.values.locationId !== true ? (\r\n <>\r\n \r\n \r\n Referrer Information\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n {ddls.docs ? (\r\n ddls.docs.map((doc) => (\r\n \r\n {doc.providername}\r\n \r\n ))\r\n ) : (\r\n \r\n {\"Please Select\"}\r\n \r\n )}\r\n \r\n \r\n\r\n \r\n \r\n {ddls.sites ? (\r\n ddls.sites.map((site) => (\r\n \r\n {site.sitename}\r\n \r\n ))\r\n ) : (\r\n \r\n {\"Please Select\"}\r\n \r\n )}\r\n \r\n \r\n\r\n \r\n \r\n Patient Information\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n Male\r\n Female\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n ),\r\n }}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n {ddls.insurances ? (\r\n ddls.insurances.map((insurance) => (\r\n \r\n {insurance.insurance}\r\n \r\n ))\r\n ) : (\r\n \r\n {\"Please Select\"}\r\n \r\n )}\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n Condition Details\r\n \r\n \r\n\r\n \r\n {\r\n handleChange(e);\r\n setCurrentComplaint(() => e.target.value);\r\n }}\r\n required\r\n select\r\n type=\"text\"\r\n value={formState.values.bodyPartId}\r\n variant=\"outlined\"\r\n InputProps={{\r\n className: classes.input,\r\n }}\r\n >\r\n {ddls.bodyparts ? (\r\n ddls.bodyparts.map((bodypart) => (\r\n \r\n {bodypart.bodypartname}\r\n \r\n ))\r\n ) : (\r\n \r\n {\"Please Select\"}\r\n \r\n )}\r\n \r\n \r\n\r\n \r\n \r\n {ddls.complaints ? (\r\n ddls.complaints\r\n .filter(\r\n (unfilteredComplaints) =>\r\n unfilteredComplaints.bodypartid ===\r\n currentComplaint\r\n )\r\n .map((complaint) => (\r\n \r\n {complaint.complaintname}\r\n \r\n ))\r\n ) : (\r\n \r\n {\"Please Select\"}\r\n \r\n )}\r\n \r\n \r\n\r\n \r\n \r\n {ddls.acuitys ? (\r\n ddls.acuitys.map((acuity) => (\r\n \r\n {acuity.acuityname}\r\n \r\n ))\r\n ) : (\r\n \r\n {\"Please Select\"}\r\n \r\n )}\r\n \r\n \r\n\r\n \r\n \r\n No\r\n Yes\r\n \r\n \r\n\r\n \r\n \r\n Left\r\n Right\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n Send Referral And Add Attachments\r\n \r\n \r\n\r\n {message && (\r\n
\r\n {message}\r\n
\r\n )}\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n ) : (\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n Your referral was sent successfully!\r\n \r\n
\r\n\r\n \r\n \r\n Attach Documents To The Referral\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n I'm Finished!\r\n \r\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 NoLoginReferralManager;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { useParams, useHistory } from \"react-router-dom\";\r\nimport {\r\n Card,\r\n CardContent,\r\n Grid,\r\n Typography,\r\n makeStyles,\r\n} from \"@material-ui/core\";\r\nimport apiUrl from \"../../common/apiUrl\";\r\nimport Loading from \"./components/Loading\";\r\nimport { NoLoginReferralManager } from \"./components\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n padding: theme.spacing(4),\r\n },\r\n userMenuButton: {\r\n marginRight: theme.spacing(2),\r\n },\r\n}));\r\n\r\nconst ReferralNoLogin = () => {\r\n const classes = useStyles();\r\n\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [locationIsValid, setLocationIsValid] = useState(false);\r\n const [locationId, setLocationId] = useState(null);\r\n const [locationName, setLocationName] = useState(null);\r\n const [partnerIsValid, setPartnerIsValid] = useState(false);\r\n const [partnerId, setPartnerId] = useState(null);\r\n\r\n const { location, partner } = useParams();\r\n\r\n const trimmedPartner = partner ? partner.substring(0, 20) : null;\r\n\r\n /** check challenge status */\r\n useEffect(() => {\r\n setIsLoading(() => true);\r\n\r\n const config = {\r\n method: \"POST\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n Cache: \"no-cache\",\r\n },\r\n body: JSON.stringify({\r\n locationName: location,\r\n }),\r\n };\r\n\r\n const fetchData = async () => {\r\n try {\r\n const response = await fetch(`${apiUrl}/referral/location`, config);\r\n\r\n const json = await response.json();\r\n\r\n if (json) {\r\n if (json.message === true) {\r\n setLocationIsValid(() => true);\r\n setLocationId(() => json.data[0].locationid);\r\n setLocationName(() => json.data[0].locationname);\r\n setIsLoading(() => false);\r\n }\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n setIsLoading(() => false);\r\n }\r\n };\r\n fetchData();\r\n\r\n if (trimmedPartner !== undefined) {\r\n const configPartnerFetch = {\r\n method: \"POST\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n Cache: \"no-cache\",\r\n },\r\n body: JSON.stringify({\r\n partnerAbbr: trimmedPartner,\r\n }),\r\n };\r\n const fetchPartnerId = async () => {\r\n try {\r\n const response = await fetch(\r\n `${apiUrl}/referral/partner`,\r\n configPartnerFetch\r\n );\r\n\r\n const json = await response.json();\r\n\r\n if (json) {\r\n if (json.message === true) {\r\n setPartnerIsValid(() => true);\r\n setPartnerId(() => json.data[0].partnerid);\r\n setIsLoading(() => false);\r\n }\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n setIsLoading(() => false);\r\n }\r\n };\r\n fetchPartnerId();\r\n }\r\n }, []);\r\n\r\n return (\r\n <>\r\n {isLoading ? (\r\n \r\n ) : locationIsValid === false ? (\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \"Logo\"\r\n
\r\n
\r\n \r\n This link is invalid. Please check the URL and try again.\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n ) : (\r\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 ReferralNoLogin;\r\n","import React from \"react\";\r\nimport { Switch, Redirect } from \"react-router-dom\";\r\nimport { RouteWithLayout, AuthenticatedRoute } from \"./components\";\r\nimport {\r\n Main as MainLayout,\r\n Minimal as MinimalLayout,\r\n Login as LoginLayout,\r\n NoLoginReferralLayout as NoLoginLayout,\r\n} from \"./layouts\";\r\n\r\nimport {\r\n // Dashboard as DashboardView,\r\n Referral as ReferralView,\r\n ReferralNoLogin as ReferralNoLoginView,\r\n NotFound as NotFoundView,\r\n SignIn as SignInView,\r\n ForgotPassword as ForgotPasswordView,\r\n ResetPassword as ResetPasswordView,\r\n Settings as SettingsView,\r\n // Support as SupportView,\r\n} from \"./views\";\r\n\r\nconst Routes = () => {\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\nexport default Routes;\r\n","import axios from \"axios\";\nimport apiUrl from \"./apiUrl.js\";\n\nconst accessTokenManager = () => {\n let accessToken = null;\n // let isRefreshing = null;\n // let refreshTimeOutId;\n\n const getRefreshedToken = async () => {\n try {\n const res = await fetch(apiUrl + \"/auth/refresh\", {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n Cache: \"no-cache\",\n },\n credentials: \"include\",\n });\n\n const newAccessToken = await res.json();\n\n if (newAccessToken !== \"\") {\n setToken(newAccessToken.accessToken, newAccessToken.tokenExpiresOn);\n return newAccessToken;\n }\n } catch (error) {\n console.log(error);\n return null;\n }\n };\n\n const setToken = (token) => {\n accessToken = token;\n // refreshToken(delay);\n return true;\n };\n\n axios.interceptors.request.use(\n async (config) => {\n config.headers = {\n Authorization: `Bearer ${accessToken}`,\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n };\n return config;\n },\n (error) => {\n Promise.reject(error);\n }\n );\n\n axios.interceptors.response.use(\n (response) => {\n return response;\n },\n (error) => {\n if (error && error.response && error.response.status === 401) {\n // 401 error redirect to login\n return Promise.reject(error);\n }\n if (error.response.status !== 401) {\n return new Promise((resolve, reject) => {\n reject(error);\n });\n }\n }\n );\n\n // const refreshToken = (delay) => {\n // refreshTimeOutId = window.setTimeout(\n // getRefreshedToken,\n // delay * 1000 - 5000\n // ); // Validity period of the token in seconds, minus 5 seconds\n // };\n\n // const abortRefreshToken = () => {\n // if (refreshTimeOutId) {\n // window.clearTimeout(refreshTimeOutId);\n // }\n // };\n\n // const waitForTokenRefresh = () => {\n // if (!isRefreshing) {\n // return Promise.resolve();\n // }\n // return isRefreshing.then(() => {\n // isRefreshing = null;\n // return true;\n // });\n // };\n\n // const request = new Request(refreshEndpoint, {\n // method: \"POST\",\n // headers: new Headers({ \"Content-Type\": \"application/json\" }),\n // credentials: \"include\",\n // });\n\n // isRefreshing = fetch(request)\n // .then((response) => {\n // if (response.status !== 200) {\n // eraseToken();\n // global.console.log(\"Token renewal failure\");\n // return { token: null };\n // }\n // //console.log(response.json());\n // return response.json();\n // })\n // .then(({ token, tokenExpiry }) => {\n // if (token) {\n // console.log(`token: ${JSON.stringify(token)}`);\n // setToken(token, tokenExpiry);\n // return true;\n // }\n // eraseToken();\n // return false;\n // });\n\n // return isRefreshing;\n\n // const getToken = () => accessToken;\n\n // Response interceptor for API calls\n // axios.interceptors.response.use(\n // (response) => {\n // return response;\n // },\n // async function (error) {\n // const originalRequest = error.config;\n // if (error.response.status === 401 && !originalRequest._retry) {\n // originalRequest._retry = true;\n // const access_token = await getRefreshedToken();\n // axios.defaults.headers.common[\"Authorization\"] =\n // \"Bearer \" + access_token;\n // return axios(originalRequest);\n // }\n // return Promise.reject(error);\n // }\n // );\n\n // const eraseToken = () => {\n // accessToken = null;\n // abortRefreshToken();\n // return true;\n // };\n\n return {\n getRefreshedToken,\n setToken,\n apiUrl,\n };\n};\n\nexport default accessTokenManager();\n","const checked = (value, options) => {\r\n if (value !== true) {\r\n return options.message || 'must be checked';\r\n }\r\n};\r\n\r\nexport default {\r\n checked\r\n};\r\n","import { Chart } from 'react-chartjs-2';\n\n// ChartJS extension rounded bar chart\n// https://codepen.io/jedtrow/full/ygRYgo\nfunction draw() {\n const { ctx } = this._chart;\n const vm = this._view;\n let { borderWidth } = vm;\n\n let left;\n let right;\n let top;\n let bottom;\n let signX;\n let signY;\n let borderSkipped;\n let radius;\n\n // If radius is less than 0 or is large enough to cause drawing errors a max\n // radius is imposed. If cornerRadius is not defined set it to 0.\n let { cornerRadius } = this._chart.config.options;\n if (cornerRadius < 0) {\n cornerRadius = 0;\n }\n\n if (typeof cornerRadius === 'undefined') {\n cornerRadius = 0;\n }\n\n if (!vm.horizontal) {\n // bar\n left = vm.x - vm.width / 2;\n right = vm.x + vm.width / 2;\n top = vm.y;\n bottom = vm.base;\n signX = 1;\n signY = bottom > top ? 1 : -1;\n borderSkipped = vm.borderSkipped || 'bottom';\n } else {\n // horizontal bar\n left = vm.base;\n right = vm.x;\n top = vm.y - vm.height / 2;\n bottom = vm.y + vm.height / 2;\n signX = right > left ? 1 : -1;\n signY = 1;\n borderSkipped = vm.borderSkipped || 'left';\n }\n\n // Canvas doesn't allow us to stroke inside the width so we can\n // adjust the sizes to fit if we're setting a stroke on the line\n if (borderWidth) {\n // borderWidth shold be less than bar width and bar height.\n const barSize = Math.min(Math.abs(left - right), Math.abs(top - bottom));\n borderWidth = borderWidth > barSize ? barSize : borderWidth;\n const halfStroke = borderWidth / 2;\n // Adjust borderWidth when bar top position is near vm.base(zero).\n const borderLeft = left + (borderSkipped !== 'left' ? halfStroke * signX : 0);\n const borderRight = right + (borderSkipped !== 'right' ? -halfStroke * signX : 0);\n const borderTop = top + (borderSkipped !== 'top' ? halfStroke * signY : 0);\n const borderBottom = bottom + (borderSkipped !== 'bottom' ? -halfStroke * signY : 0);\n // not become a vertical line?\n if (borderLeft !== borderRight) {\n top = borderTop;\n bottom = borderBottom;\n }\n // not become a horizontal line?\n if (borderTop !== borderBottom) {\n left = borderLeft;\n right = borderRight;\n }\n }\n\n ctx.beginPath();\n ctx.fillStyle = vm.backgroundColor;\n ctx.strokeStyle = vm.borderColor;\n ctx.lineWidth = borderWidth;\n\n // Corner points, from bottom-left to bottom-right clockwise\n // | 1 2 |\n // | 0 3 |\n const corners = [[left, bottom], [left, top], [right, top], [right, bottom]];\n\n // Find first (starting) corner with fallback to 'bottom'\n const borders = ['bottom', 'left', 'top', 'right'];\n let startCorner = borders.indexOf(borderSkipped, 0);\n if (startCorner === -1) {\n startCorner = 0;\n }\n\n function cornerAt(index) {\n return corners[(startCorner + index) % 4];\n }\n\n // Draw rectangle from 'startCorner'\n let corner = cornerAt(0);\n ctx.moveTo(corner[0], corner[1]);\n\n for (let i = 1; i < 4; i += 1) {\n corner = cornerAt(i);\n let nextCornerId = i + 1;\n if (nextCornerId === 4) {\n nextCornerId = 0;\n }\n\n const width = corners[2][0] - corners[1][0];\n const height = corners[0][1] - corners[1][1];\n const x = corners[1][0];\n const y = corners[1][1];\n\n radius = cornerRadius;\n // Fix radius being too large\n if (radius > Math.abs(height) / 2) {\n radius = Math.floor(Math.abs(height) / 2);\n }\n if (radius > Math.abs(width) / 2) {\n radius = Math.floor(Math.abs(width) / 2);\n }\n\n if (height < 0) {\n // Negative values in a standard bar chart\n const xTl = x;\n const xTr = x + width;\n const yTl = y + height;\n const yTr = y + height;\n\n const xBl = x;\n const xBr = x + width;\n const yBl = y;\n const yBr = y;\n\n // Draw\n ctx.moveTo(xBl + radius, yBl);\n ctx.lineTo(xBr - radius, yBr);\n ctx.quadraticCurveTo(xBr, yBr, xBr, yBr - radius);\n ctx.lineTo(xTr, yTr + radius);\n ctx.quadraticCurveTo(xTr, yTr, xTr - radius, yTr);\n ctx.lineTo(xTl + radius, yTl);\n ctx.quadraticCurveTo(xTl, yTl, xTl, yTl + radius);\n ctx.lineTo(xBl, yBl - radius);\n ctx.quadraticCurveTo(xBl, yBl, xBl + radius, yBl);\n } else if (width < 0) {\n // Negative values in a horizontal bar chart\n const xTl = x + width;\n const xTr = x;\n const yTl = y;\n const yTr = y;\n\n const xBl = x + width;\n const xBr = x;\n const yBl = y + height;\n const yBr = y + height;\n\n // Draw\n ctx.moveTo(xBl + radius, yBl);\n ctx.lineTo(xBr - radius, yBr);\n ctx.quadraticCurveTo(xBr, yBr, xBr, yBr - radius);\n ctx.lineTo(xTr, yTr + radius);\n ctx.quadraticCurveTo(xTr, yTr, xTr - radius, yTr);\n ctx.lineTo(xTl + radius, yTl);\n ctx.quadraticCurveTo(xTl, yTl, xTl, yTl + radius);\n ctx.lineTo(xBl, yBl - radius);\n ctx.quadraticCurveTo(xBl, yBl, xBl + radius, yBl);\n } else {\n // Positive Value\n ctx.moveTo(x + radius, y);\n ctx.lineTo(x + width - radius, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + radius);\n ctx.lineTo(x + width, y + height - radius);\n ctx.quadraticCurveTo(\n x + width,\n y + height,\n x + width - radius,\n y + height\n );\n ctx.lineTo(x + radius, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - radius);\n ctx.lineTo(x, y + radius);\n ctx.quadraticCurveTo(x, y, x + radius, y);\n }\n }\n\n ctx.fill();\n if (borderWidth) {\n ctx.stroke();\n }\n}\n\nChart.helpers.extend(Chart.elements.Rectangle.prototype, {\n draw\n});\n","import React, { useState, useMemo, useEffect } from \"react\";\r\nimport { Router } from \"react-router-dom\";\r\nimport { createBrowserHistory } from \"history\";\r\nimport { UserContext } from \"./UserContext\";\r\nimport { ThemeProvider } from \"@material-ui/styles\";\r\nimport theme from \"./theme\";\r\nimport Routes from \"./Routes\";\r\nimport axios from \"axios\";\r\nimport createAuthRefreshInterceptor from \"axios-auth-refresh\";\r\nimport AccessTokenManager from \"./common/accessTokenManager.js\";\r\nimport validate from \"validate.js\";\r\nimport validators from \"./common/validators\";\r\nimport apiUrl from \"./common/apiUrl.js\";\r\nimport \"./mixins/chartjs.js\";\r\nimport \"./App.css\";\r\n\r\nconst browserHistory = createBrowserHistory();\r\n\r\nvalidate.validators = {\r\n ...validate.validators,\r\n ...validators,\r\n};\r\n\r\nconst App = () => {\r\n const [user, setUser] = useState({\r\n username: \"\",\r\n isAuthenticated: false,\r\n customerStatus: \"\",\r\n accessToken: \"\",\r\n tokenExpiresOn: \"\",\r\n });\r\n const value = useMemo(() => ({ user, setUser }), [user, setUser]);\r\n\r\n /** config axios */\r\n axios.create({\r\n baseURL: apiUrl,\r\n withCredentials: true,\r\n });\r\n\r\n const AxiosRefreshOptions = {\r\n pauseInstanceWhileRefreshing: true,\r\n statusCodes: [401],\r\n };\r\n\r\n // Function called to refresh authorization\r\n const refreshAuthLogic = (failedRequest) =>\r\n AccessTokenManager.getRefreshedToken().then((tokenRefreshResponse) => {\r\n setUser({\r\n username: tokenRefreshResponse.username,\r\n isAuthenticated: tokenRefreshResponse.isAuthenticated,\r\n customerStatus: tokenRefreshResponse.customerStatus,\r\n accessToken: tokenRefreshResponse.accessToken,\r\n tokenExpiresOn: tokenRefreshResponse.tokenExpiresOn,\r\n });\r\n failedRequest.response.config.headers[\"Authorization\"] =\r\n \"Bearer \" + unescape(tokenRefreshResponse.accessToken);\r\n return Promise.resolve();\r\n });\r\n\r\n // Instantiate interceptor\r\n createAuthRefreshInterceptor(axios, refreshAuthLogic, AxiosRefreshOptions);\r\n /** end config axios */\r\n\r\n useEffect(() => {\r\n let unmounted = false;\r\n const fetchData = async () => {\r\n try {\r\n const newAccessToken = await AccessTokenManager.getRefreshedToken();\r\n\r\n if (newAccessToken && newAccessToken !== null) {\r\n setUser({\r\n username: newAccessToken.username,\r\n isAuthenticated: newAccessToken.isAuthenticated,\r\n customerStatus: newAccessToken.customerStatus,\r\n accessToken: newAccessToken.accessToken,\r\n tokenExpiresOn: newAccessToken.tokenExpiresOn,\r\n });\r\n } else {\r\n browserHistory.push(\"/\");\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n };\r\n\r\n fetchData();\r\n\r\n return () => {\r\n // eslint-disable-next-line\r\n unmounted = true;\r\n };\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\nexport default App;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\n\r\nimport * as serviceWorker from './serviceWorker';\r\nimport App from './App';\r\n\r\nReactDOM.render(, document.getElementById('root'));\r\n\r\nserviceWorker.unregister();\r\n"],"sourceRoot":""}