{"version":3,"sources":["assets/Fidelius_Finalized_Logo_Parts-02.svg","../node_modules/jspdf/dist sync","assets/Fidelius_Finalized_Logo_Parts-01.svg","config/config.js","utils/providers/Auth0Provider.js","redux/reducers/utils.js","utils/api-client.js","redux/reducers/user.js","redux/reducers/index.js","redux/store.js","config/constants.js","utils/helpers.js","utils/FdlOutlinedInput/FdlOutlinedInput.js","components/VaultForm/PersonInfoModal.js","components/VaultForm/ClientDocumentsModal.js","components/VaultForm/VaultForm.js","components/VaultCreate/VaultEdit.js","components/VaultCreate/modals/VaultCreateModal.js","components/VaultCreate/VaultCreate.js","components/Login/Login.js","utils/ProtectedRoute.js","components/NavBar/components/CheckoutForm.js","components/NavBar/components/AccountPreferencesModal.js","components/NavBar/NavBar.js","components/Dashboard/components/VaultCard.js","components/Dashboard/ActivityLog/ActivityLogItem.js","components/Dashboard/ActivityLog/ActivityLogModal.js","components/Dashboard/ActivityLog/ActivityLog.js","components/Dashboard/components/DashboardBanner.js","components/Dashboard/components/FreeTrialCard.js","components/Dashboard/Dashboard.js","components/EmailConfirmation/EmailConfirmation.js","components/Vault/VaultDetails.js","components/Vault/VaultStatus.js","components/Vault/modals/AccessRequestModal.js","components/Vault/VaultActivity.js","components/Vault/Vault.js","components/Fidelius/ConfirmationModal.js","components/Fidelius/ScrollToTop.js","components/UnknownError/UnknownError.js","components/Signup/Signup.js","components/ClientDashboard/AddClientModal.js","components/ClientDashboard/ClientDashboard.js","components/Client/Client.js","components/ClientVaultCreate/ClientVaultCreate.js","components/Fidelius/Fidelius.js","index.js"],"names":["module","exports","webpackEmptyContext","req","e","Error","code","keys","resolve","id","config","DEFAULT_REDIRECT_CALLBACK","window","history","replaceState","document","title","location","origin","Auth0Context","React","createContext","useAuth0","useContext","toggleLoading","loading","type","payload","toggleAccountPreferencesModal","openAccountPreferences","openConfirmationModal","onConfirm","initialState","confirmationModalType","confirmationModalOnConfirm","BASE_ROUTE","process","toString","downloadVaultFile","vaultId","fileName","data","file_name","this","makeHTTPCall","pipe","catchError","err","caught","iziToast","error","position","subscribe","response","downloadFile","url","fetch","then","res","blob","saveAs","createVault","updateDocumentCategory","userId","categoryType","categoryId","categorySubType","documents","user_id","category_type","category_id","category_sub_type","createAccessRequest","cancelAccessRequest","getUser","getVaults","getVault","getClient","clientId","updateVault","deleteVault","getVaultAccessRequest","accessRequestCode","approveVaultAccessRequestNoAuth","status","approveVaultAccessRequestAuth","rejectVaultAccessRequestAuth","lockVault","toggleVaultArchived","rejectVaultAccessRequestNoAuth","createClient","clientData","createSubscription","planType","paymentToken","couponCode","plan_type","payment_token","coupon_code","cancelSubscription","resendVerificationEmail","checkCouponCode","getRequest","route","action","headers","useToken","state","store","getState","token","axios","get","post","put","delete","Observable","observer","from","_","console","log","navigate","EMPTY","finalize","complete","updateClient","user","combineReducers","utils","newUser","clients","auth0User","userData","drift","identify","email","name","emailVerified","advisors","company","subscriptionEnds","subscriptionStarted","subscriptionType","subscriptionStatus","vaultArchiveDate","frozen","trialDaysRemaining","moment","diff","asMilliseconds","days","add","createStore","rootReducer","OWNER","ADVISOR","KEYHOLDER","GUARDIAN","purposeMapping","accessDelayMapping","subscriptionTypeMapping","VAULT_STATUS_ICON_MAPPING","PENDING","LOCKED","UNLOCKED","ARCHIVED","VAULT_ICON_COLOR_MAPPING","VAULT_STATUS_DESCRIPTION_MAPPING","VAULT_STATUS_TEXT_MAPPING","USER_ICON_MAPPING","DOCUMENT_CATEGORIES","TAX","description","INCOME","ESTATE","humanFileSize","bytes","si","thresh","Math","abs","units","u","length","toFixed","updateVaultDetails","vault","updated","format","approvals","access_request","guardians","guardian","rejections","accessRequestedAt","requested_at","accessRequestCompletedAt","completed_at","accessDelayed","unlocked_at","getWindowDimensions","width","innerWidth","height","innerHeight","useWindowDimensions","useState","windowDimensions","setWindowDimensions","useEffect","handleResize","addEventListener","removeEventListener","FdlOutlinedInput","props","errorText","checkValidInput","bind","value","onChange","validators","forEach","validator","test","options","ownerEmail","userType","setState","updateErrors","className","hideTopMargin","FormControl","style","variant","label","InputLabel","required","shrink","OutlinedInput","autoFocus","multiline","rows","placeholder","target","updateValue","margin","FormHelperText","Component","PersonInfoModal","errors","nextProps","open","cachedEmail","hasError","save","toggleModal","Dialog","icon","size","onClick","Divider","keyholders","cachedValue","Button","color","disabled","Object","some","field","savePerson","compose","connect","tempDocuments","setTempDocuments","documentCategories","setDocumentCategories","docNames","categories","category","doc","used","closeModal","onClose","fullWidth","maxWidth","key","index","Checkbox","newDocuments","splice","push","updateTempDocuments","updateDocuments","UUIDv4","vault_name","vaultName","setVaultName","setDescription","purpose","vaultPurpose","setVaultPurpose","setKeyholders","setGuardians","setDocuments","approval_level","approvalLevel","setApprovalLevel","number_approvals","numberApprovals","setNumberApprovals","access_delay","accessDelay","setAccessDelay","allowedStep","setAllowedStep","activeStep","setActiveStep","openFileUploadModal","setOpenFileUploadModal","openNewKeyholderModal","setOpenNewKeyholderModal","openEditKeyholderModal","setOpenEditKeyholderModal","openNewGuardianModal","setOpenNewGuardianModal","openEditGuardianModal","setOpenEditGuardianModal","openClientDocumentsModal","setOpenClientDocumentsModal","editedKeyholder","setEditedKeyholder","editedGuardian","setEditedGuardian","Uppy","autoProceed","restrictions","maxFileSize","maxNumberOfFiles","minNumberOfFiles","allowedFileTypes","use","AwsS3","getUploadParameters","file","method","uppy","on","result","successful","Date","toUTCString","updatedDocuments","tempDoc","x","steps","modalType","reset","updateKeyholders","newKeyholders","concat","updateGuardians","newGuardians","removeElement","arr","newArr","checkStepDisabled","saveVault","created_by_advisor","client","client_name","client_email","client_id","nextStep","getStepContent","Select","event","MenuItem","editKeyholder","editGuardian","document_categories","Tooltip","enterTouchDelay","placement","Slider","defaultValue","aria-labelledby","valueLabelDisplay","step","marks","min","max","Stepper","orientation","map","Step","StepLabel","StepContent","editMode","body","onRequestClose","proudlyDisplayPoweredByUppy","metaFields","clientDocuments","setVault","routes","Helmet","Paper","vaultData","success","ColorLinearProgress","withStyles","colorPrimary","backgroundColor","barColorPrimary","animationDuration","LinearProgress","VaultCreateModal","useRef","current","setTimeout","close","src","Logo","openVaultCreateModal","setOpenVaultCreateModal","href","loginWithRedirect","isAuthenticated","Card","logo","screen_hint","component","path","uri","rest","_CardForm","errorMessage","handleChange","message","handleSubmit","evt","a","preventDefault","stripe","createToken","onSubmit","base","fontSize","fontFamily","letterSpacing","invalid","role","injectStripe","subscriptionPlan","setSubscriptionPlan","showCouponCode","setShowCouponCode","setCouponCode","validCouponCode","setValidCouponCode","couponDiscount","setCouponDiscount","isInvalidCouponCode","setIsInvalidCouponCode","useStyles","makeStyles","root","accountPreferencesModal","titleText","subscriptionContainer","padding","border","classes","getLabelText","labelType","activeSubscription","reload","RadioGroup","aria-label","FormControlLabel","control","Radio","valid_coupon_code","coupon_discount","CheckoutForm","ReactGA","logout","accountPopper","setAccountPopper","sidebarDrawerOpen","setSidebarDrawerOpen","helpPopper","setHelpPopper","handleClose","onLogout","openLiveChat","driftApi","widget","show","sidebar","toggleDrawer","LogoText","currentTarget","SwipeableDrawer","anchor","onKeyDown","List","ListItem","button","ListItemText","primary","Popover","anchorEl","anchorOrigin","vertical","horizontal","transformOrigin","VaultCard","lastUpdated","duration","toLowerCase","getVaultIcon","number_documents","owner_name","humanize","getVaultStatusIcon","ActivityLogItem","activity","created","ActivityLogModal","activityLog","i","ActivityLog","openActivityLogModal","setActivityLogModal","getBannerContent","BorderLinearProgress","lighten","borderRadius","bar","ErrorLinearProgress","FreeTrialCard","vaults","setVaults","showOwnerArchived","setShowOwnerArchived","showOtherArchived","setShowOtherArchived","setActivityLog","vaultBuffer","setVaultBuffer","otherVaults","ownerVaults","numOwnerArchived","numOtherArchived","checked","inputProps","Array","VaultDetails","canDownloadDocuments","reason","getGuardianStatus","performVaultAction","openAccessRequestModal","getVaultAction","AccessRequestModal","setReason","MINOR_EVENTS","VaultActivity","showAll","setShowAll","hideMinor","setHideMinor","activity_log","unshift","iconColor","additional_details","detail","getActivityRow","setOpenAccessRequestModal","actionType","scrollTo","request$","successMessage","accessCode","owner_email","purposeDisplay","closeConfirmationModal","getIcon","getTitle","getText","ScrollToTop","children","pathname","loginWithPopup","setName","setEmail","phone","setPhone","setType","notes","setNotes","requestedDocuments","setRequestedDocuments","openModal","class","updateRequestedDocuments","phone_number","requested_documents","addClient","setClients","openAddClientModal","setOpenAddClientModal","clientKey","columns","render","rowData","pending_documents","filtering","setClient","documentCategoryType","resetProgress","file_type","newClient","updateUser","updateToken","getTokenSilently","initialize","Fragment","CircularProgress","thickness","Dashboard","default","Vault","VaultEdit","VaultCreate","EmailConfirmation","library","faCheck","faTimes","faQuestionCircle","faCheckCircle","faExclamationCircle","faEdit","faInfoCircle","faFolderPlus","faFileUpload","faKey","faLock","faBox","faBoxOpen","faLockOpen","faBriefcaseMedical","faUserShield","faFolderOpen","faHome","faShieldAlt","faCaretDown","faUserInjured","faCaretLeft","faCaretRight","faCaretUp","faUser","faUserLock","faUserFriends","faFileDownload","faHospitalUser","faUserCheck","faUserTimes","faTrash","faUserCog","faSignOutAlt","faBars","faCogs","faList","faEnvelope","faHouseUser","faPlus","faComments","faUsers","faUserTie","faExclamationTriangle","faBan","theme","createMuiTheme","palette","main","secondary","contrastText","warning","typography","ReactDOM","onRedirectCallback","initOptions","setIsAuthenticated","setUser","auth0Client","setAuth0","setLoading","popupOpen","setPopupOpen","createAuth0Client","auth0FromHook","search","includes","handleRedirectCallback","appState","initAuth0","params","Provider","getIdTokenClaims","getTokenWithPopup","domain","auth0_domain","auth0_clientId","audience","auth0_audience","redirect_uri","scope","targetUrl","ThemeProvider","apiKey","stripe_key","getElementById"],"mappings":"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","file":"static/js/main.135cdc55.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/Fidelius_Finalized_Logo_Parts-02.5a3d1f47.svg\";","function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nmodule.exports = webpackEmptyContext;\nwebpackEmptyContext.id = 405;","module.exports = __webpack_public_path__ + \"static/media/Fidelius_Finalized_Logo_Parts-01.665646e9.svg\";","let config = {};\n\nif (process.env.NODE_ENV === 'production') {\n // PROD\n config = {\n \"auth0_domain\": \"fidelius.auth0.com\",\n \"auth0_clientId\": \"PPHwMnAp6Toq4X1usS72lRQiyiPhAtmJ\",\n \"auth0_audience\": \"https://fidelius/\",\n \"stripe_key\": \"pk_live_x09y31GJH8DgPJ7SBcU55y7600AiS75SZm\",\n \"auth0_metadata\": \"https://fidelius/app_metadata\",\n };\n} else {\n config = {\n \"auth0_domain\": \"fidelius-dev.auth0.com\",\n \"auth0_clientId\": \"xytkYgum55YoOjQYkFSKp8zz4At0yWZf\",\n \"auth0_audience\": \"https://fidelus/dev\",\n \"stripe_key\": \"pk_test_iPMPSOmaf14ia1oln5SEmRei00dpTlUTbP\",\n \"auth0_metadata\": \"https://fidelus/dev/app_metadata\",\n }\n}\n\nexport default config;","// src/react-auth0-spa.js\nimport React, {useContext, useEffect, useState} from \"react\";\nimport createAuth0Client from \"@auth0/auth0-spa-js\";\nimport {navigate} from \"@reach/router\";\n\nconst DEFAULT_REDIRECT_CALLBACK = () =>\n window.history.replaceState({}, document.title, window.location.origin);\n\nexport const Auth0Context = React.createContext();\nexport const useAuth0 = () => useContext(Auth0Context);\nexport const Auth0Provider = ({\n children,\n onRedirectCallback = DEFAULT_REDIRECT_CALLBACK,\n ...initOptions\n }) => {\n const [isAuthenticated, setIsAuthenticated] = useState();\n const [user, setUser] = useState();\n const [auth0Client, setAuth0] = useState();\n const [loading, setLoading] = useState(true);\n const [popupOpen, setPopupOpen] = useState(false);\n\n useEffect(() => {\n const initAuth0 = async () => {\n const auth0FromHook = await createAuth0Client(initOptions);\n setAuth0(auth0FromHook);\n\n if (window.location.search.includes(\"code=\")) {\n const { appState } = await auth0FromHook.handleRedirectCallback();\n onRedirectCallback(appState);\n navigate(\"/vaults\")\n }\n\n const isAuthenticated = await auth0FromHook.isAuthenticated();\n\n setIsAuthenticated(isAuthenticated);\n\n if (isAuthenticated) {\n const user = await auth0FromHook.getUser();\n setUser(user);\n }\n\n setLoading(false);\n };\n initAuth0();\n // eslint-disable-next-line\n }, []);\n\n const loginWithPopup = async (params = {}) => {\n setPopupOpen(true);\n try {\n await auth0Client.loginWithPopup(params);\n } catch (error) {\n console.error(error);\n } finally {\n setPopupOpen(false);\n }\n const user = await auth0Client.getUser();\n setUser(user);\n setIsAuthenticated(true);\n };\n\n const handleRedirectCallback = async () => {\n setLoading(true);\n await auth0Client.handleRedirectCallback();\n const user = await auth0Client.getUser();\n setLoading(false);\n setIsAuthenticated(true);\n setUser(user);\n };\n return (\n auth0Client.getIdTokenClaims(...p),\n loginWithRedirect: (...p) => auth0Client.loginWithRedirect(...p),\n getTokenSilently: (...p) => auth0Client.getTokenSilently(...p),\n getTokenWithPopup: (...p) => auth0Client.getTokenWithPopup(...p),\n logout: (...p) => auth0Client.logout(...p)\n }}\n >\n {children}\n \n );\n};","import React from 'react';\n\nconst TOGGLE_LOADING = \"TOGGLE_LOADING\";\nconst TOGGLE_ACCOUNT_PREFERENCES = \"TOGGLE_ACCOUNT_PREFERENCES\";\nconst OPEN_CONFIRMATION_MODAL = \"OPEN_CONFIRMATION_MODAL\";\nconst CLOSE_CONFIRMATION_MODAL = \"CLOSE_CONFIRMATION_MODAL\";\n\nexport const toggleLoading = (loading) => ({\n type: TOGGLE_LOADING,\n payload: { loading }\n});\n\nexport const toggleAccountPreferencesModal = (openAccountPreferences) => ({\n type: TOGGLE_ACCOUNT_PREFERENCES,\n payload: { openAccountPreferences }\n});\n\nexport const openConfirmationModal = (type, onConfirm) => ({\n type: OPEN_CONFIRMATION_MODAL,\n payload: { type, onConfirm }\n});\n\nexport const closeConfirmationModal = () => ({\n type: CLOSE_CONFIRMATION_MODAL,\n payload: { }\n});\n\nconst initialState = {\n loading: true,\n openAccountPreferences: false,\n openConfirmationModal: false,\n confirmationModalType: null,\n confirmationModalOnConfirm: null\n};\n\nexport default function(state=initialState, action) {\n\n switch (action.type) {\n case TOGGLE_LOADING:\n const { loading } = action.payload;\n return {\n ...state,\n loading: loading\n };\n\n case TOGGLE_ACCOUNT_PREFERENCES:\n const { openAccountPreferences } = action.payload;\n return {\n ...state,\n openAccountPreferences: openAccountPreferences\n };\n\n case OPEN_CONFIRMATION_MODAL:\n const { type, onConfirm } = action.payload;\n return {\n ...state,\n openConfirmationModal: true,\n confirmationModalType: type,\n confirmationModalOnConfirm: onConfirm,\n };\n\n case CLOSE_CONFIRMATION_MODAL:\n return {\n ...state,\n openConfirmationModal: false,\n confirmationModalType: null,\n confirmationModalOnConfirm: null,\n };\n\n default:\n return state;\n }\n}\n\n","import axios from 'axios';\nimport {saveAs} from \"file-saver\";\nimport iziToast from \"izitoast\";\nimport store from '../redux/store'\nimport * as _ from 'lodash';\nimport {EMPTY, from, Observable} from \"rxjs\";\nimport {catchError, finalize} from \"rxjs/operators\";\nimport {navigate} from \"@reach/router\";\n\n\nconst HTTP_GET = \"GET\";\nconst HTTP_POST = \"POST\";\nconst HTTP_PUT = \"PUT\";\nconst HTTP_DELETE = \"DELETE\";\n\nexport const BASE_ROUTE = process.env.NODE_ENV.toString() === 'production' ? 'https://2vvklfoex2.execute-api.us-west-2.amazonaws.com/dev/' : \"http://localhost:5000/\";\n\nexport default {\n\n downloadVaultFile(vaultId, fileName) {\n const data = {\n file_name: fileName\n };\n this.makeHTTPCall(`vaults/${vaultId}/download_file`, HTTP_POST, data)\n .pipe(\n catchError((err, caught) => {\n iziToast.error({\n position: \"topCenter\",\n 'title': 'Error',\n 'message': 'Unable to download this file.'\n });\n })\n )\n .subscribe((response) => {\n this.downloadFile(response.data[\"url\"], fileName)\n });\n },\n\n downloadFile(url, fileName) {\n fetch(url).then(res => res.blob()).then(blob => saveAs(blob, fileName));\n },\n\n createVault(data) {\n return this.makeHTTPCall(\"vaults\", HTTP_POST, data);\n },\n\n updateDocumentCategory(userId, categoryType, categoryId, categorySubType, documents) {\n const data = {\n user_id: userId,\n category_type: categoryType,\n category_id: categoryId,\n category_sub_type: categorySubType,\n documents: documents,\n }\n return this.makeHTTPCall(\"document_category\", HTTP_PUT, data);\n },\n\n createAccessRequest(vaultId, data) {\n return this.makeHTTPCall(`vaults/${vaultId}/access`, HTTP_POST, data);\n },\n\n cancelAccessRequest(vaultId) {\n return this.makeHTTPCall(`vaults/${vaultId}/access`, HTTP_DELETE);\n },\n\n getUser() {\n return this.makeHTTPCall(\"users\", HTTP_GET, );\n },\n\n getVaults() {\n return this.makeHTTPCall(\"vaults\", HTTP_GET, );\n },\n\n getVault(vaultId) {\n return this.makeHTTPCall(`vaults/${vaultId}`, HTTP_GET, );\n },\n\n getClient(clientId) {\n return this.makeHTTPCall(`clients/${clientId}`, HTTP_GET, );\n },\n\n updateVault(vaultId, data) {\n return this.makeHTTPCall(`vaults/${vaultId}`, HTTP_PUT, data );\n },\n\n deleteVault(vaultId) {\n return this.makeHTTPCall(`vaults/${vaultId}`, HTTP_DELETE, );\n },\n\n getVaultAccessRequest(vaultId, accessRequestCode) {\n return this.makeHTTPCall(`vaults/${vaultId}/access/${accessRequestCode}`, HTTP_GET, null, false);\n },\n\n approveVaultAccessRequestNoAuth(vaultId, accessRequestCode) {\n return this.makeHTTPCall(`vaults/${vaultId}/access/${accessRequestCode}`, HTTP_POST, {status: \"APPROVED\"} , null, false);\n },\n\n approveVaultAccessRequestAuth(vaultId) {\n return this.makeHTTPCall(`vaults/${vaultId}/access`, HTTP_PUT, {status: \"APPROVED\"} );\n },\n\n rejectVaultAccessRequestAuth(vaultId) {\n return this.makeHTTPCall(`vaults/${vaultId}/access`, HTTP_PUT, {status: \"REJECTED\"} );\n },\n\n lockVault(vaultId) {\n return this.makeHTTPCall(`vaults/${vaultId}/lock`, HTTP_POST, {} );\n },\n\n toggleVaultArchived(vaultId) {\n return this.makeHTTPCall(`vaults/${vaultId}/toggle_archived`, HTTP_POST, {} );\n },\n\n rejectVaultAccessRequestNoAuth(vaultId, accessRequestCode) {\n return this.makeHTTPCall(`vaults/${vaultId}/access/${accessRequestCode}`, HTTP_POST, {status: \"REJECTED\"} );\n },\n\n createClient(clientData) {\n return this.makeHTTPCall(`clients`, HTTP_POST, clientData );\n },\n\n createSubscription(planType, paymentToken, couponCode) {\n const data = {\n plan_type: planType,\n payment_token: paymentToken,\n coupon_code: couponCode\n };\n return this.makeHTTPCall(`subscriptions`, HTTP_POST, data );\n },\n\n cancelSubscription() {\n return this.makeHTTPCall(`subscriptions`, HTTP_DELETE);\n },\n\n resendVerificationEmail() {\n return this.makeHTTPCall(`resend_verification_email`, HTTP_POST, {});\n },\n\n checkCouponCode(couponCode) {\n return this.makeHTTPCall(`check_coupon_code`, HTTP_POST, {\n \"coupon_code\": couponCode\n });\n },\n\n async getRequest(route, action, data={}, headers={}, useToken=true) {\n route = BASE_ROUTE + route;\n headers = {\n ...headers,\n \"Content-Type\": \"application/json\",\n };\n\n if (useToken) {\n const state = store.getState();\n const token = await state[\"user\"][\"token\"]\n headers = {\n ...headers,\n \"Authorization\": `bearer ${token}`\n };\n }\n\n switch(action) {\n case HTTP_GET:\n return axios.get(route, {headers: headers});\n case HTTP_POST:\n return axios.post(route, data, {headers: headers});\n case HTTP_PUT:\n return axios.put(route, data, {headers: headers});\n case HTTP_DELETE:\n return axios.delete(route, {headers: headers});\n }\n },\n\n makeHTTPCall(route, action, data={}, headers={}, useToken=true, errorMessage='', navigateOnError=true) {\n return new Observable((observer) => {\n from(this.getRequest(route, action, data, headers, useToken))\n .pipe(\n catchError((error, caught) => {\n const errorCode = _.get(error, 'response.status', null);\n switch(errorCode) {\n case null:\n case 500:\n console.log(error)\n navigate(\"/unknown-error\")\n return EMPTY\n case 401:\n case 403:\n iziToast.error({\n position: \"topCenter\",\n 'title': 'Error',\n 'message': 'You do not have permission to perform that action. Please contact the Vault Owner or support for more assistance.'\n });\n navigate(\"/vaults\")\n break;\n case 404:\n iziToast.error({\n position: \"topCenter\",\n 'title': 'Error',\n 'message': 'This Vault was not found (or no longer exists). Please contact support for more assistance.'\n });\n navigate(\"/vaults\")\n break;\n case 400:\n if (error.response.data) {\n iziToast.error({\n position: \"topCenter\",\n 'title': 'Error',\n 'message': error.response.data\n });\n }\n }\n return EMPTY\n }),\n finalize(() => observer.complete())\n )\n .subscribe(observer)\n })\n }\n}\n","import React from 'react';\nimport config from \"../../config/config\";\nimport * as moment from 'moment';\nimport * as _ from 'lodash';\nimport routes from \"../../utils/api-client\";\n\nconst UPDATE_USER = \"UPDATE_USER\";\nconst UPDATE_TOKEN = \"UPDATE_TOKEN\";\nconst UPDATE_CLIENT = \"UPDATE_CLIENT\";\n\nexport const updateToken = (token) => ({\n type: UPDATE_TOKEN,\n payload: { token }\n});\n\nexport const updateUser = (auth0User, userData) => ({\n type: UPDATE_USER,\n payload: { auth0User, userData }\n});\n\nexport const updateClient = (clientData) => ({\n type: UPDATE_CLIENT,\n payload: { clientData }\n});\n\nconst initialState = {\n user: null,\n token: null\n};\n\nexport default function(state=initialState, action) {\n switch (action.type) {\n case UPDATE_TOKEN:\n const { token } = action.payload;\n return {\n ...state,\n token: token\n };\n\n case UPDATE_CLIENT:\n const { clientData } = action.payload;\n const newUser = state.user\n newUser.clients[clientData.id] = clientData;\n return {\n ...state,\n user: newUser\n };\n\n case UPDATE_USER:\n const { auth0User, userData } = action.payload;\n\n if (auth0User && userData) {\n window.drift.identify(auth0User['sub'], {\n email: userData.email,\n name: userData.name\n });\n\n let user = {\n emailVerified: _.get(auth0User, 'email_verified', false),\n email: _.get(userData, 'email', ''),\n id: _.get(userData, 'id', ''),\n name: _.get(userData, 'name', ''),\n type: _.get(userData, 'type', 'INDIVIDUAL'),\n advisors: _.get(userData, 'advisors', ''),\n clients: _.get(userData, 'clients', {}),\n company: _.get(userData, 'company', ''),\n subscriptionEnds: _.get(userData, 'subscription_ends', ''),\n subscriptionStarted: _.get(userData, 'subscription_started', ''),\n subscriptionType: _.get(userData, 'subscription_type', ''),\n subscriptionStatus: _.get(userData, 'subscription_status', ''),\n vaultArchiveDate: _.get(userData, 'vault_archive_date', ''),\n frozen: false,\n };\n\n // determine subscription status & check for trial expiration\n switch(user.subscriptionType) {\n case 'FREE_TRIAL':\n const trialDaysRemaining = moment.duration(moment(user.subscriptionEnds).diff(moment()));\n user['trialDaysRemaining'] = trialDaysRemaining.asMilliseconds() < 0 ? 0 : trialDaysRemaining.days() + 1 ;\n\n if (moment() > moment(user.subscriptionEnds)) {\n user.subscriptionStatus = 'FREE_TRIAL_ENDED';\n user.frozen = true;\n } else if (moment().add(7, \"days\") > moment(user.subscriptionEnds)) {\n user.subscriptionStatus = 'FREE_TRIAL_ENDS_SOON';\n } else {\n user.subscriptionStatus = 'ACTIVE';\n }\n break;\n case 'ANNUAL':\n case 'MONTHLY':\n if (user.subscriptionStatus !== \"ACTIVE\") {\n // subscription expired\n user.frozen = true;\n }\n break;\n }\n\n return {\n ...state,\n user: user,\n };\n }\n\n default:\n return state;\n }\n}","import {combineReducers} from \"redux\";\nimport utils from \"./utils\"\nimport user from \"./user\"\n\n\nexport default combineReducers({ utils, user});","import {createStore} from \"redux\";\nimport rootReducer from \"./reducers\";\n\nexport default createStore(rootReducer);","export const OWNER = \"Owner\";\nexport const ADVISOR = \"Advisor\";\nexport const KEYHOLDER = \"Keyholder\";\nexport const GUARDIAN = \"Guardian\";\n\nexport const purposeMapping = {\n 'EMERGENCY': 'Medical Emergency',\n 'MISSING': \"'If I Go Missing' Folder\" ,\n 'STORAGE': 'Document Storage',\n 'ESTATE_PLANNING': 'Estate Planning',\n 'REAL_ESTATE': 'Real Estate Documents',\n 'OTHER': 'Other',\n};\n\nexport const statusMapping = {\n 'OPEN': 'Pending Approval',\n 'APPROVED': \"'Approved\" ,\n 'REJECTED': 'Rejected',\n 'CLOSED': 'Closed',\n};\n\nexport const accessDelayMapping = {\n \"NONE\": \"no delay\",\n \"ONE_DAY\": \"one day\",\n \"TWO_DAYS\": \"two days\",\n \"THREE_DAYS\": \"three days\",\n \"WEEK\": \"one week\",\n \"MONTH\": \"one month\",\n};\n\nexport const subscriptionTypeMapping = {\n \"FREE_TRIAL\": \"Free Trial\",\n \"MONTHLY\": \"Monthly\",\n \"ANNUAL\": \"Annual\",\n \"LIFETIME\": \"Lifetime Access\",\n};\n\nexport const VAULT_STATUS_ICON_MAPPING = {\n PENDING: 'key',\n LOCKED: 'lock',\n UNLOCKED: 'lock-open',\n ARCHIVED: 'box',\n};\n\nexport const VAULT_ICON_COLOR_MAPPING = {\n PENDING: 'text-warning',\n LOCKED: 'text-primary',\n UNLOCKED: '',\n ARCHIVED: 'text-grey',\n};\n\nexport const VAULT_STATUS_DESCRIPTION_MAPPING = {\n PENDING: 'This vault has a request for access that is pending approval from guardians.',\n LOCKED: 'This vault is locked. Only the owner can access the documents in the vault.',\n UNLOCKED: 'This vault has been unlocked. The Keyholders can access the documents in the vault.',\n ARCHIVED: 'This vault has been archived and is no longer active. Documents are no longer stored, and access can not be requested.',\n};\n\nexport const VAULT_STATUS_TEXT_MAPPING = {\n PENDING: 'Pending Access Request.',\n LOCKED: 'Vault is Secure.',\n UNLOCKED: 'Vault is Unlocked.',\n ARCHIVED: 'Vault has been Archived.',\n};\n\nexport const USER_ICON_MAPPING = {\n 'Owner': 'user-lock',\n 'Keyholder': 'user-friends',\n 'Guardian': 'user-shield',\n 'Advisor': 'user-tie'\n}\n\nexport const DOCUMENT_CATEGORIES = {\n TAX: {\n title: 'Tax Documents',\n description: 'Includes tax returns, 1099 forms, etc'\n },\n INCOME: {\n title: 'Income Verification',\n description: 'Includes tax returns, 1099 forms, etc'\n },\n ESTATE: {\n title: 'Estate Planning Documents',\n description: 'Includes tax returns, 1099 forms, etc'\n }\n}","import * as _ from 'lodash';\nimport * as moment from 'moment';\nimport {purposeMapping} from \"../config/constants\";\nimport {useEffect, useState} from 'react';\n\nexport function humanFileSize(bytes, si=true) {\n var thresh = si ? 1000 : 1024;\n if(Math.abs(bytes) < thresh) {\n return bytes + ' B';\n }\n var units = si\n ? ['kB','MB','GB','TB','PB','EB','ZB','YB']\n : ['KiB','MiB','GiB','TiB','PiB','EiB','ZiB','YiB'];\n var u = -1;\n do {\n bytes /= thresh;\n ++u;\n } while(Math.abs(bytes) >= thresh && u < units.length - 1);\n return bytes.toFixed(1)+' '+units[u];\n}\n\nexport function emailIsValid (email) {\n return /\\S+@\\S+\\.\\S+/.test(email)\n}\n\nexport function isFormValid(errors) {\n // check if any of the fields have an error\n return !Object.keys(errors).some((field) => errors[field])\n}\n\n\nexport function updateVaultDetails(vault) {\n vault['lastUpdated'] = moment(vault.updated).format('MM-DD-YYYY');\n vault['purposeDisplay'] = purposeMapping[vault['purpose']];\n if (_.includes(['UNLOCKED', 'PENDING'], vault.status)) {\n\n vault.approvals = _.sumBy(vault.access_request.guardians, (guardian) => guardian['status'] === 'APPROVED' ? 1 : 0);\n vault.rejections = _.sumBy(vault.access_request.guardians, (guardian) => guardian['status'] === 'REJECTED' ? 1 : 0);\n vault.accessRequestedAt = moment(vault.access_request.requested_at).format('LLL');\n vault.accessRequestCompletedAt = moment(vault.access_request.completed_at).format('LLL');\n vault.accessDelayed = vault.unlocked_at && moment(vault.unlocked_at) > moment();\n }\n\n return vault\n}\n\nfunction getWindowDimensions() {\n const { innerWidth: width, innerHeight: height } = window;\n return {\n width,\n height\n };\n}\n\nexport default function useWindowDimensions() {\n const [windowDimensions, setWindowDimensions] = useState(getWindowDimensions());\n\n useEffect(() => {\n function handleResize() {\n setWindowDimensions(getWindowDimensions());\n }\n\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n return windowDimensions;\n}","import * as _ from 'lodash';\n\nimport React, {Component} from 'react';\n\nimport './FdlOutlinedInput.scss';\nimport FormControl from \"@material-ui/core/FormControl\";\nimport InputLabel from \"@material-ui/core/InputLabel\";\nimport OutlinedInput from \"@material-ui/core/OutlinedInput\";\nimport {emailIsValid} from \"../helpers\";\nimport FormHelperText from \"@material-ui/core/FormHelperText\";\nimport {GUARDIAN, KEYHOLDER} from \"../../config/constants\";\n\n\nclass FdlOutlinedInput extends Component {\n\n constructor(props) {\n super(props);\n this.state = {errorText: this.props.errorText ? this.props.errorText : '' }\n this.checkValidInput = _.debounce(this.checkValidInput.bind(this), 500);\n }\n\n updateValue(value) {\n this.props.onChange(value);\n if (this.props.validators) {\n this.checkValidInput(value);\n }\n }\n\n checkValidInput(value) {\n let errorText = \"\";\n this.props.validators.forEach((validator) => {\n switch(validator) {\n case \"email\":\n if (!emailIsValid(value)) {\n errorText = \"A valid email address is required.\"\n }\n break;\n case \"required\":\n if (value === null || value === \"\") {\n errorText = \"This field is required.\"\n }\n break;\n case \"unique\":\n if (value && value !== _.get(this.props.options, 'cachedValue', \"\")) {\n if (value === this.props.options.ownerEmail) {\n errorText = \"The Vault Owner can not act as a Keyholder or Guardian.\"\n }\n\n if (this.props.options.userType === KEYHOLDER) {\n if (_.includes(_.get(this.props.options, 'keyholders', []), value)) {\n errorText = \"A keyholder with this email already exists.\"\n }\n\n if (_.includes(_.get(this.props.options, 'guardians', []), value)) {\n errorText = \"A guardian with this email already exists. Users can not be a guardian and keyholder for the same vault.\"\n }\n\n } else if (this.props.options.userType === GUARDIAN){\n if (_.includes(_.get(this.props.options, 'keyholders', []), value)) {\n errorText = \"A keyholder with this email already exists. Users can not be a guardian and keyholder for the same vault.\"\n }\n\n if (_.includes(_.get(this.props.options, 'guardians', []), value)) {\n errorText = \"A guardian with this email already exists.\"\n }\n }\n }\n }\n });\n\n this.setState({\n errorText: errorText\n }, this.props.updateErrors && this.props.updateErrors(!!errorText))\n }\n\n render() {\n return (\n
\n \n {\n this.props.label &&\n \n {this.props.label}\n \n }\n this.updateValue(value)}\n margin=\"dense\"\n />\n {this.state.errorText || this.props.errorText && { this.state.errorText || this.props.errorText }}\n \n
\n );\n }\n}\n\nexport default FdlOutlinedInput;\n","import * as _ from 'lodash';\n\nimport React, {Component} from 'react';\n\nimport Button from \"@material-ui/core/Button\";\nimport Dialog from \"@material-ui/core/Dialog\";\nimport FdlOutlinedInput from \"../../utils/FdlOutlinedInput/FdlOutlinedInput\";\nimport {isFormValid} from \"../../utils/helpers\";\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\nimport Divider from \"@material-ui/core/Divider\";\n\n\nclass PersonInfoModal extends Component {\n\n constructor(){\n super();\n\n this.state = {\n name: \"\",\n email: \"\",\n errors: {\n name: true,\n email: true\n }\n }\n }\n\n componentWillReceiveProps(nextProps) {\n // update name & email when modal opens & closes\n if (nextProps.open && !this.props.open) {\n this.setState({\n name: nextProps.name ? nextProps.name : \"\",\n email: nextProps.email ? nextProps.email : \"\",\n cachedEmail: nextProps.email ? nextProps.email : \"\",\n errors: {\n name: !!!nextProps.name,\n email: !!!nextProps.email\n }\n });\n }\n }\n\n updateErrors(name, hasError) {\n const errors = _.cloneDeep(this.state.errors);\n errors[name] = hasError;\n\n this.setState({\n errors: errors\n });\n }\n\n savePerson() {\n this.props.save(this.state.name, this.state.email);\n this.props.toggleModal();\n }\n\n render() {\n return (\n \n
\n
\n

{ this.props.title }

\n \n
\n \n
\n this.setState({name: value})} />\n
\n
\n this.setState({email: value})} />\n
\n\n
\n \n\n \n Save\n \n
\n
\n
\n );\n }\n}\n\nexport default PersonInfoModal;\n","import React, {useEffect, useState} from 'react';\nimport Dialog from \"@material-ui/core/Dialog\";\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\nimport Divider from \"@material-ui/core/Divider\";\nimport Button from \"@material-ui/core/Button\";\nimport {compose} from \"redux\";\nimport {connect} from \"react-redux\";\nimport {updateClient} from \"../../redux/reducers/user\";\nimport {DOCUMENT_CATEGORIES, purposeMapping} from \"../../config/constants\";\nimport * as _ from 'lodash';\nimport {humanFileSize} from \"../../utils/helpers\";\nimport * as moment from \"moment\";\nimport Checkbox from \"@material-ui/core/Checkbox\";\nimport routes from \"../../utils/api-client\";\n\nfunction ClientDocumentsModal(props){\n\n let [tempDocuments, setTempDocuments] = useState([]);\n let [documentCategories, setDocumentCategories] = useState([]);\n\n useEffect(() => {\n const docNames = _.map(props.documents, 'name');\n const categories = _.map(props.documentCategories, (category) => {\n _.forEach(category.documents, doc => {doc.used = _.includes(docNames, doc.name); console.log(doc)})\n return category;\n })\n setDocumentCategories(categories)\n }, [props.documents]);\n\n const updateTempDocuments = (document) => {\n let newDocuments = [...tempDocuments];\n const index = _.findIndex(newDocuments, doc => doc.name === document.name);\n if (index !== -1) {\n newDocuments.splice(index, 1);\n } else {\n newDocuments.push(document);\n }\n setTempDocuments(newDocuments)\n }\n\n const closeModal = () => {\n props.toggleModal();\n }\n\n return (\n \n
\n
\n

Choose Client Documents

\n
\n
\n \n
\n {\n _.map(documentCategories, category =>\n
\n

{DOCUMENT_CATEGORIES[category.type].title}

\n {\n category.documents.length && _.filter(category.documents, ['used', false]).length ?\n
\n {\n _.map(_.filter(category.documents, ['used', false]), (document, index) =>\n
\n
\n updateTempDocuments(document)}/>\n
\n

{document.name}

\n \n
\n
\n
\n )\n }\n
:\n

No documents found.

\n }\n
)\n }\n
\n \n
\n
\n Cancel\n
\n
\n {props.updateDocuments(tempDocuments); setTempDocuments([]); closeModal();}}>Continue\n
\n
\n
\n );\n}\n\n\nexport default compose(\n connect(\n null,\n { updateClient }\n )\n)(ClientDocumentsModal);\n","import React, {useEffect, useState} from 'react';\nimport * as _ from 'lodash';\nimport axios from 'axios';\nimport {Uppy} from \"@uppy/core\";\nimport AwsS3 from \"@uppy/aws-s3\";\nimport {DashboardModal} from \"@uppy/react\";\nimport * as moment from 'moment';\nimport * as UUIDv4 from 'uuid/v4';\n\nimport './VaultForm.scss';\nimport Stepper from \"@material-ui/core/Stepper\";\nimport Step from \"@material-ui/core/Step\";\nimport StepLabel from \"@material-ui/core/StepLabel\";\nimport StepContent from \"@material-ui/core/StepContent\";\nimport Button from \"@material-ui/core/Button\";\nimport FormControl from \"@material-ui/core/FormControl\";\nimport InputLabel from \"@material-ui/core/InputLabel\";\nimport Select from \"@material-ui/core/Select\";\nimport MenuItem from \"@material-ui/core/MenuItem\";\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\nimport Tooltip from \"@material-ui/core/Tooltip\";\nimport Slider from \"@material-ui/core/Slider\";\nimport {humanFileSize} from \"../../utils/helpers\";\nimport PersonInfoModal from \"./PersonInfoModal\";\nimport {BASE_ROUTE} from \"../../utils/api-client\";\nimport {accessDelayMapping, GUARDIAN, KEYHOLDER} from \"../../config/constants\";\nimport {compose} from \"redux\";\nimport {connect} from \"react-redux\";\nimport {openConfirmationModal} from \"../../redux/reducers/utils\";\nimport FdlOutlinedInput from \"../../utils/FdlOutlinedInput/FdlOutlinedInput\";\nimport Divider from \"@material-ui/core/Divider\";\nimport {navigate} from \"@reach/router\";\nimport ClientDocumentsModal from \"./ClientDocumentsModal\";\n\n\nfunction VaultForm(props) {\n // vault attributes\n let [vaultId, setVaultId] = useState(props.vault ? props.vault.id : UUIDv4());\n let [vaultName, setVaultName] = useState(props.vault ? props.vault.vault_name : \"\");\n let [description, setDescription] = useState(props.vault ? props.vault.description : \"\");\n let [vaultPurpose, setVaultPurpose] = useState(props.vault ? props.vault.purpose : \"\");\n let [keyholders, setKeyholders] = useState(props.vault ? props.vault.keyholders : []);\n let [guardians, setGuardians] = useState(props.vault ? props.vault.guardians : []);\n let [documents, setDocuments] = useState(props.vault ? props.vault.documents : []);\n let [approvalLevel, setApprovalLevel] = useState(props.vault ? props.vault.approval_level : \"ALL\");\n let [numberApprovals, setNumberApprovals] = useState(props.vault ? props.vault.number_approvals : 1);\n let [accessDelay, setAccessDelay] = useState(props.vault ? props.vault.access_delay : \"NONE\");\n\n // form management\n let [allowedStep, setAllowedStep] = useState(props.allowedStep ? props.allowedStep : 0);\n let [activeStep, setActiveStep] = useState(0);\n let [openFileUploadModal, setOpenFileUploadModal] = useState(false);\n let [openNewKeyholderModal, setOpenNewKeyholderModal] = useState(false);\n let [openEditKeyholderModal, setOpenEditKeyholderModal] = useState(false);\n let [openNewGuardianModal, setOpenNewGuardianModal] = useState(false);\n let [openEditGuardianModal, setOpenEditGuardianModal] = useState(false);\n let [openClientDocumentsModal, setOpenClientDocumentsModal] = useState(false);\n let [editedKeyholder, setEditedKeyholder] = useState(null);\n let [editedGuardian, setEditedGuardian] = useState(null);\n let [tempDocuments, setTempDocuments] = useState([]);\n\n let [uppy, setUppy] = useState( new Uppy({\n autoProceed: true,\n restrictions: {\n maxFileSize: 10**8, // 100MB restriction\n maxNumberOfFiles: 30,\n minNumberOfFiles: 1,\n allowedFileTypes: false\n }}).use(AwsS3, {\n getUploadParameters(file) {\n const data = {\n \"file_name\": file.name,\n \"file_type\": file.type,\n \"temp_vault\": !!!props.vault,\n \"vault_id\": vaultId\n };\n // if no vault exists, store the file in a temp dir w/ UUID\n return axios.post(BASE_ROUTE + \"generate_presigned_url\", data).then((response) => {\n return {\n method: \"put\",\n url: response.data\n }\n })\n }\n }));\n\n useEffect(() => {\n uppy.on('complete', (result) => {\n const newDocuments = _.map(result.successful, file => {\n return {\n name: file.name,\n type: file.type,\n size: file.size,\n updated: (new Date()).toUTCString()\n }});\n setTempDocuments(newDocuments);\n });\n }, []);\n\n useEffect(() => {\n if (activeStep > allowedStep) {\n // let user navigate by clicking to previous steps & new current step\n setAllowedStep(activeStep )\n }\n }, [activeStep]);\n\n\n useEffect(() => {\n const updatedDocuments = [...documents];\n _.forEach(tempDocuments, (tempDoc) => {\n const index = _.findIndex(updatedDocuments, x => x.name === tempDoc.name);\n if (index === -1) {\n updatedDocuments.push(tempDoc);\n } else {\n updatedDocuments[index] = tempDoc;\n }\n });\n\n // Note: fixes a very strange bug where 'documents' never gets updated in the uppy.on complete call.\n setDocuments(updatedDocuments);\n setOpenFileUploadModal(false);\n }, [tempDocuments]);\n\n const steps = [\"Basic Details\", \"Keyholders\", \"Guardians\", \"Documents\", \"Vault Options\"];\n\n const toggleModal = (modalType) => {\n switch(modalType) {\n case \"FILE_UPLOADER\":\n if (!openFileUploadModal) {\n uppy.reset();\n }\n\n setOpenFileUploadModal(!openFileUploadModal);\n break;\n case \"ADD_KEYHOLDER\":\n setOpenNewKeyholderModal(!openNewKeyholderModal);\n break;\n case \"EDIT_KEYHOLDER\":\n setOpenEditKeyholderModal(!openEditKeyholderModal);\n break;\n case \"ADD_GUARDIAN\":\n setOpenNewGuardianModal(!openNewGuardianModal);\n break;\n case \"EDIT_GUARDIAN\":\n setOpenEditGuardianModal(!openEditGuardianModal);\n break;\n case \"CLIENT_DOCUMENTS\":\n setOpenClientDocumentsModal(!openClientDocumentsModal);\n break;\n }\n };\n\n const updateKeyholders = (name, email) => {\n if (editedKeyholder !== null) {\n const newKeyholders = [...keyholders];\n newKeyholders[editedKeyholder] = {\n name: name,\n email: email\n };\n setKeyholders(newKeyholders);\n setEditedKeyholder(null);\n \n } else {\n setKeyholders([...keyholders].concat([{email: email, name: name}]));\n }\n };\n\n const updateGuardians = (name, email) => {\n if (editedGuardian !== null) {\n const newGuardians = [...guardians];\n newGuardians[editedGuardian] = {\n name: name,\n email: email\n };\n setGuardians(newGuardians);\n setEditedGuardian(null);\n } else {\n setGuardians([...guardians].concat([{email: email, name: name}]));\n }\n };\n\n const editKeyholder = (index) => {\n setEditedKeyholder(index);\n toggleModal(\"EDIT_KEYHOLDER\");\n };\n\n const removeElement = (index, arr) => {\n const newArr = [...arr];\n newArr.splice(index, 1);\n return newArr;\n };\n\n const editGuardian = (index) => {\n setEditedGuardian(index);\n toggleModal(\"EDIT_GUARDIAN\");\n };\n\n const checkStepDisabled = (index) => {\n switch(index) {\n case 0:\n return !(vaultName && vaultPurpose);\n case 1:\n case 2:\n case 3:\n return false;\n }\n };\n\n const updateDocuments = (clientDocuments) => {\n let newDocuments = [...documents];\n _.forEach(clientDocuments, doc => newDocuments.push(doc));\n setDocuments(newDocuments)\n }\n\n const saveVault = () => {\n const vault = {\n vault_name: vaultName,\n description: description,\n purpose: vaultPurpose,\n keyholders: keyholders,\n guardians: guardians,\n documents: documents,\n approval_level: approvalLevel,\n number_approvals: numberApprovals,\n access_delay: accessDelay,\n created_by_advisor: false,\n };\n\n if (props.client) {\n vault.created_by_advisor = true;\n vault.client_name = props.client.name;\n vault.client_email = props.client.email;\n vault.client_id = props.client.id;\n }\n\n if (!props.vault) {\n vault['temp_id'] = vaultId\n }\n\n props.saveVault(vault);\n }\n\n const nextStep = () => {\n switch (activeStep) {\n case 0:\n setActiveStep(activeStep + 1)\n break;\n case 1:\n // keyholders\n if (!keyholders.length) {\n props.openConfirmationModal('NO_KEYHOLDERS', () => setActiveStep(activeStep + 1))\n } else {\n setActiveStep(activeStep + 1)\n }\n break;\n case 2:\n // guardians\n if (!guardians.length) {\n props.openConfirmationModal('NO_GUARDIANS', () => setActiveStep(activeStep + 1))\n } else {\n setActiveStep(activeStep + 1)\n }\n break;\n case 3:\n // documents\n if (!documents.length) {\n props.openConfirmationModal('NO_DOCUMENTS', () => setActiveStep(activeStep + 1))\n } else {\n setActiveStep(activeStep + 1)\n }\n break;\n case 4:\n // options\n saveVault()\n }\n };\n\n const getStepContent = (index) => {\n switch(index) {\n case 0:\n // Name, Description, Type, Security Level (explanation below w/ hidebox for details)\n return (\n
\n

First, fill out some basic details about your vault.

\n
\n setVaultName(value)} />\n
\n
\n \n \n Give it a purpose (choose one)\n \n \n \n
\n
\n setDescription(value)} />\n
\n
\n );\n case 1:\n // Keyholders\n return (\n
\n

Keyholders can request access to the documents in your vault.

\n

Only choose people who should be allowed to view your documents in emergency situations.

\n
\n

{ keyholders.length } Keyholder{ keyholders.length !== 1 ? 's' : '' }

\n toggleModal(\"ADD_KEYHOLDER\")}\n color=\"secondary\">\n \n \n

Add Keyholder

\n
\n \n
\n
\n {\n keyholders.length ?\n _.map(keyholders, (user, index) =>\n
\n

{ user.name }

\n\n

{ user.email }

\n
\n editKeyholder(index)}/>\n setKeyholders(removeElement(index, keyholders))}/>\n
\n
) :\n
\n\n }\n
\n
\n );\n case 2:\n // Guardians\n return (\n
\n

Guardians are trusted friends and family that act as a line of defense for your vault.

\n

Guardians can never view the documents in your vault.

\n\n
\n

{ guardians.length } Guardian{ guardians.length !== 1 ? 's' : '' }

\n toggleModal(\"ADD_GUARDIAN\")}\n color=\"secondary\">\n \n \n

Add Guardian

\n
\n \n
\n
\n {\n guardians.length ?\n _.map(guardians, (user, index) =>\n
\n

{ user.name }

\n

{ user.email }

\n
\n editGuardian(index)}/>\n setGuardians(removeElement(index, guardians))}/>\n
\n
\n ) :\n
\n }\n
\n
\n );\n case 3:\n return (\n
\n

Choose the documents you want to store in your Vault.

\n

They will only be available to Keyholders after they successfully request access to the Vault.

\n
\n

{ documents.length } Document{ documents.length !== 1 ? 's' : '' }

\n toggleModal(\"FILE_UPLOADER\")}\n color=\"secondary\">\n \n

Upload Documents

\n
\n \n {\n props.client && props.client.document_categories.length &&\n
\n toggleModal(\"CLIENT_DOCUMENTS\")}\n color=\"primary\">\n \n

Use Client Documents

\n
\n \n
\n }\n
\n
\n {\n !!documents.length &&\n _.map(documents, (document, index) =>\n
\n
\n \n { document.name }\n \n \n

{ humanFileSize(document.size) }

\n

\n { moment(document.updated).format('L LT') }\n

\n
\n
\n \n
\n setDocuments(removeElement(index, documents))}/>\n
\n
\n
\n
\n )\n }\n
\n
\n );\n case 4:\n return (\n
\n

Review the options below to configure the security of your vault.

\n
\n \n \n How many Guardians must approve each request?\n \n \n \n \n
\n \n

What is this?

\n
\n
\n
\n\n {\n approvalLevel === 'CUSTOM' &&\n
\n setNumberApprovals(value)}\n max={guardians.length ? guardians.length : 1}\n />\n

{numberApprovals} Approval{numberApprovals !== 1 ? \"s\" : \"\"} Required (Of {guardians.length})

\n
\n }\n
\n \n \n How long of a delay before Keyholders can access the vault?\n \n \n \n \n
\n \n

What is this?

\n
\n
\n
\n {\n accessDelay === 'NONE' && !guardians.length &&\n
\n \n
\n

Since you haven't assigned any Guardians, Keyholders are able to immediately access your\n Vault on request.

\n

Fidelius recommends adding an access delay to your Vault so you have a chance to review requests before Keyholders can access the documents.

\n
\n\n
\n }\n
\n )\n }\n };\n\n return (\n
\n \n {steps.map((label, index) => (\n \n \n {\n index <= allowedStep && !checkStepDisabled(0) ?\n setActiveStep(index)}>\n {label}\n \n :\n

{ label }

\n }\n
\n \n {getStepContent(index)}\n
\n {\n !!index &&\n setActiveStep(activeStep - 1)}\n >\n Previous\n \n }\n {\n !(activeStep === steps.length - 1) &&\n \n Next\n \n }\n\n
\n
\n
\n ))}\n
\n \n
\n
\n navigate(`/vaults/${props.editMode ? props.vault.id : ''}`)}\n >Cancel\n
\n
\n {props.editMode ? 'Save Changes' : 'Create My Vault'}\n
\n
\n\n {\n openFileUploadModal &&\n toggleModal(\"FILE_UPLOADER\")}\n proudlyDisplayPoweredByUppy={false}\n metaFields={[\n { id: 'name', name: 'Name', placeholder: 'File name' }\n ]}\n />\n }\n\n toggleModal(\"ADD_KEYHOLDER\")}/>\n\n toggleModal(\"EDIT_KEYHOLDER\")}/>\n\n toggleModal(\"ADD_GUARDIAN\")}/>\n\n toggleModal(\"EDIT_GUARDIAN\")}/>\n\n {\n props.client &&\n toggleModal(\"CLIENT_DOCUMENTS\")}/>\n }\n\n
\n );\n}\n\nconst mapStateToProps = (state, props) => {\n return {\n ...props,\n user: state.user.user,\n };\n};\n\nexport default compose(\n connect(\n mapStateToProps,\n { openConfirmationModal }\n )\n)(VaultForm);\n","import React, {useEffect, useState} from 'react';\nimport iziToast from 'izitoast';\n\nimport Paper from \"@material-ui/core/Paper\";\nimport {navigate} from \"@reach/router\";\nimport Divider from \"@material-ui/core/Divider\";\nimport VaultForm from \"../VaultForm/VaultForm\";\nimport routes from \"../../utils/api-client\";\nimport {updateVaultDetails} from \"../../utils/helpers\";\nimport {compose} from \"redux\";\nimport {connect} from \"react-redux\";\nimport {toggleLoading} from \"../../redux/reducers/utils\";\nimport {Helmet} from \"react-helmet\";\nimport './VaultCreate.scss';\n\nfunction VaultEdit(props) {\n let [vault, setVault] = useState();\n\n useEffect(() => {\n if (props.user) {\n routes.getVault(props.vaultId).subscribe((response) => {\n const vault = updateVaultDetails(response.data);\n if (response.data.status !== 'LOCKED') {\n navigate(`/vaults/${props.vaultId}`)\n iziToast.error({\n position: \"topCenter\",\n 'title': 'Error',\n 'message': response.data.status !== 'ARCHIVED' ? 'Unable to edit Vault while it is Unlocked or there is a pending access request.' : 'Can not edit a Vault that has been Archived'\n });\n }\n\n setVault(vault);\n props.toggleLoading(false);\n });\n }\n }, [props.user]);\n\n const updateVault = (vaultData) => {\n props.toggleLoading(true);\n routes.updateVault(vault.id, vaultData).subscribe((response) => {\n if (response.status === 200) {\n navigate(`/vaults/${response.data.id}`);\n iziToast.success({\n position: \"topCenter\",\n 'title': 'Success',\n 'message': 'Successfully updated your vault.'\n });\n }\n });\n };\n\n return (\n !!vault &&\n <>\n \n Fidelius Vaults: {vault.vault_name} (edit)\n \n \n

Edit Vault

\n

Follow the steps below to edit your vault.

\n \n \n
\n \n );\n}\n\n\nconst mapStateToProps = (state, props) => {\n return {\n ...props,\n user: state.user.user,\n };\n};\n\nexport default compose(\n connect(\n mapStateToProps,\n { toggleLoading }\n )\n)(VaultEdit);\n","import iziToast from 'izitoast';\n\nimport React, {useEffect, useRef} from 'react';\n\nimport Dialog from \"@material-ui/core/Dialog\";\nimport Divider from \"@material-ui/core/Divider\";\nimport {LinearProgress, withStyles} from \"@material-ui/core\";\nimport {navigate} from \"@reach/router\";\nimport Logo from \"../../../assets/Fidelius_Finalized_Logo_Parts-02.svg\";\nimport routes from \"../../../utils/api-client\";\n\nconst ColorLinearProgress = withStyles({\n colorPrimary: {\n backgroundColor: '#f5f5fa',\n },\n barColorPrimary: {\n backgroundColor: '#02B085',\n },\n animationDuration: '2550ms',\n\n})(LinearProgress);\n\nfunction VaultCreateModal(props){\n\n let vaultId = useRef();\n\n useEffect(() => {\n if (props.open) {\n routes.createVault(props.vault).subscribe((response) => {\n if (response.status === 200) {\n vaultId.current = response.data.id;\n setTimeout(() => {\n props.close();\n navigate(`/vaults/${vaultId.current}`);\n iziToast.success({\n position: \"topCenter\",\n 'title': 'Success',\n 'message': 'Successfully created your vault.'\n });\n }, 3500)\n }\n });\n }\n }, [props.open]);\n\n return (\n \n
\n \n

Securing Your Vault

\n
\n \n

We're configuring your Vault and securing your documents.

\n
\n \n
\n

This should only take a moment...

\n\n
\n );\n}\n\nexport default VaultCreateModal;\n","import React, {useState} from 'react';\n\nimport './VaultCreate.scss';\nimport Paper from \"@material-ui/core/Paper\";\nimport Divider from \"@material-ui/core/Divider\";\nimport VaultForm from \"../VaultForm/VaultForm\";\nimport {compose} from \"redux\";\nimport {connect} from \"react-redux\";\nimport {toggleLoading} from \"../../redux/reducers/utils\";\nimport {Helmet} from \"react-helmet\";\nimport VaultCreateModal from \"./modals/VaultCreateModal\";\n\nfunction VaultCreate(props) {\n\n let [openVaultCreateModal, setOpenVaultCreateModal] = useState(false);\n let [vault, setVault] = useState();\n\n props.toggleLoading(false);\n\n const saveVault = (vault) => {\n setVault(vault);\n setOpenVaultCreateModal(true);\n };\n\n return (\n <>\n \n Fidelius Vaults: Create New Vault\n \n \n

Create New Vault

\n

For help with creating a vault, or details about Fidelius Guardian Approval Protocol, visit our FAQ.

\n \n \n
\n\n
\n setOpenVaultCreateModal(false)}/>\n
\n \n );\n}\n\n\nexport default compose(\n connect(\n null,\n { toggleLoading }\n )\n)(VaultCreate);\n","import React, {useEffect} from 'react';\nimport './Login.scss';\nimport {compose} from \"redux\";\nimport {connect} from \"react-redux\";\nimport {toggleLoading} from \"../../redux/reducers/utils\";\nimport Card from \"@material-ui/core/Card\";\nimport Button from \"@material-ui/core/Button\";\nimport {useAuth0} from \"../../utils/providers/Auth0Provider\";\nimport logo from \"../../assets/Fidelius_Finalized_Logo_Parts-02.svg\"\nimport {navigate} from \"@reach/router\";\n\n\nfunction Login(props) {\n const { loginWithRedirect, isAuthenticated } = useAuth0();\n\n useEffect(() => {\n if (isAuthenticated) {\n navigate(\"/vaults\");\n }\n }, [isAuthenticated]);\n\n props.toggleLoading(false);\n return (\n
\n \n \n Welcome to Fidelius.\n

Login or sign up to access your vaults.

\n
\n loginWithRedirect()}\n > Login\n \n
\n
\n

Don't have an account?

\n
\n loginWithRedirect({screen_hint: 'signup'})}\n > Signup\n \n
\n

By signing up for Fidelius, you agree to abide by our Terms of Service and Privacy Policy.

\n
\n
\n );\n};\n\nexport default compose(\n connect(\n null,\n { toggleLoading }\n )\n)(Login);\n","import React, {useEffect} from \"react\";\nimport {useAuth0} from \"./providers/Auth0Provider\";\nimport {navigate} from \"@reach/router\";\nimport {compose} from \"redux\";\nimport {connect} from \"react-redux\";\n\nconst PrivateRoute = ({ component: Component, path, uri, user, ...rest }) => {\n const { loading, isAuthenticated, loginWithRedirect } = useAuth0();\n useEffect(() => {\n if (loading || isAuthenticated) {\n\n // if (isAuthenticated && user && !user.emailVerified) {\n // navigate(\"/email-confirmation\")\n // }\n\n return;\n }\n navigate(\"/login\");\n }, [loading, isAuthenticated, loginWithRedirect, path, user]);\n\n return isAuthenticated ? : null;\n};\n\nconst mapStateToProps = (state, props) => {\n return {\n ...props,\n user: state.user.user,\n };\n};\n\nexport default compose(\n connect(\n mapStateToProps,\n null\n )\n)(PrivateRoute);","import React, {Component} from 'react';\nimport {CardElement, injectStripe} from 'react-stripe-elements';\nimport Button from \"@material-ui/core/Button\";\n\nconst createOptions = () => {\n return {\n style: {\n base: {\n fontSize: '16px',\n color: '#424770',\n fontFamily: 'Open Sans, sans-serif',\n letterSpacing: '0.025em',\n '::placeholder': {\n color: '#aab7c4',\n },\n },\n invalid: {\n color: '#c23d4b',\n },\n }\n }\n};\n\nclass _CardForm extends Component {\n state = {\n errorMessage: '',\n };\n\n handleChange = ({error}) => {\n if (error) {\n this.setState({errorMessage: error.message});\n } else {\n this.setState({errorMessage: \"\"})\n }\n };\n\n handleSubmit = async (evt) => {\n evt.preventDefault();\n if (!this.props.stripe) {\n console.error(\"Stripe.js hasn't loaded yet.\");\n } else {\n const { token } = await this.props.stripe.createToken();\n if (token) {\n this.props.createSubscription(token.id);\n };\n }\n };\n\n render() {\n return (\n
\n
\n \n
\n {this.state.errorMessage}\n
\n
\n Pay\n
\n
\n
\n );\n }\n}\n\nexport default injectStripe(_CardForm);\n","import React, {useEffect} from 'react';\nimport Dialog from \"@material-ui/core/Dialog\";\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\nimport Divider from \"@material-ui/core/Divider\";\nimport makeStyles from \"@material-ui/core/styles/makeStyles\";\nimport CheckoutForm from \"./CheckoutForm\";\nimport {Elements} from \"react-stripe-elements\";\nimport routes from \"../../../utils/api-client\";\nimport {compose} from \"redux\";\nimport {connect} from \"react-redux\";\nimport {subscriptionTypeMapping} from \"../../../config/constants\";\nimport Tooltip from \"@material-ui/core/Tooltip\";\nimport iziToast from \"izitoast\";\nimport {openConfirmationModal, toggleLoading} from \"../../../redux/reducers/utils\";\nimport ReactGA from 'react-ga';\nimport FormControl from \"@material-ui/core/FormControl\";\nimport RadioGroup from \"@material-ui/core/RadioGroup\";\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\nimport Radio from \"@material-ui/core/Radio\";\nimport FdlOutlinedInput from \"../../../utils/FdlOutlinedInput/FdlOutlinedInput\";\nimport Button from \"@material-ui/core/Button\";\n\n\nfunction AccountPreferencesModal(props){\n\n const [subscriptionPlan, setSubscriptionPlan] = React.useState('ANNUAL');\n const [showCouponCode, setShowCouponCode] = React.useState(false);\n const [couponCode, setCouponCode] = React.useState('');\n const [validCouponCode, setValidCouponCode] = React.useState('');\n const [couponDiscount, setCouponDiscount] = React.useState();\n const [isInvalidCouponCode, setIsInvalidCouponCode] = React.useState(false);\n\n const useStyles = makeStyles({\n root: {\n // padding: theme.spacing(0),\n },\n accountPreferencesModal: {\n maxWidth: '700px',\n },\n titleText: {\n width: '150px'\n },\n subscriptionContainer: {\n padding: '24px',\n border: '1px solid grey',\n width: '100%'\n }\n });\n\n useEffect(() => {\n }, [props.open]);\n\n const classes = useStyles();\n\n const handleChange = (event, newValue) => {\n setSubscriptionPlan(newValue);\n };\n\n const cancelSubscription = ()=> {\n props.toggleLoading(true);\n props.onClose();\n routes.cancelSubscription().subscribe(() => {\n // ghetto hack because the Auth0 rule that populates data on signup doesn't fire immediately for some reason.\n // this forces the auth0 token to re-send, which should have user data\n window.location.reload();\n });\n };\n\n const createSubscription = (token)=> {\n props.toggleLoading(true);\n props.onClose();\n routes.createSubscription(subscriptionPlan, token, validCouponCode).subscribe((response) => {\n if (response.status === 200) {\n props.onClose();\n ReactGA.event({\n category: 'Paid Subscription',\n action: 'click',\n label: `${subscriptionPlan} Signup`,\n value: `${subscriptionPlan} Signup`\n });\n iziToast.success({\n position: \"topCenter\",\n 'title': 'Success',\n 'message': 'Your payment has been successfully processed and your subscription to Fidelius is active.'\n });\n\n // ghetto hack because the Auth0 rule that populates data on signup doesn't fire immediately for some reason.\n // this forces the auth0 token to re-send, which should have user data\n setTimeout(() => window.location.reload(), 2000);\n } else {\n props.toggleLoading(false);\n }\n });\n };\n\n const getLabelText = (labelType) => {\n switch (labelType) {\n case 'LIFETIME':\n return

Lifetime – \n {\n validCouponCode ?\n <>\n $150 \n ${(150 * couponDiscount).toFixed(2)} \n \n :\n $150 \n }\n one-time fee

;\n case 'ANNUAL':\n return

Annual – \n {\n validCouponCode ?\n <>\n $55 \n ${(55 * couponDiscount).toFixed(2)} \n \n :\n $55 \n }\n per year

;\n case 'MONTHLY':\n return

Monthly – \n {\n validCouponCode ?\n <>\n $7 \n ${(7 * couponDiscount).toFixed(2)} \n \n :\n $7 \n }\n per month

;\n }\n };\n\n const applyCoupon = () => {\n routes.checkCouponCode(couponCode).subscribe((response) => {\n if (response.status === 200) {\n if (response.data.valid_coupon_code) {\n setValidCouponCode(couponCode);\n setIsInvalidCouponCode(false)\n setCouponDiscount(response.data.coupon_discount)\n } else {\n setValidCouponCode('');\n setIsInvalidCouponCode(true)\n setCouponDiscount(null)\n }\n }\n })\n }\n\n const activeSubscription = props.user && props.user.subscriptionType !== 'FREE_TRIAL' && props.user.subscriptionStatus !== 'CANCELED';\n\n return (\n \n {\n props.user &&\n
\n
\n

Account Details

\n \n
\n \n
\n

Email Address

\n

{ props.user.email }

\n
\n \n
\n

Full Name

\n
\n

{ props.user.name }

\n \n

(edit)

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

Password

\n \n

(change password)

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

Subscription

\n {\n activeSubscription ?\n // SHOW SUBSCRIPTION TYPE\n
\n

{ subscriptionTypeMapping[props.user.subscriptionType] }

\n {\n props.user.subscriptionType !== 'LIFETIME' &&\n props.openConfirmationModal(\"CANCEL_SUBSCRIPTION\", () => cancelSubscription())}>\n (cancel)\n }\n
\n :\n // SHOW SUBSCRIPTION OPTIONS\n
\n

Choose one of the subscription plans below to upgrade your account. For more information,\n please see our Pricing page.

\n\n \n {/*Subscription Plans*/}\n setSubscriptionPlan(event.target.value)}>\n } label={getLabelText('LIFETIME')}/>\n } label={getLabelText('ANNUAL')}/>\n } label={getLabelText('MONTHLY')}/>\n \n \n \n {\n showCouponCode &&\n
\n
\n setCouponCode(value)} />\n \n Apply\n \n
\n\n {\n isInvalidCouponCode &&\n
\n \n

Invalid Coupon Code

\n
\n }\n {\n validCouponCode &&\n
\n \n

{((1 - couponDiscount) * 100).toFixed(0)}% off coupon applied

\n
\n }\n
\n }\n
\n \n \n \n
\n
\n }\n
\n
\n }\n
\n );\n}\n\nconst mapStateToProps = (state, props) => {\n return {\n ...props,\n user: state.user.user,\n };\n};\n\nexport default compose(\n connect(\n mapStateToProps,\n { toggleLoading, openConfirmationModal }\n )\n)(AccountPreferencesModal);","import React from 'react';\nimport './NavBar.scss';\nimport {useAuth0} from \"../../utils/providers/Auth0Provider\";\nimport Button from \"@material-ui/core/Button\";\nimport Popover from \"@material-ui/core/Popover\";\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\nimport Divider from \"@material-ui/core/Divider\";\nimport {navigate} from \"@reach/router\";\nimport AccountPreferencesModal from \"./components/AccountPreferencesModal\";\nimport {compose} from \"redux\";\nimport {connect} from \"react-redux\";\nimport Logo from \"../../assets/Fidelius_Finalized_Logo_Parts-02.svg\"\nimport LogoText from \"../../assets/Fidelius_Finalized_Logo_Parts-01.svg\"\nimport {toggleAccountPreferencesModal} from \"../../redux/reducers/utils\";\nimport ListItem from \"@material-ui/core/ListItem\";\nimport ListItemText from \"@material-ui/core/ListItemText\";\nimport List from \"@material-ui/core/List\";\nimport SwipeableDrawer from \"@material-ui/core/SwipeableDrawer\";\n\n\nconst NavBar = (props) => {\n const { isAuthenticated, logout, loginWithRedirect, loading } = useAuth0();\n const [accountPopper, setAccountPopper] = React.useState(null);\n const [sidebarDrawerOpen, setSidebarDrawerOpen] = React.useState(false);\n const [helpPopper, setHelpPopper] = React.useState(null);\n\n\n const handleClose = () => {\n props.toggleAccountPreferencesModal(false);\n setAccountPopper(null);\n setHelpPopper(null);\n };\n\n const onLogout = () => {\n window.drift.reset();\n logout()\n };\n\n const openLiveChat = () => {\n window.driftApi.widget.show();\n window.driftApi.sidebar.open();\n setHelpPopper(null);\n };\n\n const openHelpEmail = () => {\n window.location = \"mailto:support@fideliusvaults.com?Subject=Fidelius Help\";\n setHelpPopper(null);\n };\n\n const sendDemoEmail = () => {\n window.location = \"mailto:support@fideliusvaults.com?Subject=Fidelius Demo Request&body=Name:%0D%0A%0D%0APhone:%0D%0A%0D%0ATime Available:%0D%0A%0D%0A\";\n setHelpPopper(null);\n }\n\n const toggleDrawer = (event) => {\n if (event && event.type === 'keydown' && (event.key === 'Tab' || event.key === 'Shift')) {\n return;\n }\n setSidebarDrawerOpen(!sidebarDrawerOpen)\n };\n\n const getSidebarContent = () => {\n return \n \n \n {\n !loading && isAuthenticated && props.user &&\n <>\n

{props.user.name}

\n \n props.toggleAccountPreferencesModal(true)}>\n \n \n \n \n \n \n \n
\n \n }\n

Resources

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

Contact Us

\n \n \n \n \n \n \n \n \n \n \n
\n sendDemoEmail()}\n className=\"w-full\"\n > Request a Demo\n \n
\n
\n \n }\n return (\n
\n
\n navigate(\"/vaults\")}>\n \n \n \n {\n !loading && (!isAuthenticated || props.user)&&\n <>\n
\n \n
\n \n \n }\n
\n\n {/*sidebar*/}\n {getSidebarContent()}\n\n {/* Popper components */}\n \n
\n \n
\n \n
\n \n
\n \n
\n \n
\n \n
\n \n
\n \n \n
\n \n
\n \n
\n \n
\n \n \n
\n );\n};\n\nconst mapStateToProps = (state, props) => {\n return {\n ...props,\n user: state.user.user,\n openAccountPreferences: state.utils.openAccountPreferences,\n };\n};\n\nexport default compose(\n connect(\n mapStateToProps,\n { toggleAccountPreferencesModal }\n )\n)(NavBar);","import React from 'react';\nimport './VaultCard.scss';\nimport Card from \"@material-ui/core/Card\";\nimport {navigate} from \"@reach/router\";\nimport {OWNER, purposeMapping} from \"../../../config/constants\";\nimport Tooltip from \"@material-ui/core/Tooltip\";\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\nimport moment from \"moment\";\n\n\nfunction VaultCard(props) {\n\n const getVaultStatusIcon = () => {\n switch(props.vault.status) {\n case 'LOCKED':\n return ;\n case 'PENDING':\n return ;\n case 'UNLOCKED':\n return ;\n case 'ARCHIVED':\n return <>\n // return ;\n }\n\n };\n\n const getVaultIcon = () => {\n let color, icon;\n switch(props.vault.status) {\n case 'LOCKED':\n color = \"text-primary\";\n break;\n case 'PENDING':\n color = \"text-warning\";\n break;\n case 'UNLOCKED':\n color = \"text-alert\";\n break;\n case 'ARCHIVED':\n color = \"text-grey\";\n }\n\n switch(props.vault.purpose) {\n case 'EMERGENCY':\n icon = \"user-injured\"; break;\n case 'MISSING':\n icon = \"user-shield\"; break;\n case 'STORAGE':\n icon = \"folder-open\"; break;\n case 'ESTATE_PLANNING':\n icon = \"users\"; break;\n case 'REAL_ESTATE':\n icon = \"house-user\"; break;\n case 'OTHER':\n icon = \"shield-alt\"; break;\n }\n return ;\n\n };\n\n const lastUpdated = moment.duration(moment().diff(moment(props.vault.updated)));\n\n return (\n
\n
\n {getVaultIcon()}\n
\n navigate(`/vaults/${props.vault.id}`)}>\n \n \n );\n};\n\nexport default VaultCard;\n","import React from 'react';\nimport './ActivityLog.scss';\nimport {navigate} from \"@reach/router\";\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\nimport moment from \"moment\";\nimport Button from \"@material-ui/core/Button\";\n\n\nfunction ActivityLogItem(props) {\n\n let icon = '';\n let type = 'NOTIFICATION';\n let title = '';\n\n switch(props.activity.type){\n case \"VAULT_CREATED\":\n icon = 'folder-plus';\n title = 'New vault created';\n break;\n case \"VAULT_FILES_EDITED\":\n icon = 'file-upload';\n title = 'New files uploaded to vault';\n break;\n case \"ACCESS_REQUESTED\":\n icon = 'key';\n type = 'ALERT';\n title = 'Access requested to vault';\n break;\n case \"ACCESS_REQUEST_APPROVED\":\n icon = 'check';\n type = 'ALERT';\n title = 'Keyholders granted access';\n break;\n case \"ACCESS_REQUEST_DENIED\":\n icon = 'lock';\n type = 'ALERT';\n title = 'Access request denied';\n break;\n case \"ACCESS_REQUEST_CANCELLED\":\n icon = 'lock';\n title = 'Access request cancelled';\n break;\n case \"VAULT_LOCKED\":\n icon = 'lock';\n title = 'Vault has been locked';\n break;\n case \"VAULT_ARCHIVED\":\n icon = 'box';\n title = 'Vault has been archived.';\n break;\n case \"VAULT_UNARCHIVED\":\n icon = 'box-open';\n title = 'Vault has been un-archived.';\n break;\n }\n\n const lastUpdated = moment.duration(moment().diff(moment(props.activity.created)));\n\n return \n};\n\nexport default ActivityLogItem;\n","import React from 'react';\nimport Dialog from \"@material-ui/core/Dialog\";\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\nimport * as _ from \"lodash\";\nimport ActivityLogItem from \"./ActivityLogItem\";\nimport Divider from \"@material-ui/core/Divider\";\n\nfunction ActivityLogModal(props){\n\n return (\n \n
\n

Actvity Log

\n \n
\n \n
\n {\n _.map(props.activityLog, (activity, i) => )\n }\n
\n
\n );\n}\n\nconst mapStateToProps = (state, props) => {\n return {\n ...props,\n user: state.user.user,\n };\n};\n\nexport default ActivityLogModal;","import React, {useState} from 'react';\nimport './ActivityLog.scss';\nimport * as _ from 'lodash';\nimport ActivityLogItem from \"./ActivityLogItem\";\nimport ActivityLogModal from \"./ActivityLogModal\";\nimport Paper from \"@material-ui/core/Paper\";\n\n\nfunction ActivityLog(props) {\n let [openActivityLogModal, setActivityLogModal] = useState(false);\n\n const toggleModal = () => setActivityLogModal(!openActivityLogModal);\n\n return (\n \n
\n Activity Log\n
\n
\n {\n props.activityLog.length ?\n
\n
\n {\n _.map(_.take(props.activityLog, 5), (activity,i) => )\n }\n
\n {\n props.activityLog.length > 5 &&\n
\n

{props.activityLog.length - 5} HIDDEN

\n View all\n
\n }\n
\n :\n
\n No Events Found.\n
\n }\n\n
\n \n
\n );\n};\n\nexport default ActivityLog;\n","import React from 'react';\nimport './DashboardBanner.scss';\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\nimport Paper from \"@material-ui/core/Paper\";\nimport * as moment from 'moment';\nimport {toggleAccountPreferencesModal} from \"../../../redux/reducers/utils\";\nimport {compose} from \"redux\";\nimport {connect} from \"react-redux\";\n\nfunction DashboardBanner(props) {\n\n if (!props.user || props.user.subscriptionStatus === 'ACTIVE') {\n return null;\n }\n\n const getBannerContent = () => {\n switch (props.user.subscriptionStatus) {\n case 'CANCELED':\n return 'Your subscription has been cancelled.';\n case 'EXPIRED':\n return 'Your subscription has expired.';\n case 'FREE_TRIAL_ENDED':\n return 'Your free trial has ended.';\n case 'FREE_TRIAL_ENDS_SOON':\n return 'Your free trial ends soon.';\n }\n };\n\n return (\n
\n \n
\n \n
\n { getBannerContent() }\n

props.toggleAccountPreferencesModal(true)}>Upgrade your account to keep your existing vaults, or they will be automatically archived on {moment(props.user.vaultArchiveDate).format(\"LL\")}.

\n
\n
\n\n
\n
\n );\n}\n\nexport default compose(\n connect(\n null,\n { toggleAccountPreferencesModal }\n )\n)(DashboardBanner);","import React from 'react';\nimport './VaultCard.scss';\nimport Paper from \"@material-ui/core/Paper\";\nimport withStyles from \"@material-ui/core/styles/withStyles\";\nimport {lighten} from \"@material-ui/core\";\nimport LinearProgress from \"@material-ui/core/LinearProgress\";\n\nconst BorderLinearProgress = withStyles({\n root: {\n height: 20,\n backgroundColor: lighten('#ffffff', 0.5),\n borderRadius: 8,\n border: \"1px solid #D4D4D4\"\n },\n bar: {\n borderRadius: 8,\n },\n})(LinearProgress);\n\nconst ErrorLinearProgress = withStyles({\n root: {\n border: \"1px solid #A54657\"\n },\n barColorPrimary: {\n backgroundColor: '#A54657',\n },\n})(BorderLinearProgress);\n\n\nfunction FreeTrialCard(props) {\n return <>\n {\n props.user && props.user.subscriptionType === 'FREE_TRIAL' &&\n \n\n
\n Free Trial\n
\n
\n {\n props.user.trialDaysRemaining > 7 ?\n \n :\n \n }\n
\n

{ props.user.trialDaysRemaining } Day{props.user.trialDaysRemaining === 1 ? '': 's'} LEFT

\n props.toggleAccountPreferencesModal(true)}>Upgrade\n
\n
\n
\n }\n \n};\n\nexport default FreeTrialCard;\n","import React, {useEffect, useState} from 'react';\nimport * as moment from 'moment';\nimport './Dashboard.scss';\nimport {navigate} from \"@reach/router\";\nimport routes from '../../utils/api-client';\nimport Button from \"@material-ui/core/Button\";\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\nimport {OWNER, purposeMapping} from \"../../config/constants\";\nimport * as _ from \"lodash\";\nimport {connect} from \"react-redux\";\nimport {toggleAccountPreferencesModal, toggleLoading} from \"../../redux/reducers/utils\";\nimport {compose} from \"redux\";\nimport Paper from \"@material-ui/core/Paper\";\nimport VaultCard from \"./components/VaultCard\";\nimport ActivityLog from \"./ActivityLog/ActivityLog\";\nimport DashboardBanner from \"./components/DashboardBanner\";\nimport Checkbox from \"@material-ui/core/Checkbox\";\nimport FreeTrialCard from \"./components/FreeTrialCard\";\nimport useWindowDimensions from \"../../utils/helpers\";\n\nfunction Dashboard(props) {\n let [vaults, setVaults] = useState(null);\n let [showOwnerArchived, setShowOwnerArchived] = useState(false);\n let [showOtherArchived, setShowOtherArchived] = useState(false);\n let [activityLog, setActivityLog] = useState([]);\n let [vaultBuffer, setVaultBuffer] = useState(1);\n const { height, width } = useWindowDimensions();\n\n useEffect(() => {\n if (width < 570) {\n setVaultBuffer(1);\n } else if (width < 792) {\n setVaultBuffer(2);\n } else if (width < 1024) {\n setVaultBuffer(3);\n } else if (width < 1124) {\n setVaultBuffer(2);\n } else if (width < 1352) {\n setVaultBuffer(3);\n } else {\n setVaultBuffer(4);\n }\n }, [width]);\n\n useEffect(() => {\n if (props.user) {\n props.toggleLoading(true);\n routes.getVaults().subscribe((response) => {\n\n const vaults = response.data.map((vault) => {\n // format vault dates & display values\n vault['lastUpdated'] = moment(vault.updated).format('MM-DD-YYYY');\n vault['purposeDisplay'] = purposeMapping[vault['purpose']];\n\n _.forEach(vault[\"activity_log\"], (activity) => {\n activity.vaultName = vault.vault_name;\n activity.vaultId = vault.id;\n });\n\n return vault;\n });\n\n setVaults(_.orderBy(vaults, (vault) => moment(vault.updated), ['desc']));\n setActivityLog(_.orderBy(_.flatten(_.map(vaults, 'activity_log')), (x) => moment(x.created), ['desc']));\n props.toggleLoading(false);\n });\n }\n }, [props.user]);\n\n const otherVaults = _.filter(vaults, vault => vault.role !== OWNER && (showOtherArchived || vault.status !== 'ARCHIVED'));\n const ownerVaults = _.filter(vaults, vault => vault.role === OWNER && (showOwnerArchived || vault.status !== 'ARCHIVED'));\n const numOwnerArchived = _.filter(vaults, vault => vault.role === OWNER && vault.status === 'ARCHIVED').length;\n const numOtherArchived = _.filter(vaults, vault => vault.role !== OWNER && vault.status === 'ARCHIVED').length;\n\n return (\n
\n {\n vaults &&\n
\n \n
\n
\n \n
\n
\n

My Vaults

\n

Vaults you own and manage

\n
\n
\n
\n navigate(`/vaults/create/`)}\n color=\"primary\">\n \n \n

Create New Vault

\n
\n \n {\n !!numOwnerArchived &&\n
\n Show Archived ({numOwnerArchived})\n setShowOwnerArchived(checked)}\n inputProps={{ 'aria-label': 'primary checkbox' }}\n />\n
\n }\n
\n\n
\n\n {/*SHOW OWNER VAULTS*/}\n {\n ownerVaults.length ?\n
\n {_.map(ownerVaults, vault => )}\n {\n !!((ownerVaults.length) % vaultBuffer) &&\n _.map(new Array( vaultBuffer - (ownerVaults.length) % vaultBuffer), (i) => {\n return
\n })\n }\n
\n :\n
\n
\n

No Vaults Found.

\n

New to Fidelius? View our FAQ and How It Works pages for more information.

\n
\n
\n }\n\n {/*SHOW OTHER VAULTS*/}\n
\n
\n

Other Vaults

\n

Vaults you can access and view

\n
\n
\n {\n !!numOtherArchived &&\n
\n Show Archived ({ numOtherArchived })\n setShowOtherArchived(checked)}\n inputProps={{ 'aria-label': 'primary checkbox' }}\n />\n
\n }\n
\n {\n otherVaults.length ?\n
\n {\n _.map(otherVaults, vault => )\n }\n {\n !!((otherVaults.length) % vaultBuffer) &&\n _.map(new Array( vaultBuffer - (otherVaults.length) % vaultBuffer), (i) => {\n return
\n })\n }\n
\n :\n
\n {\n props.user.emailVerified ?\n No Vaults Found.\n :\n You must navigate(\"/email-confirmation\")}>verify your email before viewing other vaults.\n }\n
\n }\n \n
\n\n
\n \n \n
\n
\n\n
\n }\n
\n );\n};\n\nconst mapStateToProps = (state, props) => {\n return {\n ...props,\n user: state.user.user,\n };\n};\n\nexport default compose(\n connect(\n mapStateToProps,\n { toggleLoading, toggleAccountPreferencesModal }\n )\n)(Dashboard);\n","import React from 'react';\nimport './EmailConfirmation.scss';\nimport {compose} from \"redux\";\nimport {connect} from \"react-redux\";\nimport {toggleLoading} from \"../../redux/reducers/utils\";\nimport Card from \"@material-ui/core/Card\";\nimport Button from \"@material-ui/core/Button\";\nimport {navigate} from \"@reach/router\";\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\nimport routes from \"../../utils/api-client\";\nimport iziToast from \"izitoast\";\n\n\nfunction EmailConfirmation(props) {\n props.toggleLoading(false);\n\n if (props.user && props.user.emailVerified) {\n navigate(\"/vaults\")\n }\n\n const openLiveChat = () => {\n window.driftApi.widget.show();\n window.driftApi.sidebar.open();\n };\n\n const resendEmail = () => {\n routes.resendVerificationEmail().subscribe((response) => {\n if (response.status === 200) {\n iziToast.success({\n position: \"topCenter\",\n 'title': 'Success',\n 'message': 'The verification email has be re-sent.'\n });\n }\n })\n };\n\n\n return (\n !!props.user &&\n
\n \n \n Please verify your email.\n
\n

Thanks for signing up to Fidelius! You're almost there.

\n

An email has been sent to { props.user.email }. Just click on the link in that email to complete your signup.

\n

Note: You may need to check your spam folder for the email.

\n
\n

Still don't see it?

\n
\n Resend Email\n \n
\n

Need help? Contact us via email or chat.

\n
\n
\n );\n};\n\nconst mapStateToProps = (state, props) => {\n return {\n ...props,\n user: state.user.user,\n };\n};\n\n\nexport default compose(\n connect(\n mapStateToProps,\n { toggleLoading }\n )\n)(EmailConfirmation);\n","import React from 'react';\nimport './Vault.scss';\nimport * as _ from \"lodash\";\nimport {humanFileSize} from \"../../utils/helpers\";\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\nimport Tooltip from \"@material-ui/core/Tooltip\";\nimport routes from \"../../utils/api-client\";\nimport * as moment from \"moment\";\nimport {ADVISOR, KEYHOLDER, OWNER} from \"../../config/constants\";\n\n\nfunction VaultDetails(props) {\n\n const vault = props.vault;\n const canDownloadDocuments = vault.role === OWNER || vault.role === ADVISOR || (vault.status === 'UNLOCKED' && !vault.accessDelayed && vault.role === KEYHOLDER);\n\n return (\n
\n
\n

{ vault.documents.length } Document{ vault.documents.length !== 1 ? 's' : '' } Stored

\n
\n\n {\n vault.documents.length ?\n <>\n
\n \n \n
\n {\n _.map(vault.documents, (document, index) =>\n
routes.downloadVaultFile(vault.id, document.name)}>\n

\n { document.name }\n ({ humanFileSize(document.size) })\n

\n
\n

{ moment(document.updated).format('L LT') }

\n {\n _.includes([\"PENDING\", \"LOCKED\"], vault.status) || vault.accessDelayed ?\n \n
\n \n
\n
\n :\n \n
\n \n
\n
\n }\n
\n
\n )\n }\n \n :\n
\n \n
No Documents have been uploaded to this vault.
\n
\n }\n
\n
\n\n
\n

{ vault.keyholders.length } Keyholder{ vault.keyholders.length !== 1 ? 's' : '' }

\n
\n {\n vault.keyholders.length ?\n <>\n
\n \n \n
\n {\n _.map(vault.keyholders, (user, index) =>\n <>\n {/* TODO: this is sloppy, find a way to combine*/}\n
\n \n
\n Name:  \n

{ user.name }

\n
\n
\n \n
\n Email:  \n

{ user.email }

\n
\n
\n
\n \n \n )\n }\n \n :\n
\n \n
No Keyholders have been chosen for this vault; only you have\n access.
\n
\n }\n
\n
\n\n
\n

{ vault.guardians.length } Guardian{ vault.guardians.length !== 1 ? 's' : '' }

\n
\n {\n vault.guardians.length ?\n <>\n
\n \n \n
\n {\n _.map(vault.guardians, (user, index) =>\n <>\n {/* TODO: this is sloppy, find a way to combine*/}\n
\n \n
\n Name:  \n

{ user.name }

\n
\n
\n \n
\n Email:  \n

{ user.email }

\n
\n
\n
\n \n \n )\n }\n \n :\n
\n \n
No guardians have been chosen for this vault. Keyholder requests will be automatically approved.
\n
\n }\n
\n
\n
\n );\n};\n\nexport default VaultDetails;\n\n","import React from 'react';\nimport './Vault.scss';\nimport * as _ from \"lodash\";\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\nimport Tooltip from \"@material-ui/core/Tooltip\";\nimport * as moment from \"moment\";\nimport {compose} from \"redux\";\nimport {connect} from \"react-redux\";\nimport {openConfirmationModal, toggleLoading} from \"../../redux/reducers/utils\";\nimport {\n accessDelayMapping, ADVISOR,\n GUARDIAN,\n KEYHOLDER,\n OWNER,\n VAULT_ICON_COLOR_MAPPING,\n VAULT_STATUS_DESCRIPTION_MAPPING,\n VAULT_STATUS_ICON_MAPPING,\n VAULT_STATUS_TEXT_MAPPING\n} from \"../../config/constants\";\nimport {navigate} from \"@reach/router\";\nimport Button from \"@material-ui/core/Button\";\n\n\nfunction VaultStatus(props) {\n const vault = props.vault;\n\n const getGuardianStatus = (guardian) => {\n switch(guardian.status) {\n case \"APPROVED\":\n return
\n \n Approved Request\n
;\n case \"REJECTED\":\n return
\n \n Rejected Request\n
;\n case \"PENDING\":\n return
\n \n Awaiting Response\n
;\n }\n }\n\n const getVaultAccessRequest = () => {\n switch (vault.status) {\n case 'LOCKED':\n return
\n
\n

No pending access requests at this time.

\n {\n vault.guardians.length ?\n At least { vault.number_approvals } Guardian{ vault.guardians.length !== 1 ? 's' : '' } will need to approve an access request per vault settings. :\n No Guardians have been assigned, so Keyholder requests will be automatically approved.\n }\n
\n
;\n case 'ARCHIVED':\n return null;\n case 'PENDING':\n case 'UNLOCKED':\n return
\n
\n
\n \n
\n

Keyholder '{vault.access_request['requested_by_name']}' requested access\n on {vault.accessRequestedAt} with the note:

\n \"{vault.access_request.reason}\"

\n {vault.status === 'PENDING' ?\n

The request has been approved by {vault.approvals || 0} of {vault.number_approvals} required Guardians.

\n\n :\n

The request was approved on {vault.accessRequestCompletedAt}.

\n }\n {\n vault.access_request.guardians && vault.access_request.guardians.length &&\n
\n {\n _.map(vault.access_request.guardians, (guardian) =>\n
\n

{guardian.name}

\n {getGuardianStatus(guardian)}\n
)\n }\n
\n }\n
\n
\n
\n {\n vault.accessDelayed &&\n
\n
\n \n

The Owner has configured a delay of {accessDelayMapping[vault.access_delay]} before documents can be dowloaded. Documents will be available on {moment(vault.unlocked_at).format('LLL')}.

\n
\n
\n }\n
;\n }\n }\n\n const getVaultAction = () => {\n switch(vault.role) {\n case ADVISOR:\n case OWNER:\n switch (vault.status) {\n case 'LOCKED':\n return
\n navigate(`/vaults/${vault.id}/edit`)}\n className=\"w-full vault-status-button\"\n color=\"secondary\">\n \n \n

Edit Vault

\n
\n \n
\n props.openConfirmationModal(\"ARCHIVE_VAULT\", () => props.performVaultAction('TOGGLE_VAULT_ARCHIVED'))}\n >\n \n \n

Archive Vault

\n
\n \n
\n
\n case 'PENDING':\n return
\n

As the Owner of this vault, please decide if access to the vault should be granted.

\n

If you need more information on this process, please see our FAQ.

\n
\n props.performVaultAction('APPROVE_VAULT_ACCESS_REQUEST')}\n className=\"vault-status-button w-full\"\n color=\"secondary\">\n \n \n

Approve Access

\n
\n \n
\n props.performVaultAction('REJECT_VAULT_ACCESS_REQUEST')}\n className=\"light-red text-white vault-status-button w-full\"\n >\n \n \n

Reject Access

\n
\n \n
\n
\n
;\n case 'UNLOCKED':\n return
\n

While the vault is unlocked, no changes can be made.

\n
\n props.openConfirmationModal(\"LOCK_VAULT\", () => props.performVaultAction('LOCK_VAULT'))}\n color=\"primary\">\n \n \n

Lock Vault

\n
\n \n
\n
;\n case 'ARCHIVED':\n return
\n

While the vault is archived, no changes can be made.

\n

Un-archive the vault to make it active again.

\n
\n props.performVaultAction('TOGGLE_VAULT_ARCHIVED')}\n color=\"secondary\">\n \n \n

Un-archive Vault

\n
\n \n
\n
\n }\n break;\n\n case GUARDIAN:\n if (vault.status === 'PENDING') {\n return
\n

As { vault.role === OWNER ? \"the Owner\" : 'a Guardian' } of this vault, please decide if access to the vault should be granted.

\n

If you need more information on this process, please see our FAQ.

\n
\n props.performVaultAction('APPROVE_VAULT_ACCESS_REQUEST')}\n className=\"vault-status-button w-full\"\n color=\"secondary\">\n \n \n

Approve Access

\n
\n \n
\n props.performVaultAction('REJECT_VAULT_ACCESS_REQUEST')}\n >\n \n \n

Reject Access

\n
\n \n
\n
\n
;\n } else if (vault.status === 'ARCHIVED') {\n return
\n

The Vault is inactive while Archived and no requests for access can be made.

\n
\n }\n break;\n\n case KEYHOLDER:\n switch (vault.status) {\n case 'LOCKED':\n return \n \n \n

Request Access

\n
\n ;\n case 'PENDING':\n return props.openConfirmationModal(\"CANCEL_REQUEST\", () => props.performVaultAction('CANCEL_VAULT_ACCESS_REQUEST'))}\n className=\"\"\n >\n \n \n

Cancel Request

\n
\n ;\n case 'ARCHIVED':\n return
\n

The Vault is inactive while Archived and no requests for access can be made.

\n
\n }\n }\n };\n\n return (\n <>\n
\n \n \n

\n { VAULT_STATUS_TEXT_MAPPING[vault.status] }\n

\n
\n
\n\n {\n getVaultAccessRequest()\n }\n\n
\n {\n getVaultAction()\n }\n
\n \n );\n};\n\nconst mapStateToProps = (state, props) => {\n return {\n ...props,\n user: state.user.user\n };\n};\n\nexport default compose(\n connect(\n mapStateToProps,\n { toggleLoading, openConfirmationModal }\n )\n)(VaultStatus);\n\n","import React, {useEffect, useState} from 'react';\n\nimport Button from \"@material-ui/core/Button\";\nimport Dialog from \"@material-ui/core/Dialog\";\nimport FdlOutlinedInput from \"../../../utils/FdlOutlinedInput/FdlOutlinedInput\";\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\nimport Divider from \"@material-ui/core/Divider\";\n\n\nfunction AccessRequestModal(props){\n\n let [reason, setReason] = useState(\"\");\n\n useEffect(() => {\n setReason(\"\");\n }, [props.open]);\n\n if (!!!props.vault) {\n return null;\n }\n\n const createAccessRequest = () => {\n const data = {\n reason: reason\n };\n props.toggleModal();\n props.performVaultAction(\"CREATE_ACCESS_REQUEST\", data);\n };\n\n return (\n \n
\n
\n \n

Request Access To Vault

\n
\n \n
\n \n

This is the first step to accessing the documents this vault, '{props.vault.vault_name}'.

\n

To access the documents, the Guardians for this vault must approve your request after it is submitted.

\n\n
\n setReason(value)} />\n
\n \n
\n \n\n \n Request Access\n \n
\n\n
\n );\n}\n\nexport default AccessRequestModal;\n","import React, {useState} from 'react';\nimport './Vault.scss';\nimport * as _ from \"lodash\";\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\nimport Tooltip from \"@material-ui/core/Tooltip\";\nimport * as moment from \"moment\";\nimport Button from \"@material-ui/core/Button\";\nimport Checkbox from \"@material-ui/core/Checkbox\";\n\nconst MINOR_EVENTS = ['DOCUMENT_DOWNLOADED', 'KEYHOLDERS_ADDED', 'KEYHOLDERS_REMOVED', 'GUARDIANS_ADDED',\n 'GUARDIANS_REMOVED', 'DOCUMENTS_ADDED', 'DOCUMENTS_REMOVED', 'GUARDIAN_APPROVED_REQUEST', 'GUARDIAN_DENIED_REQUEST',\n 'KEYHOLDER_APPROVED_REQUEST', 'KEYHOLDER_DENIED_REQUEST', 'OWNER_APPROVED_REQUEST', 'OWNER_DENIED_REQUEST',]\n\nfunction VaultActivity(props) {\n let [showAll, setShowAll] = useState(false);\n let [hideMinor, setHideMinor] = useState(false);\n\n let activityLog = [];\n props.vault.activity_log.forEach((activity) => activityLog.unshift(activity)); // no idea why _.reverse doesn't work here\n if (hideMinor) {\n activityLog = _.filter(activityLog, (activity) => {return !_.includes(MINOR_EVENTS, activity.type)});\n }\n\n const getActivityRow = (activity) => {\n let icon = '';\n let title = '';\n let iconColor = 'text-grey';\n\n switch(activity.type){\n case \"VAULT_CREATED\":\n icon = 'folder-plus';\n title = 'Vault Created';\n iconColor = 'text-primary';\n break;\n case \"ACCESS_REQUESTED\":\n icon = 'key';\n title = 'Access Requested';\n iconColor = 'text-warning';\n break;\n case \"ACCESS_REQUEST_APPROVED\":\n icon = 'check';\n title = 'Access Request Approved';\n iconColor = 'text-primary';\n break;\n case \"ACCESS_REQUEST_DENIED\":\n icon = 'times';\n title = 'Access Request Denied';\n iconColor = 'text-alert';\n break;\n case \"ACCESS_REQUEST_CANCELLED\":\n icon = 'times';\n title = 'Access Request Cancelled';\n iconColor = 'text-alert';\n break;\n case \"VAULT_LOCKED\":\n icon = 'lock';\n title = 'Vault Locked';\n iconColor = 'text-alert';\n break;\n case \"VAULT_ARCHIVED\":\n icon = 'box';\n title = 'Vault Archived';\n break;\n case \"VAULT_UNARCHIVED\":\n icon = 'box-open';\n title = 'Vault Un-archived';\n break;\n case \"GUARDIAN_APPROVED_REQUEST\":\n icon = 'check';\n title = 'Guardian Approved Request';\n iconColor = 'text-primary';\n break;\n case \"GUARDIAN_DENIED_REQUEST\":\n icon = 'times';\n title = 'Guardian Denied Request';\n iconColor = 'text-alert';\n break;\n case \"DOCUMENT_DOWNLOADED\":\n icon = 'file-download';\n title = 'Document Downloaded';\n break;\n case \"KEYHOLDERS_ADDED\":\n icon = 'user-check';\n title = 'Keyholder(s) Added';\n break;\n case \"KEYHOLDERS_REMOVED\":\n icon = 'user-times';\n title = 'Keyholder(s) Removed';\n break;\n case \"GUARDIANS_ADDED\":\n icon = 'user-check';\n title = 'Guardian(s) Added';\n break;\n case \"GUARDIANS_REMOVED\":\n icon = 'user-times';\n title = 'Guardian(s) Removed';\n break;\n case \"DOCUMENTS_ADDED\":\n icon = 'file-upload';\n title = 'New File(s) Added.';\n break;\n case \"DOCUMENTS_REMOVED\":\n icon = 'trash';\n title = 'File(s) Removed';\n break;\n case \"OWNER_APPROVED_REQUEST\":\n icon = 'check';\n title = 'Owner Approved Request';\n iconColor = 'text-primary';\n break;\n case \"OWNER_DENIED_REQUEST\":\n icon = 'times';\n title = 'Owner Denied Request';\n iconColor = 'text-alert';\n break;\n }\n\n return <>\n
\n
\n \n

{ title }

\n
\n {\n activity.additional_details &&\n
{ typeof activity.additional_details === 'object'\n ? _.map(activity.additional_details, (detail, index) =>
– {detail}
)\n :
– {activity.additional_details}
}\n
\n }\n
\n \n

Role: {activity.user.role}

\n

Email: {activity.user.email}

\n
}>\n

{ activity.user === 'SYSTEM' ? 'System' : activity.user.name }

\n \n

{ moment(activity.created).format('L LT') }

\n \n }\n\n return (\n
\n
\n

{ activityLog.length } Event{ activityLog.length !== 1 ? 's' : '' }

\n
\n Hide Minor Events\n setHideMinor(checked)}\n inputProps={{ 'aria-label': 'primary checkbox' }}\n />\n
\n
\n
\n\n {\n _.map(showAll ? activityLog : _.take(activityLog, 5), (activity, index) =>\n
\n { getActivityRow(activity) }\n
\n )\n }\n {\n activityLog.length > 5 &&\n
\n \n
\n }\n
\n
);\n};\n\nexport default VaultActivity;\n\n","import React, {useEffect, useState} from 'react';\nimport './Vault.scss';\nimport Paper from \"@material-ui/core/Paper\";\nimport * as _ from \"lodash\";\nimport {updateVaultDetails} from \"../../utils/helpers\";\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\nimport Tooltip from \"@material-ui/core/Tooltip\";\nimport Divider from \"@material-ui/core/Divider\";\nimport routes from \"../../utils/api-client\";\nimport * as moment from \"moment\";\nimport {useAuth0} from \"../../utils/providers/Auth0Provider\";\nimport {Helmet} from 'react-helmet';\nimport {compose} from \"redux\";\nimport {connect} from \"react-redux\";\nimport {openConfirmationModal, toggleLoading} from \"../../redux/reducers/utils\";\nimport VaultDetails from \"./VaultDetails\";\nimport VaultStatus from \"./VaultStatus\";\nimport iziToast from \"izitoast\";\nimport AccessRequestModal from \"./modals/AccessRequestModal\";\nimport VaultActivity from \"./VaultActivity\";\nimport {finalize} from \"rxjs/operators\";\nimport {ADVISOR, OWNER, USER_ICON_MAPPING} from \"../../config/constants\";\n\n\nfunction Vault(props) {\n\n const { loading } = useAuth0();\n let [vault, setVault] = useState();\n let [openAccessRequestModal, setOpenAccessRequestModal] = useState(false);\n\n const performVaultAction = (actionType, data={}) => {\n window.scrollTo(0, 0);\n const accessCode = _.get(props, 'accessRequestCode', null);\n let request$, successMessage;\n switch(actionType){\n case 'GET_VAULT_DETAILS':\n request$ = accessCode ?\n routes.getVaultAccessRequest(props.vaultId, accessCode) :\n request$ = routes.getVault(props.vaultId);\n break;\n case 'APPROVE_VAULT_ACCESS_REQUEST':\n request$ = accessCode ?\n routes.approveVaultAccessRequestNoAuth(vault.id, accessCode) :\n request$ = routes.approveVaultAccessRequestAuth(vault.id);\n successMessage = 'You have approved this request to access the vault.';\n break;\n case 'REJECT_VAULT_ACCESS_REQUEST':\n request$ = accessCode ?\n routes.rejectVaultAccessRequestNoAuth(vault.id, accessCode) :\n request$ = routes.rejectVaultAccessRequestAuth(vault.id);\n successMessage = 'You have rejected this request to access the vault.';\n break;\n case 'CANCEL_VAULT_ACCESS_REQUEST':\n request$ = routes.cancelAccessRequest(vault.id);\n successMessage = 'Successfully cancelled your request for access. The Vault Owner and Guardians have been notified.';\n break;\n case 'LOCK_VAULT':\n request$ = routes.lockVault(vault.id);\n successMessage = 'Successfully locked your vault.';\n break;\n case 'TOGGLE_VAULT_ARCHIVED':\n request$ = routes.toggleVaultArchived(vault.id);\n successMessage = `Successfully ${vault.status === 'ARCHIVED' ? 'un-archived' : 'archived'} your vault.`;\n break;\n case 'CREATE_ACCESS_REQUEST':\n request$ = routes.createAccessRequest(vault.id, data);\n successMessage = 'The Vault Owner and Guardians have been notified of your request.';\n }\n\n props.toggleLoading(true);\n request$.pipe(\n finalize(() => props.toggleLoading(false))\n )\n .subscribe((response) => {\n if (response.status === 400) {\n iziToast.error({\n position: \"topCenter\",\n 'title': 'Error',\n 'message': 'This action can not be performed. Your information on the Vault was outdated and has been refreshed.'\n });\n\n performVaultAction(\"GET_VAULT_DETAILS\");\n\n } else if (response.status === 200) {\n if (successMessage) {\n iziToast.success({\n position: \"topCenter\",\n 'title': 'Success',\n 'message': successMessage\n });\n }\n setVault(updateVaultDetails(response.data));\n }\n });\n }\n\n\n\n useEffect(() => {\n // load vault details\n if (!loading) {\n performVaultAction('GET_VAULT_DETAILS');\n }\n }, [loading]);\n\n\n return (\n !!vault &&\n
\n \n Fidelius Vaults: {vault.vault_name}\n \n
\n

Welcome to Vault:

\n

{ vault.vault_name }

\n
\n
\n \n

You're {_.includes([OWNER, ADVISOR], vault.role) ? 'the' : 'a'} {vault.role} of this vault.

\n
\n
\n \n
\n
Purpose:
\n { vault.purposeDisplay }\n
\n
\n
Created:
\n { moment(vault.created).format('LLL') }\n
\n
\n
Updated:
\n { moment(vault.updated).format('LLL') }\n
\n
\n {\n vault.description &&\n \n

{ vault.description }

\n
\n }\n\n \n

Vault Status

\n
\n setOpenAccessRequestModal(true)}/>\n\n
\n \n

Vault Details

\n \n\n \n

Event Log

\n \n
\n
\n\n {/*MODALS*/}\n {setOpenAccessRequestModal(false)}}/>\n
\n );\n};\n\nconst mapStateToProps = (state, props) => {\n return {\n ...props,\n user: state.user.user\n };\n};\n\nexport default compose(\n connect(\n mapStateToProps,\n { toggleLoading, openConfirmationModal }\n )\n)(Vault);\n\n","import React from 'react';\nimport Dialog from \"@material-ui/core/Dialog\";\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\nimport Divider from \"@material-ui/core/Divider\";\nimport Button from \"@material-ui/core/Button\";\nimport {compose} from \"redux\";\nimport {connect} from \"react-redux\";\nimport {closeConfirmationModal} from \"../../redux/reducers/utils\";\n\nfunction ConfirmationModal(props){\n\n const closeModal = () => {\n props.closeConfirmationModal();\n }\n\n const getIcon = () => {\n switch(props.confirmationModalType) {\n case \"NO_KEYHOLDERS\":\n case \"NO_DOCUMENTS\":\n case \"ARCHIVE_VAULT\":\n case \"CANCEL_REQUEST\":\n case \"LOCK_VAULT\":\n return ;\n case \"NO_GUARDIANS\":\n case \"CANCEL_SUBSCRIPTION\":\n return ;\n\n }\n };\n\n const getTitle = () => {\n switch(props.confirmationModalType) {\n case \"NO_KEYHOLDERS\":\n return \"No Keyholders Selected\";\n case \"NO_GUARDIANS\":\n return \"No Guardians Selected\";\n case \"NO_DOCUMENTS\":\n return \"No Documents Uploaded\";\n case \"ARCHIVE_VAULT\":\n return \"Archive Vault\";\n case \"CANCEL_REQUEST\":\n return \"Cancel Access Request\";\n case \"LOCK_VAULT\":\n return \"Lock Vault\";\n case \"CANCEL_SUBSCRIPTION\":\n return \"Cancel Subscription\";\n }\n };\n\n const getText = () => {\n switch(props.confirmationModalType) {\n case \"NO_KEYHOLDERS\":\n return
\n

You haven't selected any keyholders for this vault. Without keyholders, only you will be able to access this vault.

\n

Visit our FAQ for more information on keyholders, and why they're important for emergency situations. You can skip this step for now if you're aren't sure who should be a keyholder.

\n
;\n case \"NO_GUARDIANS\":\n return
\n

You haven't selected any guardians for this vault. Without guardians, requests for access made by keyholders will be automatically approved.

\n

Visit our FAQ for more information on guardians, and why they're important for emergency situations. You can skip this step for now if you're aren't sure who should be a guardian.

\n
;\n case \"NO_DOCUMENTS\":\n return
\n

You haven't uploaded any documents to this vault.

\n

Visit our FAQ for suggestions on what you should upload based on the type of vault. You can skip this step for now if you're aren't what documents you'd like to store.

\n
;\n case \"ARCHIVE_VAULT\":\n return
\n

Are you sure you want to archive this vault? This will permanently delete all documents stored in this vault. Other information, such as the vault history, Keyholders, and Guardians will be preserved, but the Vault will be inactive.

\n

Visit our FAQ for more details on archiving a vault.

\n
;\n case \"CANCEL_REQUEST\":\n return
\n

Are you sure you want to cancel this access request?

\n

The owner and guardians will be automatically notified by email.

\n
;\n case \"LOCK_VAULT\":\n return
\n

Are you sure you want to lock this vault? Keyholders will no longer be able to access the documents in this Vault once it is locked.

\n
;\n case \"CANCEL_SUBSCRIPTION\":\n return
\n

Are you sure you want to cancel your subscription? Your vaults will be automatically archived after 60 days if no new subscription is started.

\n

Visit our FAQ for more details.

\n
;\n }\n };\n\n return (\n \n
\n
\n { getIcon() }\n

{getTitle()}

\n
\n
\n \n
\n {getText()}\n
\n \n
\n
\n props.closeConfirmationModal()}>Cancel\n
\n
\n {props.confirmationModalOnConfirm(); closeModal();}}>Continue\n
\n
\n
\n );\n}\n\nconst mapStateToProps = (state, props) => {\n return {\n ...props,\n openConfirmationModal: state.utils.openConfirmationModal,\n confirmationModalType: state.utils.confirmationModalType,\n confirmationModalOnConfirm: state.utils.confirmationModalOnConfirm\n };\n};\n\n\nexport default compose(\n connect(mapStateToProps, { closeConfirmationModal })\n)(ConfirmationModal);","import React from 'react'\n\nexport const ScrollToTop = ({ children, location }) => {\n // Weirdness with Reach-router was stopping scroll to top\n React.useEffect(() => window.scrollTo(0, 0), [location.pathname])\n return
{ children}
\n};","import React from 'react';\nimport {compose} from \"redux\";\nimport {connect} from \"react-redux\";\nimport {toggleLoading} from \"../../redux/reducers/utils\";\nimport './UnknownError.scss';\n\n\nfunction UnknownError(props) {\n props.toggleLoading(false);\n return
\n

Fidelius encountered an error while performing that action.

\n

We apologize for the inconvenience and have notified our engineering team of the issue.

\n

If you need assistance, please contact us at 'support@fideliusvaults.com' or start a chat session.

\n
\n}\n\nexport default compose(\n connect(\n null,\n { toggleLoading }\n )\n)(UnknownError);\n\n","import React, {useEffect} from 'react';\nimport './Signup.scss';\nimport {compose} from \"redux\";\nimport {connect} from \"react-redux\";\nimport {toggleLoading} from \"../../redux/reducers/utils\";\nimport {useAuth0} from \"../../utils/providers/Auth0Provider\";\nimport {navigate} from \"@reach/router\";\n\n\nfunction Signup(props) {\n const { loginWithRedirect, loginWithPopup, loading, isAuthenticated } = useAuth0();\n useEffect(() => {\n if (!loading) {\n if (isAuthenticated) {\n navigate(\"/vaults\");\n } else {\n loginWithRedirect({screen_hint: 'signup'});\n }\n }\n }, [loading])\n\n return (\n
\n );\n};\n\nexport default compose(\n connect(\n null,\n { toggleLoading }\n )\n)(Signup);\n","import React, {useState} from 'react';\nimport Dialog from \"@material-ui/core/Dialog\";\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\nimport Divider from \"@material-ui/core/Divider\";\nimport Button from \"@material-ui/core/Button\";\nimport {compose} from \"redux\";\nimport {connect} from \"react-redux\";\nimport {closeConfirmationModal, openConfirmationModal, toggleLoading} from \"../../redux/reducers/utils\";\nimport * as _ from 'lodash';\nimport FdlOutlinedInput from \"../../utils/FdlOutlinedInput/FdlOutlinedInput\";\nimport InputLabel from \"@material-ui/core/InputLabel\";\nimport Select from \"@material-ui/core/Select\";\nimport MenuItem from \"@material-ui/core/MenuItem\";\nimport FormControl from \"@material-ui/core/FormControl\";\nimport Tooltip from \"@material-ui/core/Tooltip\";\nimport routes from '../../utils/api-client';\nimport {navigate} from \"@reach/router\";\nimport {updateClient} from \"../../redux/reducers/user\";\nimport {DOCUMENT_CATEGORIES} from \"../../config/constants\";\n\nfunction AddClientModal(props){\n\n let [activeStep, setActiveStep] = useState(1);\n let [name, setName] = useState('');\n let [email, setEmail] = useState('');\n let [phone, setPhone] = useState('');\n let [type, setType] = useState('INDIVIDUAL');\n let [notes, setNotes] = useState('');\n let [documentCategory, setDocumentCategory] = useState('INCOME');\n let [requestedDocuments, setRequestedDocuments] = useState([]);\n\n const stepTitles = [\"Basic Details\", \"Request Documents\", \"Preview\"]\n const stepDescriptions = [\"Fill out information about the client.\", \"Choose the types of documents you need from the client.\", \"Preview and finalize.\"]\n\n\n const closeModal = () => {\n props.closeModal();\n }\n\n const addClient = () => {\n const data = {\n name: name,\n email: email,\n phone_number: phone,\n type: type,\n notes: notes,\n requested_documents: requestedDocuments\n }\n routes.createClient(data).subscribe((response) => {\n props.updateClient(response.data);\n props.closeModal();\n //\n navigate(`/clients/${response.data.id}`)\n })\n };\n\n const updateRequestedDocuments = (category) => {\n let newDocuments = [...requestedDocuments];\n const index = _.indexOf(newDocuments, category);\n if (index !== -1) {\n newDocuments = _.pull(newDocuments, category);\n } else {\n newDocuments.push(category);\n }\n setRequestedDocuments(newDocuments)\n }\n\n return (\n \n
\n

Add a New Client

\n
\n
= 1 ? 'active': ''}`}>{activeStep > 1 ? '✓' : 1}
\n
= 2 ? 'active': ''}`}/>\n
= 2 ? 'active': ''}`}>{activeStep > 2 ? '✓' : 2}
\n {/*
= 3 ? 'active': ''}`}/>*/}\n {/*
= 3 ? 'active': ''}`}>3
*/}\n
\n \n
\n
\n
\n
\n
\n

{stepTitles[activeStep-1]}

\n

{stepDescriptions[activeStep-1]}

\n
\n
\n
\n\n
\n {\n activeStep === 1 &&\n
\n
\n setName(value)} />\n
\n
\n \n \n Type\n \n \n \n
\n
\n setEmail(value)} />\n
\n
\n setPhone(value)} />\n
\n\n
\n setNotes(value)} />\n
\n
\n }\n\n {\n activeStep === 2 &&\n
\n {\n _.map(Object.keys(DOCUMENT_CATEGORIES), category =>\n updateRequestedDocuments(category)}>\n
\n
\n

{DOCUMENT_CATEGORIES[category].title}

\n

{DOCUMENT_CATEGORIES[category].description}

\n
\n {\n !_.includes(requestedDocuments, category) ?\n \n :\n \n }\n
\n )\n }\n\n \n
\n \n

Need additional categories?

\n
\n
\n
\n }\n
\n \n
\n {\n activeStep > 1 &&\n
\n setActiveStep(activeStep - 1)}>Previous\n
\n }\n {\n activeStep === 2 ?\n addClient()}>Save\n :\n setActiveStep(activeStep + 1)}>Next\n }\n
\n\n
\n );\n}\n\n\nexport default compose(\n connect(\n null,\n { updateClient }\n )\n)(AddClientModal);\n","import React, {useEffect, useState} from 'react';\nimport * as moment from 'moment';\nimport './ClientDashboard.scss';\nimport * as _ from \"lodash\";\nimport {connect} from \"react-redux\";\nimport {toggleAccountPreferencesModal, toggleLoading} from \"../../redux/reducers/utils\";\nimport {compose} from \"redux\";\nimport Paper from \"@material-ui/core/Paper\";\nimport Checkbox from \"@material-ui/core/Checkbox\";\nimport DashboardBanner from \"../Dashboard/components/DashboardBanner\";\nimport Button from \"@material-ui/core/Button\";\nimport {navigate} from \"@reach/router\";\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\nimport VaultCard from \"../Dashboard/components/VaultCard\";\nimport FreeTrialCard from \"../Dashboard/components/FreeTrialCard\";\nimport ActivityLog from \"../Dashboard/ActivityLog/ActivityLog\";\nimport AddClientModal from \"./AddClientModal\";\nimport MaterialTable from \"material-table\";\n\nfunction ClientDashboard(props) {\n let [clients, setClients] = useState([]);\n let [openAddClientModal, setOpenAddClientModal] = useState(false);\n let [activityLog, setActivityLog] = useState([]);\n\n useEffect(() => {\n if (props.user) {\n if (props.user.clients && Object.keys(props.user.clients).length) {\n setClients(_.map(Object.keys(props.user.clients), clientKey => props.user.clients[clientKey]))\n }\n props.toggleLoading(true);\n // routes.e().subscribe((response) => {\n\n // const vaults = response.data.map((vault) => {\n // // format vault dates & display values\n // vault['lastUpdated'] = moment(vault.updated).format('MM-DD-YYYY');\n // vault['purposeDisplay'] = purposeMapping[vault['purpose']];\n //\n // _.forEach(vault[\"activity_log\"], (activity) => {\n // activity.vaultName = vault.vault_name;\n // activity.vaultId = vault.id;\n // });\n //\n // return vault;\n // });\n\n // setActivityLog(_.orderBy(_.flatten(_.map(vaults, 'activity_log')), (x) => moment(x.created), ['desc']));\n // });\n props.toggleLoading(false);\n\n }\n }, [props.user]);\n\n\n return (\n
\n setOpenAddClientModal(false)}/>\n
\n {/**/}\n
\n
\n \n
\n
\n

My Clients

\n
\n
\n
\n setOpenAddClientModal(true)}\n color=\"primary\">\n \n \n

Add New Client

\n
\n \n
\n
\n\n {\n props.user &&\n <>\n {\n !!!clients.length === 0 &&\n
\n
\n

No Clients Found.

\n

New to Fidelius? View our FAQ and How It Works pages for more information.

\n
\n
\n }\n {\n !!clients.length &&\n
\n navigate(`/clients/${rowData.id}`)}>{rowData.name}\n },\n { title: 'Documents Received?',\n field: 'pending_documents',\n render: rowData => {rowData.pending_documents ? 'No' : 'Yes'}\n },\n { title: 'Vaults',\n field: 'vaults',\n render: rowData => {rowData.vaults.length}\n },\n { title: 'Last Updated', field: 'updated',\n render: rowData => {moment(rowData.updated).format('MM-DD-YYYY')}\n },\n ]}\n data={clients}\n options={{\n filtering: false\n }}\n />\n
\n }\n \n }\n\n\n\n\n \n
\n\n
\n \n \n
\n
\n\n
\n
\n );\n};\n\nconst mapStateToProps = (state, props) => {\n return {\n ...props,\n user: state.user.user,\n };\n};\n\nexport default compose(\n connect(\n mapStateToProps,\n { toggleLoading, toggleAccountPreferencesModal }\n )\n)(ClientDashboard);\n","import React, {useEffect, useRef, useState} from 'react';\nimport './Client.scss';\nimport * as _ from \"lodash\";\nimport {useAuth0} from \"../../utils/providers/Auth0Provider\";\nimport {Helmet} from 'react-helmet';\nimport {compose} from \"redux\";\nimport {connect} from \"react-redux\";\nimport {openConfirmationModal, toggleLoading} from \"../../redux/reducers/utils\";\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\nimport {DOCUMENT_CATEGORIES, OWNER, USER_ICON_MAPPING} from \"../../config/constants\";\nimport Tooltip from \"@material-ui/core/Tooltip\";\nimport * as moment from \"moment\";\nimport Paper from \"@material-ui/core/Paper\";\nimport VaultStatus from \"../Vault/VaultStatus\";\nimport Divider from \"@material-ui/core/Divider\";\nimport VaultDetails from \"../Vault/VaultDetails\";\nimport VaultActivity from \"../Vault/VaultActivity\";\nimport Button from \"@material-ui/core/Button\";\nimport routes, {BASE_ROUTE} from \"../../utils/api-client\";\nimport useWindowDimensions, {humanFileSize} from \"../../utils/helpers\";\nimport {DashboardModal} from \"@uppy/react\";\nimport {Uppy} from \"@uppy/core\";\nimport AwsS3 from \"@uppy/aws-s3\";\nimport axios from \"axios\";\nimport {navigate} from \"@reach/router\";\nimport VaultCard from \"../Dashboard/components/VaultCard\";\n\nfunction Client(props) {\n let [client, setClient] = useState();\n let documentCategoryType = useRef();\n let userId = useRef();\n let [tempDocuments, setTempDocuments] = useState(null);\n let [openFileUploadModal, setOpenFileUploadModal] = useState(false);\n const { height, width } = useWindowDimensions();\n let [vaultBuffer, setVaultBuffer] = useState(1);\n\n const { loading } = useAuth0();\n\n useEffect(() => {\n if (width < 570) {\n setVaultBuffer(1);\n } else if (width < 792) {\n setVaultBuffer(2);\n } else if (width < 1024) {\n setVaultBuffer(3);\n } else if (width < 1124) {\n setVaultBuffer(2);\n } else if (width < 1352) {\n setVaultBuffer(3);\n } else {\n setVaultBuffer(4);\n }\n }, [width]);\n\n let [uppy, setUppy] = useState( new Uppy({\n autoProceed: true,\n resetProgress: true,\n restrictions: {\n maxFileSize: 10**8, // 100MB restriction\n maxNumberOfFiles: 30,\n minNumberOfFiles: 1,\n allowedFileTypes: false\n }}).use(AwsS3, {\n getUploadParameters(file) {\n const data = {\n file_name: file.name,\n file_type: file.type,\n user_id: props.clientId,\n category_type: 'ADVISOR',\n category_id: userId.current,\n category_sub_type: documentCategoryType.current,\n };\n // if no vault exists, store the file in a temp dir w/ UUID\n return axios.post(BASE_ROUTE + \"document_category_presigned_url\", data).then((response) => {\n return {\n method: \"put\",\n url: response.data\n }\n })\n }\n }));\n\n useEffect(() => {\n uppy.on('complete', (result) => {\n if (result.successful.length) {\n props.toggleLoading(true);\n const newDocuments = _.map(result.successful, file => {\n return {\n name: file.name,\n type: file.type,\n size: file.size,\n updated: (new Date()).toUTCString()\n }});\n routes.updateDocumentCategory(props.clientId, \"ADVISOR\", userId.current, documentCategoryType.current, newDocuments).subscribe((response) => {\n props.toggleLoading(false);\n setTempDocuments(response.data);\n });\n }\n });\n }, []);\n\n useEffect(() => {\n if (tempDocuments) {\n const newClient = {\n ...client\n };\n const index = _.findIndex(newClient.document_categories, (category) => {console.log(category, documentCategoryType.current); return category.type === documentCategoryType.current});\n newClient.document_categories[index] = tempDocuments;\n setClient(newClient);\n uppy.reset();\n setOpenFileUploadModal(false);\n }\n }, [tempDocuments]);\n\n\n useEffect(() => {\n if (props.user) {\n userId.current = props.user.id;\n props.toggleLoading(true);\n routes.getClient(props.clientId).subscribe((response) => {\n setClient(response.data)\n props.toggleLoading(false);\n });\n }\n }, [props.user]);\n\n\n return (\n !!client &&\n
\n \n Fidelius Vaults: Client {client.name}\n \n
\n

Client Details:

\n

{ client.name }

\n
\n
\n \n

You're the advisor of this client.

\n
\n
\n
\n
Email:
\n \n
\n
\n
Phone:
\n { client.phone }\n
\n
\n
Created:
\n {/*{ moment(vault.created).format('LLL') }*/}\n
\n
\n
Updated:
\n { moment(client.updated).format('LLL') }\n
\n
\n {\n client.notes &&\n \n

{ client.notes }

\n
\n }\n\n \n
\n
\n

Vaults

\n
\n
\n
\n navigate(`/clients/${client.id}/create-vault`)}\n\n color=\"primary\">\n \n \n

Create Vault

\n
\n \n
\n
\n\n {\n client.vaults.length ?\n
\n {_.map(client.vaults, vault => )}\n {\n !!((client.vaults.length) % vaultBuffer) &&\n _.map(new Array( vaultBuffer - (client.vaults.length) % vaultBuffer), (i) => {\n return
\n })\n }\n
\n :\n
\n
\n

No Vaults Found.

\n
\n
\n }\n\n
\n
\n

Documents

\n
\n
\n
\n\n {\n client.document_categories.length ?\n <>\n {\n _.map(client.document_categories, (category) => {\n return
\n
\n
\n

{DOCUMENT_CATEGORIES[category.type].title}

\n

{DOCUMENT_CATEGORIES[category.type].description}

\n
\n {documentCategoryType.current = category.type; setOpenFileUploadModal(true)}}\n color=\"secondary\">\n Upload\n \n
\n {\n !!category.documents.length ?\n
\n
\n \n \n
\n {\n _.map(_.orderBy(category.documents, (document) => moment(document.updated), ['desc']), (document, index) =>\n
routes.downloadVaultFile(vault.id, document.name)}\n >\n

\n { document.name }\n ({ humanFileSize(document.size) })\n

\n
\n

{ moment(document.updated).format('L LT') }

\n
\n
\n )\n }\n
:\n
\n No Documents Found\n
\n }\n
\n })\n }\n :\n
\n
\n

No Documents Found.

\n
\n
\n }\n\n
\n
\n

Event Log

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

No Activity Found.

\n
\n
\n \n
\n\n {\n openFileUploadModal &&\n setOpenFileUploadModal(false)}\n proudlyDisplayPoweredByUppy={false}\n metaFields={[\n { id: 'name', name: 'Name', placeholder: 'File name' }\n ]}\n />\n }\n
\n );\n};\n\nconst mapStateToProps = (state, props) => {\n return {\n ...props,\n user: state.user.user,\n };\n};\n\nexport default compose(\n connect(\n mapStateToProps,\n { toggleLoading, openConfirmationModal }\n )\n)(Client);\n\n","import React, {useEffect, useState} from 'react';\n\nimport './ClientVaultCreate.scss';\nimport Paper from \"@material-ui/core/Paper\";\nimport Divider from \"@material-ui/core/Divider\";\nimport VaultForm from \"../VaultForm/VaultForm\";\nimport {compose} from \"redux\";\nimport {connect} from \"react-redux\";\nimport {toggleLoading} from \"../../redux/reducers/utils\";\nimport {Helmet} from \"react-helmet\";\nimport routes from \"../../utils/api-client\";\nimport VaultCreate from \"../VaultCreate/VaultCreate\";\n\nfunction ClientVaultCreate(props) {\n\n let [client, setClient] = useState(null);\n\n\n useEffect(() => {\n if (props.user) {\n props.toggleLoading(true);\n routes.getClient(props.clientId).subscribe((response) => {\n setClient(response.data)\n props.toggleLoading(false);\n });\n }\n }, [props.user]);\n\n return client && ;\n}\n\nconst mapStateToProps = (state, props) => {\n return {\n ...props,\n user: state.user.user\n };\n};\n\nexport default compose(\n connect(\n mapStateToProps,\n { toggleLoading }\n )\n)(ClientVaultCreate);\n","import React, {useEffect} from 'react';\nimport './Fidelius.scss';\nimport {Router} from \"@reach/router\";\nimport VaultEdit from \"../VaultCreate/VaultEdit\";\nimport VaultCreate from \"../VaultCreate/VaultCreate\";\nimport Login from \"../Login/Login\";\nimport PrivateRoute from \"../../utils/ProtectedRoute\";\nimport NavBar from \"../NavBar/NavBar\";\nimport {compose} from \"redux\";\nimport {connect} from \"react-redux\";\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\nimport {useAuth0} from \"../../utils/providers/Auth0Provider\";\nimport {updateToken, updateUser} from \"../../redux/reducers/user\";\nimport Dashboard from \"../Dashboard/Dashboard\";\nimport {Helmet} from 'react-helmet';\nimport EmailConfirmation from \"../EmailConfirmation/EmailConfirmation\";\nimport Vault from \"../Vault/Vault\";\nimport ConfirmationModal from \"./ConfirmationModal\";\nimport {ScrollToTop} from \"./ScrollToTop\";\nimport UnknownError from \"../UnknownError/UnknownError\";\nimport ReactGA from 'react-ga';\nimport Signup from \"../Signup/Signup\";\nimport routes from \"../../utils/api-client\";\nimport * as _ from \"lodash\";\nimport ActivityLogItem from \"../Dashboard/ActivityLog/ActivityLogItem\";\nimport ActivityLogModal from \"../Dashboard/ActivityLog/ActivityLogModal\";\nimport Paper from \"@material-ui/core/Paper\";\nimport ClientDashboard from \"../ClientDashboard/ClientDashboard\";\nimport Client from \"../Client/Client\";\nimport ClientVaultCreate from \"../ClientVaultCreate/ClientVaultCreate\";\n\n\nfunction Fidelius(props) {\n const { user, getTokenSilently } = useAuth0();\n\n useEffect(() => {\n if (user) {\n props.updateToken(getTokenSilently());\n }\n }, [user]);\n\n useEffect(() => {\n if (props.token) {\n routes.getUser().subscribe((response) => {\n props.updateUser(user, response.data);\n });\n }\n }, [props.token]);\n\n useEffect(() => {\n ReactGA.initialize('UA-168015356-1');\n }, []);\n\n return (\n \n \n Fidelius Vaults\n \n\n
\n
\n
\n \n
\n
\n \n
\n
\n\n
\n \n \n \n \n \n \n \n {/**/}\n {/**/}\n {/**/}\n \n \n \n \n \n \n
\n\n \n\n \n );\n}\n\nconst mapStateToProps = (state, props) => {\n return {\n ...props,\n loading: state.utils.loading,\n token: state.user.token,\n user: state.user.user,\n };\n};\n\n\nexport default compose(\n connect(mapStateToProps, {updateUser, updateToken})\n)(Fidelius);\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.scss';\nimport {library} from '@fortawesome/fontawesome-svg-core'\n\nimport {Provider} from \"react-redux\"\nimport {createMuiTheme, ThemeProvider} from '@material-ui/core/styles';\nimport {\n faBars,\n faBox,\n faBoxOpen,\n faBriefcaseMedical,\n faCaretDown,\n faCaretLeft,\n faCaretRight,\n faCaretUp,\n faCheck,\n faCheckCircle,\n faCogs,\n faComments,\n faEnvelope,\n faExclamationCircle,\n faExclamationTriangle,\n faFileDownload,\n faFileUpload,\n faFolderOpen,\n faFolderPlus,\n faHome,\n faKey,\n faList,\n faLock,\n faLockOpen,\n faPlus,\n faQuestionCircle,\n faShieldAlt,\n faSignOutAlt,\n faTimes,\n faTrash,\n faUser,\n faUserCheck,\n faUserCog,\n faUserFriends,\n faUserLock,\n faUsers,\n faUserShield,\n faUserTie,\n faUserTimes,\n faHouseUser,\n faHospitalUser,\n faUserInjured, faEdit, faInfoCircle, faBan\n} from '@fortawesome/free-solid-svg-icons';\n\nimport { fa } from '@fortawesome/free-regular-svg-icons'\nimport config from \"./config/config\";\nimport {Auth0Provider} from \"./utils/providers/Auth0Provider\";\nimport store from \"./redux/store\";\nimport Fidelius from \"./components/Fidelius/Fidelius\";\nimport {StripeProvider} from 'react-stripe-elements';\n\nlibrary.add(faCheck, faTimes, faQuestionCircle, faCheckCircle, faExclamationCircle, faEdit, faInfoCircle,\n faFolderPlus, faFileUpload, faKey, faLock, faBox, faBoxOpen, faLockOpen,\n faBriefcaseMedical, faUserShield, faFolderOpen, faHome, faShieldAlt, faCaretDown, faUserInjured,\n faCaretLeft, faCaretRight, faCaretUp, faUser, faUserLock, faUserFriends, faFileDownload, faHospitalUser,\n faUserCheck, faUserTimes, faTrash, faUserCog, faSignOutAlt, faBars, faCogs, faList, faEnvelope, faHouseUser,\n faPlus, faComments, faUsers, faUserTie, faExclamationTriangle, faUserTie, faBan);\n\nconst theme = createMuiTheme({\n palette: {\n primary: {\n main: \"#02B085\"\n },\n secondary: {\n main: \"#3af\",\n contrastText: '#ffffff',\n },\n error: {\n main: \"#A54657\",\n contrastText: '#ffffff',\n },\n warning: {\n main: \"#fe8829\",\n contrastText: '#ffffff',\n },\n },\n typography: {\n fontFamily: 'Montserrat, Arial',\n },\n});\n\nconst onRedirectCallback = appState => {\n window.history.replaceState(\n {},\n document.title,\n appState && appState.targetUrl\n ? appState.targetUrl\n : window.location.pathname\n );\n};\n\n\nReactDOM.render(\n \n \n \n \n \n \n \n \n \n ,\n document.getElementById('root'));\n"],"sourceRoot":""}