{"version":3,"sources":["stores/commonStore.ts","config/index.ts","api/api.ts","stores/memberStore.ts","api/mfa.ts","stores/mfaStore.ts","stores/practiceStore.ts","types/project.ts","stores/projectStore.ts","stores/clientStore.ts","utils/Constants.ts","types/stage.ts","types/feeCalculationStage.ts","types/feeCalculation.ts","stores/feeCalculationStore.ts","stores/rootStore.ts","components/organisms/TermsAndConditionsAdminForm.tsx","components/pages/Setup/AcceptTermsAdmin.tsx","components/organisms/TermsAndConditionsUserForm.tsx","components/pages/Setup/AcceptTermsUser.tsx","components/molecules/FormInput.tsx","utils/validation/AddEditMemberFormValidation.ts","components/molecules/Alert.tsx","components/molecules/FormLabel.tsx","components/molecules/CurrencyFormInput.tsx","components/molecules/PromptIfDirty.tsx","components/organisms/AddEditMemberForm.tsx","components/organisms/Loading.tsx","types/practice.ts","types/member.ts","components/organisms/SetupFormSteps.tsx","components/pages/Setup/AddEditMember.tsx","components/organisms/ContactUs.tsx","components/organisms/ConfirmPracticeDetailsForm.tsx","components/pages/Setup/Step1.tsx","utils/validation/PracticeOverheadsFormValidation.ts","components/organisms/PracticeOverheadsForm.tsx","components/pages/Setup/Step2.tsx","components/organisms/PracticeMembersList.tsx","components/pages/Setup/Step3.tsx","components/molecules/FormReadonlyCurrency.tsx","components/organisms/SetupSummary.tsx","components/pages/Setup/Step4.tsx","components/pages/NotFound.tsx","components/pages/Error.tsx","utils/Helpers.ts","components/molecules/FeeCalculationActionsDropdown.tsx","components/molecules/ProjectActionsDropdown.tsx","components/molecules/usePagination.js","components/molecules/Pagination.js","components/pages/Projects/Projects.tsx","components/pages/Settings.tsx","components/atoms/Button.tsx","components/pages/MobileLanding.tsx","components/pages/UnsupportedBrowserLanding.tsx","components/molecules/UserMenu.tsx","components/atoms/Logo.tsx","components/organisms/Header.tsx","components/organisms/Footer.tsx","components/molecules/InfoBar.tsx","components/organisms/SettingsSideNavigation.tsx","components/organisms/SideNavigationMobile.tsx","components/pages/Settings/PracticeDetails.tsx","components/pages/Settings/AnnualOverheads.tsx","components/pages/Settings/StaffMembers.tsx","components/pages/Settings/AddEditMemberSettings.tsx","utils/validation/EditPracticeFormValidation.ts","components/organisms/EditPracticeForm.tsx","components/pages/Settings/EditPracticeSettings.tsx","utils/validation/AddEditProjectFormValidation.ts","types/client.ts","components/molecules/FormTextAreaInput.tsx","components/organisms/AddEditProjectForm.tsx","components/organisms/ProjectSideNavigation.tsx","components/pages/Projects/AddEditProject.tsx","components/organisms/ProjectDetailsForm.tsx","components/pages/Projects/ProjectDetails.tsx","types/feeCalculationStageTask.ts","utils/validation/FeeCalculationFormValidation.ts","components/molecules/FormInputTaskNote.tsx","components/molecules/PercentageFormInput.tsx","components/molecules/FormInputTaskName.tsx","components/organisms/FeeCalculationStaffCostForm.tsx","types/fixedCost.ts","components/organisms/FeeCalculationFixedCostForm.tsx","components/organisms/FeeCalculationStageTaskForm.tsx","components/organisms/FeeCalculationDetailsForm.tsx","components/pages/FeeCaculation/FeeCalculationDetails.tsx","components/organisms/FeeCalculationStagesForm.tsx","components/pages/FeeCaculation/FeeCalculationStages.tsx","components/pages/Projects/DuplicateFeeCalculationProject.tsx","components/molecules/CookieBanner.tsx","components/organisms/HelpSideNavigation.tsx","components/pages/Help/FeeCalculationOverview.tsx","components/pages/Help/GeneralInformation.tsx","components/pages/Help/TutorialAndArticles.tsx","App.tsx","reportWebVitals.ts","index.tsx"],"names":["CommonStore","rootStore","this","observable","action","stepNumber","runInAction","onBoardingStep","isAppLoaded","isMobileMenuOpen","Config","CLIENT_APP_URL","process","API_URL","MFA_API_URL","AUTH_URL","axios","defaults","baseURL","withCredentials","interceptors","request","use","config","source","CancelToken","cancelToken","token","setTimeout","cancel","error","Promise","reject","response","undefined","message","console","log","history","push","status","window","innerWidth","location","replace","responseBody","data","memberEnd","practiceEnd","projectEnd","clientEnd","feeCalculationEnd","requests","url","get","includes","Date","getTime","then","body","post","put","delete","current","acceptTerms","deleteMember","id","create","member","edit","getPractice","practice","getProject","getProjects","slim","live","archived","getProjectCount","project","getClient","getClients","client","getFeeCalculation","deleteFeeCalculation","getFeeCalculatios","feeCalculation","syncFeeCalculation","feeCalculationDetailed","deleteTask","deleteFixedCost","deleteStaffCost","exportFeeCalculationCreateContract","duplicate","feeCalculationId","projectId","MemberStore","callback","isLoadingMember","api","auth","authenticated","isAuthenticated","a","acceptedTermsAndConditions","instance","timeout","validate","cubeMemberId","deviceId","MfaStore","email","deviceIdCookie","document","cookie","split","find","row","startsWith","mfa","toString","PracticeStore","onboarded","computed","isLoadingPractice","practiceMember","memberId","members","filter","editedMember","practiceMemberErrors","Object","values","errors","forEach","practiceMemberError","index","createdMember","Project","init","number","name","existingClient","category","subCategory","siteAddress","description","tertiaryCategory","clientId","existingClientId","created","updated","feeCalculationSummaries","totalProjectFee","assign","projectStore","isLoading","projectCount","projects","suppressLoading","createdProject","clientStore","localClients","clients","slice","newClient","map","objClient","clientName","contactName","contactEmail","ProjectStatuses","MemberAccessLevels","FeeCalculationStates","DomesticCategories","CommercialCategories","RibaStages","stageId","colour","NonEditableStates","Stage","FeeCalculationStage","stage","feeCalculationStageTasks","totalStageCost","practiceMargin","clientStageFee","enabled","stageActivities","FeeCalculation","version","state","createdBy","lastModifiedBy","lastModified","inSync","feeCalculationStages","totalProjectCost","constructionCost","populateDefaultStages","FeeCalculationDetailed","acceptUpdates","newFeeCalculation","newStages","i","newStage","FeeCalculationStore","isLoadingFeeCalc","createdFeeCalc","editedFeeCalculation","newFeeCalc","taskIds","deletedTasks","length","all","taskId","deleted","staffCostIds","deletedStaff","staffCostId","fixedCostIds","deletedFixedCosts","fixedCostId","open","projectUrl","duplicatedFeeCalc","isDirty","isDirtyForm","configure","enforceActions","RootStoreContext","createContext","memberStore","mfaStore","commonStore","practiceStore","feeCalculationStore","ProjectStore","ClientStore","TermsAndConditionsAdminForm","observer","props","handleSubmit","useContext","acceptTermsAndConditions","login","isOnboarded","useState","checkedTerms","setChecked","checkedAuthorised","setCheckAuthorised","useEffect","className","target","href","type","onClick","onChange","checked","disabled","finally","Setup","TermsAndConditionsUserForm","FormInput","field","form","touched","setFieldValue","setFieldTouched","handleChange","e","value","getIn","serverErrors","helptext","AddEditMemberFormValidation","Yup","shape","title","required","firstName","lastName","jobTitle","billableStatus","workingHoursPerWeek","when","is","positive","max","workingWeeksPerYear","integer","billableHours","annualSalary","moreThan","otherBenefits","Alert","styleClass","text","FormLabel","labelText","subText","CurrencyFormInput","style","textAlign","thousandSeparator","allowEmptyFormatting","prefix","min","onKeyDown","keyCode","preventDefault","returnValue","charCode","onFocus","defaultValue","onValueChange","val","floatValue","PromptIfDirty","setIsDirtyForm","formik","useFormikContext","dirty","AddEditMemberForm","handleBack","confirmButtonText","cancelButtonText","editPracticeMember","createPracticeMember","getPracticeMember","pathname","useLocation","formSubmitted","setFormSubmitted","showAdminModal","setShowAdminModal","confirmButton","setConfirmButton","useLayoutEffect","scrollTo","editMember","CalculateValuesComponent","fieldValues","initialRender","useRef","Number","initialValues","enableReinitialize","validationSchema","validateOnChange","validateOnBlur","onSubmit","active","oldMemberData","accessLevel","savePracticeMember","practiceMemberForm","keyEvent","as","component","placeholder","handleAccessRightChange","rel","keys","submitForm","appElement","getElementById","isOpen","onRequestClose","overlayClassName","contentLabel","data-remodal-action","Loading","Practice","cubePracticeId","addressLineOne","addressLineTwo","addressLineThree","city","county","postcode","rentAndServiceCharge","utilities","softwareAndIT","officeITAndCommunications","marketingCosts","companyCarFuelAllowance","travelCost","auditFeesAndAccountancy","bankChargesAndInterest","professionalIndemnityInsurance","otherInsuranceCosts","legalCosts","depreciation","badDebts","pensionCosts","nationalInsuranceContribution","otherAnnualCosts","totalAnnualOverheadCosts","Member","employerNIContribution","totalSalaryPackage","costRatePerHour","costRatePerDay","invitedToFeeCalculator","TaskMember","hours","staffCost","SetupFormSteps","currentStep","some","to","AddEditMember","match","loadPracticeMember","clearPracticeMemberErrors","params","ContactUs","ConfirmPracticeDetailsForm","summary","children","width","scope","Step1","PracticeOverheadsFormValidation","PracticeOverheadsForm","isSettingsPage","editPractice","showWarning","setShowWarning","saveOverheads","overheadsForm","color","Step2","PracticeMembersList","handleReload","deletePracticeMember","React","memberDeletionModalIsOpen","setMemberDeletionModalIsOpen","memberDeactivationModalIsOpen","setMemberDeactivationModalIsOpen","selectedMember","selectMember","closeMemberDeletionModal","closeMemberDeactivationModal","data-tip","data-for","place","effect","border","textColor","backgroundColor","borderColor","sort","b","toLowerCase","staffMember","toLocaleString","navigator","language","maximumFractionDigits","openMemberDeactivationModal","reduce","total","openMemberDeletionModal","confirmMemberDeletion","confirmMemberDeactivation","Step3","FormReadonlyCurrency","SetupSummary","data-js-has-toggle","data-js-toggle-element","savePractice","Step4","NotFound","Error","errorId","getFeeCalculationStatusName","feeCalculationState","canEditFeeCalculation","canEdit","isFeeCalculationOwnerOrAdmin","FeeCalculationActionsDropdown","handleSelection","isOwnerOrAdmin","projectName","feeCalculationForm","saveFeeCalculation","editFeeCalculation","exportFeeCalculationExcel","getFeeCalculationDetailed","duplicateFeeCalculation","setValue","loading","setLoading","exportContractModalIsOpen","setExportContractModalIsOpen","stateModalIsOpen","setStateModalIsOpen","duplicateModalIsOpen","setDuplicateModalIsOpen","deleteModalIsOpen","setDeleteModalIsOpen","setState","trackEvent","event","ReactGA","label","confirmExportFeeCalculationCreateContract","confirmStateChange","feeCalculationCopy","saveUnderExistingProject","reload","deleteFeeCalc","ProjectActionsDropdown","editProject","deleteProject","archiveModelIsOpen","setArchiveModelIsOpen","deleteModelIsOpen","setDeleteModelIsOpen","restoreProject","DOTS","range","start","end","Array","from","_","idx","Pagination","onPageChange","totalCount","siblingCount","currentPage","pageSize","paginationRange","useMemo","totalPageCount","Math","ceil","leftSiblingIndex","rightSiblingIndex","shouldShowLeftDots","shouldShowRightDots","firstPageIndex","lastPageIndex","leftRange","rightRange","middleRange","usePagination","lastPage","classnames","pageNumber","selected","Projects","validateMemberMFA","getMember","expandProject","setExpandedProject","editProjectName","setEditProjectName","newProjectName","setNewProjectName","searchTerm","setSearchTerm","searchResults","setSearchResults","gettingProject","setGettingProject","feeCalculations","setFeeCalculations","searchResultsCount","setSearchResultsCount","editFeeCalcName","setEditFeeCalcName","newFeeCalcName","setNewFeeCalcName","showLive","setShowLive","showArchived","setShowArchived","setCurrentPage","PageSize","loadedMember","localPractice","res","results","lowerSearchTerm","toggleProjectExpand","toggleEditProjectName","p","toggleEditFeeCalcName","feeCalcId","feeCalc","f","newName","handleFreeCalcRefresh","projectIndex","aria-controls","aria-expanded","updateProj","Intl","DateTimeFormat","year","month","day","format","colSpan","feeCalcIndex","updateFee","page","Settings","JSON","stringify","Button","linkTo","externalLink","MobileLanding","UserMenu","logout","data-js-toggle-control","Logo","viewBox","xmlns","fill","fillRule","d","Header","Footer","height","xmlnsXlink","transform","xlinkHref","mask","InfoBar","handleInfoBarClose","cursor","SettingsSideNavigation","SideNavigationMobile","toggleMobileMenuOpen","classList","add","remove","PracticeDetails","AnnualOverheads","showSuccessAlert","setSuccessAlert","StaffMembers","unsetPractice","AddEditMemberSettings","EditPracticeFormValidation","optional","EditPracticeForm","editPractice1","practiceForm","EditPracticeSettings","AddEditProjectFormValidation","Client","practiceId","FormTextAreaInput","data-gramm_editor","AddEditProjectForm","clearLoadedClient","editClient","createClient","createProject","subCategories","setSubCategories","saveProjectError","setSaveProjectError","isDuplicateName","setIsDuplicateName","isDuplicateRef","setIsDuplicateRef","changeSubCategories","saveProject","isInitialValid","saveClient","projectForm","GetClient","flag","newClientToggle","onBlur","currentTarget","dupe","proj","checkForDuplicateProjectName","checkForDuplicateProjectRef","projectStatus","resetForm","isValid","ProjectSideNavigation","expandedFeeCalcMenuItem","setExpandedItem","display","AddEditProject","goBack","ProjectDetailsForm","createFeeDraftCalculation","createDraftFeeCalculation","ProjectDetails","FeeCalculationStageTask","staffCosts","fixedCosts","note","marginAsPercent","clientTaskFee","totalTaskCost","showTaskNote","FeeCalculationFormValidation","of","FormTextAreaInputTaskNote","hasError","PercentageFormInput","suffix","decimalScale","FormInputTaskName","haserror","FeeCalculationStaffCostForm","addStaffCostToDelete","removeStaffCost","feeCalculationStaffCost","stageIndex","taskIndex","staffCostIndex","Set","selectedStaffMember","step","round","minimumFractionDigits","formInSync","x","FixedCost","fixedCost","FeeCalculationFixedCostForm","feeCalculationStageForm","addFixedCostToDelete","removeFixedCost","feeCalculationFixedCost","fixedCostIndex","FeeCalculationStageTaskForm","feeCalculationStage","feeCalculationStageTask","addTaskToDelete","removeTask","showTextBox","setShowTextBox","activity","activityIndex","FeeCalculationDetailsForm","deleteTasks","deleteFixedCosts","deleteStaffCosts","expandFeeCalculationStage","toggleFeeCalculationStageExpand","showLeftArrow","toggleLeftArrow","showRightArrow","toggleRightArrow","tasksDirty","setTasksDirty","disableButtons","setDisableButtons","editingTaskFee","setEditingTaskFee","tasksToDelete","setTasksToDelete","fixedCostsToDelete","setFixedCostsToDelete","staffCostsToDelete","setStaffCostsToDelete","hasAnyStageCostChange","setHasAnyStageCostChange","anyStageCostChange","isAutoSave","calculateStageCost","calculateStageFee","calculateProjectFee","calculateProjectCost","calculateTaskCost","staffCostTotal","fixedCostTotal","stageCost","stageFee","projectCost","projectFee","calculateConstructionPerc","constructPercent","toFixed","calculateTotalMarginPerc","marginPercent","margin","allStaffCosts","flatMap","s","t","costs","dismissSyncChanges","acceptSyncChanges","actions","setValues","stageMarginPercent","stageMargin","stageHasError","taskCost","thisTaskCost","thisTaskMarginPercent","key","thisTaskFee","validateForm","setErrors","FeeCalculationDetails","setCanEdit","setIsOwnerOrAdmin","showDeclineSuccessBanner","setShowDeclineSuccessBanner","showAcceptSuccessBanner","setShowAcceptSuccessBanner","URLSearchParams","search","FeeCalculationStagesForm","modalIsOpen","setModalIsOpen","stagesToDelete","setStagesToDelete","saveFeeCalculationStages","handleFormSubmit","feeCalcStage","deleteStageData","FeeCalculationStages","DuplicateFeeCalculationProject","CookieBanner","handleCookieBannerClose","HelpSideNavigation","FeeCalculationOverview","GeneralInformation","TutorialAndArticles","App","initialize","authenticateMember","showBetaBanner","setBannerVisibility","showCookieBanner","setCookieBannerVisibility","betaBoolean","bannerBoolean","localStorage","getItem","loadedPractice","indexOf","redirectIfVersLower","browserVersion","browserName","setItem","exact","path","render","AcceptTerms","AcceptTermsUser","UnsupportedBrowserLanding","withRouter","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","createBrowserHistory","ReactDOM"],"mappings":"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","file":"static/js/main.ca50ef75.chunk.js","sourcesContent":["import { RootStore } from \"./rootStore\";\r\nimport { action, observable, reaction ,runInAction } from \"mobx\";\r\n\r\nexport default class CommonStore {\r\n rootStore: RootStore;\r\n @observable isAppLoaded = false;\r\n @observable onBoardingStep = 0;\r\n @observable isMobileMenuOpen = false;\r\n\r\n constructor(rootStore: RootStore) {\r\n this.rootStore = rootStore;\r\n }\r\n\r\n @action setOnBoardingStep = (stepNumber : number) =>{\r\n if(stepNumber){\r\n runInAction(()=>{\r\n this.onBoardingStep = stepNumber;\r\n })\r\n }\r\n }\r\n\r\n @action setIsAppLoaded = () => { this.isAppLoaded = true; }\r\n\r\n @action toggleMobileMenuOpen = () => {\r\n runInAction(()=>{\r\n this.isMobileMenuOpen = !this.isMobileMenuOpen\r\n })\r\n }\r\n\r\n\r\n}","const Config = {\r\n CLIENT_APP_URL: process.env.REACT_APP_CLIENT_APP_URL || '',\r\n API_URL: process.env.REACT_APP_API_URL || '',\r\n MFA_API_URL: process.env.REACT_APP_MFA_API_URL || '',\r\n AUTH_URL : process.env.REACT_APP_AUTH_URL || ''\r\n}\r\n\r\nexport default Config","import axios, { AxiosResponse } from 'axios';\r\nimport { history } from '../';\r\nimport { Member } from '../types/member';\r\nimport { Practice } from '../types/practice'\r\nimport { Project } from '../types/project'\r\nimport { Client } from '../types/client'\r\nimport { Authenticate } from '../types/authenticate';\r\nimport Config from '../config';\r\nimport { FeeCalculation, FeeCalculationDetailed } from '../types/feeCalculation';\r\nimport { ExportContractResponse } from '../types/exportContractResponse';\r\n\r\naxios.defaults.baseURL = Config.API_URL;\r\naxios.defaults.withCredentials = true\r\n\r\naxios.interceptors.request.use((config) => {\r\n config.withCredentials = true;\r\n const source = axios.CancelToken.source();\r\n config.cancelToken = source.token;\r\n setTimeout(() => source.cancel('Timed out after 3m'), 180000);\r\n return config\r\n}, error => {\r\n return Promise.reject(error);\r\n});\r\n\r\naxios.interceptors.response.use(undefined, error => {\r\n if (error.message === 'Network Error' && !error.response) {\r\n //TODO: Error logging\r\n console.log(error);\r\n history.push('/error')\r\n }\r\n const { status } = error.response || 'No error.response';\r\n console.log('API error: [' + status + '] ' + error.message)\r\n if (status === 404) {\r\n console.log('Not found error')\r\n console.log(error);\r\n history.push('/error/404')\r\n }\r\n if (status === 400) {\r\n //TODO: Error logging\r\n console.log('No cookie found error')\r\n console.log(error);\r\n history.push('/error/400')\r\n }\r\n if (status === 405) {\r\n //TODO: Error logging\r\n console.log(error);\r\n history.push('/error/405')\r\n }\r\n if (status === 500) {\r\n //TODO: Error logging\r\n console.log(error);\r\n history.push('/error/500')\r\n }\r\n if (status === 401) {\r\n //TODO: Error logging\r\n console.log(error);\r\n console.error('Member unauthorised');\r\n if (window.innerWidth < 900) {\r\n history.push('/mobile-landing');\r\n } else {\r\n window.location.replace(Config.AUTH_URL + 'login?ReturnUrl=' + Config.CLIENT_APP_URL)\r\n }\r\n }\r\n\r\n // //Member has too many practices\r\n if (status === 470) {\r\n //TODO: Error logging\r\n console.log('Member has too many practices')\r\n console.log(error);\r\n history.push('/error/470')\r\n }\r\n //Member doesn't have any practices to onboard\r\n if (status === 471) {\r\n //TODO: Error logging\r\n console.log('Member doesnt have any practices to onboard')\r\n console.log(error);\r\n history.push('/error/471')\r\n }\r\n //Member doesn't exist in cube\r\n if (status === 472) {\r\n //TODO: Error logging\r\n console.log('Member doesnt exist in cube')\r\n console.log(error);\r\n history.push('/error/472')\r\n }\r\n //Member is not enrolled to fee calc\r\n if (status === 473) {\r\n //TODO: Error logging\r\n console.log('Member is not enrolled to fee calc')\r\n console.log(error);\r\n history.push('/error/473')\r\n }\r\n //Member is on mobile device\r\n if (status === 474) {\r\n //TODO: Error logging\r\n console.log('Member is on mobile device')\r\n console.log(error);\r\n history.push('/mobile-landing')\r\n }\r\n\r\n throw error.response;\r\n});\r\n\r\nconst responseBody = (response: AxiosResponse) => response.data;\r\n\r\nconst sleep = (ms: number) => (response: AxiosResponse) =>\r\n new Promise(resolve => setTimeout(() => resolve(response), ms));\r\n\r\nconst memberEnd = '/Member';\r\nconst memberAcceptTermsEnd = '/Member/accept-terms-and-conditions';\r\nconst authEnd = '/Authenticate';\r\nconst practiceEnd = '/Practice';\r\nconst projectEnd = '/Project';\r\nconst clientEnd = '/Client';\r\nconst feeCalculationEnd = '/fee-calculation';\r\n\r\nconst requests = {\r\n get: (url: string) => axios.get(`${url}${url.includes('?') ? '&' : '?'}timestamp=${new Date().getTime()}`).then(responseBody),\r\n post: (url: string, body: {}) => axios.post(url, body).then(responseBody),\r\n put: (url: string, body: {}) => axios.put(url, body).then(responseBody),\r\n delete: (url: string) => axios.delete(url).then(responseBody),\r\n}\r\n\r\nconst UserMethods = {\r\n current: (): Promise => requests.get(memberEnd),\r\n acceptTerms: () => requests.put(memberAcceptTermsEnd, {}),\r\n deleteMember: (id: number) => requests.delete(`${memberEnd}/${id}`),\r\n create: (member: Member): Promise => requests.post(memberEnd, member),\r\n edit: (member: Member): Promise => requests.put(memberEnd, member),\r\n}\r\n\r\nconst AuthenticateMethods = {\r\n current: (): Promise => requests.get(authEnd)\r\n}\r\n\r\nconst PracticeMethods = {\r\n getPractice: (): Promise => requests.get(practiceEnd),\r\n edit: (practice: Practice) => requests.put(practiceEnd, practice),\r\n}\r\n\r\nconst ProjectMethods = {\r\n getProject: (id: string): Promise => requests.get(`${projectEnd}/${id}`),\r\n getProjects: (slim: boolean, live: boolean, archived: boolean): Promise> => requests.get(`${projectEnd}?slim=${slim}&live=${live}&archived=${archived}`),\r\n getProjectCount: (live: boolean, archived: boolean): Promise => requests.get(`${projectEnd}/count?live=${live}&archived=${archived}`),\r\n create: (project: Project): Promise => requests.post(projectEnd, project),\r\n edit: (project: Project): Promise => requests.put(projectEnd, project),\r\n delete: (id: number) => requests.delete(`${projectEnd}/${id}`),\r\n}\r\n\r\nconst ClientMethods = {\r\n getClient: (id: number): Promise => requests.get(`${clientEnd}/${id}`),\r\n getClients: (): Promise> => requests.get(clientEnd),\r\n create: (client: Client): Promise => requests.post(clientEnd, client),\r\n edit: (client: Client): Promise => requests.put(clientEnd, client),\r\n}\r\n\r\nconst FeeCalculationMethods = {\r\n getFeeCalculation: (id: string): Promise => requests.get(`${feeCalculationEnd}/${id}`),\r\n deleteFeeCalculation: (id: string) => requests.delete(`${feeCalculationEnd}/${id}`),\r\n getFeeCalculatios: (): Promise> => requests.get(feeCalculationEnd),\r\n create: (feeCalculation: FeeCalculation): Promise => requests.post(feeCalculationEnd, feeCalculation),\r\n edit: (feeCalculation: FeeCalculation): Promise => requests.put(feeCalculationEnd, feeCalculation),\r\n syncFeeCalculation: (feeCalculationDetailed: FeeCalculationDetailed) => requests.post(`${feeCalculationEnd}/sync-fee-calculation`, feeCalculationDetailed),\r\n deleteTask: (id: number) => requests.delete(`${feeCalculationEnd}/stage/task/${id}`),\r\n deleteFixedCost: (id: number) => requests.delete(`${feeCalculationEnd}/stage/task/fixed-cost/${id}`),\r\n deleteStaffCost: (id: number) => requests.delete(`${feeCalculationEnd}/stage/task/staff-cost/${id}`),\r\n exportFeeCalculationCreateContract: (id: string): Promise => requests.post(`${feeCalculationEnd}/create-contract/${id}`, {}),\r\n duplicate: (feeCalculationId: string, projectId: string): Promise => requests.get(`${feeCalculationEnd}/duplicate-fee-calculation/${projectId}/${feeCalculationId}`),\r\n}\r\n\r\nexport default {\r\n AuthenticateMethods,\r\n UserMethods,\r\n PracticeMethods,\r\n ProjectMethods,\r\n ClientMethods,\r\n FeeCalculationMethods,\r\n}","import api from '../api/api';\r\nimport { RootStore } from './rootStore';\r\nimport { Member } from '../types/member';\r\nimport { Authenticate } from '../types/authenticate';\r\nimport Config from '../config';\r\nimport { action, computed, observable, runInAction, toJS } from 'mobx';\r\n\r\nexport default class MemberStore {\r\n rootStore: RootStore;\r\n\r\n constructor(rootStore: RootStore) {\r\n this.rootStore = rootStore;\r\n }\r\n\r\n @observable member: Member | null = null;\r\n @observable editMember: Member | null = null;\r\n @observable auth: Authenticate | null = null;\r\n @observable isLoadingMember = false;\r\n @observable isAuthenticated : boolean = false;\r\n\r\n\r\n // Implemented a callback instead of an await async function because FireFox did not respect our wishes.\r\n @action authenticateMember = (callback: any) => {\r\n this.isLoadingMember = true;\r\n try {\r\n api.AuthenticateMethods.current().then((auth) => {\r\n if (auth) {\r\n runInAction(() => {\r\n this.auth = auth;\r\n if (auth.authenticated) {\r\n this.isAuthenticated = true;\r\n } else {\r\n this.isAuthenticated = false;\r\n }\r\n });\r\n callback(auth)\r\n }\r\n });\r\n } catch (error) {\r\n runInAction(() => {\r\n this.isLoadingMember = false;\r\n });\r\n console.log(error)\r\n } finally {\r\n runInAction(() => {\r\n this.isLoadingMember = false;\r\n });\r\n }\r\n }\r\n\r\n @action getMember = async () => {\r\n this.isLoadingMember = true;\r\n try {\r\n const member = await api.UserMethods.current();\r\n runInAction(() => {\r\n this.member = member;\r\n });\r\n return this.member;\r\n } catch (error) {\r\n runInAction(() => {\r\n this.isLoadingMember = false;\r\n });\r\n console.log(error);\r\n } finally {\r\n runInAction(() => {\r\n this.isLoadingMember = false;\r\n });\r\n }\r\n }\r\n\r\n @action login = () => {\r\n window.location.replace(Config.AUTH_URL + 'login?ReturnUrl=' + Config.CLIENT_APP_URL)\r\n }\r\n\r\n @action logout = () => {\r\n this.member = null;\r\n window.location.replace(Config.AUTH_URL + 'api/sitecore/Security/Logout?ReturnUrl='+ Config.AUTH_URL + 'login?ReturnUrl=' + Config.CLIENT_APP_URL)\r\n }\r\n\r\n @action acceptTermsAndConditions = async () => {\r\n this.isLoadingMember = true;\r\n try {\r\n await api.UserMethods.acceptTerms();\r\n runInAction('Accepting Terms', () => {\r\n if (this.member) {\r\n this.member.acceptedTermsAndConditions = true;\r\n }\r\n });\r\n } catch (error) {\r\n console.log(error);\r\n } finally {\r\n runInAction(() => {\r\n this.isLoadingMember = false;\r\n });\r\n }\r\n }\r\n}","import axios, { AxiosResponse } from 'axios';\r\nimport { history } from '..';\r\nimport Config from '../config';\r\n\r\nvar instance = axios.create({\r\n baseURL: Config.MFA_API_URL,\r\n timeout: 30000,\r\n withCredentials: true\r\n});\r\n\r\ninstance.interceptors.request.use((config) => {\r\n const source = axios.CancelToken.source();\r\n config.cancelToken = source.token;\r\n setTimeout(() => source.cancel('Timed out after 30s'), 30000);\r\n return config\r\n}, error => {\r\n return Promise.reject(error);\r\n});\r\n\r\ninstance.interceptors.response.use(undefined, error => {\r\n if (error.message === 'Network Error' && !error.response) {\r\n history.push('/error')\r\n }\r\n\r\n const { status } = error.response || 'No error.response';\r\n\r\n if (status === 404) {\r\n history.push('/error/404')\r\n }\r\n\r\n throw error.response;\r\n});\r\n\r\nconst responseBody = (response: AxiosResponse) => response.data;\r\n\r\nconst validate = '/validate';\r\n\r\nconst requests = {\r\n get: (url: string) => instance.get(`${url}`).then(responseBody)\r\n}\r\n\r\nconst ValidateMethods = {\r\n validate: (cubeMemberId: number, deviceId: string): Promise => requests.get(`${validate}?deviceId=${deviceId}`),\r\n}\r\n\r\nexport default { ValidateMethods }","\r\nimport mfa from '../api/mfa';\r\nimport { RootStore } from './rootStore';\r\nimport { action, observable, runInAction } from 'mobx';\r\n\r\nexport default class MfaStore {\r\n rootStore: RootStore;\r\n\r\n constructor(rootStore: RootStore) {\r\n this.rootStore = rootStore;\r\n }\r\n\r\n @observable isLoadingMember = false;\r\n @observable mfa: any | null = null;\r\n\r\n // Implemented a callback instead of an await async function because FireFox did not respect our wishes.\r\n @action validateMemberMFA = (callback: any, cubeMemberId: number, email: string) => {\r\n this.isLoadingMember = true;\r\n \r\n try {\r\n let deviceId = '';\r\n let deviceIdCookie = document.cookie.split('; ').find(row => row.startsWith('deviceId='))\r\n if(deviceIdCookie) {\r\n deviceId = deviceIdCookie.split('=')[1];\r\n }\r\n\r\n // let deviceId = window.localStorage.getItem('deviceId')?.toString() || '';\r\n // deviceId = deviceId === 'undefined' ? '' : deviceId;\r\n // console.log(\"device id: \" + deviceId);\r\n \r\n \r\n mfa.ValidateMethods.validate(cubeMemberId, deviceId).then((mfa) => {\r\n // console.log(mfa.action);\r\n if(mfa.action) {\r\n document.cookie = 'deviceId=' + mfa.deviceId.toString() + '; max-age=2592000;';\r\n if(mfa.url){\r\n window.location.replace(`${mfa.url}?serviceId=1&deviceId=${mfa.deviceId}`);\r\n }\r\n return callback();\r\n }\r\n });\r\n } catch (error) {\r\n console.log(error)\r\n } finally {\r\n runInAction(() => {\r\n this.isLoadingMember = false;\r\n });\r\n }\r\n }\r\n}","import api from '../api/api';\r\nimport { RootStore } from './rootStore';\r\nimport { Practice } from '../types/practice';\r\nimport { Member } from '../types/member';\r\nimport { action, computed, observable, runInAction, toJS } from 'mobx';\r\n\r\nexport default class PracticeStore {\r\n rootStore: RootStore;\r\n\r\n constructor(rootStore: RootStore) {\r\n this.rootStore = rootStore;\r\n }\r\n\r\n @observable practice: Practice | null = null;\r\n @observable practiceMember: Member | null = null;\r\n @observable isLoadingPractice = false;\r\n @observable practiceMemberErrors: Array = [];\r\n\r\n @computed get isOnboarded() { return !!this.practice?.onboarded };\r\n \r\n @action unsetPractice = () => {\r\n runInAction(() => this.practice = null);\r\n }\r\n\r\n @action getPractice = async () => {\r\n this.isLoadingPractice = true;\r\n try {\r\n const practice = await api.PracticeMethods.getPractice();\r\n runInAction(() => {\r\n this.practice = practice;\r\n this.isLoadingPractice = false;\r\n });\r\n return practice;\r\n } catch (error) {\r\n runInAction(() => {\r\n this.isLoadingPractice = false;\r\n });\r\n console.log(error);\r\n } finally {\r\n runInAction(() => {\r\n this.isLoadingPractice = false;\r\n });\r\n }\r\n }\r\n\r\n @action loadPracticeMember = (practiceMember: any) => {\r\n this.isLoadingPractice = true;\r\n runInAction(() => {\r\n this.practiceMember = practiceMember;\r\n this.isLoadingPractice = false;\r\n })\r\n\r\n return this.practiceMember\r\n }\r\n\r\n @action getPracticeMember = async (memberId: number) => {\r\n try {\r\n const practice : Practice = await api.PracticeMethods.getPractice();\r\n return practice.members.filter((member: Member)=> {return member.id === memberId})[0]\r\n } catch (error) {\r\n console.log(error);\r\n } finally {\r\n\r\n }\r\n }\r\n\r\n @action editPracticeMember = async (practiceMember: any) => {\r\n if (this.practice) {\r\n this.isLoadingPractice = true;\r\n var practice = this.practice;\r\n runInAction(()=>{\r\n this.practiceMember = practiceMember;\r\n });\r\n try {\r\n const editedMember: Member = await api.UserMethods.edit(practiceMember);\r\n runInAction('Edit practice member.', () => {\r\n this.practiceMemberErrors = [];\r\n this.practiceMember = editedMember;\r\n this.isLoadingPractice = false;\r\n });\r\n\r\n } catch (error) {\r\n runInAction(() => {\r\n Object.values(error.data.errors).forEach((practiceMemberError, index) => {\r\n this.practiceMemberErrors.push(practiceMemberError);\r\n })\r\n this.isLoadingPractice = false;\r\n });\r\n } finally {\r\n runInAction(() => {\r\n this.isLoadingPractice = false;\r\n });\r\n }\r\n }\r\n }\r\n\r\n @action getPracticeMemberErrors = () => {\r\n return this.practiceMemberErrors\r\n }\r\n\r\n @action clearPracticeMemberErrors = () => {\r\n runInAction(()=>{\r\n this.practiceMemberErrors = []; \r\n })\r\n return this.practiceMemberErrors\r\n }\r\n\r\n @action createPracticeMember = async (practiceMember: any) => {\r\n if (this.practice) {\r\n this.isLoadingPractice = true;\r\n var practice = this.practice;\r\n runInAction(()=>{\r\n this.practiceMember = practiceMember;\r\n });\r\n try {\r\n const createdMember: Member = await api.UserMethods.create(practiceMember);\r\n runInAction('Edit practice member.', () => {\r\n this.practiceMemberErrors = [];\r\n this.practiceMember = createdMember;\r\n this.isLoadingPractice = false;\r\n });\r\n\r\n } catch (error) {\r\n runInAction(() => {\r\n Object.values(error.data.errors).forEach((practiceMemberError, index) => {\r\n this.practiceMemberErrors.push(practiceMemberError);\r\n })\r\n this.isLoadingPractice = false;\r\n });\r\n } finally {\r\n runInAction(() => {\r\n this.isLoadingPractice = false;\r\n });\r\n }\r\n }\r\n }\r\n\r\n @action editPractice = async (practice: Practice) => {\r\n this.isLoadingPractice = true;\r\n try {\r\n await api.PracticeMethods.edit(practice);\r\n\r\n runInAction('Edit practice.', () => {\r\n this.practice = practice;\r\n this.isLoadingPractice = false;\r\n });\r\n\r\n } catch (error) {\r\n console.log(error);\r\n runInAction(() => {\r\n this.isLoadingPractice = false;\r\n });\r\n } finally {\r\n runInAction(() => {\r\n this.isLoadingPractice = false;\r\n });\r\n }\r\n }\r\n\r\n @action deletePracticeMember = async (id: number) => {\r\n this.isLoadingPractice = true;\r\n\r\n try {\r\n await api.UserMethods.deleteMember(id);\r\n const practice = await api.PracticeMethods.getPractice();\r\n runInAction('Delete practice member.', async () => {\r\n this.practice = practice;\r\n });\r\n } catch (error) {\r\n console.log(error);\r\n } finally {\r\n runInAction(() => {\r\n this.isLoadingPractice = false;\r\n });\r\n }\r\n }\r\n}","import { FeeCalculation } from './feeCalculation';\r\nexport class Project {\r\n id: number = 0;\r\n memberId = 0;\r\n number: string = '';\r\n name: string = '';\r\n existingClient: string = 'Yes';\r\n status: string = 'Prospect';\r\n category: string = 'Domestic';\r\n subCategory: string = '';\r\n siteAddress: string = '';\r\n description: string = '';\r\n tertiaryCategory?: string = '';\r\n clientId: number = 0;\r\n existingClientId: number = -1;\r\n created: Date = new Date();\r\n updated: Date = new Date();\r\n archived: boolean = false;\r\n feeCalculationSummaries: Array = [];\r\n\r\n //TODO ADD\r\n totalProjectFee: number = 0;\r\n\r\n constructor(init?: Project) {\r\n if (init) {\r\n Object.assign(this, init);\r\n }\r\n }\r\n}\r\n\r\n","import api from '../api/api';\r\nimport { RootStore } from './rootStore';\r\nimport { Project } from '../types/project';\r\nimport { action, observable, runInAction } from 'mobx';\r\nimport { number } from 'yup';\r\n\r\nexport default class projectStore {\r\n rootStore: RootStore;\r\n\r\n constructor(rootStore: RootStore) {\r\n this.rootStore = rootStore;\r\n }\r\n\r\n @observable project: Project | null = null;\r\n @observable projects: Array | null = [];\r\n @observable projectCount: number = 0;\r\n @observable isLoading = false;\r\n\r\n @action getProjectCount = async (live: boolean = true, archived: boolean = false) => {\r\n this.isLoading = true;\r\n try {\r\n const projectCount: number = await api.ProjectMethods.getProjectCount(live, archived);\r\n runInAction(() => {\r\n this.projectCount = projectCount;\r\n this.isLoading = false;\r\n });\r\n } catch (error) {\r\n runInAction(() => {\r\n this.isLoading = false;\r\n });\r\n console.log(error);\r\n } finally {\r\n runInAction(() => {\r\n this.isLoading = false;\r\n });\r\n return this.projectCount;\r\n }\r\n } \r\n\r\n @action getProjects = async (slim: boolean = false, live: boolean = true, archived: boolean = false) => {\r\n this.isLoading = true;\r\n try {\r\n const projects: Array = await api.ProjectMethods.getProjects(slim, live, archived);\r\n runInAction(() => {\r\n this.projects = projects;\r\n this.isLoading = false;\r\n });\r\n } catch (error) {\r\n runInAction(() => {\r\n this.isLoading = false;\r\n });\r\n console.log(error);\r\n } finally {\r\n runInAction(() => {\r\n this.isLoading = false;\r\n });\r\n return this.projects;\r\n }\r\n }\r\n\r\n @action getProject = async (projectId: string, suppressLoading: boolean = false) => {\r\n if (!suppressLoading) this.isLoading = true; \r\n if (projectId) {\r\n try {\r\n const project: Project = await api.ProjectMethods.getProject(projectId);\r\n runInAction(() => {\r\n // TODO: REMOVE THIS CONSTRUCTOR DEMO\r\n this.project = new Project(project);\r\n if (!suppressLoading) this.isLoading = false; \r\n });\r\n } catch (error) {\r\n runInAction(() => {\r\n if (!suppressLoading) this.isLoading = false; \r\n });\r\n console.log(error);\r\n } finally {\r\n runInAction(() => {\r\n if (!suppressLoading) this.isLoading = false; \r\n });\r\n }\r\n } else {\r\n const project = new Project();\r\n runInAction(() => {\r\n this.project = project;\r\n if (!suppressLoading) this.isLoading = false; \r\n });\r\n }\r\n }\r\n\r\n\r\n @action createProject = async (project: Project) => {\r\n if (project) {\r\n this.isLoading = true;\r\n try {\r\n const createdProject: Project = await api.ProjectMethods.create(project);\r\n runInAction('Create Project.', () => {\r\n this.project = createdProject;\r\n this.isLoading = false;\r\n });\r\n\r\n return this.project;\r\n } catch (error) {\r\n console.log(error);\r\n runInAction(() => {\r\n this.isLoading = false;\r\n });\r\n } finally {\r\n runInAction(() => {\r\n this.isLoading = false;\r\n });\r\n }\r\n }\r\n }\r\n\r\n @action editProject = async (project: Project) => {\r\n this.isLoading = true;\r\n try {\r\n await api.ProjectMethods.edit(project);\r\n\r\n runInAction('Edit practice.', () => {\r\n this.project = project;\r\n this.isLoading = false;\r\n });\r\n\r\n } catch (error) {\r\n console.log(error);\r\n runInAction(() => {\r\n this.isLoading = false;\r\n });\r\n } finally {\r\n runInAction(() => {\r\n this.isLoading = false;\r\n });\r\n }\r\n }\r\n\r\n @action deleteProject = async (projectId: number | undefined) => {\r\n if (projectId) {\r\n this.isLoading = true;\r\n try {\r\n await api.ProjectMethods.delete(projectId).then(async () => {\r\n const projects: Array = await api.ProjectMethods.getProjects(false, false, true);\r\n runInAction(() => {\r\n this.projects = projects;\r\n this.isLoading = false;\r\n });\r\n }\r\n )\r\n \r\n } catch (error) {\r\n console.log(error);\r\n runInAction(() => {\r\n this.isLoading = false;\r\n });\r\n } finally {\r\n runInAction(() => {\r\n this.isLoading = false;\r\n });\r\n }\r\n }\r\n }\r\n\r\n\r\n}","import api from '../api/api';\r\nimport { RootStore } from './rootStore';\r\nimport { Client } from '../types/client';\r\nimport { action, observable, runInAction } from 'mobx';\r\n\r\nexport default class clientStore {\r\n rootStore: RootStore;\r\n\r\n constructor(rootStore: RootStore) {\r\n this.rootStore = rootStore;\r\n }\r\n\r\n @observable client: Client | null = null;\r\n @observable clients: Array | null = [];\r\n @observable isLoading = false;\r\n\r\n @action getClients = async () => {\r\n this.isLoading = true;\r\n try {\r\n const localClients = await api.ClientMethods.getClients();\r\n runInAction(() => {\r\n runInAction('List activities.', () => {\r\n this.clients = localClients.slice();\r\n });\r\n\r\n this.isLoading = false;\r\n });\r\n } catch (error) {\r\n runInAction(() => {\r\n this.isLoading = false;\r\n });\r\n console.log(error);\r\n } finally {\r\n runInAction(() => {\r\n this.isLoading = false;\r\n });\r\n }\r\n }\r\n\r\n @action getClient = async (clientId: number) => {\r\n this.isLoading = true;\r\n try {\r\n const client = await api.ClientMethods.getClient(clientId);\r\n runInAction(() => {\r\n this.client = client;\r\n this.isLoading = false;\r\n });\r\n\r\n return client;\r\n } catch (error) {\r\n runInAction(() => {\r\n this.isLoading = false;\r\n });\r\n console.log(error);\r\n } finally {\r\n runInAction(() => {\r\n this.isLoading = false;\r\n });\r\n }\r\n }\r\n\r\n @action loadClient = (client: any) => {\r\n this.isLoading = true;\r\n\r\n runInAction(() => {\r\n this.client = client;\r\n this.isLoading = false;\r\n })\r\n\r\n return this.client\r\n }\r\n\r\n\r\n @action createClient = async (client: any) => {\r\n if(client){\r\n this.isLoading = true;\r\n try {\r\n const newClient : Client = await api.ClientMethods.create(client);\r\n runInAction('Create Client.', () => {\r\n this.isLoading = false;\r\n });\r\n return newClient;\r\n \r\n } catch (error) {\r\n console.log(error);\r\n runInAction(() => {\r\n this.isLoading = false;\r\n });\r\n } finally {\r\n runInAction(() => {\r\n this.isLoading = false;\r\n });\r\n }\r\n }\r\n }\r\n\r\n @action editClient = async (client: Client) => {\r\n this.isLoading = true;\r\n try {\r\n console.log(client);\r\n await api.ClientMethods.edit(client);\r\n\r\n runInAction('Edit Client.', () => {\r\n\r\n this.clients = this.clients!.map(objClient =>\r\n objClient.id === client.id\r\n ? { ...objClient, clientName: client.clientName, contactName: client.contactName, contactEmail: client.contactEmail }\r\n : objClient\r\n );\r\n\r\n this.client = client;\r\n this.isLoading = false;\r\n });\r\n \r\n } catch (error) {\r\n console.log(error);\r\n runInAction(() => {\r\n this.isLoading = false;\r\n });\r\n } finally {\r\n runInAction(() => {\r\n this.isLoading = false;\r\n });\r\n }\r\n }\r\n\r\n @action clearLoadedClient = () => {\r\n runInAction(() => { this.client = null; });\r\n }\r\n}","export const ProjectStatuses: Array = ['Prospect','Active','Complete','On Hold']\r\n\r\ntype FeeCalculationState = {\r\n id: string;\r\n name: string;\r\n}\r\n\r\nexport const MemberAccessLevels = {\r\n ADMIN: \"Admin\",\r\n STAFF: \"Staff\",\r\n NON_USER: \"NonUser\"\r\n}\r\n\r\nexport const FeeCalculationStates : Array = [{ id: 'Draft', name: 'Draft'}, { id: 'Approved', name: 'Approved'}, { id: 'Accepted', name: 'Client accepted'}, { id: 'Declined', name: 'Client declined'}];\r\n\r\nexport const DomesticCategories = ['One-off new house', 'House extension, conversion or alteration','Other private housing','Other domestic'];\r\n\r\nexport const CommercialCategories: Array = ['Public housing (including social housing)','Offices','Retail','Sport and leisure','Culture and entertainment','Industrial','Health','Schools and colleges','Universities','Transport','Mixed use','Other commercial']\r\n\r\nexport const RibaStages = [\r\n {\r\n id: 1,\r\n name: 'Strategic Definition',\r\n stageId: 0,\r\n colour:'#f99c34'\r\n },\r\n {\r\n id: 2,\r\n name: 'Preparation and Brief',\r\n stageId: 1,\r\n colour:'#eca9cd'\r\n },\r\n {\r\n id: 3,\r\n name: 'Concept Design',\r\n stageId: 2,\r\n colour:'#fddd0e'\r\n },\r\n {\r\n id: 4,\r\n name: 'Spatial Coordination',\r\n stageId: 3,\r\n colour:'#7accd3'\r\n },\r\n {\r\n id: 5,\r\n name: 'Technical Design',\r\n stageId: 4,\r\n colour:'#8fc0a4'\r\n },\r\n {\r\n id: 6,\r\n name: 'Manufacturing and Construction',\r\n stageId: 5,\r\n colour:'#aab0d2'\r\n },\r\n {\r\n id: 7,\r\n name: 'Handover',\r\n stageId: 6,\r\n colour:'#edd99f'\r\n },\r\n {\r\n id: 8,\r\n name: 'Use',\r\n stageId: 7,\r\n colour:'#8770d7'\r\n }\r\n ];\r\n\r\n export const CustomAuthErrors = [471, 472, 473];\r\n\r\n export const NonEditableStates = ['Accepted', 'Declined'];\r\n","export class Stage {\r\n id: number = 0;\r\n stageId: number = 0;\r\n name: string = \"\";\r\n \r\n constructor(init?: Stage) {\r\n if (init) {\r\n Object.assign(this, init);\r\n }\r\n }\r\n \r\n };","import { FeeCalculationStageTask } from './feeCalculationStageTask';\r\nimport { Stage } from './stage';\r\nimport { StageActivity } from './stageActivity';\r\n\r\nexport class FeeCalculationStage {\r\n id: number = 0;\r\n feeCalculationId: number = 0;\r\n stage: Stage = new Stage();\r\n feeCalculationStageTasks: Array = [];\r\n totalStageCost: number = 0;\r\n practiceMargin: number = 0;\r\n clientStageFee: number = 0;\r\n enabled: boolean = false;\r\n stageActivities: Array = [];\r\n\r\n constructor(init?: FeeCalculationStage) {\r\n if (init) {\r\n Object.assign(this, init);\r\n }\r\n }\r\n\r\n};\r\n","import { RibaStages } from '../utils/Constants';\r\nimport { FeeCalculationStage } from './feeCalculationStage';\r\nexport class FeeCalculation {\r\n id?: number = 0;\r\n version?: string = '';\r\n state: string = '';\r\n created?: Date = new Date();\r\n createdBy?: number = 0;\r\n projectId: number = 0\r\n lastModifiedBy?: string = '';\r\n lastModified: Date = new Date();\r\n inSync? : boolean = true;\r\n feeCalculationStages?: Array = [];\r\n totalProjectFee?: number = 0;\r\n totalProjectCost?: number = 0;\r\n constructionCost?: number = 0;\r\n name?: string = '';\r\n\r\n constructor(init?: FeeCalculation) {\r\n if (init) {\r\n this.feeCalculationStages = populateDefaultStages();\r\n Object.assign(this, init);\r\n }\r\n }\r\n}\r\n\r\nexport class FeeCalculationDetailed {\r\n acceptUpdates: boolean = false;\r\n inSync: boolean = true;\r\n newFeeCalculation?: FeeCalculation = new FeeCalculation();\r\n feeCalculation: FeeCalculation = new FeeCalculation();\r\n}\r\n\r\nconst populateDefaultStages = (): Array => {\r\n const newStages: Array = [];\r\n RibaStages.forEach((stage, i) => {\r\n let newStage = new FeeCalculationStage();\r\n newStage.stage.id= RibaStages[i].id;\r\n newStage.stage.stageId = RibaStages[i].stageId;\r\n newStage.stage.name = RibaStages[i].name;\r\n newStages.push(newStage);\r\n })\r\n return newStages;\r\n}\r\n\r\n","import api from '../api/api';\r\nimport { RootStore } from './rootStore';\r\nimport { Project } from '../types/project';\r\nimport { action, observable, runInAction } from 'mobx';\r\nimport { FeeCalculation, FeeCalculationDetailed } from '../types/feeCalculation';\r\nimport Config from '../config';\r\nimport { ExportContractResponse } from '../types/exportContractResponse';\r\n\r\nexport default class FeeCalculationStore {\r\n rootStore: RootStore;\r\n\r\n constructor(rootStore: RootStore) {\r\n this.rootStore = rootStore;\r\n }\r\n\r\n @observable feeCalculation: FeeCalculation | null = new FeeCalculation();\r\n @observable feeCalculationDetailed: FeeCalculationDetailed | undefined = new FeeCalculationDetailed();\r\n @observable isLoadingFeeCalc = false;\r\n @observable isDirtyForm = false;\r\n\r\n @action getFeeCalculationDetailed = async (feeCalculationId: string | undefined) => {\r\n this.isLoadingFeeCalc = true;\r\n if (feeCalculationId) {\r\n try {\r\n const feeCalculationDetailed: FeeCalculationDetailed = await api.FeeCalculationMethods.getFeeCalculation(feeCalculationId);\r\n runInAction(() => {\r\n this.feeCalculationDetailed = feeCalculationDetailed;\r\n this.isLoadingFeeCalc = false;\r\n });\r\n return feeCalculationDetailed;\r\n } catch (error) {\r\n runInAction(() => {\r\n this.isLoadingFeeCalc = false;\r\n });\r\n console.log(error);\r\n } finally {\r\n runInAction(() => {\r\n this.isLoadingFeeCalc = false;\r\n });\r\n }\r\n } else {\r\n const feeCalculationDetailed = new FeeCalculationDetailed();\r\n runInAction(() => {\r\n this.feeCalculationDetailed = feeCalculationDetailed;\r\n this.isLoadingFeeCalc = false;\r\n });\r\n }\r\n }\r\n\r\n\r\n @action createFeeDraftCalculation = async (feeCalculation: FeeCalculation) => {\r\n if (feeCalculation) {\r\n this.isLoadingFeeCalc = true;\r\n try {\r\n const createdFeeCalc: FeeCalculation = await api.FeeCalculationMethods.create(feeCalculation);\r\n runInAction('Create Fee Calculation.', () => {\r\n this.feeCalculation = createdFeeCalc;\r\n this.isLoadingFeeCalc = false;\r\n });\r\n\r\n return createdFeeCalc\r\n } catch (error) {\r\n console.log(error);\r\n runInAction(() => {\r\n this.isLoadingFeeCalc = false;\r\n });\r\n } finally {\r\n runInAction(() => {\r\n this.isLoadingFeeCalc = false;\r\n });\r\n }\r\n }\r\n }\r\n\r\n @action editFeeCalculation = async (feeCalculation: FeeCalculation) => {\r\n // this.isLoadingFeeCalc = true;\r\n try {\r\n const editedFeeCalculation: FeeCalculation = await api.FeeCalculationMethods.edit(feeCalculation);\r\n\r\n runInAction('Edit Fee Calculation.', () => {\r\n this.feeCalculation = editedFeeCalculation;\r\n this.feeCalculationDetailed!.feeCalculation = editedFeeCalculation; \r\n // this.isLoadingFeeCalc = false;\r\n });\r\n return this.feeCalculation;\r\n\r\n } catch (error) {\r\n console.log(error);\r\n runInAction(() => {\r\n // this.isLoadingFeeCalc = false;\r\n });\r\n } finally {\r\n runInAction(() => {\r\n // this.isLoadingFeeCalc = false;\r\n });\r\n }\r\n }\r\n\r\n @action syncFeeCalculation = async (feeCalculationDetailed: FeeCalculationDetailed) => {\r\n this.isLoadingFeeCalc = true;\r\n try {\r\n const newFeeCalc = await api.FeeCalculationMethods.syncFeeCalculation(feeCalculationDetailed);\r\n\r\n runInAction('Sync Fee Calculation.', () => {\r\n this.isLoadingFeeCalc = false;\r\n });\r\n return newFeeCalc;\r\n\r\n } catch (error) {\r\n console.log(error);\r\n runInAction(() => {\r\n this.isLoadingFeeCalc = false;\r\n });\r\n } finally {\r\n runInAction(() => {\r\n this.isLoadingFeeCalc = false;\r\n });\r\n }\r\n }\r\n\r\n @action deleteTasks = async (taskIds: Array) => {\r\n let deletedTasks: Array = []\r\n if (taskIds.length > 0) {\r\n await Promise.all(taskIds.map(async (taskId) => {\r\n try {\r\n let deleted: any = await api.FeeCalculationMethods.deleteTask(taskId);\r\n deletedTasks.push(deleted)\r\n\r\n } catch (error) {\r\n\r\n }\r\n }))\r\n }\r\n return deletedTasks // return without waiting for process of \r\n }\r\n\r\n @action deleteFeeCalculation = async (feeCalculationId: string | undefined) => {\r\n if (feeCalculationId) {\r\n try {\r\n let deleted: any = await api.FeeCalculationMethods.deleteFeeCalculation(feeCalculationId);\r\n } catch (error) {\r\n\r\n } \r\n }\r\n }\r\n\r\n @action deleteStaffCosts = async (staffCostIds: Array) => {\r\n let deletedStaff: Array = []\r\n if (staffCostIds.length > 0) {\r\n await Promise.all(staffCostIds.map(async (staffCostId) => {\r\n try {\r\n let deleted: any = await api.FeeCalculationMethods.deleteStaffCost(staffCostId);\r\n deletedStaff.push(deleted)\r\n\r\n } catch (error) {\r\n\r\n }\r\n }))\r\n }\r\n return deletedStaff // return without waiting for process of \r\n }\r\n\r\n @action deleteFixedCosts = async (fixedCostIds: Array) => {\r\n let deletedFixedCosts: Array = []\r\n if (fixedCostIds.length > 0) {\r\n await Promise.all(fixedCostIds.map(async (fixedCostId) => {\r\n try {\r\n let deleted: any = await api.FeeCalculationMethods.deleteFixedCost(fixedCostId);\r\n deletedFixedCosts.push(deleted)\r\n\r\n } catch (error) {\r\n\r\n }\r\n }))\r\n }\r\n return deletedFixedCosts // return without waiting for process of \r\n }\r\n\r\n @action exportFeeCalculationExcel = async (feeCalculationId: string | undefined) => {\r\n if (feeCalculationId) {\r\n try {\r\n window.open(Config.API_URL + `/Fee-Calculation/export-fee-calculation/${feeCalculationId}`);\r\n } catch (error) {\r\n console.log(error);\r\n } finally {\r\n\r\n }\r\n }\r\n }\r\n\r\n @action exportFeeCalculationCreateContract = async (feeCalculationId: string | undefined) => {\r\n if (feeCalculationId) {\r\n try {\r\n const response : ExportContractResponse = await api.FeeCalculationMethods.exportFeeCalculationCreateContract(feeCalculationId)\r\n if(response.projectUrl && response.projectId){\r\n window.open(response.projectUrl)\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n } finally {\r\n\r\n }\r\n }\r\n }\r\n\r\n @action duplicateFeeCalculation = async (feeCalculationId: string | undefined, projectId: string | undefined) => {\r\n if(feeCalculationId && projectId){\r\n this.isLoadingFeeCalc = true;\r\n try {\r\n const duplicatedFeeCalc : any = await api.FeeCalculationMethods.duplicate(feeCalculationId, projectId);\r\n runInAction('Create Fee Calculation.', () => {\r\n this.isLoadingFeeCalc = false;\r\n });\r\n return duplicatedFeeCalc\r\n } catch (error) {\r\n console.log(error);\r\n runInAction(() => {\r\n this.isLoadingFeeCalc = false;\r\n });\r\n } finally {\r\n runInAction(() => {\r\n this.isLoadingFeeCalc = false;\r\n });\r\n }\r\n }\r\n }\r\n\r\n @action setIsDirtyForm = (isDirty: boolean) => {\r\n runInAction(() => {\r\n this.isDirtyForm = isDirty;\r\n });\r\n }\r\n\r\n\r\n}","\r\nimport { configure } from 'mobx';\r\nimport { createContext } from 'react';\r\nimport CommonStore from './commonStore';\r\nimport MemberStore from './memberStore';\r\nimport MfaStore from './mfaStore';\r\nimport PracticeStore from './practiceStore';\r\nimport ProjectStore from './projectStore';\r\nimport ClientStore from './clientStore';\r\nimport FeeCalculationStore from './feeCalculationStore';\r\n\r\nconfigure({ enforceActions: 'always' });\r\n\r\nexport class RootStore {\r\n memberStore: MemberStore;\r\n mfaStore: MfaStore;\r\n commonStore: CommonStore\r\n practiceStore: PracticeStore;\r\n projectStore: ProjectStore;\r\n clientStore: ClientStore;\r\n feeCalculationStore: FeeCalculationStore;\r\n \r\n constructor() {\r\n this.memberStore = new MemberStore(this);\r\n this.mfaStore = new MfaStore(this);\r\n this.commonStore = new CommonStore(this);\r\n this.practiceStore = new PracticeStore(this);\r\n this.projectStore = new ProjectStore(this);\r\n this.clientStore = new ClientStore(this);\r\n this.feeCalculationStore = new FeeCalculationStore(this);\r\n }\r\n}\r\n\r\nexport const RootStoreContext = createContext(new RootStore());","import React, { useContext, useEffect, useState } from 'react';\r\nimport { RootStoreContext } from '../../stores/rootStore';\r\nimport Alert from '../molecules/Alert';\r\nimport Button from '../atoms/Button';\r\nimport { observer } from 'mobx-react-lite';\r\n\r\ntype TermsAndConditionsFormProps = {\r\n handleSubmit: () => any\r\n}\r\n\r\n\r\nconst TermsAndConditionsAdminForm: React.FC = observer((props) => {\r\n const { handleSubmit } = props;\r\n const rootStore = useContext(RootStoreContext);\r\n const { member, login, acceptTermsAndConditions } = rootStore.memberStore;\r\n const { practice, isOnboarded } = rootStore.practiceStore;\r\n const [checkedTerms, setChecked] = useState(false);\r\n const [checkedAuthorised, setCheckAuthorised] = useState(false);\r\n const toggleTermsChecked = () => setChecked(!checkedTerms);\r\n const toggleAuthorisedChecked = () => setCheckAuthorised(!checkedAuthorised);\r\n\r\n useEffect(() => {\r\n if (member?.acceptedTermsAndConditions) {\r\n handleSubmit();\r\n }\r\n }, []);\r\n\r\n const handleStep0Submit = () => {\r\n acceptTermsAndConditions().finally(() => {\r\n //Is loading false\r\n handleSubmit();\r\n });\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n

RIBA Fee Calculator setup

\r\n
\r\n
\r\n

Setting up the RIBA Fee Calculator

\r\n
\r\n
\r\n
\r\n
\r\n

The RIBA Fee Calculator will help you prepare resource-based fee calculations your projects and clients. Before you can prepare a fee calculation you need to enter your company overheads and staff salary details. You only have to complete this process once, but will be able to edit or update the information any time by managing your Settings.

\r\n
\r\n

How does it work?

\r\n
\r\n
    \r\n
  • Start by entering your practice details, overhead costs and staff details
  • \r\n
  • You can use the same data you may have provided as part of the annual RIBA Business Benchmarking Survey
  • \r\n
  • You can then create detailed, resource-based fee calculations for your projects, aligned with the stages of the RIBA Plan of Work
  • \r\n
  • Save, edit or access any fee calculations or details at any time
  • \r\n
  • Download a calculation or export it into your standard fee proposals, or into an RIBA professional services contract using RIBA Contracts Digital
  • \r\n\r\n
\r\n
\r\n

Before you start

\r\n
\r\n

It is important that you enter accurate company costs when asked. This will make sure your fee calculations accurately reflect the true cost to your business.

\r\n

Only people you designate to have ‘admin’ access rights are able to add, edit or see company and employee information or salary details. Admin users can grant access to others to use RIBA Fee Calculator and generate fee calculations for projects. Please make sure you choose and assign the correct access rights for your staff.

\r\n

Have the following information ready:

\r\n
    \r\n
  1. Annual company overhead costs (including, for example, any premises, utilities, travel, marketing, financial and legal costs)
  2. \r\n
  3. Staff salary details (including salaries, hours worked each year, percentage of billable hours for each member of staff)
  4. \r\n
\r\n

You may find it useful check our guidance notes to help you prepare this information.

\r\n

If you use an accountant or financial adviser, they may be able to help you prepare this information.

\r\n

If you do not use an accountant or financial adviser and need support:

\r\n
    \r\n
  • our finance business partner Whitemoor Davis may be able to help,
  • \r\n
  • or contact the RIBA Business Team for advice by telephone on +44 (0)20 7307 3737
  • \r\n
\r\n

Your company, financial and salary information can only be accessed by ‘administrator’ users. We recommend having two administrators for the RIBA Fee Calculator. After you have completed setup, you can edit your settings to control the access and permissions of your staff, and who can use the RIBA Fee Calculator.

\r\n

You must accept our terms and conditions and accept our privacy policy to ensure GDPR compliance, as you will be using confidential company information.

\r\n
\r\n\r\n \r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

Useful links

\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n )\r\n});\r\n\r\nexport default TermsAndConditionsAdminForm;","import React, { useEffect, useContext } from 'react';\r\nimport { RootStoreContext } from '../../../stores/rootStore';\r\nimport TermsAndConditionsAdminForm from '../../organisms/TermsAndConditionsAdminForm';\r\nimport { history } from '../../..';\r\nimport { observer } from 'mobx-react-lite';\r\n\r\nconst Setup: React.FC = observer(() => {\r\n\r\n const rootStore = useContext(RootStoreContext);\r\n const { getPractice } = rootStore.practiceStore;\r\n\r\n const handleSubmit = () => {\r\n history.push('/setup/step1')\r\n }\r\n\r\n useEffect(() => {\r\n let isLoading = true;\r\n getPractice().finally(() => {\r\n // isLoading(true);\r\n })\r\n return () => {\r\n isLoading = false; // clean up function\r\n };\r\n }, []);\r\n\r\n return (\r\n \r\n )\r\n\r\n})\r\n\r\nexport default Setup;","import React, { useContext, useEffect, useState } from 'react';\r\nimport { RootStoreContext } from '../../stores/rootStore';\r\nimport { observer } from 'mobx-react-lite';\r\n\r\ntype TermsAndConditionsFormProps = {\r\n handleSubmit: () => any\r\n}\r\n\r\n\r\nconst TermsAndConditionsUserForm: React.FC = observer((props) => {\r\n const { handleSubmit } = props;\r\n const rootStore = useContext(RootStoreContext);\r\n const { member, acceptTermsAndConditions } = rootStore.memberStore;\r\n const [checkedTerms, setChecked] = useState(false);\r\n const toggleTermsChecked = () => setChecked(!checkedTerms);\r\n\r\n useEffect(() => {\r\n if (member?.acceptedTermsAndConditions) {\r\n handleSubmit();\r\n }\r\n });\r\n\r\n const handleTermsFormSubmit = () => {\r\n acceptTermsAndConditions().finally(() => {\r\n //Is loading false\r\n handleSubmit();\r\n });\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n

RIBA Fee Calculator setup

\r\n
\r\n
\r\n

Setting up the RIBA Free Calculator

\r\n
\r\n
\r\n
\r\n
\r\n

The RIBA Fee Calculator will help you develop resource-based fee calculations for architecture work.

\r\n
\r\n

How does it work?

\r\n
\r\n
    \r\n
  • Create detailed, unique resource-based fees for each project or client
  • \r\n
  • Produce calculations aligned with the RIBA Plan of Work
  • \r\n
  • Download and import into your own standard fee proposals, or into the RIBA standard forms of appointment using RIBA Contracts Digital
  • \r\n\r\n
\r\n
\r\n

Before you start

\r\n
\r\n

Your system administrator has already entered your company overhead costs (including, for example, any premises, utilities, travel, marketing, financial and legal costs) and staff salary details (base salary, hourly rates, employer National Insurance contributions). Your company, financial and salary information can only be accessed by ‘administrator’ users in Settings.

\r\n

You must accept our terms and conditions and accept our privacy policy to ensure GDPR compliance, as you will be using confidential company information.

\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

Useful links

\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n )\r\n});\r\n\r\nexport default TermsAndConditionsUserForm;","import React, { useEffect, useContext } from 'react';\r\nimport { RootStoreContext } from '../../../stores/rootStore';\r\nimport TermsAndConditionsUserForm from '../../organisms/TermsAndConditionsUserForm';\r\nimport { history } from '../../..';\r\nimport { observer } from 'mobx-react-lite';\r\n\r\nconst Setup: React.FC = observer(() => {\r\n\r\n const rootStore = useContext(RootStoreContext);\r\n const { getPractice } = rootStore.practiceStore;\r\n\r\n const handleSubmit = () => {\r\n history.push('/projects')\r\n }\r\n\r\n useEffect(() => {\r\n let isLoading = true;\r\n getPractice().finally(() => {\r\n // isLoading(true);\r\n })\r\n return () => {\r\n isLoading = false; // clean up function\r\n };\r\n }, []);\r\n\r\n return (\r\n \r\n )\r\n\r\n})\r\n\r\nexport default Setup;","import React, { FC } from \"react\";\r\nimport { FieldProps, getIn } from \"formik\";\r\n\r\ninterface FormInputProps {\r\n type?: string,\r\n // handleChange: (e: any) => any,\r\n helptext?: string,\r\n serverErrors?: boolean\r\n}\r\n\r\nconst FormInput: FC = ({\r\n field: { onChange, ...field },\r\n form: { touched, errors, setFieldValue, setFieldTouched, handleChange, ...form }, // also values, setXXXX, handleXXXX, dirty, isValid, status, etc.\r\n type = \"text\",\r\n ...props\r\n}) => (\r\n
\r\n { \r\n setFieldValue(field.name, e.target.value);\r\n setTimeout(() => setFieldTouched(field.name, true));\r\n onChange(e)\r\n }} className={((errors[field.name] && touched[field.name]) || (getIn(errors, field.name) && getIn(touched, field.name)) || props.serverErrors) ? 'singleline-text-input singleline-text-input--full-width singleline-text-input--error ' : 'singleline-text-input singleline-text-input--full-width'} \r\n value={(type == 'number' && field?.value == 0) ? '' : field.value}/>\r\n {props.helptext && (\r\n
{props.helptext}
\r\n )}\r\n {((errors[field.name] && touched[field.name]) || (getIn(errors, field.name) && getIn(touched, field.name))) ? (\r\n
\r\n
    \r\n
  • {errors[field.name] || getIn(errors, field.name)}
  • \r\n
\r\n
\r\n ) : null\r\n }\r\n {}\r\n
\r\n);\r\n\r\nexport default FormInput;\r\n\r\n\r\n","import * as Yup from 'yup';\r\n\r\nexport const AddEditMemberFormValidation = Yup.object().shape({\r\n title: Yup.string()\r\n .required('Please complete this mandatory field.'),\r\n email: Yup.string()\r\n .email('Please enter a valid email address.')\r\n .required('Please complete this mandatory field.'),\r\n firstName: Yup.string()\r\n .required('Please complete this mandatory field.'),\r\n lastName: Yup.string()\r\n .required('Please complete this mandatory field.'),\r\n jobTitle: Yup.string()\r\n .required('Please complete this mandatory field.'),\r\n billableStatus: Yup.string()\r\n .required(''),\r\n workingHoursPerWeek: Yup.number()\r\n .when('billableStatus', {\r\n is: 'Billable',\r\n then: Yup.number()\r\n .required('Please complete this mandatory field.')\r\n .positive('Field must be a positive number.')\r\n .max(168,'The value you entered is too big (maximum is 168).')\r\n }),\r\n workingWeeksPerYear: Yup.number()\r\n .when('billableStatus', {\r\n is: 'Billable',\r\n then: Yup.number()\r\n .required('Please complete this mandatory field.')\r\n .max(52,'The value you entered is too big (maximum is 52).')\r\n .positive('Field must be a positive number.')\r\n .integer('This field can only contain whole numbers (e.g. 1, 2, 3).')\r\n }),\r\n billableHours: Yup.number()\r\n .when('billableStatus', {\r\n is: 'Billable',\r\n then: Yup.number()\r\n .required('Please complete this mandatory field.')\r\n .positive('Please complete this mandatory field.')\r\n .max(100,'The value you entered is too big (maximum is 100).')\r\n .integer('This field can only contain whole numbers (e.g. 1, 2, 3).')\r\n }),\r\n annualSalary: Yup.number()\r\n .required('Please complete this mandatory field.')\r\n .moreThan(0, 'Please complete this mandatory field.')\r\n .positive('Field must be a positive number.')\r\n .integer('This field can only contain whole numbers (e.g. 1, 2, 3).'),\r\n otherBenefits: Yup.number()\r\n .required('Please complete this mandatory field.')\r\n .moreThan(-1, 'Field must be a positive number.')\r\n .integer('This field can only contain whole numbers (e.g. 1, 2, 3).')\r\n});\r\n","import React from 'react';\r\n\r\ntype AlertProps = {\r\n title?: string,\r\n text: string,\r\n styleClass: string,\r\n}\r\n\r\nconst Alert: React.FC = (props) => {\r\n\r\n const { styleClass, title, text } = props;\r\n\r\n return (\r\n
\r\n {title && (\r\n
{title}
\r\n )}\r\n
{text}
\r\n
\r\n );\r\n}\r\n\r\nexport default Alert;\r\n","import React from 'react';\r\n\r\ntype FormLabelProps = {\r\n labelText?: string,\r\n subText?: string\r\n}\r\n\r\nconst FormLabel: React.FC = (props) => {\r\n\r\n const { labelText, subText } = props;\r\n \r\n return (\r\n <>\r\n {labelText && (\r\n
\r\n
{labelText || ''}
\r\n
{subText || ''}
\r\n
\r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default FormLabel;","import React, { FC } from \"react\";\r\nimport { FieldProps } from \"formik\";\r\nimport NumberFormat from \"react-number-format\";\r\n\r\ninterface CurrencyFormInputProps {\r\n type?: string,\r\n handleChange: () => any,\r\n onFocus?: () => any\r\n helptext?: string,\r\n}\r\n\r\nconst CurrencyFormInput: FC = ({\r\n field: { onChange, ...field },\r\n form: { touched, errors, setFieldValue, setFieldTouched, handleChange, ...form }, // also values, setXXXX, handleXXXX, dirty, isValid, status, etc.\r\n type = \"text\",\r\n ...props\r\n}) => (\r\n
\r\n {\r\n if (e.keyCode === 110 || e.keyCode === 190 || e.keyCode === 189) {\r\n e.preventDefault ? e.preventDefault() : e.returnValue = false;\r\n }\r\n if ((e.charCode || e.keyCode) === 13) {\r\n e.preventDefault ? e.preventDefault() : e.returnValue = false;\r\n }\r\n }}\r\n onFocus={props.onFocus}\r\n defaultValue=''\r\n value={field.value > 0 ? field.value : ''}\r\n onValueChange={val =>\r\n setFieldValue(field.name, val.floatValue || 0)\r\n }\r\n />\r\n {props.helptext && (\r\n
{props.helptext}
\r\n )}\r\n {touched[field.name] &&\r\n errors[field.name] &&
\r\n
    \r\n
  • {errors[field.name]}
  • \r\n
\r\n
\r\n }\r\n
\r\n );\r\n\r\nexport default CurrencyFormInput;\r\n\r\n\r\n","import React, { useContext, useEffect } from 'react';\r\nimport { useFormikContext } from \"formik\";\r\nimport { Prompt } from 'react-router-dom';\r\nimport { RootStoreContext } from '../../stores/rootStore';\r\nimport { observer } from 'mobx-react-lite';\r\n\r\ntype PromptIfDirtyProps = {\r\n isDirtyForm: boolean,\r\n setIsDirtyForm: (isDirty: boolean) => any,\r\n}\r\n\r\nconst PromptIfDirty: React.FC = observer((props) => {\r\n const { isDirtyForm, setIsDirtyForm } = props;\r\n const formik = useFormikContext();\r\n \r\n useEffect(() => {\r\n setIsDirtyForm(formik.dirty);\r\n }, [formik.dirty]);\r\n\r\n return (\r\n \r\n );\r\n});\r\n\r\nexport default PromptIfDirty;","import React, { useContext, useEffect, useLayoutEffect, useRef, useState } from 'react';\r\nimport { RootStoreContext } from '../../stores/rootStore';\r\nimport FormInput from '../molecules/FormInput';\r\nimport { AddEditMemberFormValidation } from '../../utils/validation/AddEditMemberFormValidation';\r\nimport Alert from '../molecules/Alert';\r\nimport Modal from 'react-modal';\r\nimport FormLabel from '../molecules/FormLabel';\r\nimport { Formik, Form, Field, useFormikContext, getIn } from \"formik\";\r\nimport { observer } from 'mobx-react-lite';\r\nimport { Member } from '../../types/member';\r\nimport { useLocation } from 'react-router-dom';\r\nimport { runInAction } from 'mobx';\r\nimport CurrencyFormInput from '../molecules/CurrencyFormInput';\r\nimport PromptIfDirty from '../molecules/PromptIfDirty';\r\n\r\ntype AddEditMemberFormProps = {\r\n handleSubmit: () => any,\r\n handleBack: () => any,\r\n practiceMember: Member | null,\r\n confirmButtonText: string,\r\n cancelButtonText: string\r\n}\r\n\r\nconst AddEditMemberForm: React.FC = observer((props) => {\r\n const { practiceMember, handleBack, handleSubmit, confirmButtonText, cancelButtonText } = props;\r\n const rootStore = useContext(RootStoreContext);\r\n const { member } = rootStore.memberStore;\r\n const { editPracticeMember, createPracticeMember, getPracticeMember, practiceMemberErrors } = rootStore.practiceStore;\r\n const { pathname } = useLocation();\r\n const [formSubmitted, setFormSubmitted] = useState(false);\r\n const [showAdminModal, setShowAdminModal] = useState(false);\r\n const [isDirtyForm, setIsDirtyForm] = useState(false);\r\n const [confirmButton, setConfirmButton] = useState(confirmButtonText);\r\n\r\n useLayoutEffect(() => {\r\n window.scrollTo(0, 0);\r\n }, [pathname]);\r\n\r\n const savePracticeMember = (practiceMember: any) => {\r\n setIsDirtyForm(false);\r\n runInAction(() => {\r\n practiceMember.active = true;\r\n })\r\n if (practiceMember.id > 0) {\r\n getPracticeMember(practiceMember.id).then((oldMemberData: any) => {\r\n if ((oldMemberData.accessLevel === 'Staff' || oldMemberData.accessLevel === 'NonUser') && practiceMember.accessLevel === 'Admin') {\r\n setShowAdminModal(true);\r\n } else {\r\n editMember(practiceMember);\r\n }\r\n })\r\n } else if (practiceMember.id === 0) {\r\n createPracticeMember(practiceMember).then(() => {\r\n if (practiceMemberErrors.length === 0) {\r\n handleSubmit();\r\n }\r\n });\r\n }\r\n }\r\n\r\n const editMember = (practiceMember: any) => {\r\n editPracticeMember(practiceMember).then(() => {\r\n if (practiceMemberErrors.length === 0) {\r\n handleSubmit();\r\n }\r\n });\r\n }\r\n\r\n const handleAccessRightChange = (e:any) => {\r\n setConfirmButton(e.target.value != 'NonUser' ? (confirmButtonText + ' and invite user') : confirmButtonText)\r\n }\r\n\r\n const CalculateValuesComponent = () => {\r\n const { values, setFieldValue } = useFormikContext();\r\n const fieldValues = [getIn(values, 'annualSalary'), getIn(values, 'otherBenefits')]\r\n const initialRender = useRef(true);\r\n\r\n useEffect(() => {\r\n if (!initialRender.current) {\r\n var val = Number(values?.annualSalary) +\r\n Number(values?.otherBenefits);\r\n setFieldValue('totalSalaryPackage', val);\r\n } else {\r\n initialRender.current = false;\r\n }\r\n }, fieldValues);\r\n\r\n return null;\r\n }\r\n\r\n return (\r\n <>\r\n\r\n {practiceMember && (\r\n <>\r\n {practiceMemberErrors && practiceMemberErrors.map((practiceMemberError, index) => (\r\n \r\n ))[0]}\r\n\r\n
\r\n

Add staff salary details

\r\n

Add your staff details, salary information, and working hours using the table below. Staff costs will also be included in your fee calculations. You can assign staff to certain projects later in the process. You can edit these details later by changing your settings.

\r\n
\r\n {\r\n savePracticeMember(values);\r\n }}>\r\n {(practiceMemberForm) => (\r\n <>\r\n \r\n {\r\n if ((keyEvent.charCode || keyEvent.keyCode) === 13) {\r\n keyEvent.preventDefault();\r\n }\r\n }}\r\n onSubmit={(e) => { e.preventDefault(); }}\r\n onChange={() => { setFormSubmitted(false) }}>\r\n \r\n
\r\n
\r\n

Personal details

\r\n
\r\n

Admins can see and edit all staff salary details.

\r\n
\r\n\r\n
\r\n
\r\n
\r\n
Title
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {practiceMemberForm.touched.title &&\r\n practiceMemberForm.errors.title &&
\r\n
    \r\n
  • {practiceMemberForm.errors.title}
  • \r\n
\r\n
\r\n }\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n { practiceMemberForm.handleChange(e) }} type=\"text\" name=\"firstName\" placeholder=\"\" />\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n { practiceMemberForm.handleChange(e) }} type=\"text\" name=\"lastName\" placeholder=\"\" />\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n { practiceMemberForm.handleChange(e) }} type=\"text\" name=\"jobTitle\" placeholder=\"\" />\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n 0} component={FormInput} serverErrors={practiceMemberErrors.length > 0} id=\"email\" onChange={(e: any) => { practiceMemberForm.handleChange(e) }} type=\"text\" name=\"email\" placeholder=\"\" />
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n { practiceMemberForm.handleChange(e); handleAccessRightChange(e) }} \r\n disabled={practiceMember.id === member?.id}\r\n className={(practiceMemberForm.touched.accessLevel && practiceMemberForm.errors.accessLevel) || practiceMemberErrors.length > 0 ? 'dropdown-input dropdown-input--error' : 'dropdown-input'}>\r\n \r\n \r\n \r\n \r\n {(practiceMemberForm.touched.accessLevel && practiceMemberForm.errors.accessLevel) || practiceMemberErrors.length > 0 ? (\r\n
\r\n
    \r\n
  • {practiceMemberForm.errors.accessLevel}
  • \r\n
\r\n
\r\n ) : null\r\n }\r\n
Admin users can see and edit all staff salary details and overhead costs.
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n

Billable status

\r\n
\r\n

Working weeks each year, excluding annual holiday allowance. Read our guidance for help and information on billable time, salaries and benefits.

\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n\r\n {practiceMemberForm.values.billableStatus === 'Billable' && (\r\n <>\r\n
\r\n
\r\n \r\n
\r\n
\r\n { practiceMemberForm.handleChange(e) }} type=\"number\" name=\"workingHoursPerWeek\" placeholder=\"\" />\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n { practiceMemberForm.handleChange(e) }} type=\"number\" name=\"workingWeeksPerYear\" placeholder=\"\" />\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n { practiceMemberForm.handleChange(e) }} type=\"number\" name=\"billableHours\" placeholder=\"\" />\r\n
\r\n
\r\n \r\n )}\r\n
\r\n\r\n
\r\n
\r\n

Annual salary

\r\n
\r\n

Including this information will help you generate accurate fee calculations. You can edit these details later by adjusting your settings.

\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n {/* {JSON.stringify(practiceMemberForm.errors, null, 4)} */}\r\n {Object.keys(practiceMemberForm.errors).length > 0 &&\r\n Object.keys(practiceMemberForm.touched).length > 0 &&\r\n formSubmitted && (\r\n \r\n )}\r\n\r\n
\r\n \r\n \r\n
\r\n setShowAdminModal(false)}\r\n overlayClassName=\"Overlay\"\r\n contentLabel=\"Assigning admin access rights to staff members\"\r\n className='modal modal-react remodal remodal-is-initialized remodal-is-opened'>\r\n
\r\n\r\n <>\r\n setShowAdminModal(false)} data-remodal-action=\"close\" className=\"remodal-close dashboard-modal__close\">close\r\n

Assigning admin access rights to staff members

\r\n
\r\n \r\n

{`You are about to assign Admin access to ${practiceMember?.firstName} ${practiceMember?.lastName} `}

\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n\r\n
\r\n \r\n \r\n \r\n\r\n )}\r\n \r\n
\r\n \r\n )}\r\n \r\n\r\n )\r\n});\r\n\r\nexport default AddEditMemberForm;","import React, { useEffect } from \"react\";\r\nimport { useLocation } from \"react-router-dom\";\r\n\r\nconst Loading: React.FC = () => {\r\n\r\n const location = useLocation();\r\n\r\n useEffect(() => {\r\n window.scrollTo(0, 0);\r\n }, [location]);\r\n\r\n return (\r\n
\r\n
\r\n
Loading...
\r\n
\r\n
\r\n);\r\n}\r\n\r\nexport default Loading;\r\n","import { Member } from './member';\r\nexport class Practice {\r\n id: number = 0;\r\n cubePracticeId: number = 0;\r\n onboarded: boolean = false;\r\n members: Array = [];\r\n name: string = '';\r\n addressLineOne: string = '';\r\n addressLineTwo: string = '';\r\n addressLineThree: string = '';\r\n city: string = '';\r\n county: string = '';\r\n postcode: string = '';\r\n\r\n //overheads\r\n rentAndServiceCharge: number = 0;\r\n utilities: number = 0;\r\n softwareAndIT: number = 0;\r\n officeITAndCommunications: number = 0;\r\n marketingCosts: number = 0;\r\n companyCarFuelAllowance: number = 0;\r\n travelCost: number = 0;\r\n auditFeesAndAccountancy: number = 0;\r\n bankChargesAndInterest: number = 0;\r\n professionalIndemnityInsurance: number = 0;\r\n otherInsuranceCosts: number = 0;\r\n legalCosts: number = 0;\r\n depreciation: number = 0;\r\n badDebts: number = 0;\r\n pensionCosts: number = 0;\r\n nationalInsuranceContribution: number = 0;\r\n otherAnnualCosts: number = 0;\r\n\r\n totalAnnualOverheadCosts: number = 0;\r\n\r\n public constructor(init?: Partial) {\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\n","import { Practice } from './practice';\r\nexport class Member {\r\n id: number = 0;\r\n active: boolean = true;\r\n accessLevel: string = \"NonUser\";\r\n title: string = '';\r\n email: string = '';\r\n lastName: string = '';\r\n jobTitle: string = '';\r\n acceptedTermsAndConditions: boolean = false;\r\n firstName: string = '';\r\n practice: Practice = new Practice();\r\n billableStatus: string = 'Billable';\r\n workingHoursPerWeek: number = 0;\r\n workingWeeksPerYear: number = 0;\r\n billableHours: number = 0;\r\n annualSalary: number = 0;\r\n employerNIContribution: number = 0;\r\n otherBenefits: number = 0;\r\n totalSalaryPackage: number = 0;\r\n costRatePerHour: number = 0;\r\n costRatePerDay: number = 0;\r\n invitedToFeeCalculator: boolean = false;\r\n \r\n public constructor(init?: Partial) {\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\nexport class TaskMember {\r\n id: number = 0;\r\n hours: number = 0;\r\n staffCost: number = 0;\r\n costRatePerHour: number = 0;\r\n member: Member = new Member();\r\n jobTitle: string = ''\r\n public constructor(init?: Partial) {\r\n Object.assign(this, init);\r\n } \r\n}\r\n","import React, { useContext } from 'react';\r\nimport { Link, NavLink, Route, Redirect } from 'react-router-dom';\r\nimport { RootStoreContext } from '../../stores/rootStore';\r\nimport { Practice } from '../../types/practice';\r\nimport { Member } from '../../types/member';\r\n\r\ntype StepsProps = {\r\n currentStep: number,\r\n practice: any\r\n}\r\n\r\nconst SetupFormSteps: React.FC = (props) => {\r\n\r\n const { currentStep, practice } = props;\r\n\r\n\r\n return (\r\n
\r\n
\r\n\r\n
\r\n
0 ? \"step-circle--current\" : \"\" || practice?.members.some((member: Member) => member.totalSalaryPackage > 0)}`}>\r\n {currentStep === 1 && (\r\n
\r\n 1\r\n
\r\n )}\r\n {currentStep > 1 && (\r\n \r\n done\r\n \r\n )}\r\n\r\n\r\n
\r\n
\r\n

\r\n Check practice details\r\n

\r\n
\r\n  \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
1 ? \"step-circle--current\" : \"\"}`}>\r\n\r\n {currentStep === 2 && (\r\n
\r\n 2\r\n
\r\n )}\r\n {currentStep > 2 || practice?.totalAnnualOverheadCosts > 0 ? (\r\n \r\n done\r\n \r\n ) : (\r\n
\r\n 2\r\n
\r\n )}\r\n\r\n
\r\n
\r\n

\r\n Add company overheads\r\n

\r\n
\r\n  \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
2 ? \"step-circle--current\" : \"\" || practice?.members.some((member: Member) => member.totalSalaryPackage > 0)}`}>\r\n\r\n {currentStep === 3 && (\r\n
\r\n 3\r\n
\r\n )}\r\n {currentStep > 3 || practice?.members.some((member: Member) => member.totalSalaryPackage > 0) ? (\r\n \r\n done\r\n \r\n ) : (\r\n
\r\n 3\r\n
\r\n )}\r\n\r\n
\r\n
\r\n

\r\n Add staff members' salary details\r\n

\r\n
\r\n  \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
3 ? \"step-circle--current\" : \"\"}`}>\r\n\r\n
\r\n {currentStep > 4 || practice?.members.some((member: Member) => member.totalSalaryPackage > 0) ? (\r\n \r\n <>4\r\n \r\n ) : (\r\n <>4\r\n )\r\n }\r\n
\r\n\r\n
\r\n
\r\n

\r\n Confirm and complete\r\n

\r\n
\r\n  \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default SetupFormSteps;\r\n","import React, { useContext, useEffect } from 'react';\r\nimport { RootStoreContext } from '../../../stores/rootStore';\r\nimport AddEditMemberForm from '../../organisms/AddEditMemberForm';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { RouteComponentProps } from 'react-router-dom';\r\nimport Loading from '../../organisms/Loading';\r\nimport { history } from '../../../';\r\nimport { Member } from '../../../types/member';\r\nimport SetupFormSteps from '../../organisms/SetupFormSteps';\r\n\r\ninterface SetupStaffProps { id: string }\r\n\r\nconst AddEditMember: React.FC> = observer(({ match }) => {\r\n\r\n const rootStore = useContext(RootStoreContext);\r\n const { practice, practiceMember, loadPracticeMember, isLoadingPractice , clearPracticeMemberErrors} = rootStore.practiceStore;\r\n\r\n useEffect(() => {\r\n clearPracticeMemberErrors()\r\n if (match.params.id) {\r\n loadPracticeMember(practice?.members.filter((member) => member.id.toString() === match.params.id)[0])\r\n } else {\r\n loadPracticeMember(new Member())\r\n }\r\n\r\n }, [practice, loadPracticeMember, match.params.id]);\r\n\r\n const handleSubmit = () => {\r\n history.push('/setup/step3')\r\n }\r\n\r\n const handleBack = () => {\r\n history.push('/setup/step3')\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n

RIBA Fee Calculator setup

\r\n
\r\n
\r\n\r\n \r\n\r\n {isLoadingPractice ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n \r\n\r\n )\r\n\r\n})\r\n\r\nexport default AddEditMember;","import React from 'react';\r\n\r\nconst ContactUs: React.FC = () => {\r\n return (\r\n
\r\n

Need help?

\r\n
\r\n If your details are wrong or need updating, call us on +44 (0)20 7307 5355 or email us support@riba.org\r\n
\r\n
\r\n )\r\n};\r\n\r\nexport default ContactUs;\r\n","import React, { useContext, useLayoutEffect } from 'react';\r\nimport { RootStoreContext } from '../../stores/rootStore';\r\nimport { NavLink, useLocation } from 'react-router-dom';\r\nimport ContactUs from '../organisms/ContactUs'\r\n\r\ntype ConfirmPracticeDetailsFormsProps = {\r\n handleSubmit?: () => any,\r\n title?: string,\r\n summary?: string\r\n}\r\n\r\nconst ConfirmPracticeDetailsForm: React.FC = (props) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const { practice } = rootStore.practiceStore;\r\n const { handleSubmit, title, summary } = props;\r\n const { pathname } = useLocation();\r\n\r\n useLayoutEffect(() => {\r\n window.scrollTo(0, 0);\r\n }, [pathname]);\r\n\r\n return (\r\n <>\r\n \r\n Edit Practice Details\r\n \r\n\r\n
\r\n {title && (\r\n

{title}

\r\n )}\r\n {props.children}\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Practice namePractice address
{practice?.name}{practice?.addressLineOne}{practice?.addressLineTwo ? `, ${practice?.addressLineTwo}` : \"\"}{practice?.addressLineThree ? `, ${practice?.addressLineThree}` : \"\"}{practice?.postcode ? `, ${practice?.postcode}` : \"\"}
\r\n
\r\n {handleSubmit && (\r\n
\r\n \r\n
\r\n )}\r\n\r\n \r\n\r\n \r\n )\r\n};\r\n\r\nexport default ConfirmPracticeDetailsForm;","import React, { useEffect, useContext } from 'react';\r\nimport { RootStoreContext } from '../../../stores/rootStore';\r\nimport SetupFormSteps from '../../organisms/SetupFormSteps';\r\nimport ConfirmPracticeDetailsForm from '../../organisms/ConfirmPracticeDetailsForm';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { history } from '../../../';\r\n\r\nconst Step1: React.FC = observer(() => {\r\n\r\n const rootStore = useContext(RootStoreContext);\r\n const { getPractice, practice } = rootStore.practiceStore;\r\n\r\n const handleSubmit = () =>{\r\n history.push('/setup/step2');\r\n window.scrollTo(0, 0);\r\n }\r\n\r\n useEffect(() => {\r\n let isLoading = true;\r\n getPractice().finally(() => {\r\n })\r\n\r\n return () => {\r\n isLoading = false; // clean up function\r\n };\r\n\r\n }, []);\r\n\r\n return (\r\n <>\r\n
\r\n

RIBA Fee Calculator setup

\r\n
\r\n
\r\n\r\n \r\n \r\n

These are the practice details we have for you:

\r\n
\r\n
\r\n \r\n )\r\n\r\n})\r\n\r\nexport default Step1;","import * as Yup from 'yup';\r\n\r\nexport const PracticeOverheadsFormValidation = Yup.object().shape({\r\n rentAndServiceCharge: Yup.number()\r\n .integer('This field can only contain whole numbers (e.g. 1, 2, 3).')\r\n .moreThan(-1, 'Field must be a positive number'),\r\n utilities: Yup.number()\r\n .integer('This field can only contain whole numbers (e.g. 1, 2, 3).')\r\n .moreThan(-1, 'Field must be a positive number'),\r\n softwareAndIT: Yup.number()\r\n .integer('This field can only contain whole numbers (e.g. 1, 2, 3).')\r\n .moreThan(-1, 'Field must be a positive number'),\r\n marketingCosts: Yup.number()\r\n .integer('This field can only contain whole numbers (e.g. 1, 2, 3).')\r\n .moreThan(-1, 'Field must be a positive number'),\r\n companyCarFuelAllowance: Yup.number()\r\n .integer('This field can only contain whole numbers (e.g. 1, 2, 3).')\r\n .moreThan(-1, 'Field must be a positive number'),\r\n travelCost: Yup.number()\r\n .integer('This field can only contain whole numbers (e.g. 1, 2, 3).')\r\n .moreThan(-1, 'Field must be a positive number'),\r\n auditFeesAndAccountancy: Yup.number()\r\n .integer('This field can only contain whole numbers (e.g. 1, 2, 3).')\r\n .moreThan(-1, 'Field must be a positive number'),\r\n bankChargesAndInterest: Yup.number()\r\n .integer('This field can only contain whole numbers (e.g. 1, 2, 3).')\r\n .moreThan(-1, 'Field must be a positive number'),\r\n professionalIndemnityInsurance: Yup.number()\r\n .integer('This field can only contain whole numbers (e.g. 1, 2, 3).')\r\n .moreThan(-1, 'Field must be a positive number'),\r\n otherInsuranceCosts: Yup.number()\r\n .integer('This field can only contain whole numbers (e.g. 1, 2, 3).')\r\n .moreThan(-1, 'Field must be a positive number'),\r\n legalCosts: Yup.number()\r\n .integer('This field can only contain whole numbers (e.g. 1, 2, 3).')\r\n .moreThan(-1, 'Field must be a positive number'),\r\n depreciation: Yup.number()\r\n .integer('This field can only contain whole numbers (e.g. 1, 2, 3).')\r\n .moreThan(-1, 'Field must be a positive number'),\r\n badDebts: Yup.number()\r\n .integer('This field can only contain whole numbers (e.g. 1, 2, 3).')\r\n .moreThan(-1, 'Field must be a positive number'),\r\n otherAnnualCosts: Yup.number()\r\n .integer('This field can only contain whole numbers (e.g. 1, 2, 3).')\r\n .moreThan(-1, 'Field must be a positive number'),\r\n officeITAndCommunications: Yup.number()\r\n .integer('This field can only contain whole numbers (e.g. 1, 2, 3).')\r\n .moreThan(-1, 'Field must be a positive number'),\r\n pensionCosts: Yup.number()\r\n .integer('This field can only contain whole numbers (e.g. 1, 2, 3).')\r\n .moreThan(-1, 'Field must be a positive number'),\r\n nationalInsuranceContribution: Yup.number()\r\n .integer('This field can only contain whole numbers (e.g. 1, 2, 3).')\r\n .moreThan(-1, 'Field must be a positive number'),\r\n totalAnnualOverheadCosts: Yup.number()\r\n .required('Please complete this mandatory field.')\r\n .integer('This field can only contain whole numbers (e.g. 1, 2, 3).')\r\n .moreThan(-1, 'Field must be a positive number')\r\n .moreThan(0, 'Total annual overheads must be greater than zero'),\r\n});","import React, { useContext, useEffect, useRef, useState } from 'react';\r\nimport { RootStoreContext } from '../../stores/rootStore';\r\nimport FormInput from '../molecules/FormInput';\r\nimport Loading from './Loading';\r\nimport FormLabel from '../molecules/FormLabel';\r\nimport Alert from '../molecules/Alert';\r\nimport { Formik, Form, Field, getIn, useFormikContext } from \"formik\";\r\nimport { PracticeOverheadsFormValidation } from '../../utils/validation/PracticeOverheadsFormValidation';\r\nimport CurrencyFormInput from '../molecules/CurrencyFormInput';\r\nimport PromptIfDirty from '../molecules/PromptIfDirty';\r\n\r\ntype PracticeOverheadsFormProps = {\r\n handleSubmit: () => any,\r\n handleBack: () => any,\r\n confirmButtonText?: string\r\n cancelButtonText?: string,\r\n title: string,\r\n isSettingsPage?: boolean\r\n}\r\n\r\nconst PracticeOverheadsForm: React.FC = (props) => {\r\n const { handleSubmit, handleBack, confirmButtonText, cancelButtonText, title, isSettingsPage } = props;\r\n const rootStore = useContext(RootStoreContext);\r\n const { practice, isLoadingPractice, editPractice } = rootStore.practiceStore;\r\n const [showWarning, setShowWarning] = useState(false);\r\n const [isDirtyForm, setIsDirtyForm] = useState(false);\r\n\r\n const CalculateValuesComponent = () => {\r\n const { values, setFieldValue } = useFormikContext();\r\n const fieldValues = [getIn(values, 'officeITAndCommunications'), getIn(values, 'pensionCosts'), getIn(values, 'nationalInsuranceContribution'), getIn(values, 'depreciation'), getIn(values, 'legalCosts'), getIn(values, 'otherInsuranceCosts'), getIn(values, 'professionalIndemnityInsurance'), getIn(values, 'bankChargesAndInterest'), getIn(values, 'auditFeesAndAccountancy'), getIn(values, 'travelCost'), getIn(values, 'companyCarFuelAllowance'), getIn(values, 'marketingCosts'), getIn(values, 'softwareAndIT'), getIn(values, 'utilities'), getIn(values, 'rentAndServiceCharge'), getIn(values, 'otherAnnualCosts'), getIn(values, 'badDebts')]\r\n const initialRender = useRef(true);\r\n\r\n useEffect(() => {\r\n if (!initialRender.current) {\r\n var val = Number(values?.rentAndServiceCharge) +\r\n Number(values?.utilities) +\r\n Number(values?.softwareAndIT) +\r\n Number(values?.officeITAndCommunications) +\r\n Number(values?.marketingCosts) +\r\n Number(values?.companyCarFuelAllowance) +\r\n Number(values?.travelCost) +\r\n Number(values?.auditFeesAndAccountancy) +\r\n Number(values?.bankChargesAndInterest) +\r\n Number(values?.professionalIndemnityInsurance) +\r\n Number(values?.otherInsuranceCosts) +\r\n Number(values?.legalCosts) +\r\n Number(values?.depreciation) +\r\n Number(values?.badDebts) +\r\n Number(values?.pensionCosts) +\r\n Number(values?.nationalInsuranceContribution) +\r\n Number(values?.otherAnnualCosts);\r\n setFieldValue('totalAnnualOverheadCosts', val);\r\n setShowWarning(false);\r\n } else {\r\n initialRender.current = false;\r\n }\r\n }, fieldValues);\r\n\r\n useEffect(() => {\r\n var val = Number(values?.rentAndServiceCharge) +\r\n Number(values?.utilities) +\r\n Number(values?.softwareAndIT) +\r\n Number(values?.officeITAndCommunications) +\r\n Number(values?.marketingCosts) +\r\n Number(values?.companyCarFuelAllowance) +\r\n Number(values?.travelCost) +\r\n Number(values?.auditFeesAndAccountancy) +\r\n Number(values?.bankChargesAndInterest) +\r\n Number(values?.professionalIndemnityInsurance) +\r\n Number(values?.otherInsuranceCosts) +\r\n Number(values?.legalCosts) +\r\n Number(values?.depreciation) +\r\n Number(values?.badDebts) +\r\n Number(values?.pensionCosts) +\r\n Number(values?.nationalInsuranceContribution) +\r\n Number(values?.otherAnnualCosts);\r\n if (val > 0 && val !== values?.totalAnnualOverheadCosts) {\r\n setShowWarning(true);\r\n } else {\r\n setShowWarning(false);\r\n }\r\n }, [getIn(values, 'totalAnnualOverheadCosts')]);\r\n\r\n return null;\r\n }\r\n\r\n const saveOverheads = (values: any) => {\r\n setIsDirtyForm(false);\r\n setShowWarning(false);\r\n editPractice(values).finally(() => {\r\n handleSubmit()\r\n });\r\n }\r\n\r\n const goBack = () => {\r\n setShowWarning(false);\r\n handleBack()\r\n }\r\n\r\n return (\r\n <>\r\n {isLoadingPractice ? () : (\r\n <>\r\n
\r\n

{title}

\r\n {props.children}\r\n

You can either complete this itemised list, or provide one total overhead cost.

\r\n

Check our guidance notes for help and information on how to calculate these costs.

\r\n
\r\n
\r\n { practice && (\r\n saveOverheads(values)}>\r\n {(overheadsForm) => (\r\n <>\r\n \r\n
{\r\n if ((keyEvent.charCode || keyEvent.keyCode) === 13) {\r\n keyEvent.preventDefault();\r\n }\r\n }}>\r\n {isSettingsPage && (\r\n \r\n )}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n {showWarning && (\r\n

You have overwritten the total annual overhead costs. Please check the itemised list above and make sure you’ve provided the correct details.

\r\n )}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n { }} id=\"totalAnnualOverheadCosts\" type=\"number\" name=\"totalAnnualOverheadCosts\" placeholder=\"\" />\r\n
\r\n
\r\n
\r\n {isSettingsPage && (\r\n

IMPORTANT: You need to click on the Apply Changes button below if you want to apply your changes to new fee calculations. Staff will be notified but will not see this data.

\r\n )}\r\n {Object.keys(overheadsForm.errors).length > 0 && (\r\n \r\n )}\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n\r\n )}\r\n \r\n )}\r\n
\r\n \r\n )}\r\n\r\n \r\n\r\n )\r\n};\r\n\r\nexport default PracticeOverheadsForm;","import React, { useEffect, useContext } from 'react';\r\nimport SetupFormSteps from '../../organisms/SetupFormSteps';\r\nimport { RootStoreContext } from '../../../stores/rootStore';\r\nimport PracticeOverheadsForm from '../../organisms/PracticeOverheadsForm';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { history } from '../../../';\r\n\r\nconst Step2: React.FC = observer(() => {\r\n\r\n const rootStore = useContext(RootStoreContext);\r\n const { getPractice, practice } = rootStore.practiceStore;\r\n\r\n const handleSubmit = () => {\r\n history.push('/setup/step3');\r\n window.scrollTo(0, 0);\r\n }\r\n\r\n const handleBack = () => {\r\n history.push('/setup/step1');\r\n window.scrollTo(0, 0);\r\n }\r\n\r\n useEffect(() => {\r\n let isLoaded = false;\r\n getPractice().finally(() => {\r\n // isLoaded(true);\r\n })\r\n\r\n return () => {\r\n isLoaded = true; // clean up function\r\n };\r\n\r\n }, []);\r\n\r\n return (\r\n <>\r\n
\r\n

RIBA Fee Calculator setup

\r\n
\r\n
\r\n\r\n \r\n \r\n

Your annual overhead costs are the annual ongoing costs of running your business. You only need to enter this once to set up your practice on the RIBA Fee Calculator, but you can edit or add to it any time by managing your settings.

\r\n

What you enter here will be used in your fee calculations, so make sure you use accurate information.

\r\n

Many practices submit these details each year for the RIBA Business Benchmarking, our yearly survey tracking the business of doing architecture among RIBA Chartered Practices.

\r\n
\r\n
\r\n \r\n )\r\n\r\n})\r\n\r\nexport default Step2;","import React, { useContext, useLayoutEffect } from 'react';\r\nimport { RootStoreContext } from '../../stores/rootStore';\r\nimport { Member } from '../../types/member';\r\nimport { NavLink, useLocation } from 'react-router-dom';\r\nimport { runInAction } from 'mobx';\r\nimport Modal from 'react-modal';\r\nimport Alert from '../molecules/Alert';\r\nimport ReactTooltip from 'react-tooltip';\r\n\r\ntype PracticeMembersListProps = {\r\n handleBack: () => any,\r\n handleSubmit: () => any,\r\n handleReload: () => any,\r\n title: string,\r\n isSettingsPage?: boolean\r\n}\r\n\r\nconst PracticeMembersList: React.FC = (props) => {\r\n const { handleBack, handleSubmit, handleReload, title, isSettingsPage, children } = props;\r\n const rootStore = useContext(RootStoreContext);\r\n const { practice, isLoadingPractice, editPracticeMember, deletePracticeMember } = rootStore.practiceStore;\r\n const { member } = rootStore.memberStore;\r\n const { pathname } = useLocation();\r\n const [memberDeletionModalIsOpen, setMemberDeletionModalIsOpen] = React.useState(false);\r\n const [memberDeactivationModalIsOpen, setMemberDeactivationModalIsOpen] = React.useState(false);\r\n const [selectedMember, selectMember] = React.useState(new Member());\r\n\r\n function openMemberDeletionModal(member: Member) {\r\n setMemberDeletionModalIsOpen(true);\r\n selectMember(member);\r\n }\r\n\r\n function openMemberDeactivationModal(member: Member) {\r\n setMemberDeactivationModalIsOpen(true);\r\n selectMember(member);\r\n }\r\n\r\n const confirmMemberDeletion = (member: Member) => {\r\n deletePracticeMember(member.id).finally(() => {\r\n closeMemberDeletionModal();\r\n handleReload();\r\n })\r\n }\r\n\r\n const confirmMemberDeactivation = (member: Member) => {\r\n runInAction(() => {\r\n member.active = false;\r\n });\r\n editPracticeMember(member).finally(() => {\r\n closeMemberDeactivationModal();\r\n handleReload();\r\n });\r\n }\r\n\r\n function closeMemberDeletionModal() {\r\n setMemberDeletionModalIsOpen(false);\r\n selectMember(new Member());\r\n }\r\n\r\n function closeMemberDeactivationModal() {\r\n setMemberDeactivationModalIsOpen(false);\r\n selectMember(new Member());\r\n }\r\n\r\n useLayoutEffect(() => {\r\n window.scrollTo(0, 0);\r\n }, [pathname]);\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n {isSettingsPage ? (\r\n <>\r\n \r\n Add a new staff member\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {practice?.members.slice().sort((a, b) => (a.firstName + a.lastName).toLowerCase() > (b.firstName + b.lastName).toLowerCase() ? 1 : -1).map((staffMember: Member, index) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n ))}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
NameJob titleAccess rightTotal salary package% Billable\r\n
\r\n
\r\n info\r\n
\r\n
\r\n \r\n Cost rate hourly
\r\n This is an individual’s cost to the business per hour.
\r\n This is calculated by adding an individual’s salary to
\r\n their allocation/portion of overheads and then dividing
\r\n this figure by their billable hours.\r\n Cost rate (hourly)
\r\n
\r\n
\r\n info\r\n
\r\n
\r\n \r\n Cost rate daily
\r\n This is an individual’s cost to the business per day.
\r\n This is calculated by simply taking an individual’s
\r\n Cost Rate Per Hour and multiplying it by seven.\r\n Cost rate (daily)
{staffMember.firstName} {staffMember.lastName}{staffMember.jobTitle}{staffMember.accessLevel === \"NonUser\" ? \"None\" : staffMember.accessLevel}{!staffMember.totalSalaryPackage ? (\r\n
\r\n Incomplete\r\n
\r\n ) : (\r\n <>£{staffMember.totalSalaryPackage.toLocaleString(navigator.language, { maximumFractionDigits: 0 })}\r\n )}
{staffMember.billableStatus === 'Billable' ? `${staffMember.billableHours}%` : 'Non-billable'}{staffMember.billableStatus === 'Billable' ? `£${staffMember.costRatePerHour.toLocaleString(navigator.language, { maximumFractionDigits: 0 })}` : '-'}{staffMember.billableStatus === 'Billable' ? `£${staffMember.costRatePerDay.toLocaleString(navigator.language, { maximumFractionDigits: 0 })}` : '-'}\r\n {staffMember.active ? (\r\n <>\r\n edit\r\n {member?.id !== staffMember.id && (\r\n { openMemberDeactivationModal(staffMember) }}>delete\r\n )}\r\n \r\n ) : (\r\n Activate\r\n )}\r\n
\r\n Salary total:\r\n \r\n £{practice?.members.filter((member) => member.active).reduce((total, member) => total = total + member.totalSalaryPackage, 0).toLocaleString(navigator.language, { maximumFractionDigits: 0 })}\r\n
\r\n \r\n ) : (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {practice?.members.slice().sort((a, b) => (a.firstName + a.lastName).toLowerCase() > (b.firstName + b.lastName).toLowerCase() ? 1 : -1).map((staffMember: Member, index) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n\r\n \r\n
NameEmailTotal annual salary
{staffMember.firstName} {staffMember.lastName}{staffMember.email}{!staffMember.totalSalaryPackage ? (\r\n
\r\n Incomplete\r\n
\r\n ) : (\r\n <>£{staffMember.totalSalaryPackage.toLocaleString(navigator.language, { maximumFractionDigits: 0 })}\r\n )}
\r\n edit\r\n {member?.id !== staffMember.id && (\r\n { openMemberDeletionModal(staffMember) }}>delete\r\n )}\r\n
\r\n \r\n Add a new staff member\r\n \r\n \r\n )}\r\n
\r\n
\r\n\r\n {!isSettingsPage && (\r\n
\r\n \r\n \r\n
\r\n )}\r\n\r\n\r\n \r\n
\r\n close\r\n

Permanently remove staff member from Fee Calculator

\r\n
\r\n \r\n

You are about to remove {selectedMember?.firstName} {selectedMember?.lastName} from the Fee Calculator. All staff details will be removed.

\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n close\r\n

Deactivate staff member

\r\n
\r\n

You are about to deactivate {selectedMember.firstName} {selectedMember.lastName} from the Fee Calculator. Staff details will be included in existing fee calculations. You can activate staff member at any time.

\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n )\r\n};\r\n\r\nexport default PracticeMembersList;","import React, { useEffect, useContext } from 'react';\r\nimport { RootStoreContext } from '../../../stores/rootStore';\r\nimport PracticeMembersList from '../../organisms/PracticeMembersList';\r\nimport SetupFormSteps from '../../organisms/SetupFormSteps';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { history } from '../../../';\r\n\r\nconst Step3: React.FC = observer(() => {\r\n\r\n const rootStore = useContext(RootStoreContext);\r\n const { practice, getPractice } = rootStore.practiceStore;\r\n\r\n const handleSubmit = () => {\r\n history.push('/setup/step4');\r\n window.scrollTo(0, 0);\r\n }\r\n\r\n const handleBack = () => {\r\n history.push('/setup/step2');\r\n window.scrollTo(0, 0);\r\n }\r\n\r\n useEffect(() => {\r\n let isLoading = true;\r\n getPractice().finally(() => {\r\n // isLoading(true);\r\n })\r\n\r\n return () => {\r\n isLoading = false; // clean up function\r\n };\r\n\r\n }, []);\r\n\r\n const handleReload = () => {\r\n getPractice()\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n

RIBA Fee Calculator setup

\r\n
\r\n
\r\n \r\n
\r\n

Add staff salary details

\r\n

Add your staff details, salary information, and working hours using the table below. Use our guidance notes to determine which staff are billable staff (if they actively work on projects) or are non-billable (those providing business support services). You can assign staff to certain projects later in the process when creating fee calculations. Additional consultants or contractors engaged to work on specific projects are added to projects when making fee calculations, rather than here as part of your payroll. You can edit or add staff salary details at any later stage by managing your Settings.

\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n \r\n\r\n )\r\n\r\n})\r\n\r\nexport default Step3;","import React from 'react';\r\n\r\ntype FormReadonlyCurrencyProps = {\r\n title?: string,\r\n value?: number,\r\n}\r\n\r\nconst FormReadonlyCurrency: React.FC = (props) => {\r\n\r\n var { title, value } = props;\r\n if(!value) { value = 0; }\r\n return (\r\n <>\r\n {title && (\r\n
\r\n
\r\n
\r\n
\r\n {title}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n £{value.toLocaleString(navigator.language, { maximumFractionDigits: 0 })}\r\n
\r\n
\r\n
\r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default FormReadonlyCurrency;","import React, {useContext} from 'react';\r\nimport { RootStoreContext } from '../../stores/rootStore';\r\nimport FormReadonlyCurrency from '../molecules/FormReadonlyCurrency';\r\nimport SetupFormSteps from './SetupFormSteps';\r\nimport { Member } from '../../types/member';\r\nimport { runInAction } from 'mobx';\r\nimport { NavLink } from 'react-router-dom';\r\n\r\ntype SetupSummaryProps = {\r\n handleBack: () => any,\r\n handleSubmit: () => any\r\n}\r\n\r\n\r\nconst SetupSummary: React.FC = (props) => {\r\n const {handleSubmit, handleBack} = props;\r\n const rootStore = useContext(RootStoreContext);\r\n const { practice, editPractice } = rootStore.practiceStore;\r\n\r\n const savePractice = (practice: any) => {\r\n runInAction(() => {\r\n practice.onboarded = true;\r\n });\r\n editPractice(practice).finally(() => {\r\n handleSubmit()\r\n });\r\n }\r\n\r\n const goBack = () => {\r\n handleBack()\r\n }\r\n \r\n return (\r\n <>\r\n
\r\n

RIBA Fee Calculator setup

\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n

Finish set up

\r\n

Please check through the information below and confirm it is accurate. This information will then be used in your fee calculations. You can edit this information later by changing your settings.

\r\n
\r\n \r\n \r\n
\r\n
\r\n Edit\r\n

Practice details

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {practice?.name}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{practice?.addressLineOne}
\r\n
{practice?.addressLineTwo}
\r\n
{practice?.addressLineThree}
\r\n
{practice?.city}
\r\n
{practice?.postcode}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n Edit\r\n

Overhead costs

\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n Edit\r\n

Staff and salaries

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {practice?.members.map((member: Member, index) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
NameJob titleTotal salaryBillable %Cost rate (per hour)Cost rate (per day)
{member.firstName} {member.lastName}{member.jobTitle}£{member.totalSalaryPackage.toLocaleString(navigator.language, { maximumFractionDigits: 0 })}{member.billableStatus === 'Billable' ? `${member.billableHours}%` : 'Non-billable'}{member.billableStatus === 'Billable' ? `£${member.costRatePerHour.toLocaleString(navigator.language, { maximumFractionDigits: 0 })}` : '-'}{member.billableStatus === 'Billable' ? `£${member.costRatePerDay.toLocaleString(navigator.language, { maximumFractionDigits: 0 })}` : '-'}
\r\n Total staff salaries\r\n \r\n £{practice?.members.reduce((total, member) => total = total + member.totalSalaryPackage, 0).toLocaleString(navigator.language, { maximumFractionDigits: 0 })}\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n )\r\n};\r\n\r\nexport default SetupSummary;","import React, { useEffect, useContext } from 'react';\r\nimport { RootStoreContext } from '../../../stores/rootStore';\r\nimport SetupSummary from '../../organisms/SetupSummary';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { history } from '../../../';\r\n\r\nconst Step4: React.FC = observer(() => {\r\n\r\n const rootStore = useContext(RootStoreContext);\r\n const { getPractice } = rootStore.practiceStore;\r\n\r\n const handleSubmit = () =>{\r\n history.push('/projects');\r\n window.scrollTo(0, 0);\r\n }\r\n\r\n const handleBack = () =>{\r\n history.push('/setup/step3');\r\n window.scrollTo(0, 0);\r\n }\r\n\r\n useEffect(() => {\r\n let isLoading = true;\r\n getPractice().finally(() => {\r\n // isLoading(true);\r\n })\r\n\r\n return () => {\r\n isLoading = false; // clean up function\r\n };\r\n\r\n }, []);\r\n\r\n return (\r\n \r\n )\r\n\r\n})\r\n\r\nexport default Step4;","import React from 'react';\r\nimport Button from '../atoms/Button';\r\n\r\nconst NotFound: React.FC = () => {\r\n return (\r\n
\r\n
\r\n
\r\n

Error - 404

\r\n
\r\n
\r\n

Sorry - there seems to be a problem accessing the Fee Calculator

\r\n
\r\n\r\n

Please get in touch with our Contact Centre & Membership Servicing team:

\r\n email: support@riba.org
\r\n telephone: +44 (0)20 7307 5355
\r\n Monday to Friday, 9am to 5pm
\r\n
\r\n

\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default NotFound;","import React from 'react';\r\nimport { RouteComponentProps } from 'react-router-dom';\r\n\r\n\r\ninterface ErrorProps { errorId: string }\r\n\r\nconst Error: React.FC> = ({ match }) => {\r\n return (\r\n \r\n
\r\n
\r\n
\r\n \r\n {match.params.errorId === '473' ? (\r\n
\r\n
\r\n

RESTRICTED ACCESS

\r\n
\r\n
\r\n

Sorry - there seems to be a problem accessing the Fee Calculator

\r\n
\r\n\r\n

Please get in touch with our Contact Centre & Membership Servicing team:

\r\n email: support@riba.org
\r\n telephone: +44 (0)20 7307 5355
\r\n Monday to Friday, 9am to 5pm
\r\n
\r\n

\r\n
\r\n ) : (\r\n
\r\n
\r\n

ERROR

\r\n
\r\n
\r\n

Sorry - there seems to be a problem accessing the Fee Calculator

\r\n
\r\n\r\n

Please get in touch with our Contact Centre & Membership Servicing team:

\r\n email: support@riba.org
\r\n telephone: +44 (0)20 7307 5355
\r\n Monday to Friday, 9am to 5pm
\r\n
\r\n

\r\n
\r\n )}\r\n\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default Error;","import { FeeCalculation } from \"../types/feeCalculation\";\r\nimport { Member } from \"../types/member\";\r\nimport { FeeCalculationStates } from \"./Constants\";\r\n\r\n//TODO DELETE?\r\nexport const getFeeCalculationStatusName = (feeCalculationState: string | undefined) => {\r\n if (feeCalculationState) {\r\n return FeeCalculationStates.filter(state => state.id === feeCalculationState)[0] !== undefined ? FeeCalculationStates.filter(state => state.id === feeCalculationState)[0].name : '';\r\n }\r\n}\r\n\r\nexport const canEditFeeCalculation = (feeCalculation: FeeCalculation, member: Member): boolean => {\r\n let canEdit = false;\r\n if (member) {\r\n if (member.accessLevel === 'Admin' && feeCalculation.state === 'Draft') { canEdit = true };\r\n if (member.id === feeCalculation.createdBy && feeCalculation.state === 'Draft') { canEdit = true };\r\n }\r\n return canEdit\r\n}\r\n\r\nexport const isFeeCalculationOwnerOrAdmin = (feeCalculation: FeeCalculation, member: Member): boolean => {\r\n return (feeCalculation.createdBy === member.id || member.accessLevel === 'Admin')\r\n}","import React, { useContext, useState } from 'react';\r\nimport ReactGA from 'react-ga';\r\nimport { RootStoreContext } from '../../stores/rootStore';\r\nimport { FeeCalculation, FeeCalculationDetailed } from '../../types/feeCalculation';\r\nimport Modal from 'react-modal';\r\nimport Alert from './Alert';\r\nimport { runInAction } from 'mobx';\r\nimport { NonEditableStates } from '../../utils/Constants';\r\nimport { history } from '../..';\r\nimport { FormikProps } from 'formik';\r\n\r\n\r\ntype FeeCalculationActionsDropdownProps = {\r\n feeCalculation: FeeCalculation,\r\n handleSelection: () => any,\r\n saveFeeCalculation?: (feeCalculation: FeeCalculation, isAutoSave? : boolean, callback? : () => any) => any,\r\n canEdit: boolean,\r\n isOwnerOrAdmin: boolean,\r\n projectName: string | undefined,\r\n feeCalculationForm?: FormikProps\r\n}\r\n\r\nconst FeeCalculationActionsDropdown: React.FC = (props) => {\r\n\r\n const { feeCalculation, handleSelection, isOwnerOrAdmin, projectName, feeCalculationForm, saveFeeCalculation } = props;\r\n const rootStore = useContext(RootStoreContext);\r\n const { getProject } = rootStore.projectStore;\r\n const { editFeeCalculation, exportFeeCalculationExcel, exportFeeCalculationCreateContract, getFeeCalculationDetailed, duplicateFeeCalculation, deleteFeeCalculation } = rootStore.feeCalculationStore;\r\n const [value, setValue] = useState('');\r\n\r\n //modals\r\n const [loading, setLoading] = useState(false);\r\n const [exportContractModalIsOpen, setExportContractModalIsOpen] = useState(false);\r\n const [stateModalIsOpen, setStateModalIsOpen] = useState(false);\r\n const [duplicateModalIsOpen, setDuplicateModalIsOpen] = useState(false);\r\n const [deleteModalIsOpen, setDeleteModalIsOpen] = useState(false);\r\n const [state, setState] = useState('');\r\n\r\n const trackEvent = (event: string) => \r\n ReactGA.event({\r\n category: 'Fee Calculation',\r\n action: 'Fee Calculation Action Tray',\r\n label: event\r\n })\r\n\r\n const handleChange = (e: any) => {\r\n switch (e.target.value) {\r\n case \"DELETE_FEE_CALCULATION\":\r\n setDeleteModalIsOpen(true);\r\n break;\r\n case \"DOWNLOAD_EXCEL\":\r\n setLoading(true);\r\n trackEvent('Download to Excel');\r\n if (feeCalculationForm && saveFeeCalculation) {\r\n saveFeeCalculation(feeCalculationForm.values, true, () => {\r\n //Auto save before exporting\r\n exportFeeCalculationExcel(feeCalculation.id?.toString()).then(() => {\r\n setLoading(false);\r\n });\r\n });\r\n } else {\r\n exportFeeCalculationExcel(feeCalculation.id?.toString()).then(() => {\r\n setLoading(false);\r\n });\r\n }\r\n break;\r\n case \"DUPLICATE_FEE_CALCULATION\":\r\n setDuplicateModalIsOpen(true);\r\n break;\r\n case \"CREATE_DIGITAL_RIBA_CONTRACT\":\r\n setExportContractModalIsOpen(true);\r\n break;\r\n case \"APPROVED\":\r\n setStateModalIsOpen(true);\r\n setState('Approved')\r\n break;\r\n case \"ACCEPTED\":\r\n setStateModalIsOpen(true);\r\n setState('Accepted')\r\n break;\r\n case \"DECLINED\":\r\n setStateModalIsOpen(true);\r\n setState('Declined')\r\n break;\r\n }\r\n setValue('')\r\n }\r\n\r\n const confirmExportFeeCalculationCreateContract = () => {\r\n setLoading(true);\r\n trackEvent('Create digital RIBA contract');\r\n exportFeeCalculationCreateContract(feeCalculation.id?.toString()).then(() => {\r\n setExportContractModalIsOpen(false);\r\n setLoading(false);\r\n handleSelection();\r\n });\r\n }\r\n\r\n const confirmStateChange = () => {\r\n setLoading(true);\r\n // ga event tracking\r\n switch(state){\r\n case \"Approved\": trackEvent('Change status to Internal approval'); break;\r\n case \"Accepted\": trackEvent('Change status to Client accepted'); break;\r\n case \"Declined\": trackEvent('Change status to Client declined'); break;\r\n }\r\n getFeeCalculationDetailed(feeCalculation.id?.toString()).then((feeCalculationDetailed: FeeCalculationDetailed | undefined) => {\r\n if (feeCalculationDetailed) {\r\n runInAction(() => {\r\n feeCalculationDetailed.feeCalculation.state = state;\r\n editFeeCalculation(feeCalculationDetailed.feeCalculation).then(() => {\r\n setStateModalIsOpen(false);\r\n setState('');\r\n getProject(feeCalculationDetailed.feeCalculation.projectId.toString());\r\n setLoading(false);\r\n handleSelection();\r\n })\r\n })\r\n } else {\r\n setLoading(false);\r\n }\r\n })\r\n }\r\n\r\n const saveUnderExistingProject = () => {\r\n trackEvent('Duplicate fee calculation under existing project');\r\n duplicateFeeCalculation(feeCalculation.id?.toString(), feeCalculation.projectId?.toString()).then((feeCalculationCopy: any | undefined) => {\r\n if (feeCalculationCopy && feeCalculationCopy.feeCalculationId && feeCalculationCopy.projectId) {\r\n history.push(`/projects/${feeCalculationCopy.projectId}/fee-calculation/${feeCalculationCopy.feeCalculationId}`)\r\n }\r\n })\r\n }\r\n\r\n const saveUnderNewProject = () => {\r\n trackEvent('Duplicate fee calculation under new project');\r\n history.push(`/duplicate-fee-calculation/${feeCalculation.id}`)\r\n }\r\n\r\n\r\n const deleteFeeCalc = () => {\r\n trackEvent('Delete fee calculation');\r\n var project = feeCalculation.projectId;\r\n deleteFeeCalculation(feeCalculation.id?.toString())\r\n .then(() => {\r\n var path = window.location.pathname;\r\n if(path == '/projects') window.location.reload()\r\n else history.push(`/projects/${project}`)\r\n });\r\n } \r\n\r\n return (\r\n <>\r\n
\r\n \r\n
\r\n\r\n setExportContractModalIsOpen(false)}\r\n overlayClassName=\"Overlay\"\r\n contentLabel=\"Create a contract using this fee calculation\"\r\n className='modal modal-react remodal remodal-is-initialized remodal-is-opened'>\r\n
\r\n {loading ? (\r\n
\r\n
Loading...
\r\n
\r\n ) : (\r\n <>\r\n setExportContractModalIsOpen(false)} data-remodal-action=\"close\" className=\"remodal-close dashboard-modal__close\">close\r\n

Create a contract using this fee calculation

\r\n
\r\n {feeCalculation.state !== 'Approved' ? (\r\n \r\n ) : (\r\n \r\n )}\r\n

This project will be exported into RIBA Contracts Digital. You will leave the RIBA Fee Calculator, and see your project on the RIBA Contracts Digital homepage when you click to proceed.

\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n )}\r\n
\r\n \r\n\r\n setStateModalIsOpen(false)}\r\n overlayClassName=\"Overlay\"\r\n contentLabel=\"Change status of the fee calculation\"\r\n className='modal modal-react remodal remodal-is-initialized remodal-is-opened'>\r\n
\r\n {loading ? (\r\n
\r\n
Loading...
\r\n
\r\n ) : (\r\n <>\r\n setStateModalIsOpen(false)} data-remodal-action=\"close\" className=\"remodal-close dashboard-modal__close\">close\r\n

Change status of the fee calculation

\r\n
\r\n \r\n

You are about to change the status of {feeCalculation.state}_{feeCalculation.version} from {projectName}. Your fee calculation name will change to {state}_{feeCalculation.version} and you will not be able to edit it any more. However, you will still be able to duplicate it.

\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n )}\r\n
\r\n \r\n\r\n setDuplicateModalIsOpen(false)}\r\n overlayClassName=\"Overlay\"\r\n contentLabel=\"Duplicate fee calculation\"\r\n className='modal modal-react remodal remodal-is-initialized remodal-is-opened'>\r\n
\r\n {loading ? (\r\n
\r\n
Loading...
\r\n
\r\n ) : (\r\n <>\r\n setDuplicateModalIsOpen(false)} data-remodal-action=\"close\" className=\"remodal-close dashboard-modal__close\">close\r\n

Duplicate fee calculation

\r\n
\r\n \r\n

You are about to duplicate {feeCalculation.state}_{feeCalculation.version} from {projectName}. You need to indicate where you want the new fee calculation to be saved.

\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n )}\r\n
\r\n \r\n\r\n setDeleteModalIsOpen(false)}\r\n overlayClassName=\"Overlay\"\r\n contentLabel=\"Archive project\"\r\n className='modal modal-react remodal remodal-is-initialized remodal-is-opened'>\r\n
\r\n {loading ? (\r\n
\r\n
Loading...
\r\n
\r\n ) : (\r\n <>\r\n setDeleteModalIsOpen(false)} data-remodal-action=\"close\" className=\"remodal-close dashboard-modal__close\">close\r\n

Delete fee calculation

\r\n
\r\n \r\n

You are about to delete {feeCalculation.name && feeCalculation?.name != \"\" ? feeCalculation?.name : `${feeCalculation.state}_${feeCalculation.version}`}. Are you sure you would like to proceed?

\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n )}\r\n
\r\n \r\n \r\n );\r\n}\r\n\r\nexport default FeeCalculationActionsDropdown;\r\n","import React, { useContext, useState } from 'react';\r\nimport { RootStoreContext } from '../../stores/rootStore';\r\nimport { Project } from '../../types/project';\r\nimport Modal from 'react-modal';\r\nimport Alert from './Alert';\r\nimport { runInAction } from 'mobx';\r\nimport { NonEditableStates } from '../../utils/Constants';\r\nimport { history } from '../..';\r\nimport { FormikProps } from 'formik';\r\n\r\n\r\ntype ProjectActionsDropdownProps = {\r\n project: Project,\r\n handleSelection: () => any,\r\n}\r\n\r\nconst ProjectActionsDropdown: React.FC = (props) => {\r\n\r\n const { project, handleSelection, } = props;\r\n const rootStore = useContext(RootStoreContext);\r\n const { isLoading, getProject, editProject, deleteProject, getProjects } = rootStore.projectStore;\r\n const [value, setValue] = useState('');\r\n\r\n //modals\r\n const [loading, setLoading] = useState(false);\r\n const [archiveModelIsOpen, setArchiveModelIsOpen] = useState(false);\r\n const [deleteModelIsOpen, setDeleteModelIsOpen] = useState(false);\r\n \r\n const [state, setState] = useState('');\r\n\r\n const handleChange = (e: any) => {\r\n switch (e.target.value) {\r\n case \"EDIT_PROJECT\":\r\n history.push(`/projects/${project.id}`)\r\n break;\r\n case \"ARCHIVE_PROJECT\":\r\n setArchiveModelIsOpen(true);\r\n break;\r\n case \"RESTORE_PROJECT\":\r\n restoreProject();\r\n break;\r\n case \"DELETE_PROJECT\":\r\n setDeleteModelIsOpen(true);\r\n break;\r\n }\r\n setValue('')\r\n }\r\n\r\n\r\n const archiveProject = () => {\r\n runInAction(() => {\r\n project.archived = true;\r\n editProject(project)\r\n .then(() => handleSelection());\r\n })\r\n }\r\n\r\n const restoreProject = () => {\r\n runInAction(() => {\r\n project.archived = false;\r\n editProject(project)\r\n .then(() => handleSelection());\r\n })\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n \r\n
\r\n\r\n setArchiveModelIsOpen(false)}\r\n overlayClassName=\"Overlay\"\r\n contentLabel=\"Archive project\"\r\n className='modal modal-react remodal remodal-is-initialized remodal-is-opened'>\r\n
\r\n {loading ? (\r\n
\r\n
Loading...
\r\n
\r\n ) : (\r\n <>\r\n setArchiveModelIsOpen(false)} data-remodal-action=\"close\" className=\"remodal-close dashboard-modal__close\">close\r\n

Archive project

\r\n
\r\n \r\n

You are about to archive {project.name}. Are you sure you would like to proceed?

\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n )}\r\n
\r\n \r\n setDeleteModelIsOpen(false)}\r\n overlayClassName=\"Overlay\"\r\n contentLabel=\"Permanently delete this project\"\r\n className='modal modal-react remodal remodal-is-initialized remodal-is-opened'>\r\n
\r\n {loading ? (\r\n
\r\n
Loading...
\r\n
\r\n ) : (\r\n <>\r\n setDeleteModelIsOpen(false)} data-remodal-action=\"close\" className=\"remodal-close dashboard-modal__close\">close\r\n

Permanently delete this project

\r\n
\r\n \r\n

You are about to delete this archived project. You will not be able to undo this.

\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n )}\r\n
\r\n \r\n \r\n );\r\n}\r\n\r\nexport default ProjectActionsDropdown;\r\n","import React from 'react';\r\nimport { useMemo } from 'react';\r\n\r\nexport const DOTS = '...';\r\n\r\nconst range = (start, end) => {\r\n let length = end - start + 1;\r\n return Array.from({ length }, (_, idx) => idx + start);\r\n};\r\n\r\nexport const usePagination = ({\r\n totalCount,\r\n pageSize,\r\n siblingCount = 1,\r\n currentPage\r\n}) => {\r\n const paginationRange = useMemo(() => {\r\n const totalPageCount = Math.ceil(totalCount / pageSize);\r\n\r\n // Pages count is determined as siblingCount + firstPage + lastPage + currentPage + 2*DOTS\r\n const totalPageNumbers = siblingCount + 5;\r\n\r\n /*\r\n If the number of pages is less than the page numbers we want to show in our\r\n paginationComponent, we return the range [1..totalPageCount]\r\n */\r\n if (totalPageNumbers >= totalPageCount) {\r\n return range(1, totalPageCount);\r\n }\r\n\r\n const leftSiblingIndex = Math.max(currentPage - siblingCount, 1);\r\n const rightSiblingIndex = Math.min(\r\n currentPage + siblingCount,\r\n totalPageCount\r\n );\r\n\r\n /*\r\n We do not want to show dots if there is only one position left \r\n after/before the left/right page count as that would lead to a change if our Pagination\r\n component size which we do not want\r\n */\r\n const shouldShowLeftDots = leftSiblingIndex > 2;\r\n const shouldShowRightDots = rightSiblingIndex < totalPageCount - 2;\r\n\r\n const firstPageIndex = 1;\r\n const lastPageIndex = totalPageCount;\r\n\r\n if (!shouldShowLeftDots && shouldShowRightDots) {\r\n let leftItemCount = 3 + 2 * siblingCount;\r\n let leftRange = range(1, leftItemCount);\r\n\r\n return [...leftRange, DOTS, totalPageCount];\r\n }\r\n\r\n if (shouldShowLeftDots && !shouldShowRightDots) {\r\n let rightItemCount = 3 + 2 * siblingCount;\r\n let rightRange = range(\r\n totalPageCount - rightItemCount + 1,\r\n totalPageCount\r\n );\r\n return [firstPageIndex, DOTS, ...rightRange];\r\n }\r\n\r\n if (shouldShowLeftDots && shouldShowRightDots) {\r\n let middleRange = range(leftSiblingIndex, rightSiblingIndex);\r\n return [firstPageIndex, DOTS, ...middleRange, DOTS, lastPageIndex];\r\n }\r\n }, [totalCount, pageSize, siblingCount, currentPage]);\r\n\r\n return paginationRange;\r\n};\r\n","import React from 'react';\r\nimport classnames from 'classnames';\r\nimport { usePagination, DOTS } from './usePagination';\r\nimport '../../styles/pagination.scss';\r\nconst Pagination = props => {\r\n const {\r\n onPageChange,\r\n totalCount,\r\n siblingCount = 1,\r\n currentPage,\r\n pageSize,\r\n className\r\n } = props;\r\n\r\n const paginationRange = usePagination({\r\n currentPage,\r\n totalCount,\r\n siblingCount,\r\n pageSize\r\n });\r\n\r\n if (currentPage === 0 || paginationRange.length < 2) {\r\n return null;\r\n }\r\n\r\n const onNext = () => {\r\n onPageChange(currentPage + 1);\r\n };\r\n\r\n const onPrevious = () => {\r\n onPageChange(currentPage - 1);\r\n };\r\n\r\n let lastPage = paginationRange[paginationRange.length - 1];\r\n return (\r\n \r\n \r\n
\r\n \r\n {paginationRange.map(pageNumber => {\r\n if (pageNumber === DOTS) {\r\n return
  • ;\r\n }\r\n\r\n return (\r\n onPageChange(pageNumber)}\r\n >\r\n {pageNumber}\r\n \r\n );\r\n })}\r\n \r\n
    \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Pagination;\r\n","import React, { useEffect, useState, useContext } from 'react';\r\nimport { RootStoreContext } from '../../../stores/rootStore';\r\nimport { history } from '../../..';\r\nimport { Project } from '../../../types/project';\r\nimport { NavLink } from 'react-router-dom';\r\nimport Loading from '../../organisms/Loading';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { FeeCalculation } from '../../../types/feeCalculation';\r\nimport Alert from '../../molecules/Alert';\r\nimport { getFeeCalculationStatusName, canEditFeeCalculation, isFeeCalculationOwnerOrAdmin } from '../../../utils/Helpers';\r\nimport FeeCalculationActionsDropdown from '../../molecules/FeeCalculationActionsDropdown';\r\nimport ProjectActionsDropdown from '../../molecules/ProjectActionsDropdown';\r\nimport projectStore from '../../../stores/projectStore';\r\nimport { action, observable, runInAction } from 'mobx';\r\nimport Pagination from '../../molecules/Pagination';\r\nimport { resolve } from 'url';\r\n\r\nconst Projects: React.FC = observer(() => {\r\n\r\n const rootStore = useContext(RootStoreContext);\r\n const { isLoadingPractice, getPractice } = rootStore.practiceStore;\r\n const { project, projects, getProject, getProjects, isLoading, editProject, getProjectCount, projectCount} = rootStore.projectStore;\r\n const { editFeeCalculation } = rootStore.feeCalculationStore;\r\n const { validateMemberMFA } = rootStore.mfaStore;\r\n const { auth } = rootStore.memberStore;\r\n const { member, getMember, isLoadingMember } = rootStore.memberStore;\r\n const [expandProject, setExpandedProject] = useState(0);\r\n const [editProjectName, setEditProjectName] = useState(0);\r\n const [newProjectName, setNewProjectName] = useState(\"\");\r\n const [searchTerm, setSearchTerm] = useState(\"\");\r\n const [searchResults, setSearchResults] = useState([]);\r\n const [gettingProject, setGettingProject] = useState(false);\r\n const [feeCalculations, setFeeCalculations] = useState([]);\r\n const [searchResultsCount, setSearchResultsCount] = useState(20);\r\n const [editFeeCalcName, setEditFeeCalcName] = useState(0);\r\n const [newFeeCalcName, setNewFeeCalcName] = useState(\"\");\r\n const [showLive, setShowLive] = useState(true);\r\n const [showArchived, setShowArchived] = useState(false);\r\n const [currentPage, setCurrentPage] = useState(1);\r\n\r\n let PageSize = 10;\r\n\r\n useEffect(() => { \r\n if (auth) {\r\n getMember().then((loadedMember: any) => {\r\n if(loadedMember) {\r\n \r\n if (loadedMember && !loadedMember.acceptedTermsAndConditions) {\r\n if(loadedMember.accessLevel ==='Admin') {\r\n history.push('/setup/accept-terms')\r\n }else if(loadedMember.accessLevel ==='Staff'){\r\n history.push('/setup/accept-terms-user')\r\n }\r\n }\r\n \r\n getPractice().then((localPractice) => {\r\n \r\n if (localPractice && localPractice.onboarded) {\r\n getProjectCount(true, false);\r\n getProjects(true, true, false);\r\n } else {\r\n history.push('/setup/accept-terms')\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }, [auth, getMember, getPractice, getProjects, validateMemberMFA]);\r\n\r\n // shows live and/ or archived projects\r\n useEffect(() => { \r\n if (auth) {\r\n getProjectCount(showLive, showArchived).then( res => {\r\n if(currentPage > Math.ceil(res /PageSize)){\r\n if(res == 0){\r\n setCurrentPage(1);\r\n } else {\r\n setCurrentPage(Math.ceil(res /PageSize));\r\n }\r\n }\r\n \r\n getProjects(true, showLive, showArchived);\r\n });\r\n }\r\n }, [auth, showLive, showArchived]);\r\n\r\n //Search projects and fee calcs\r\n useEffect(() => {\r\n let results: Project[] = [];\r\n let archive = \"Archived\";\r\n if (projects) {\r\n let lowerSearchTerm = searchTerm.toLowerCase();\r\n results = projects.filter((project: Project) =>\r\n project.name.toLowerCase().includes(lowerSearchTerm) ||\r\n project.number.toLowerCase().includes(lowerSearchTerm) ||\r\n project.status.toLowerCase().includes(lowerSearchTerm) ||\r\n (project.archived == true && archive.toLowerCase().includes(lowerSearchTerm)) ||\r\n project.siteAddress.toLowerCase().includes(lowerSearchTerm) ||\r\n project.feeCalculationSummaries.filter((feeCalculation: FeeCalculation) => {\r\n return (feeCalculation.state?.toLowerCase().includes(lowerSearchTerm) || feeCalculation.lastModifiedBy?.toLowerCase().includes(lowerSearchTerm));\r\n }).length > 0\r\n ).slice().sort((b, a) => (a.updated > b.updated ? 1 : -1));\r\n }\r\n setSearchResultsCount(results.length)\r\n setSearchResults(results.slice(PageSize * (currentPage - 1), PageSize * currentPage));\r\n \r\n }, [searchTerm, searchResultsCount, projects, currentPage]);\r\n\r\n\r\n useEffect(() => {\r\n if(projects && expandProject > 0 && (!project || project.id != expandProject)){\r\n setGettingProject(true);\r\n getProject(expandProject.toString(), true);\r\n } \r\n }, [expandProject]);\r\n\r\n useEffect(() => {\r\n if(project && project.id > 0){\r\n setFeeCalculations(project.feeCalculationSummaries);\r\n setGettingProject(false);\r\n }\r\n }, [project]);\r\n\r\n const toggleProjectExpand = (projectId: number) => {\r\n setExpandedProject(projectId !== expandProject ? projectId : 0);\r\n }\r\n\r\n const toggleEditProjectName = (projectId: number) => {\r\n setEditProjectName(projectId !== editProjectName ? projectId : 0);\r\n if(projectId !== editProjectName){\r\n setNewProjectName(searchResults.filter(p => p.id === projectId)[0].name)\r\n }\r\n else {\r\n setNewProjectName(\"\");\r\n }\r\n }\r\n\r\n \r\n const toggleEditFeeCalcName = (feeCalcId: number) => {\r\n setEditFeeCalcName(feeCalcId !== editFeeCalcName ? feeCalcId : 0);\r\n if(feeCalcId !== editFeeCalcName){\r\n var feeCalc:FeeCalculation = feeCalculations.filter(f => f.id == feeCalcId)[0];\r\n var newName = feeCalc.name ?? `${getFeeCalculationStatusName(feeCalc.state)}_${feeCalc.version}`\r\n setNewFeeCalcName(newName)\r\n }\r\n else {\r\n setNewFeeCalcName(\"\");\r\n }\r\n }\r\n \r\n const saveNewProjectName = (projectId: number) => {\r\n if(newProjectName && projectId && projectId > 0) {\r\n runInAction(() => {\r\n var updateProj = searchResults.filter(p => p.id === projectId)[0];\r\n updateProj.name = newProjectName;\r\n editProject(updateProj)\r\n .then(() => {\r\n setGettingProject(true);\r\n getProject(projectId.toString(), true);\r\n setEditProjectName(0);\r\n setNewProjectName(\"\");\r\n });\r\n }\r\n )\r\n }\r\n }\r\n\r\n \r\n const saveNewFeeCalcName = (feeCalcId: number) => {\r\n if(feeCalcId && feeCalcId > 0) {\r\n runInAction(() => {\r\n var updateFee = feeCalculations.filter(f => f.id === feeCalcId)[0];\r\n updateFee.name = newFeeCalcName;\r\n editFeeCalculation(updateFee)\r\n .then(() => {\r\n setGettingProject(true);\r\n getProject(expandProject.toString(), true);\r\n setEditFeeCalcName(0);\r\n setNewFeeCalcName(\"\");\r\n });\r\n }\r\n )\r\n }\r\n }\r\n\r\n const loadMoreResults = () => {\r\n setSearchResultsCount(searchResultsCount + 20);\r\n }\r\n\r\n const handleChange = (event: any) => {\r\n setCurrentPage(1);\r\n setSearchTerm(event.target.value);\r\n };\r\n\r\n const handleFreeCalcRefresh = () => {\r\n getProjectCount(showLive, showArchived).then( res => {\r\n if(currentPage > Math.ceil(res /PageSize)){\r\n if(res == 0){\r\n setCurrentPage(1);\r\n } else {\r\n setCurrentPage(Math.ceil(res /PageSize));\r\n }\r\n }\r\n\r\n getProjects(true, showLive, showArchived);\r\n });\r\n \r\n }\r\n\r\n return (\r\n
    \r\n {(isLoadingMember || isLoading || isLoadingPractice || !auth) ? (\r\n \r\n ) : (\r\n <>\r\n {member && (\r\n <>\r\n
    \r\n

    Projects and fee calculations

    \r\n {projects && projects.length > 0 ? (\r\n

    The table below shows all the fee calculations your practice has prepared for the specific projects and clients. You can see all proposals but can only edit the ones you created. In order to create a new fee calculation for a new client or a new project, you will need to create a new project first.

    \r\n ) : (\r\n

    You have no projects yet. Click the button below to get started.

    \r\n )}\r\n
    \r\n \r\n\r\n
    \r\n\r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n\r\n
    \r\n\r\n {searchResults.length === 0 && searchTerm && (\r\n

    Sorry no results found

    \r\n )}\r\n
    \r\n \r\n\r\n \r\n
    \r\n \r\n\r\n {searchResults.length > 0 && searchResults.map((project: Project, projectIndex) => (\r\n
    \r\n { }} className=\"content-accordion__toggle\" checked={project.id === expandProject} />\r\n \r\n
    \r\n
    \r\n
    \r\n {!feeCalculations?.length ? (\r\n !gettingProject ? (\r\n

    There are no fee calculations for this project

    \r\n ) : (

    )\r\n ) : (\r\n <>\r\n {feeCalculations.some((feeCalculation: FeeCalculation) => {\r\n return (feeCalculation.inSync === false)\r\n }) ? (\r\n \r\n \r\n \r\n \r\n \r\n ) : null}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {feeCalculations.slice().sort((b, a) => (a?.lastModified > b?.lastModified ? 1 : -1)).map((feeCalculation, feeCalcIndex) => (\r\n \r\n \r\n {feeCalculation.id != editFeeCalcName ? \r\n (\r\n <>\r\n
    \r\n \r\n {feeCalculation.name != \"\" ? feeCalculation.name : `${getFeeCalculationStatusName(feeCalculation.state)}_${feeCalculation.version}`}\r\n \r\n { toggleEditFeeCalcName(feeCalculation.id as number) }}>edit\r\n
    \r\n \r\n ) : (\r\n <> \r\n \r\n \r\n )\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
    Fee calculationsEdited byEdited onFeeStatusActions
    {!feeCalculation.inSync && (\r\n \r\n report_problem\r\n \r\n )}{feeCalculation?.lastModifiedBy}{feeCalculation?.lastModified ? (\r\n\r\n new Intl.DateTimeFormat(\"en-GB\", {\r\n year: \"numeric\",\r\n month: \"2-digit\",\r\n day: \"2-digit\"\r\n }).format(new Date(feeCalculation?.lastModified))\r\n\r\n ) : '-'}£{feeCalculation?.totalProjectFee?.toLocaleString(navigator.language, { maximumFractionDigits: 0 })}\r\n excl. VAT\r\n {feeCalculation?.state} { handleFreeCalcRefresh() }}\r\n projectName={project.name}\r\n canEdit={canEditFeeCalculation(feeCalculation, member)}\r\n isOwnerOrAdmin={isFeeCalculationOwnerOrAdmin(feeCalculation, member)}\r\n />
    \r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n ))}\r\n\r\n {(Math.ceil(searchResultsCount / PageSize) > 1)&&(\r\n
    \r\n setCurrentPage(page)}\r\n />\r\n
    \r\n )}\r\n
    \r\n \r\n )}\r\n \r\n )}\r\n
    \r\n )\r\n});\r\n\r\nexport default Projects;\r\n","import React, { useContext } from 'react';\r\nimport { RootStoreContext } from '../../stores/rootStore';\r\n\r\nconst Settings: React.FC = () => {\r\n const rootStore = useContext(RootStoreContext);\r\n const { member, auth } = rootStore.memberStore;\r\n return (\r\n
    \r\n
    \r\n
    \r\n

    SETTINGS

    \r\n
    \r\n

    Auth

    \r\n
    {JSON.stringify(auth, null, 2) }
    \r\n

    Member

    \r\n
    {JSON.stringify(member, null, 2) }
    \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default Settings;","import React from 'react';\r\nimport { NavLink } from 'react-router-dom';\r\n\r\ntype ButtonProps = {\r\n labelText?: string,\r\n linkTo?: string, \r\n styleClass?: string,\r\n externalLink?: boolean,\r\n}\r\n\r\nconst Button: React.FC = (props) => {\r\n\r\n const { styleClass, labelText, linkTo, externalLink } = props;\r\n if(externalLink){\r\n return (\r\n \r\n {labelText}\r\n \r\n );\r\n }else{\r\n return (\r\n \r\n {labelText}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default Button;\r\n","import React from 'react';\r\nimport Button from '../atoms/Button';\r\n\r\nconst MobileLanding: React.FC = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n

    LOG IN TO THE RIBA FEE CALCULATOR

    \r\n
    \r\n
    \r\n

    Sorry, this service is only available from desktop

    \r\n
    \r\n

    Thank you for your interest in usig the RIBA Fee Calculator. Unfortunately, this service is only available from desktop at the moment. Please try and login from your computer or laptop.

    \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default MobileLanding;","import React from 'react';\r\nimport Button from '../atoms/Button';\r\n\r\nconst MobileLanding: React.FC = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n

    Error - unsupported browser

    \r\n
    \r\n
    \r\n

    This RIBA service can't be used with your current web browser.

    \r\n
    \r\n

    We recommend downloading or switching to Chrome, Firefox, or Safari for the best architecture.com experience

    \r\n

    For help using this service, your online RIBA account, or other RIBA websites:

    \r\n

    \r\n Email support@riba.org
    \r\n Phone +44 (0)20 7307 5355
    \r\n Monday to Friday, 9am to 5pm
    \r\n

    \r\n
    \r\n

    For questions regarding your membership, contact Membership Services:

    \r\n

    \r\n Email membership.services@riba.org
    \r\n Phone +44 (0)20 7307 3800
    \r\n Monday to Friday, 9am to 5pm
    \r\n

    \r\n
    \r\n

    For general enquiries about architecture or the RIBA, contact our Information Centre:

    \r\n

    \r\n Email info@riba.org
    \r\n Phone +44 (0)20 7307 3600
    \r\n Monday to Friday, 10am to 1pm and 2pm to 5pm
    \r\n

    \r\n
    \r\n

    You can also follow @RIBA on Twitter for updates.

    \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default MobileLanding;","import { observer } from 'mobx-react-lite';\r\nimport React, { useContext } from 'react';\r\nimport { NavLink } from 'react-router-dom';\r\nimport { RootStoreContext } from '../../stores/rootStore';\r\nimport { Member } from '../../types/member';\r\n\r\ntype UserMenuProps = {\r\n member: Member | null\r\n}\r\n\r\nconst UserMenu: React.FC = observer((props) => {\r\n\r\n const { member } = props;\r\n const rootStore = useContext(RootStoreContext);\r\n const { logout } = rootStore.memberStore;\r\n const { isOnboarded } = rootStore.practiceStore;\r\n\r\n return (\r\n \r\n )\r\n})\r\n\r\nexport default UserMenu;\r\n","import React from \"react\";\r\n\r\nconst Logo: React.FC = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Logo;\r\n","import React, { useContext } from \"react\";\r\nimport { RootStoreContext } from \"../../stores/rootStore\";\r\nimport { NavLink } from \"react-router-dom\";\r\nimport UserMenu from \"../molecules/UserMenu\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport Logo from \"../atoms/Logo\";\r\nimport { Member } from \"../../types/member\";\r\n\r\ntype HeaderProps = {\r\n member: Member | null;\r\n};\r\n\r\nconst Header: React.FC = observer((props) => {\r\n const { member } = props;\r\n const rootStore = useContext(RootStoreContext);\r\n const { login, isAuthenticated } = rootStore.memberStore;\r\n const { isOnboarded } = rootStore.practiceStore;\r\n return (\r\n
    \r\n
    \r\n
    \r\n {isAuthenticated ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n )}\r\n
    \r\n
    \r\n {isAuthenticated ? (\r\n

    RIBA Fee Calculator

    \r\n ) : (\r\n

    RIBA Fee Calculator

    \r\n )}\r\n\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n );\r\n});\r\n\r\nexport default Header;\r\n","import React from 'react';\r\n\r\nconst Footer: React.FC = () => {\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n\r\n \r\n\r\n\r\n
    \r\n 66 Portland Place, London, W1B 1AD\r\n |\r\n +44 (0)20 7580 5533\r\n |\r\n info@riba.org\r\n |\r\n Registered Charity No. 210 566. Incorporated by Royal Charter No. RC000484\r\n |\r\n © RIBA 2017\r\n
    \r\n\r\n
    \r\n
    \r\n\r\n );\r\n}\r\n\r\nexport default Footer;\r\n","import React from 'react';\r\n\r\ntype InfoBarProps = {\r\n handleInfoBarClose: (dismiss: any) => any,\r\n}\r\n\r\nconst InfoBar: React.FC = (props) => {\r\n\r\n const { handleInfoBarClose } = props;\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nexport default InfoBar;\r\n","import React from 'react';\r\nimport { NavLink } from 'react-router-dom';\r\n\r\ntype SettingsSideNavigationProps = {\r\n currentPage: number\r\n}\r\n\r\nconst SettingsSideNavigation: React.FC = (props) => {\r\n\r\n const { currentPage } = props;\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
      \r\n
        \r\n
      • Practice details
      • \r\n
      • Annual overhead costs
      • \r\n
      • Staff members
      • \r\n
      \r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default SettingsSideNavigation;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { RootStoreContext } from '../../stores/rootStore';\r\nimport FeeCalculationDetailsForm from './FeeCalculationDetailsForm';\r\n\r\n\r\n\r\nconst SideNavigationMobile: React.FC = () => {\r\n\r\n const [ isMobileMenuOpen, toggleMobileMenuOpen ] = useState(false);\r\n\r\n useEffect(()=>{\r\n if(isMobileMenuOpen){\r\n document.body.classList.add('dashboard-mobile-active');\r\n }else{\r\n document.body.classList.remove('dashboard-mobile-active');\r\n }\r\n }, [isMobileMenuOpen])\r\n\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default SideNavigationMobile;\r\n","import React, { useEffect, useContext } from 'react';\r\nimport { RootStoreContext } from '../../../stores/rootStore';\r\nimport ConfirmPracticeDetailsForm from '../../organisms/ConfirmPracticeDetailsForm';\r\nimport { observer } from 'mobx-react-lite';\r\nimport SettingsSideNavigation from '../../organisms/SettingsSideNavigation';\r\nimport Loading from '../../organisms/Loading';\r\nimport SideNavigationMobile from '../../organisms/SideNavigationMobile';\r\n\r\nconst PracticeDetails: React.FC = observer(() => {\r\n\r\n const rootStore = useContext(RootStoreContext);\r\n const { getPractice, isLoadingPractice } = rootStore.practiceStore;\r\n\r\n useEffect(() => {\r\n let isLoaded = false;\r\n getPractice().finally(() => {\r\n })\r\n return () => {\r\n isLoaded = true;\r\n };\r\n }, [getPractice]);\r\n\r\n return (\r\n <>\r\n\r\n
    \r\n
    \r\n \r\n \r\n {isLoadingPractice ? (\r\n \r\n ) : (\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n\r\n \r\n )\r\n\r\n})\r\n\r\nexport default PracticeDetails;","import React, { useEffect, useContext, useState } from 'react';\r\nimport { RootStoreContext } from '../../../stores/rootStore';\r\nimport PracticeOverheadsForm from '../../organisms/PracticeOverheadsForm';\r\nimport { observer } from 'mobx-react-lite';\r\nimport SettingsSideNavigation from '../../organisms/SettingsSideNavigation';\r\nimport Loading from '../../organisms/Loading';\r\nimport Alert from '../../molecules/Alert';\r\nimport { history } from '../../../';\r\nimport SideNavigationMobile from '../../organisms/SideNavigationMobile';\r\nimport { MemberAccessLevels } from '../../../utils/Constants';\r\n\r\nconst AnnualOverheads: React.FC = observer(() => {\r\n\r\n const rootStore = useContext(RootStoreContext);\r\n const { getPractice, isLoadingPractice } = rootStore.practiceStore;\r\n const [showSuccessAlert, setSuccessAlert] = useState(false);\r\n const { member } = rootStore.memberStore;\r\n\r\n useEffect(() => {\r\n if (member?.accessLevel !== MemberAccessLevels.ADMIN) { \r\n history.push('/projects');\r\n }\r\n\r\n }, [member]);\r\n\r\n useEffect(() => {\r\n let isLoaded = false;\r\n setSuccessAlert(false)\r\n getPractice().finally(() => {\r\n })\r\n\r\n return () => {\r\n isLoaded = true; // clean up function\r\n };\r\n\r\n }, [getPractice]);\r\n\r\n const resetOverheads = () => {\r\n getPractice().finally(() => {\r\n })\r\n }\r\n\r\n const handleSubmit = () => {\r\n setSuccessAlert(true)\r\n }\r\n\r\n return (\r\n <>\r\n
    \r\n
    \r\n \r\n \r\n {isLoadingPractice ? (\r\n \r\n ) : (\r\n
    \r\n
    \r\n
    \r\n
    \r\n {showSuccessAlert && (\r\n \r\n )}\r\n \r\n

    Your annual overhead costs are the annual ongoing costs of running your business. The costs shown below were entered when your practice was set up on the RIBA Fee Calculator.

    \r\n

    Anything you add or edit here will impact your fee calculations, so make sure you use accurate information, and refer to our guidance notes for help.

    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n \r\n )\r\n})\r\n\r\nexport default AnnualOverheads;","import React, { useEffect, useContext } from 'react';\r\nimport { RootStoreContext } from '../../../stores/rootStore';\r\nimport PracticeMembersList from '../../organisms/PracticeMembersList';\r\nimport { observer } from 'mobx-react-lite';\r\nimport SettingsSideNavigation from '../../organisms/SettingsSideNavigation';\r\nimport Loading from '../../organisms/Loading';\r\nimport { history } from '../../../';\r\nimport SideNavigationMobile from '../../organisms/SideNavigationMobile';\r\nimport { MemberAccessLevels } from '../../../utils/Constants';\r\n\r\nconst StaffMembers: React.FC = observer(() => {\r\n\r\n const rootStore = useContext(RootStoreContext);\r\n const { getPractice, isLoadingPractice, unsetPractice } = rootStore.practiceStore;\r\n const { member } = rootStore.memberStore\r\n\r\n useEffect(() => {\r\n let isLoaded = false;\r\n \r\n if (member?.accessLevel !== MemberAccessLevels.ADMIN) { \r\n history.push('/projects');\r\n }\r\n\r\n return () => {\r\n isLoaded = true; // clean up function\r\n };\r\n\r\n }, [member]);\r\n\r\n useEffect(() => {\r\n let isLoaded = false;\r\n getPractice().finally(() => {\r\n })\r\n }, [getPractice]);\r\n\r\n useEffect(() => {\r\n return () => {\r\n unsetPractice();\r\n };\r\n\r\n }, [unsetPractice]);\r\n\r\n const handleReload = () => {\r\n getPractice();\r\n }\r\n\r\n return (\r\n <>\r\n
    \r\n
    \r\n \r\n \r\n {isLoadingPractice ? (\r\n \r\n ) : (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Staff members

    \r\n

    Add or edit staff details, salary information, working hours and rate. This will let you calculate hourly and daily staff costs when making fee calculations. Check our guidance notes for help calculating billable time.

    Please make sure you provide salary details for all staff members (billable and non-billable). You won’t be able to add staff members marked as ‘incomplete’ to your fee calculations.

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n { }}\r\n handleSubmit={() => {}}\r\n handleReload={handleReload}>\r\n \r\n
    \r\n
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n \r\n )\r\n\r\n})\r\n\r\n\r\n\r\nexport default StaffMembers;","import React, { useContext, useEffect } from 'react';\r\nimport { RootStoreContext } from '../../../stores/rootStore';\r\nimport AddEditMemberForm from '../../organisms/AddEditMemberForm';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { RouteComponentProps } from 'react-router-dom';\r\nimport Loading from '../../organisms/Loading';\r\nimport { history } from '../../../';\r\nimport { Member } from '../../../types/member';\r\nimport SettingsSideNavigation from '../../organisms/SettingsSideNavigation';\r\nimport SideNavigationMobile from '../../organisms/SideNavigationMobile';\r\nimport { MemberAccessLevels } from '../../../utils/Constants';\r\n\r\ninterface SetupStaffProps { id: string }\r\n\r\nconst AddEditMemberSettings: React.FC> = observer(({ match }) => {\r\n\r\n const rootStore = useContext(RootStoreContext);\r\n const { practice, getPractice, practiceMember, loadPracticeMember, isLoadingPractice, clearPracticeMemberErrors } = rootStore.practiceStore;\r\n const { member } = rootStore.memberStore\r\n\r\n useEffect(() => {\r\n if (member?.accessLevel !== MemberAccessLevels.ADMIN) { \r\n history.push('/projects');\r\n }\r\n\r\n if (practice === null) {\r\n getPractice();\r\n }\r\n\r\n }, [member, practice, getPractice]);\r\n\r\n useEffect(() => {\r\n clearPracticeMemberErrors();\r\n if (match.params.id) {\r\n loadPracticeMember(practice?.members.filter((member) => member.id.toString() === match.params.id)[0])\r\n } else {\r\n loadPracticeMember(new Member())\r\n }\r\n\r\n }, [practice, clearPracticeMemberErrors, loadPracticeMember, match.params.id]);\r\n\r\n const handleSubmit = () => {\r\n history.push('/settings/staff-members')\r\n }\r\n\r\n const handleBack = () => {\r\n history.push('/settings/staff-members')\r\n }\r\n\r\n return (\r\n\r\n
    \r\n
    \r\n \r\n \r\n {isLoadingPractice ? (\r\n \r\n ) : (\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n\r\n )\r\n\r\n})\r\n\r\nexport default AddEditMemberSettings;","\r\nimport * as Yup from 'yup';\r\n\r\nexport const EditPracticeFormValidation = Yup.object().shape({\r\n name: Yup.string()\r\n .required('Please complete this mandatory field.'),\r\n addressLineOne: Yup.string()\r\n .required('Please complete this mandatory field.'),\r\n addressLineTwo: Yup.string()\r\n .optional(),\r\n addressLineThree: Yup.string()\r\n .optional(),\r\n postcode: Yup.string()\r\n .required('Please complete this mandatory field.')\r\n});","import React, { useContext, useEffect, useLayoutEffect, useRef, useState } from 'react';\r\nimport { RootStoreContext } from '../../stores/rootStore';\r\nimport FormInput from '../molecules/FormInput';\r\nimport { EditPracticeFormValidation } from '../../utils/validation/EditPracticeFormValidation';\r\nimport FormLabel from '../molecules/FormLabel';\r\nimport { Formik, Form, Field, useFormikContext, getIn } from \"formik\";\r\nimport { observer } from 'mobx-react-lite';\r\nimport { useLocation } from 'react-router-dom';\r\nimport PromptIfDirty from '../molecules/PromptIfDirty';\r\nimport { Practice } from '../../types/practice';\r\nimport Alert from '../molecules/Alert';\r\n\r\ntype EditPracticeForm = {\r\n handleSubmit: () => any,\r\n handleBack: () => any,\r\n practice: Practice | null,\r\n confirmButtonText: string,\r\n cancelButtonText: string\r\n}\r\n\r\nconst EditPracticeForm: React.FC = observer((props) => {\r\n const { practice, handleBack, handleSubmit, confirmButtonText, cancelButtonText } = props;\r\n const rootStore = useContext(RootStoreContext);\r\n const { member } = rootStore.memberStore;\r\n const { editPractice } = rootStore.practiceStore;\r\n const { pathname } = useLocation();\r\n const [formSubmitted, setFormSubmitted] = useState(false);\r\n const [isDirtyForm, setIsDirtyForm] = useState(false);\r\n const [confirmButton] = useState(confirmButtonText);\r\n\r\n useLayoutEffect(() => {\r\n window.scrollTo(0, 0);\r\n }, [pathname]);\r\n\r\n \r\n\r\n const editPractice1 = (practice: any) => {\r\n editPractice(practice).then(() => {\r\n handleSubmit();\r\n });\r\n }\r\n\r\n return (\r\n <>\r\n\r\n {practice && (\r\n <>\r\n
    \r\n

    Edit Practice Details

    \r\n
    \r\n
    \r\n {\r\n editPractice1(values);\r\n }}>\r\n {(practiceForm) => (\r\n <>\r\n {\r\n if ((keyEvent.charCode || keyEvent.keyCode) === 13) {\r\n keyEvent.preventDefault();\r\n }\r\n }}\r\n onSubmit={(e) => { e.preventDefault(); }}\r\n onChange={() => { setFormSubmitted(false) }}>\r\n \r\n
    \r\n
    \r\n

    Practice details

    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n { practiceForm.handleChange(e) }} type=\"text\" name=\"name\" placeholder=\"\" />\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n { practiceForm.handleChange(e) }} type=\"text\" name=\"addressLineOne\" placeholder=\"\" />\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n { practiceForm.handleChange(e) }} type=\"text\" name=\"addressLineTwo\" placeholder=\"\" />\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n { practiceForm.handleChange(e) }} type=\"text\" name=\"addressLineThree\" placeholder=\"\" />\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n { practiceForm.handleChange(e) }} type=\"text\" name=\"postcode\" placeholder=\"\" />\r\n
    \r\n
    \r\n
    \r\n\r\n {/* {JSON.stringify(practiceMemberForm.errors, null, 4)} */}\r\n {Object.keys(practiceForm.errors).length > 0 &&\r\n Object.keys(practiceForm.touched).length > 0 &&\r\n formSubmitted && (\r\n \r\n )}\r\n\r\n \r\n\r\n
    \r\n \r\n \r\n
    \r\n \r\n \r\n\r\n )}\r\n \r\n
    \r\n \r\n )}\r\n \r\n\r\n )\r\n});\r\n\r\nexport default EditPracticeForm;","import React, { useContext, useEffect } from 'react';\r\nimport { RootStoreContext } from '../../../stores/rootStore';\r\nimport EditPracticeForm from '../../organisms/EditPracticeForm';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { RouteComponentProps } from 'react-router-dom';\r\nimport Loading from '../../organisms/Loading';\r\nimport { history } from '../../..';\r\nimport { Member } from '../../../types/member';\r\nimport SettingsSideNavigation from '../../organisms/SettingsSideNavigation';\r\nimport SideNavigationMobile from '../../organisms/SideNavigationMobile';\r\nimport { MemberAccessLevels } from '../../../utils/Constants';\r\n\r\n\r\n\r\nconst EditPracticeSettings: React.FC = observer(({ match }) => {\r\n\r\n const rootStore = useContext(RootStoreContext);\r\n const { practice, getPractice, isLoadingPractice } = rootStore.practiceStore;\r\n const { member } = rootStore.memberStore\r\n\r\n useEffect(() => {\r\n if (member?.accessLevel !== MemberAccessLevels.ADMIN) { \r\n history.push('/projects');\r\n }\r\n\r\n if (practice === null) {\r\n getPractice();\r\n }\r\n\r\n }, [member, practice, getPractice]);\r\n\r\n \r\n\r\n const handleSubmit = () => {\r\n history.push('/settings/practice-details')\r\n }\r\n\r\n const handleBack = () => {\r\n history.push('/settings/practice-details')\r\n }\r\n\r\n return (\r\n\r\n
    \r\n
    \r\n \r\n \r\n {isLoadingPractice ? (\r\n \r\n ) : (\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n\r\n )\r\n\r\n})\r\n\r\nexport default EditPracticeSettings;","import * as Yup from 'yup';\r\n\r\nexport const AddEditProjectFormValidation = Yup.object().shape({\r\n name: Yup.string()\r\n .required('Please complete this mandatory field.')\r\n .min(5, 'The value you entered is too short (minimum is 5 characters).'),\r\n number: Yup.string()\r\n .required('Please complete this mandatory field.'),\r\n siteAddress: Yup.string()\r\n .required('Please complete this mandatory field.')\r\n .min(10, 'The value you entered is too short (minimum is 10 characters).')\r\n .max(500, 'The value you entered is too long (maximum is 500 characters).'),\r\n description: Yup.string()\r\n .max(2500, 'The value you entered is too long (maximum is 2500 characters).'),\r\n existingClient: Yup.string()\r\n .required(''),\r\n clientId: Yup.number()\r\n .when('existingClient', {\r\n is: 'Yes',\r\n then: Yup.number()\r\n .required('Please complete this mandatory field.')\r\n .moreThan(0, 'Please complete this mandatory field.')\r\n }),\r\n clientName: Yup.string()\r\n .when('existingClient', {\r\n is: 'No',\r\n then: Yup.string()\r\n .required('Please complete this mandatory field.')\r\n .min(5, 'The value you entered is too short (minimum is 5 characters).')\r\n }),\r\n contactEmail: Yup.string()\r\n .email('Please enter a valid email address.'),\r\n subCategory: Yup.string()\r\n .required('Please complete this mandatory field.')\r\n\r\n});","export class Client {\r\n id: number = 0;\r\n practiceId: number = 0;\r\n clientName: string = '';\r\n contactName: string = '';\r\n contactEmail: string = '';\r\n\r\n public constructor(init?: Partial) {\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\n","import React, { FC } from \"react\";\r\nimport { FieldProps } from \"formik\";\r\n\r\ninterface FormTextAreaInputProps {\r\n handleChange: () => any,\r\n helptext?: string,\r\n}\r\n\r\nconst FormTextAreaInput: FC = ({\r\n field: { onChange, ...field },\r\n form: { touched, errors, setFieldValue, setFieldTouched, handleChange, ...form }, // also values, setXXXX, handleXXXX, dirty, isValid, status, etc.\r\n ...props\r\n}) => (\r\n
    \r\n