{"version":3,"sources":["data/fragments/contacDetails.fragment.ts","data/fragments/community.fragment.ts","data/fragments/address.fragment.ts","data/fragments/unit.fragment.ts","data/fragments/userLoginDetails.fragment.ts","data/fragments/accessTokenResult.fragment.ts","data/fragments/loginSetupStatusResult.fragment.ts","data/fragments/user.fragment.ts","data/fragments/task.fragment.ts","data/fragments/taskComment.fragment.ts","data/fragments/unitDetails.fragment.ts","data/fragments/unitBasicDetails.fragment.ts","data/fragments/userDetails.fragment.ts","data/fragments/userBasicDetails.fragment.ts","data/fragments/feedback.fragment.ts","data/fragments/loginSetupDetails.fragment.ts","data/queries/communities.query.ts","data/queries/community.query.ts","data/queries/currentCommunity.query.ts","data/queries/tenantUnit.query.ts","data/queries/taskDetailsByCommunityTaskId.query.ts","data/queries/taskComments.query.ts","data/queries/units.query.ts","data/queries/tasks.query.ts","data/queries/users.query.ts","data/queries/userDetails.query.ts","data/queries/unitDetails.query.ts","data/queries/communityUsersLoginDetails.query.ts","data/client-resolvers.ts","data/client-graphql-schema.ts","common-utilities/shallow-comparator.ts","data/__generated__/client-graphql-types.ts","app-helper.ts","UserContext.tsx","common-utilities/use-memoized-value.tsx","components/HomePage.tsx","components/NavLink.tsx","components/Sidebar.tsx","components/MainScreen.tsx","components/ResidentNavButton.tsx","modals/modals-helper.ts","modals/NewUnitForm.tsx","modals/CreateNewUnitDialog.tsx","components/PageBanner.tsx","components/Tabs.tsx","components/UnitsTable.tsx","components/UnitNavButton.tsx","components/ResidentsTable.tsx","components/Communities.tsx","theme/index.ts","theme/fluentui/buttonStyles.ts","theme/fluentui/flexStyles.ts","theme/fluentui/textStyles.ts","theme/fluentui/boxStyles.ts","theme/fluentui/tableCellStyles.ts","FluentUIStyleProvider.tsx","components/Residents.tsx","components/Email.tsx","components/PhoneNumber.tsx","components/Resident.tsx","components/Units.tsx","modals/NewResidentForm.tsx","modals/CreateNewOwnerDialog.tsx","modals/CreateNewTenantDialog.tsx","modals/RemoveAllTenantsConfirmDialog.tsx","components/TablePaginationRenderer.tsx","modals/SelectableUsersRenderer.tsx","modals/UpdateExistingUnitOwnerDialog.tsx","components/UserDetailsPreviewCardRenderer.tsx","components/Unit.tsx","modals/NewTaskForm.tsx","modals/CreateNewTaskDialog.tsx","components/ApplicationError.tsx","components/TaskActivityDetails.tsx","components/TaskLabels.tsx","components/TaskPreviewCardRenderer.tsx","components/Tasks.tsx","components/TaskAttachmentsContainer.tsx","components/TaskExpensesContainer.tsx","components/TaskDetails.tsx","components/ApplicationComingSoon.tsx","components/LoginSetup.tsx","components/useSelectCommunityEffect.tsx","components/LoginSetupForm.tsx","components/Admin.tsx","PrivateRoute.tsx","Feedback.tsx","components/Board.tsx","index.tsx","components/images/illustration-something-went-wrong.svg"],"names":["gql","contactDetails","address","fragments","resolvers","Query","tenantUnit","_","communityId","userId","queryResult","cache","readQuery","query","units","isEmpty","queryUnits","unit","tenants","includes","is","left","right","LoginSetupStatus","OccupancyType","Role","CacheControlScope","shallowComparator","source","target","Array","isArray","areEqualArrays","Set","areEquivalentSets","areEqualObjects","size","valuesIter","values","sourceVal","next","has","value","done","length","key","sourceKeys","Object","keys","targetKeys","AccessTokenResultFragmentDoc","ContactDetailsFragmentDoc","CommunityFragmentDoc","LoginSetupDetailsFragmentDoc","LoginSetupStatusResultFragmentDoc","TaskFragmentDoc","TaskCommentFragmentDoc","AddressFragmentDoc","UnitFragmentDoc","UserBasicDetailsFragmentDoc","UnitDetailsFragmentDoc","UserFragmentDoc","UserDetailsFragmentDoc","UserLoginDetailsFragmentDoc","AddNewUnitOwnerDocument","AddNewUnitTenantDocument","AddTaskCommentDocument","CreateTaskDocument","CreateUnitDocument","DeleteTaskDocument","DisableLoginDocument","EnableLoginDocument","LoginSetupDocument","RemoveAllTenantsDocument","ResetLoginSetupDocument","SubmitFeedbackDocument","UpdateOwnersDocument","useUpdateOwnersMutation","baseOptions","Apollo","UpdateTaskDocument","useUpdateTaskMutation","UpdateTenantsDocument","UpdateUnitDocument","UpdateUserDocument","useUpdateUserMutation","AccessTokenDocument","CommunitiesDocument","CommunityDocument","CommunityUsersLoginDetailsDocument","LoginSetupStatusDocument","TaskCommentsDocument","TaskDetailsByCommunityTaskIdDocument","TasksDocument","UnitDetailsDocument","useUnitDetailsQuery","UnitsDocument","useUnitsQuery","UserDetailsDocument","UsersDocument","useUsersQuery","dateOptions","weekday","year","month","day","signoutAndClearContext","userContext","client","setReload","reload","a","window","localStorage","removeItem","currentUser","undefined","currentCommunity","currentCommunityId","clearStore","navigate","getFormattedName","firstName","lastName","startCase","camelCase","getFormattedAddress","addressLine2","addressLine1","city","state","zipCode","isValidEmail","email","test","String","toLowerCase","isValidZipCode","allStates","allTaskLabels","getUnits","unitsData","variables","communityUnits","getUnitNamesForUnitIds","unitIds","filter","some","unitId","id","map","name","getUnitIdsForUnitNames","unitNames","unitName","getUserFromToken","accessToken","decoded","jwt","decode","roles","loginId","community","getCurrentUser","token","getCurrentCommunity","UserContext","React","createContext","displayName","UserContextProvider","children","showCommunityName","useApolloClient","process","userContextValue","isValueSame","memoizedValue","useRef","current","useMemoizedValue","appSettings","Provider","useUserContext","useContext","HomePage","memo","useEffect","navigateToUnits","then","SignInForm","useState","loginIdInput","setLoginIdInput","passwordInput","setPasswordInput","onLoginIdInputChange","useCallback","e","input","onPasswordInputChange","Header","content","Flex","column","vAlign","rotate","styles","color","Text","weight","style","paddingTop","paddingLeft","marginTop","minHeight","alignItems","width","Form","onSubmit","password","fetchPolicy","data","statusCode","alert","failureReason","padding","border","borderRadius","FormField","label","required","onChange","control","as","Input","fluid","showSuccessIndicator","type","Button","props","getProps","isCurrent","textDecoration","noSideBarPaths","noSideBarPrefixPaths","navLinkStyle","marginBottom","fontSize","float","Sidebar","communityName","userFirstName","showSidebar","setShowSidebar","location","useLocation","isNoSideBarPath","item","pathname","startsWith","shouldShowSidebar","navLinkListItems","displayText","path","icon","outline","onClick","secondary","iconPosition","text","headerDisplayName","pullAllBy","Box","backgroundColor","height","position","overflowY","overflowX","textAlign","marginRight","fontFamily","timestamp","hAlign","Image","src","temporary","align","paddingRight","Divider","marginLeft","List","listStyleType","defaultSelectedIndex","items","NavLinkListItem","isActive","NavLink","to","flex","overflow","boxSizing","ResidentNavButton","user","buttonLook","event","stopPropagation","residentFormValidation","formUser","errors","console","log","getUserInputFromFormValues","unitDetails","phone","addressInput","omit","getTaskInputFromFormValues","formTask","title","description","forUnits","assignedTo","createdBy","labels","getUnitInputFromFormValues","formUnit","isUnitNameAlreadyExists","existingUnitNames","existingUnitName","toLocaleLowerCase","NewUnitForm","handleSubmit","handleChange","handleBlur","touched","cancelDialog","setTouched","setFieldValue","FormInput","errorMessage","onBlur","Boolean","FormDropdown","placeholder","gap","FlexItem","push","FormButton","disabled","CreateNewUnitDialog","open","onClose","isOpen","setIsOpen","onCancel","onConfirm","dialogContent","useDialogContent","Dialog","closeOnOutsideClick","header","headerAction","intialFormErrors","intialFormValues","useUnitFormValidation","isNumber","unitFormValidation","confirmDialog","createUnit","mutationLoading","loading","formValidation","Loader","initialValues","initialErrors","validate","setSubmitting","refetchQueries","unitsQuery","JSON","stringify","render","isSubmitting","PageBanner","top","background","backdropFilter","zIndex","aria-level","margin","Tabs","tabTitles","onTabSwitch","defaultActiveIndex","underlined","pointing","isNil","activeIndex","setActiveIndex","index","Menu","primary","FluentReactUnitsTable","columns","ownerUnits","searchQuery","setSearchQuery","displayUnits","setDisplayUnits","onInputChange","_ev","newValue","trim","trimmedLowerCasedValue","filteredDisplayUnits","isUnitNameMatched","isOwnersNameMatched","isUnitOccupancyMatched","useTable","headerGroups","getTableProps","getTableBodyProps","rows","prepareRow","getRowCells","row","cells","cell","headers","tableRows","i","clearable","Table","aria-label","tabsTitles","UnitsTableRenderer","users","userIdsMap","keyBy","activeTabIndex","setActiveTabIndex","tabIndex","owners","getOwnersByUnit","useMemo","accessor","Cell","original","occupancyType","Label","owner","tableUnits","activeUnits","Owner","Tenant","None","ownerId","UnitsMenu","launchCreateNewUnitDialog","rest","menu","MenuButton","trigger","OccupancyStats","ownerOccupancy","tenantOccupancy","noneOccupancy","totalUnits","ownerOccupancyPercent","tenantOccupancyPercent","noneOccupancyPercent","Accordion","panels","Card","quiet","compact","CardBody","UnitsTable","unitsLoading","error","usersData","usersLoading","showCreateNewUnitDialog","setShowCreateNewUnitDialog","onCreateNewUnitDialogClose","useCreateNewUnitDialog","communityUsers","countBy","OWNER","TENANT","NONE","space","grow","searchText","UnitNavButton","ResidentsTableRenderer","tenantUnits","updateUserMutation","role","unitsOwned","onDisable","confirm","usersQuery","tenant","getUsers","activeUsers","FluentReactResidentsTable","displayUsers","setDisplayUsers","filteredDisplayUsers","isAnyRoleMatched","isAnyUnitMatched","ResidentsTable","Communities","borderBottom","communities","selectedCommunity","writeQuery","queries","themeOverrides","componentStyles","root","isFullRowCell","isTaskTitleInTaskPreview","theme","siteVariables","colors","borderWidth","selectors","cursor","minWidth","isEntityDetailsField","isTaskPreviewCardRenderer","flexShrink","whiteSpace","isUnitName","TableCell","FluentUIStyleProvider","mergeThemes","teamsTheme","rel","href","Residents","Email","isLinked","className","createElement","PhoneNumber","number","formatted_number","toString","replace","indexOf","UserRenderer","userDetails","details","ResidentProfileDetails","onEdit","field","oldValue","loginEnabled","prompt","userDetailsQuery","Row","getRoleTags","getUnitButtons","rowsPlain","ResidentTask","Alert","warning","dismissible","Resident","labelPosition","Units","NewResidentForm","CreateNewOwnerDialog","addOwner","initialFormValues","initialFormErrors","CreateNewTenantDialog","createNewTenant","RemoveAllTenantsConfirmDialog","removeAllTenants","cancelButton","confirmButton","defaultPageSizes","TablePaginationRenderer","canPreviousPage","canNextPage","pageOptions","pageCount","gotoPage","nextPage","previousPage","setPageSize","pageIndex","pageSize","pageSizeOptions","Number","tableHooks","usePagination","SelectableUsersContainer","onUserSelect","noShowUsersList","onSelect","SelectableUsersListRenderer","allUsersTableData","ownersTableData","selectableUsers","FluentReactSelectableUsersList","tableOptions","orderBy","initialState","tableInstance","page","onCellClick","whyDidYouRender","UpdateExistingUnitOwnerDialog","updateOwnersMutation","onOwnerSelect","selectedOwnerRow","newOwnerIds","doNotShowUserList","concat","UserDetailsPreviewCardRenderer","removeButtonTootTipText","onRemove","aria-roledescription","elevated","important","Body","tooltipText","onCloseButtonClick","vertical","UserNameWithCloseButton","Tooltip","iconOnly","useOnUserRemoveCallback","userType","updateTenantsMutation","updateUnit","userIds","confirmationMessage","isConfirm","without","newTenantIds","UnitRenderer","updateUnitMutation","showRemoveAllTenantsDialog","setShowRemoveAllTenantsDialog","launchRemoveAllTenantsDialog","onRemoveAllTenantsDialogClose","useRemoveAllTenantsDialog","showUpdateExistingUnitOwnerDialog","setShowUpdateExistingUnitOwnerDialog","launchUpdateExistingUnitOwnerDialog","onUpdateExistingUnitOwnerDialogClose","useUpdateExistingUnitOwnerDialog","showCreateNewOwnerDialog","setShowCreateNewOwnerDialog","launchCreateNewOwnerDialog","onCreateNewOwnerDialogClose","useCreateNewOwnerDialog","showCreateNewTenantDialog","setShowCreateNewTenantDialog","launchCreateNewTenantDialog","onCreateNewTenantDialogClose","useCreateNewTenantDialog","onOwnerRemove","onTenantRemove","paddingBottom","isTenantOccupancy","UnitMenu","ownershipSubMenu","tenanancySubMenu","newUnitName","Unit","NewTaskForm","multiple","CreateNewTaskDialog","useTaskFormValidation","taskFormValidation","createTask","currentUserId","tasksQuery","communityTaskId","ApplicationError","retryHandler","imageProps","SomethingWentWrongImage","fill","maxHeight","isLargeBoldHeader","isCentered","isToolbarPopupH2","TaskActivityDetails","status","task","statusText","dateText","Date","createdAt","toDateString","closedAt","TaskLabels","circular","taskPreviewCardRendererVariables","OpenStatusIcon","ClosedStatusIcon","TaskPreviewCardRenderer","justifyContent","Tasks","TaskDashboard","tasksData","tasksLoading","tasksError","tasks","communityTasks","showCreateNewTaskDialog","setShowCreateNewTaskDialog","launchCreateNewTaskDialog","onCreateNewTaskDialogClose","useCreateNewTaskDialog","unitsError","usersError","TasksSearchFilterRenderer","sortByforOpenItems","TasksSearchResultsRenderer","usersDirectory","deleteTask","deleteMutationLoading","tableData","taskId","closedBy","tableDataTasks","Dropdown","defaultActiveSelectedIndex","activeSelectedIndex","inline","FluentReactSelectableTasksList","filterByStatus","TasksRenderer","TaskAttachmentsContainer","TaskExpensesContainer","TaskDetailsRenderer","TaskHeader","BlankSpace","updateTaskMutation","onTitleEdit","Item","TaskMenu","updateTask","onTaskClose","__typename","toUTCString","onTaskReopen","taskStatusActionItem","TaskCommentsContainer","taskComments","TaskDescriptionRenderer","taskDescription","PostNewComment","addTaskComment","updateMutationLoading","actionButtonVisibility","setActionButtonVisibility","actionButtonGroupVisibility","setActionButtonGroupVisibility","taskComment","setTaskComment","onPostTaskComment","commentedBy","comment","taskCommentsQuery","onReset","TextArea","resize","visibility","isPosting","TaskCommentRenderer","date","bgColor","expandable","TopControls","CardHeader","display","Avatar","toLocaleDateString","TastCommentsRenderer","DescriptionActionButtons","onSaveDescription","isSaving","onDiscardDescription","Group","buttons","CommentActionButtons","TaskDetails","parseInt","taskDetailsData","taskDetailsLoading","taskDetailsError","taskDetailsByCommunityTaskId","updatedTaskDescription","setUpdatedTaskDescription","ActionType","ApplicationComingSoon","isUserContextApplicablePath","document","newPassword","recoveryEmail","verificationCode","LoginSetupForm","dispatch","loginSetup","loginSetupResult","isSuccess","Verfication","LoginSetupFormContent","LoginAccountStatusEnum","reducer","action","ResetVerification","showResetVerification","showVerificationForm","showLoginSetupForm","LoginSetup","Error","useReducer","displayMessage","setDisplayMessage","getLoginSetupStatus","setupId","loginSetupStatus","navigateToPath","NotAvailable","setTimeout","Completed","Expired","fitted","visible","VerificationFormRenderer","verificationCodeInput","setVerificationCodeInput","ResetVerificationRenderer","PrivateRoute","Component","from","noThrow","Feedback","submitFeedback","showThankYouMessage","setShowThankYouMessage","notes","setNotes","reportedUser","onClear","ActionButtons","Admin","usersLoginDetails","communityUsersLoginDetails","AdminTableRenderer","usersLoginDetailsDirectoryByUserId","rowIndex","loginDetails","getLoginAccountStatus","setup","getAccountStatusIcon","loginAccountStatus","expiresAt","updatedRoles","setUpdatedRoles","isChecked","checked","temp","pull","setOpen","showSpinner","setShowSpinner","Portal","onOutsideClick","boxShadow","Checkbox","data-id","defaultChecked","newRoles","oldRoles","isEqual","sort","FluentReactAdminTable","ActionMenu","enableLogin","useDisableLoginMutation","disableLogin","useResetLoginSetupMutation","resetLoginSetup","onEnable","elevatedAccessCode","communityUsersLoginDetailsQuery","notifyUser","onResetLoginSetup","NotSetup","Enabled","Disabled","SetupInProgress","SetupExpired","isSetupExpired","setupExpiryDate","parse","now","Board","boardMembers","BoardTableRenderer","boardMemberDetails","FluentReactBoardTable","InMemoryCache","ApolloClient","connectToDevTools","uri","authorization","getItem","typeDefs","clientSideSchema","NotFound","Vendors","Meetings","CoreApp","fetchUnits","fetchUsers","getCommunityAndUpdateContext","Promise","all","catch","err","useSelectCommunityEffect","default","MainScreen","App","ReactDOM","getElementById","module","exports"],"mappings":"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","file":"static/js/main.54596d5c.chunk.js","sourcesContent":["import gql from \"graphql-tag\";\n\nexport default gql`\n fragment ContactDetails on ContactDetails {\n email\n phone\n }\n`;\n","import gql from \"graphql-tag\";\nimport { contactDetails } from \".\";\n\nexport default gql`\n fragment Community on Community {\n id\n name\n isActive\n contactDetails {\n ...ContactDetails\n }\n }\n ${contactDetails}\n`;\n","import gql from \"graphql-tag\";\n\nexport default gql`\n fragment Address on Address {\n addressLine1\n addressLine2\n zipCode\n city\n state\n }\n`;","import gql from \"graphql-tag\";\nimport { address } from \".\";\n\nexport default gql`\n fragment Unit on Unit {\n id\n name\n address {\n ...Address\n }\n owners \n tenants\n occupancyType\n isActive\n }\n ${address}\n`;\n","import gql from \"graphql-tag\";\n\nexport default gql`\nfragment UserLoginDetails on UserLoginDetails {\n id\n userId\n recoveryEmail\n setup {\n verificationCode\n expiresAt\n notes\n } \n}\n`;","import gql from \"graphql-tag\";\n\nexport default gql`\n fragment AccessTokenResult on AccessTokenResult {\n statusCode\n statusText\n accessToken\n failureReason\n }\n`;\n","import gql from \"graphql-tag\";\n\nexport default gql`\n fragment LoginSetupStatusResult on LoginSetupStatusResult {\n status\n }\n`;\n","import gql from \"graphql-tag\";\nimport { address, contactDetails } from \".\";\n\nexport default gql`\n fragment User on User {\n id\n firstName\n lastName\n unitsOwned {\n id\n name\n }\n contactDetails {\n ...ContactDetails\n }\n address {\n ...Address\n }\n boardMemberDetails{\n title\n }\n roles\n isActive\n loginEnabled\n }\n ${contactDetails}\n ${address}\n`;\n","import gql from \"graphql-tag\";\n\nexport default gql`\n fragment Task on Task {\n id\n title\n communityTaskId\n description\n forUnits\n community\n assignedTo\n status\n isActive\n createdBy\n closedBy\n createdAt\n closedAt\n labels\n attachments\n }\n`;\n","import gql from \"graphql-tag\";\n\nexport default gql`\n fragment TaskComment on TaskComment {\n id\n taskId\n comment\n commentedBy\n createdAt\n updatedAt\n }\n`;\n","import gql from \"graphql-tag\";\nimport { address } from \".\";\n\nexport default gql`\n fragment UnitDetails on UnitDetails {\n id\n name\n community\n address {\n ...Address\n }\n owners {\n ...UserBasicDetails\n }\n tenants {\n ...UserBasicDetails\n }\n occupancyType\n isActive\n }\n ${address}\n`;\n","import gql from \"graphql-tag\";\nimport { address, contactDetails } from \".\";\n\nexport default gql`\n fragment UnitBasicDetails on UnitBasicDetails {\n id\n name\n occupancyType\n }\n`;\n","import gql from \"graphql-tag\";\nimport { address, contactDetails } from \".\";\n\nexport default gql`\n fragment UserDetails on UserDetails {\n id\n community\n firstName\n lastName\n contactDetails {\n ...ContactDetails\n }\n address {\n ...Address\n }\n unitsOwned {\n id\n name\n occupancyType\n }\n roles\n isActive\n loginEnabled\n }\n ${contactDetails}\n ${address}\n`;\n","import gql from \"graphql-tag\";\nimport { address, contactDetails } from \".\";\n\nexport default gql`\n fragment UserBasicDetails on UserBasicDetails {\n id\n firstName\n lastName\n contactDetails {\n ...ContactDetails\n }\n address {\n ...Address\n }\n boardMemberDetails{\n title\n }\n loginEnabled\n }\n ${contactDetails}\n ${address}\n`;\n","import gql from \"graphql-tag\";\n\nexport default gql`\n fragment Feedback on Feedback {\n notes\n reportedUser\n }\n`;\n","import gql from \"graphql-tag\";\n\nexport default gql`\n fragment LoginSetupDetails on LoginSetupDetails {\n verificationCode\n expiresAt\n notes\n }\n`;","import gql from 'graphql-tag';\nimport * as fragments from '../fragments';\n\nexport default gql`\n query Communities {\n communities {\n ...Community\n }\n }\n ${fragments.community}\n`;\n","import gql from \"graphql-tag\";\nimport * as fragments from \"../fragments\";\n\nexport default gql`\n query community($communityId: ID!) {\n community(communityId: $communityId) {\n ...Community\n }\n }\n ${fragments.community}\n`;\n","import gql from \"graphql-tag\";\nimport * as fragments from \"../fragments\";\n\nexport default gql`\n query CurrentCommunity {\n currentCommunity @client {\n ...Community\n }\n }\n ${fragments.community}\n`;\n","import gql from \"graphql-tag\";\nimport * as fragments from \"../fragments\";\n\nexport default gql`\n query TenantUnit($communityId: String!, $userId: String!) {\n tenantUnit(communityId: $communityId, userId: $userId) @client {\n ...Unit\n }\n }\n ${fragments.unit}\n`;\n","import gql from \"graphql-tag\";\nimport * as fragments from \"../fragments\";\n\nexport default gql`\n query taskDetailsByCommunityTaskId($communityId: ID!, $communityTaskId: Int!) {\n taskDetailsByCommunityTaskId(\n communityId: $communityId\n communityTaskId: $communityTaskId\n ) {\n ...Task\n }\n }\n ${fragments.task}\n`;\n","import gql from \"graphql-tag\";\nimport * as fragments from \"../fragments\";\n\nexport default gql`\n query taskComments($taskId: ID!) {\n taskComments(taskId: $taskId) {\n ...TaskComment\n }\n }\n ${fragments.taskComment}\n`;\n","import gql from 'graphql-tag';\nimport * as fragments from '../fragments';\n\nexport default gql`\n query Units($communityId: ID!) {\n communityUnits(communityId: $communityId) {\n ...Unit\n }\n }\n ${fragments.unit}\n`;","import gql from \"graphql-tag\";\nimport * as fragments from \"../fragments\";\n\nexport default gql`\n query Tasks($communityId: ID!) {\n communityTasks(communityId: $communityId) {\n ...Task\n }\n }\n ${fragments.task}\n`;\n","import gql from 'graphql-tag';\nimport * as fragments from '../fragments';\n\nexport default gql`\n query Users($communityId: ID!) {\n communityUsers(communityId: $communityId) {\n ...User\n }\n }\n ${fragments.user}\n`;","import gql from 'graphql-tag';\nimport * as fragments from '../fragments';\n\nexport default gql`\n query userDetails($userId: ID!) {\n userDetails(userId: $userId) {\n ...UserDetails\n }\n }\n ${fragments.userDetails}\n`;","import gql from 'graphql-tag';\nimport * as fragments from '../fragments';\n\nexport default gql`\n query UnitDetails($unitId: ID!) {\n unitDetails(unitId: $unitId) {\n ...UnitDetails\n }\n }\n ${fragments.unitDetails}\n`;","import gql from \"graphql-tag\";\nimport * as fragments from \"../fragments\";\n\nexport default gql`\n query communityUsersLoginDetails($communityId: ID!) {\n communityUsersLoginDetails(communityId: $communityId) {\n ...UserLoginDetails\n }\n }\n ${fragments.userLoginDetails}\n`;\n","import { ApolloCache, Resolvers } from \"@apollo/client\";\nimport gql from \"graphql-tag\";\nimport { includes, isEmpty } from \"lodash\";\nimport { units } from \"./queries\";\nimport { Unit, UnitsQuery } from \"./__generated__/client-graphql-types\";\n\n// export const typeDefs = gql`\n// query GetUsers {\n// user {\n// _id\n// __typename\n// name\n// surname\n// email\n// phone\n// }\n// }\n// `;\n\ntype ResolverFn = (\n parent: any,\n args: any,\n { cache }: { cache: ApolloCache }\n) => any;\n\ninterface ResolverMap {\n [field: string]: ResolverFn;\n}\n\ninterface AppResolvers extends Resolvers {\n Query: ResolverMap;\n}\n\nexport const resolvers: AppResolvers = {\n Query: {\n tenantUnit: (\n _,\n { communityId, userId }: { communityId: string; userId: string },\n { cache }\n ): Unit | null => {\n const queryResult = cache.readQuery({\n query: units,\n });\n if (!isEmpty(queryResult)) {\n const queryUnits = queryResult ?? [];\n for (const unit of queryUnits) {\n if (!isEmpty(unit?.tenants) && includes(unit?.tenants, userId)) {\n return unit as Unit; // TODO: see a way to avoid force casting IMPORTANT\n }\n }\n }\n return null;\n },\n },\n};\n","import gql from \"graphql-tag\";\n\nexport default gql`\n extend type Query {\n currentCommunity: Community @client\n tenantUnit(communityId: String!, userId: String!): Unit @client\n }\n`;\n","export function is(left: T, right: T): boolean;\nexport function is(left: number, right: number): boolean;\nexport function is(left: T | number, right: T | number): boolean {\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n if (left === right) {\n // If `left === right`, then differentiate `-0` and `0` via division.\n return left !== 0 || 1 / left === 1 / right;\n } else {\n // If `left !== right`, then return false unless both `left` and `right` are `NaN`.\n // `NaN` can be detected via `self !== self`.\n return left !== left && right !== right;\n }\n}\n\n/**\n * Checks equality of 2 objs by iterating through their immmediate keys.\n * The contents of each object for each key are compared under strict equality mode.\n * @param source The src object\n * @param target The tar object\n * @returns {boolean} Returns true if the objects are equal\n */\nexport const shallowComparator = (\n source: TItem | undefined | null,\n target: TItem | undefined | null\n): boolean => {\n // Check if the objects are equal, if so then return\n if (is(source, target)) {\n return true;\n }\n\n // Given that the `is` comparision has failed, if either of the\n // inputs are null/undefined we have to assume they are different\n if (source == null || target == null) {\n return false;\n }\n\n // If the items are arrays then shallowCompare them with a different algo\n if (Array.isArray(source) && Array.isArray(target)) {\n return areEqualArrays(source, target);\n }\n\n if (source instanceof Set && target instanceof Set) {\n return areEquivalentSets(source, target);\n }\n\n // Assume they are objects and shallowCompare them\n return areEqualObjects(source, target);\n};\n\nconst areEquivalentSets = (source: Set, target: Set) => {\n if (source.size !== target.size) {\n return false;\n }\n\n if (source.size === 0) {\n return true;\n }\n\n const valuesIter = source.values();\n let sourceVal = valuesIter.next();\n do {\n if (!target.has(sourceVal.value)) {\n return false;\n }\n sourceVal = valuesIter.next();\n } while (!sourceVal.done);\n\n return true;\n};\n\n/**\n * Checks if 2 arrays are same\n * @param source src array\n * @param target tar array\n */\nconst areEqualArrays = (\n source: TArray,\n target: TArray\n): boolean => {\n if (source.length !== target.length) {\n return false;\n }\n\n const length = source.length;\n for (let key = length - 1; key >= 0; key--) {\n if (!is(source[key], target[key])) {\n return false;\n }\n }\n\n return true;\n};\n\n/**\n * Compares two objects and returns true if they are same\n * @param source source object\n * @param target target object\n */\nconst areEqualObjects = (\n source: TObject,\n target: TObject\n): boolean => {\n const sourceKeys = Object.keys(source) as (keyof TObject)[];\n const targetKeys = Object.keys(target) as (keyof TObject)[];\n if (sourceKeys.length !== targetKeys.length) {\n return false;\n }\n\n for (const key of sourceKeys) {\n if (!is(source[key], target[key])) {\n return false;\n }\n }\n\n return true;\n};\n","import { gql } from '@apollo/client';\nimport * as Apollo from '@apollo/client';\nexport type Maybe = T | null;\nexport type Exact = { [K in keyof T]: T[K] };\n/** All built-in and custom scalars, mapped to their actual values */\nexport type Scalars = {\n ID: string;\n String: string;\n Boolean: boolean;\n Int: number;\n Float: number;\n /** The `Upload` scalar type represents a file upload. */\n Upload: any;\n};\n\nexport type Query = {\n __typename?: 'Query';\n accessToken?: Maybe;\n communities?: Maybe>>;\n community?: Maybe;\n communityTasks?: Maybe>>;\n communityUnits?: Maybe>>;\n communityUsers?: Maybe>>;\n communityUsersLoginDetails?: Maybe>>;\n currentCommunity?: Maybe;\n loginSetupStatus?: Maybe;\n taskComments?: Maybe>>;\n taskDetails?: Maybe;\n taskDetailsByCommunityTaskId?: Maybe;\n tenantUnit?: Maybe;\n unitDetails?: Maybe;\n userDetails?: Maybe;\n};\n\n\nexport type QueryAccessTokenArgs = {\n loginId: Scalars['String'];\n password: Scalars['String'];\n};\n\n\nexport type QueryCommunityArgs = {\n communityId: Scalars['ID'];\n};\n\n\nexport type QueryCommunityTasksArgs = {\n communityId: Scalars['ID'];\n};\n\n\nexport type QueryCommunityUnitsArgs = {\n communityId: Scalars['ID'];\n};\n\n\nexport type QueryCommunityUsersArgs = {\n communityId: Scalars['ID'];\n};\n\n\nexport type QueryCommunityUsersLoginDetailsArgs = {\n communityId: Scalars['ID'];\n};\n\n\nexport type QueryLoginSetupStatusArgs = {\n userId: Scalars['ID'];\n};\n\n\nexport type QueryTaskCommentsArgs = {\n taskId: Scalars['ID'];\n};\n\n\nexport type QueryTaskDetailsArgs = {\n taskId: Scalars['ID'];\n};\n\n\nexport type QueryTaskDetailsByCommunityTaskIdArgs = {\n communityId: Scalars['ID'];\n communityTaskId: Scalars['Int'];\n};\n\n\nexport type QueryTenantUnitArgs = {\n communityId: Scalars['String'];\n userId: Scalars['String'];\n};\n\n\nexport type QueryUnitDetailsArgs = {\n unitId: Scalars['ID'];\n};\n\n\nexport type QueryUserDetailsArgs = {\n userId: Scalars['ID'];\n};\n\nexport type LoginSetupStatusResult = {\n __typename?: 'LoginSetupStatusResult';\n status: LoginSetupStatus;\n};\n\n\nexport type LoginSetupStatusResultStatusArgs = {\n type?: Maybe;\n};\n\nexport enum LoginSetupStatus {\n NotAvailable = 'NOT_AVAILABLE',\n Active = 'ACTIVE',\n Completed = 'COMPLETED',\n Expired = 'EXPIRED'\n}\n\nexport type AccessTokenResult = {\n __typename?: 'AccessTokenResult';\n statusCode: Scalars['Int'];\n statusText: Scalars['String'];\n accessToken?: Maybe;\n failureReason?: Maybe;\n};\n\nexport type Community = {\n __typename?: 'Community';\n id: Scalars['ID'];\n name: Scalars['String'];\n contactDetails: ContactDetails;\n primaryAddress: Address;\n isActive: Scalars['Boolean'];\n};\n\nexport type ContactDetails = {\n __typename?: 'ContactDetails';\n email: Scalars['String'];\n phone: Scalars['String'];\n};\n\nexport type Address = {\n __typename?: 'Address';\n addressLine1: Scalars['String'];\n addressLine2?: Maybe;\n zipCode: Scalars['String'];\n city: Scalars['String'];\n state: Scalars['String'];\n};\n\nexport type UnitDetails = {\n __typename?: 'UnitDetails';\n id: Scalars['ID'];\n name: Scalars['String'];\n community: Scalars['ID'];\n address: Address;\n owners?: Maybe>>;\n tenants?: Maybe>>;\n occupancyType: OccupancyType;\n isActive: Scalars['Boolean'];\n};\n\n\nexport type UnitDetailsOccupancyTypeArgs = {\n type?: Maybe;\n};\n\nexport type UserBasicDetails = {\n __typename?: 'UserBasicDetails';\n id: Scalars['ID'];\n firstName?: Maybe;\n lastName?: Maybe;\n contactDetails: ContactDetails;\n boardMemberDetails?: Maybe;\n address?: Maybe
;\n loginEnabled?: Maybe;\n};\n\nexport type BoardMemberDetails = {\n __typename?: 'BoardMemberDetails';\n title?: Maybe;\n};\n\nexport enum OccupancyType {\n None = 'NONE',\n Owner = 'OWNER',\n Tenant = 'TENANT'\n}\n\nexport type UserDetails = {\n __typename?: 'UserDetails';\n id: Scalars['ID'];\n community: Scalars['ID'];\n firstName: Scalars['String'];\n lastName: Scalars['String'];\n contactDetails: ContactDetails;\n address: Address;\n roles: Array>;\n boardMemberDetails?: Maybe;\n unitsOwned: Array>;\n isActive: Scalars['Boolean'];\n loginEnabled?: Maybe;\n};\n\n\nexport type UserDetailsRolesArgs = {\n role?: Maybe;\n};\n\nexport enum Role {\n BoardMember = 'BOARD_MEMBER',\n Owner = 'OWNER',\n Tenant = 'TENANT',\n Admin = 'ADMIN'\n}\n\nexport type UnitBasicDetails = {\n __typename?: 'UnitBasicDetails';\n id: Scalars['ID'];\n name?: Maybe;\n occupancyType?: Maybe;\n};\n\nexport type Unit = {\n __typename?: 'Unit';\n id: Scalars['ID'];\n name: Scalars['String'];\n community: Scalars['ID'];\n address: Address;\n owners?: Maybe>;\n tenants?: Maybe>;\n occupancyType: OccupancyType;\n isActive: Scalars['Boolean'];\n};\n\n\nexport type UnitOccupancyTypeArgs = {\n type?: Maybe;\n};\n\nexport type User = {\n __typename?: 'User';\n id: Scalars['ID'];\n firstName?: Maybe;\n lastName?: Maybe;\n community: Scalars['ID'];\n roles: Array>;\n unitsOwned: Array>;\n contactDetails: ContactDetails;\n address?: Maybe
;\n boardMemberDetails?: Maybe;\n isActive: Scalars['Boolean'];\n loginEnabled?: Maybe;\n};\n\n\nexport type UserRolesArgs = {\n role?: Maybe;\n};\n\nexport type Task = {\n __typename?: 'Task';\n id: Scalars['ID'];\n communityTaskId: Scalars['Int'];\n title: Scalars['String'];\n description?: Maybe;\n community: Scalars['ID'];\n forUnits?: Maybe>>;\n assignedTo?: Maybe;\n status: Scalars['String'];\n createdAt: Scalars['String'];\n closedAt?: Maybe;\n isActive: Scalars['Boolean'];\n createdBy: Scalars['ID'];\n closedBy?: Maybe;\n attachments?: Maybe>>;\n labels?: Maybe>>;\n};\n\nexport type UserLoginDetails = {\n __typename?: 'UserLoginDetails';\n id: Scalars['ID'];\n userId: Scalars['ID'];\n setup?: Maybe;\n recoveryEmail?: Maybe;\n};\n\nexport type LoginSetupDetails = {\n __typename?: 'LoginSetupDetails';\n verificationCode?: Maybe;\n expiresAt?: Maybe;\n notes?: Maybe;\n};\n\nexport type TaskComment = {\n __typename?: 'TaskComment';\n id: Scalars['ID'];\n taskId: Scalars['ID'];\n comment: Scalars['String'];\n commentedBy: Scalars['ID'];\n updatedAt: Scalars['String'];\n createdAt: Scalars['String'];\n};\n\nexport type Mutation = {\n __typename?: 'Mutation';\n createCommunity?: Maybe;\n createUnit?: Maybe;\n createUser?: Maybe;\n createTask?: Maybe;\n addTaskComment?: Maybe;\n updateUnit?: Maybe;\n updateUser?: Maybe;\n updateOwners?: Maybe;\n updateTenants?: Maybe;\n addNewUnitTenant?: Maybe;\n addNewUnitOwner?: Maybe;\n updateTask?: Maybe;\n updateTaskComment?: Maybe;\n deleteTask?: Maybe;\n deleteTaskComment?: Maybe;\n taskAttachment: File;\n submitFeedback?: Maybe;\n enableLogin?: Maybe;\n disableLogin?: Maybe;\n resetLoginSetup?: Maybe;\n loginSetup?: Maybe;\n};\n\n\nexport type MutationCreateCommunityArgs = {\n input?: Maybe;\n};\n\n\nexport type MutationCreateUnitArgs = {\n input?: Maybe;\n};\n\n\nexport type MutationCreateUserArgs = {\n input?: Maybe;\n};\n\n\nexport type MutationCreateTaskArgs = {\n input?: Maybe;\n};\n\n\nexport type MutationAddTaskCommentArgs = {\n input?: Maybe;\n};\n\n\nexport type MutationUpdateUnitArgs = {\n unitId?: Maybe;\n input?: Maybe;\n};\n\n\nexport type MutationUpdateUserArgs = {\n input?: Maybe;\n};\n\n\nexport type MutationUpdateOwnersArgs = {\n unitId?: Maybe;\n newOwnerIds?: Maybe>>;\n};\n\n\nexport type MutationUpdateTenantsArgs = {\n unitId?: Maybe;\n newTenantIds?: Maybe>>;\n};\n\n\nexport type MutationAddNewUnitTenantArgs = {\n unitId?: Maybe;\n input?: Maybe;\n};\n\n\nexport type MutationAddNewUnitOwnerArgs = {\n unitId?: Maybe;\n input?: Maybe;\n};\n\n\nexport type MutationUpdateTaskArgs = {\n input?: Maybe;\n};\n\n\nexport type MutationUpdateTaskCommentArgs = {\n input?: Maybe;\n};\n\n\nexport type MutationDeleteTaskArgs = {\n taskId: Scalars['ID'];\n};\n\n\nexport type MutationDeleteTaskCommentArgs = {\n commentId: Scalars['ID'];\n};\n\n\nexport type MutationTaskAttachmentArgs = {\n file: Scalars['Upload'];\n taskId: Scalars['String'];\n};\n\n\nexport type MutationSubmitFeedbackArgs = {\n input?: Maybe;\n};\n\n\nexport type MutationEnableLoginArgs = {\n userId: Scalars['ID'];\n elevatedAccessCode: Scalars['String'];\n};\n\n\nexport type MutationDisableLoginArgs = {\n userId: Scalars['ID'];\n elevatedAccessCode: Scalars['String'];\n notifyUser: Scalars['Boolean'];\n};\n\n\nexport type MutationResetLoginSetupArgs = {\n userId: Scalars['ID'];\n elevatedAccessCode?: Maybe;\n};\n\n\nexport type MutationLoginSetupArgs = {\n userId: Scalars['ID'];\n verificationCode: Scalars['String'];\n recoveryEmail: Scalars['String'];\n password: Scalars['String'];\n};\n\nexport type CommunityInput = {\n name: Scalars['String'];\n contactDetails: ContactDetailsInput;\n primaryAddress: AddressInput;\n isActive: Scalars['Boolean'];\n};\n\nexport type ContactDetailsInput = {\n email: Scalars['String'];\n phone: Scalars['String'];\n};\n\nexport type AddressInput = {\n addressLine1: Scalars['String'];\n addressLine2?: Maybe;\n zipCode: Scalars['String'];\n city: Scalars['String'];\n state: Scalars['String'];\n};\n\nexport type UnitInput = {\n name?: Maybe;\n address?: Maybe;\n community: Scalars['ID'];\n owners?: Maybe>>;\n tenants?: Maybe>>;\n occupancyType?: Maybe;\n isActive?: Maybe;\n};\n\nexport type UserInput = {\n firstName: Scalars['String'];\n lastName: Scalars['String'];\n community: Scalars['ID'];\n contactDetails: ContactDetailsInput;\n address: AddressInput;\n roles?: Maybe>>;\n unitsOwned?: Maybe>>;\n boardMemberDetails?: Maybe;\n isActive?: Maybe;\n};\n\nexport type BoardMemberDetailsInput = {\n title?: Maybe;\n};\n\nexport type NewTaskInput = {\n title: Scalars['String'];\n description?: Maybe;\n community: Scalars['ID'];\n forUnits?: Maybe>>;\n assignedTo?: Maybe;\n isActive?: Maybe;\n createdBy: Scalars['ID'];\n labels?: Maybe>>;\n};\n\nexport type NewTaskCommentInput = {\n taskId: Scalars['ID'];\n comment: Scalars['String'];\n commentedBy: Scalars['ID'];\n};\n\nexport type UpdateUnitInput = {\n id: Scalars['ID'];\n name?: Maybe;\n address?: Maybe;\n community?: Maybe;\n owners?: Maybe>>;\n tenants?: Maybe>>;\n occupancyType?: Maybe;\n isActive?: Maybe;\n};\n\nexport type UpdateUserInput = {\n id: Scalars['ID'];\n firstName?: Maybe;\n lastName?: Maybe;\n community?: Maybe;\n contactDetails?: Maybe;\n address?: Maybe;\n roles?: Maybe>>;\n boardMemberDetails?: Maybe;\n unitsOwned?: Maybe>>;\n isActive?: Maybe;\n};\n\nexport type UpdateTaskInput = {\n id: Scalars['ID'];\n title?: Maybe;\n description?: Maybe;\n forUnits?: Maybe>>;\n assignedTo?: Maybe;\n status?: Maybe;\n dateClosed?: Maybe;\n isActive?: Maybe;\n closedBy?: Maybe;\n attachments?: Maybe>>;\n labels?: Maybe>>;\n closedAt?: Maybe;\n};\n\nexport type UpdateTaskCommentInput = {\n id: Scalars['ID'];\n taskId: Scalars['ID'];\n comment: Scalars['String'];\n};\n\nexport type Result = {\n __typename?: 'Result';\n value?: Maybe;\n};\n\n\nexport type File = {\n __typename?: 'File';\n filename: Scalars['String'];\n mimetype: Scalars['String'];\n encoding: Scalars['String'];\n};\n\nexport type FeedbackInput = {\n notes: Scalars['String'];\n reportedUser: Scalars['ID'];\n};\n\nexport type MessageResult = {\n __typename?: 'MessageResult';\n message?: Maybe;\n};\n\nexport type LoginSetupResult = {\n __typename?: 'LoginSetupResult';\n errorMessage?: Maybe;\n isSuccess: Scalars['Boolean'];\n};\n\nexport type Feedback = {\n __typename?: 'Feedback';\n id: Scalars['ID'];\n notes: Scalars['String'];\n reportedUser: Scalars['ID'];\n};\n\nexport enum CacheControlScope {\n Public = 'PUBLIC',\n Private = 'PRIVATE'\n}\n\nexport type AccessTokenResultFragment = (\n { __typename?: 'AccessTokenResult' }\n & Pick\n);\n\nexport type AddressFragment = (\n { __typename?: 'Address' }\n & Pick\n);\n\nexport type CommunityFragment = (\n { __typename?: 'Community' }\n & Pick\n & { contactDetails: (\n { __typename?: 'ContactDetails' }\n & ContactDetailsFragment\n ) }\n);\n\nexport type ContactDetailsFragment = (\n { __typename?: 'ContactDetails' }\n & Pick\n);\n\nexport type FeedbackFragment = (\n { __typename?: 'Feedback' }\n & Pick\n);\n\nexport type LoginSetupDetailsFragment = (\n { __typename?: 'LoginSetupDetails' }\n & Pick\n);\n\nexport type LoginSetupStatusResultFragment = (\n { __typename?: 'LoginSetupStatusResult' }\n & Pick\n);\n\nexport type TaskFragment = (\n { __typename?: 'Task' }\n & Pick\n);\n\nexport type TaskCommentFragment = (\n { __typename?: 'TaskComment' }\n & Pick\n);\n\nexport type UnitFragment = (\n { __typename?: 'Unit' }\n & Pick\n & { address: (\n { __typename?: 'Address' }\n & AddressFragment\n ) }\n);\n\nexport type UnitBasicDetailsFragment = (\n { __typename?: 'UnitBasicDetails' }\n & Pick\n);\n\nexport type UnitDetailsFragment = (\n { __typename?: 'UnitDetails' }\n & Pick\n & { address: (\n { __typename?: 'Address' }\n & AddressFragment\n ), owners?: Maybe>>, tenants?: Maybe>> }\n);\n\nexport type UserFragment = (\n { __typename?: 'User' }\n & Pick\n & { unitsOwned: Array\n )>>, contactDetails: (\n { __typename?: 'ContactDetails' }\n & ContactDetailsFragment\n ), address?: Maybe<(\n { __typename?: 'Address' }\n & AddressFragment\n )>, boardMemberDetails?: Maybe<(\n { __typename?: 'BoardMemberDetails' }\n & Pick\n )> }\n);\n\nexport type UserBasicDetailsFragment = (\n { __typename?: 'UserBasicDetails' }\n & Pick\n & { contactDetails: (\n { __typename?: 'ContactDetails' }\n & ContactDetailsFragment\n ), address?: Maybe<(\n { __typename?: 'Address' }\n & AddressFragment\n )>, boardMemberDetails?: Maybe<(\n { __typename?: 'BoardMemberDetails' }\n & Pick\n )> }\n);\n\nexport type UserDetailsFragment = (\n { __typename?: 'UserDetails' }\n & Pick\n & { contactDetails: (\n { __typename?: 'ContactDetails' }\n & ContactDetailsFragment\n ), address: (\n { __typename?: 'Address' }\n & AddressFragment\n ), unitsOwned: Array\n )>> }\n);\n\nexport type UserLoginDetailsFragment = (\n { __typename?: 'UserLoginDetails' }\n & Pick\n & { setup?: Maybe<(\n { __typename?: 'LoginSetupDetails' }\n & Pick\n )> }\n);\n\nexport type AddNewUnitOwnerMutationVariables = Exact<{\n unitId: Scalars['String'];\n input?: Maybe;\n}>;\n\n\nexport type AddNewUnitOwnerMutation = (\n { __typename?: 'Mutation' }\n & { addNewUnitOwner?: Maybe<(\n { __typename?: 'UnitDetails' }\n & UnitDetailsFragment\n )> }\n);\n\nexport type AddNewUnitTenantMutationVariables = Exact<{\n unitId: Scalars['String'];\n input?: Maybe;\n}>;\n\n\nexport type AddNewUnitTenantMutation = (\n { __typename?: 'Mutation' }\n & { addNewUnitTenant?: Maybe<(\n { __typename?: 'UnitDetails' }\n & UnitDetailsFragment\n )> }\n);\n\nexport type AddTaskCommentMutationVariables = Exact<{\n input?: Maybe;\n}>;\n\n\nexport type AddTaskCommentMutation = (\n { __typename?: 'Mutation' }\n & { addTaskComment?: Maybe<(\n { __typename?: 'TaskComment' }\n & TaskCommentFragment\n )> }\n);\n\nexport type CreateTaskMutationVariables = Exact<{\n input?: Maybe;\n}>;\n\n\nexport type CreateTaskMutation = (\n { __typename?: 'Mutation' }\n & { createTask?: Maybe<(\n { __typename?: 'Task' }\n & TaskFragment\n )> }\n);\n\nexport type CreateUnitMutationVariables = Exact<{\n input?: Maybe;\n}>;\n\n\nexport type CreateUnitMutation = (\n { __typename?: 'Mutation' }\n & { createUnit?: Maybe<(\n { __typename?: 'Unit' }\n & UnitFragment\n )> }\n);\n\nexport type DeleteTaskMutationVariables = Exact<{\n taskId: Scalars['ID'];\n}>;\n\n\nexport type DeleteTaskMutation = (\n { __typename?: 'Mutation' }\n & { deleteTask?: Maybe<(\n { __typename?: 'Result' }\n & Pick\n )> }\n);\n\nexport type DisableLoginMutationVariables = Exact<{\n userId: Scalars['ID'];\n elevatedAccessCode: Scalars['String'];\n notifyUser: Scalars['Boolean'];\n}>;\n\n\nexport type DisableLoginMutation = (\n { __typename?: 'Mutation' }\n & { disableLogin?: Maybe<(\n { __typename?: 'MessageResult' }\n & Pick\n )> }\n);\n\nexport type EnableLoginMutationVariables = Exact<{\n userId: Scalars['ID'];\n elevatedAccessCode: Scalars['String'];\n}>;\n\n\nexport type EnableLoginMutation = (\n { __typename?: 'Mutation' }\n & { enableLogin?: Maybe<(\n { __typename?: 'LoginSetupDetails' }\n & LoginSetupDetailsFragment\n )> }\n);\n\nexport type LoginSetupMutationVariables = Exact<{\n userId: Scalars['ID'];\n verificationCode: Scalars['String'];\n recoveryEmail: Scalars['String'];\n password: Scalars['String'];\n}>;\n\n\nexport type LoginSetupMutation = (\n { __typename?: 'Mutation' }\n & { loginSetup?: Maybe<(\n { __typename?: 'LoginSetupResult' }\n & Pick\n )> }\n);\n\nexport type RemoveAllTenantsMutationVariables = Exact<{\n unitId: Scalars['String'];\n}>;\n\n\nexport type RemoveAllTenantsMutation = (\n { __typename?: 'Mutation' }\n & { updateTenants?: Maybe<(\n { __typename?: 'UnitDetails' }\n & UnitDetailsFragment\n )> }\n);\n\nexport type ResetLoginSetupMutationVariables = Exact<{\n userId: Scalars['ID'];\n elevatedAccessCode?: Maybe;\n}>;\n\n\nexport type ResetLoginSetupMutation = (\n { __typename?: 'Mutation' }\n & { resetLoginSetup?: Maybe<(\n { __typename?: 'LoginSetupDetails' }\n & LoginSetupDetailsFragment\n )> }\n);\n\nexport type SubmitFeedbackMutationVariables = Exact<{\n input?: Maybe;\n}>;\n\n\nexport type SubmitFeedbackMutation = (\n { __typename?: 'Mutation' }\n & { submitFeedback?: Maybe<(\n { __typename?: 'Result' }\n & Pick\n )> }\n);\n\nexport type UpdateOwnersMutationVariables = Exact<{\n unitId: Scalars['String'];\n newOwnerIds?: Maybe>>;\n}>;\n\n\nexport type UpdateOwnersMutation = (\n { __typename?: 'Mutation' }\n & { updateOwners?: Maybe<(\n { __typename?: 'UnitDetails' }\n & UnitDetailsFragment\n )> }\n);\n\nexport type UpdateTaskMutationVariables = Exact<{\n input?: Maybe;\n}>;\n\n\nexport type UpdateTaskMutation = (\n { __typename?: 'Mutation' }\n & { updateTask?: Maybe<(\n { __typename?: 'Task' }\n & TaskFragment\n )> }\n);\n\nexport type UpdateTenantsMutationVariables = Exact<{\n unitId: Scalars['String'];\n newTenantIds?: Maybe>>;\n}>;\n\n\nexport type UpdateTenantsMutation = (\n { __typename?: 'Mutation' }\n & { updateTenants?: Maybe<(\n { __typename?: 'UnitDetails' }\n & UnitDetailsFragment\n )> }\n);\n\nexport type UpdateUnitMutationVariables = Exact<{\n input?: Maybe;\n}>;\n\n\nexport type UpdateUnitMutation = (\n { __typename?: 'Mutation' }\n & { updateUnit?: Maybe<(\n { __typename?: 'UnitDetails' }\n & UnitDetailsFragment\n )> }\n);\n\nexport type UpdateUserMutationVariables = Exact<{\n input?: Maybe;\n}>;\n\n\nexport type UpdateUserMutation = (\n { __typename?: 'Mutation' }\n & { updateUser?: Maybe<(\n { __typename?: 'User' }\n & UserFragment\n )> }\n);\n\nexport type AccessTokenQueryVariables = Exact<{\n loginId: Scalars['String'];\n password: Scalars['String'];\n}>;\n\n\nexport type AccessTokenQuery = (\n { __typename?: 'Query' }\n & { accessToken?: Maybe<(\n { __typename?: 'AccessTokenResult' }\n & AccessTokenResultFragment\n )> }\n);\n\nexport type CommunitiesQueryVariables = Exact<{ [key: string]: never; }>;\n\n\nexport type CommunitiesQuery = (\n { __typename?: 'Query' }\n & { communities?: Maybe>> }\n);\n\nexport type CommunityQueryVariables = Exact<{\n communityId: Scalars['ID'];\n}>;\n\n\nexport type CommunityQuery = (\n { __typename?: 'Query' }\n & { community?: Maybe<(\n { __typename?: 'Community' }\n & CommunityFragment\n )> }\n);\n\nexport type CommunityUsersLoginDetailsQueryVariables = Exact<{\n communityId: Scalars['ID'];\n}>;\n\n\nexport type CommunityUsersLoginDetailsQuery = (\n { __typename?: 'Query' }\n & { communityUsersLoginDetails?: Maybe>> }\n);\n\nexport type CurrentCommunityQueryVariables = Exact<{ [key: string]: never; }>;\n\n\nexport type CurrentCommunityQuery = (\n { __typename?: 'Query' }\n & { currentCommunity?: Maybe<(\n { __typename?: 'Community' }\n & CommunityFragment\n )> }\n);\n\nexport type LoginSetupStatusQueryVariables = Exact<{\n userId: Scalars['ID'];\n}>;\n\n\nexport type LoginSetupStatusQuery = (\n { __typename?: 'Query' }\n & { loginSetupStatus?: Maybe<(\n { __typename?: 'LoginSetupStatusResult' }\n & LoginSetupStatusResultFragment\n )> }\n);\n\nexport type TaskCommentsQueryVariables = Exact<{\n taskId: Scalars['ID'];\n}>;\n\n\nexport type TaskCommentsQuery = (\n { __typename?: 'Query' }\n & { taskComments?: Maybe>> }\n);\n\nexport type TaskDetailsByCommunityTaskIdQueryVariables = Exact<{\n communityId: Scalars['ID'];\n communityTaskId: Scalars['Int'];\n}>;\n\n\nexport type TaskDetailsByCommunityTaskIdQuery = (\n { __typename?: 'Query' }\n & { taskDetailsByCommunityTaskId?: Maybe<(\n { __typename?: 'Task' }\n & TaskFragment\n )> }\n);\n\nexport type TasksQueryVariables = Exact<{\n communityId: Scalars['ID'];\n}>;\n\n\nexport type TasksQuery = (\n { __typename?: 'Query' }\n & { communityTasks?: Maybe>> }\n);\n\nexport type TenantUnitQueryVariables = Exact<{\n communityId: Scalars['String'];\n userId: Scalars['String'];\n}>;\n\n\nexport type TenantUnitQuery = (\n { __typename?: 'Query' }\n & { tenantUnit?: Maybe<(\n { __typename?: 'Unit' }\n & UnitFragment\n )> }\n);\n\nexport type UnitDetailsQueryVariables = Exact<{\n unitId: Scalars['ID'];\n}>;\n\n\nexport type UnitDetailsQuery = (\n { __typename?: 'Query' }\n & { unitDetails?: Maybe<(\n { __typename?: 'UnitDetails' }\n & UnitDetailsFragment\n )> }\n);\n\nexport type UnitsQueryVariables = Exact<{\n communityId: Scalars['ID'];\n}>;\n\n\nexport type UnitsQuery = (\n { __typename?: 'Query' }\n & { communityUnits?: Maybe>> }\n);\n\nexport type UserDetailsQueryVariables = Exact<{\n userId: Scalars['ID'];\n}>;\n\n\nexport type UserDetailsQuery = (\n { __typename?: 'Query' }\n & { userDetails?: Maybe<(\n { __typename?: 'UserDetails' }\n & UserDetailsFragment\n )> }\n);\n\nexport type UsersQueryVariables = Exact<{\n communityId: Scalars['ID'];\n}>;\n\n\nexport type UsersQuery = (\n { __typename?: 'Query' }\n & { communityUsers?: Maybe>> }\n);\n\nexport const AccessTokenResultFragmentDoc = gql`\n fragment AccessTokenResult on AccessTokenResult {\n statusCode\n statusText\n accessToken\n failureReason\n}\n `;\nexport const ContactDetailsFragmentDoc = gql`\n fragment ContactDetails on ContactDetails {\n email\n phone\n}\n `;\nexport const CommunityFragmentDoc = gql`\n fragment Community on Community {\n id\n name\n isActive\n contactDetails {\n ...ContactDetails\n }\n}\n ${ContactDetailsFragmentDoc}`;\nexport const FeedbackFragmentDoc = gql`\n fragment Feedback on Feedback {\n notes\n reportedUser\n}\n `;\nexport const LoginSetupDetailsFragmentDoc = gql`\n fragment LoginSetupDetails on LoginSetupDetails {\n verificationCode\n expiresAt\n notes\n}\n `;\nexport const LoginSetupStatusResultFragmentDoc = gql`\n fragment LoginSetupStatusResult on LoginSetupStatusResult {\n status\n}\n `;\nexport const TaskFragmentDoc = gql`\n fragment Task on Task {\n id\n title\n communityTaskId\n description\n forUnits\n community\n assignedTo\n status\n isActive\n createdBy\n closedBy\n createdAt\n closedAt\n labels\n attachments\n}\n `;\nexport const TaskCommentFragmentDoc = gql`\n fragment TaskComment on TaskComment {\n id\n taskId\n comment\n commentedBy\n createdAt\n updatedAt\n}\n `;\nexport const AddressFragmentDoc = gql`\n fragment Address on Address {\n addressLine1\n addressLine2\n zipCode\n city\n state\n}\n `;\nexport const UnitFragmentDoc = gql`\n fragment Unit on Unit {\n id\n name\n address {\n ...Address\n }\n owners\n tenants\n occupancyType\n isActive\n}\n ${AddressFragmentDoc}`;\nexport const UnitBasicDetailsFragmentDoc = gql`\n fragment UnitBasicDetails on UnitBasicDetails {\n id\n name\n occupancyType\n}\n `;\nexport const UserBasicDetailsFragmentDoc = gql`\n fragment UserBasicDetails on UserBasicDetails {\n id\n firstName\n lastName\n contactDetails {\n ...ContactDetails\n }\n address {\n ...Address\n }\n boardMemberDetails {\n title\n }\n loginEnabled\n}\n ${ContactDetailsFragmentDoc}\n${AddressFragmentDoc}`;\nexport const UnitDetailsFragmentDoc = gql`\n fragment UnitDetails on UnitDetails {\n id\n name\n community\n address {\n ...Address\n }\n owners {\n ...UserBasicDetails\n }\n tenants {\n ...UserBasicDetails\n }\n occupancyType\n isActive\n}\n ${AddressFragmentDoc}\n${UserBasicDetailsFragmentDoc}`;\nexport const UserFragmentDoc = gql`\n fragment User on User {\n id\n firstName\n lastName\n unitsOwned {\n id\n name\n }\n contactDetails {\n ...ContactDetails\n }\n address {\n ...Address\n }\n boardMemberDetails {\n title\n }\n roles\n isActive\n loginEnabled\n}\n ${ContactDetailsFragmentDoc}\n${AddressFragmentDoc}`;\nexport const UserDetailsFragmentDoc = gql`\n fragment UserDetails on UserDetails {\n id\n community\n firstName\n lastName\n contactDetails {\n ...ContactDetails\n }\n address {\n ...Address\n }\n unitsOwned {\n id\n name\n occupancyType\n }\n roles\n isActive\n loginEnabled\n}\n ${ContactDetailsFragmentDoc}\n${AddressFragmentDoc}`;\nexport const UserLoginDetailsFragmentDoc = gql`\n fragment UserLoginDetails on UserLoginDetails {\n id\n userId\n recoveryEmail\n setup {\n verificationCode\n expiresAt\n notes\n }\n}\n `;\nexport const AddNewUnitOwnerDocument = gql`\n mutation addNewUnitOwner($unitId: String!, $input: UserInput) {\n addNewUnitOwner(unitId: $unitId, input: $input) {\n ...UnitDetails\n }\n}\n ${UnitDetailsFragmentDoc}`;\nexport type AddNewUnitOwnerMutationFn = Apollo.MutationFunction;\n\n/**\n * __useAddNewUnitOwnerMutation__\n *\n * To run a mutation, you first call `useAddNewUnitOwnerMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useAddNewUnitOwnerMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [addNewUnitOwnerMutation, { data, loading, error }] = useAddNewUnitOwnerMutation({\n * variables: {\n * unitId: // value for 'unitId'\n * input: // value for 'input'\n * },\n * });\n */\nexport function useAddNewUnitOwnerMutation(baseOptions?: Apollo.MutationHookOptions) {\n return Apollo.useMutation(AddNewUnitOwnerDocument, baseOptions);\n }\nexport type AddNewUnitOwnerMutationHookResult = ReturnType;\nexport type AddNewUnitOwnerMutationResult = Apollo.MutationResult;\nexport type AddNewUnitOwnerMutationOptions = Apollo.BaseMutationOptions;\nexport const AddNewUnitTenantDocument = gql`\n mutation addNewUnitTenant($unitId: String!, $input: UserInput) {\n addNewUnitTenant(unitId: $unitId, input: $input) {\n ...UnitDetails\n }\n}\n ${UnitDetailsFragmentDoc}`;\nexport type AddNewUnitTenantMutationFn = Apollo.MutationFunction;\n\n/**\n * __useAddNewUnitTenantMutation__\n *\n * To run a mutation, you first call `useAddNewUnitTenantMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useAddNewUnitTenantMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [addNewUnitTenantMutation, { data, loading, error }] = useAddNewUnitTenantMutation({\n * variables: {\n * unitId: // value for 'unitId'\n * input: // value for 'input'\n * },\n * });\n */\nexport function useAddNewUnitTenantMutation(baseOptions?: Apollo.MutationHookOptions) {\n return Apollo.useMutation(AddNewUnitTenantDocument, baseOptions);\n }\nexport type AddNewUnitTenantMutationHookResult = ReturnType;\nexport type AddNewUnitTenantMutationResult = Apollo.MutationResult;\nexport type AddNewUnitTenantMutationOptions = Apollo.BaseMutationOptions;\nexport const AddTaskCommentDocument = gql`\n mutation addTaskComment($input: NewTaskCommentInput) {\n addTaskComment(input: $input) {\n ...TaskComment\n }\n}\n ${TaskCommentFragmentDoc}`;\nexport type AddTaskCommentMutationFn = Apollo.MutationFunction;\n\n/**\n * __useAddTaskCommentMutation__\n *\n * To run a mutation, you first call `useAddTaskCommentMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useAddTaskCommentMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [addTaskCommentMutation, { data, loading, error }] = useAddTaskCommentMutation({\n * variables: {\n * input: // value for 'input'\n * },\n * });\n */\nexport function useAddTaskCommentMutation(baseOptions?: Apollo.MutationHookOptions) {\n return Apollo.useMutation(AddTaskCommentDocument, baseOptions);\n }\nexport type AddTaskCommentMutationHookResult = ReturnType;\nexport type AddTaskCommentMutationResult = Apollo.MutationResult;\nexport type AddTaskCommentMutationOptions = Apollo.BaseMutationOptions;\nexport const CreateTaskDocument = gql`\n mutation createTask($input: NewTaskInput) {\n createTask(input: $input) {\n ...Task\n }\n}\n ${TaskFragmentDoc}`;\nexport type CreateTaskMutationFn = Apollo.MutationFunction;\n\n/**\n * __useCreateTaskMutation__\n *\n * To run a mutation, you first call `useCreateTaskMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useCreateTaskMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [createTaskMutation, { data, loading, error }] = useCreateTaskMutation({\n * variables: {\n * input: // value for 'input'\n * },\n * });\n */\nexport function useCreateTaskMutation(baseOptions?: Apollo.MutationHookOptions) {\n return Apollo.useMutation(CreateTaskDocument, baseOptions);\n }\nexport type CreateTaskMutationHookResult = ReturnType;\nexport type CreateTaskMutationResult = Apollo.MutationResult;\nexport type CreateTaskMutationOptions = Apollo.BaseMutationOptions;\nexport const CreateUnitDocument = gql`\n mutation createUnit($input: UnitInput) {\n createUnit(input: $input) {\n ...Unit\n }\n}\n ${UnitFragmentDoc}`;\nexport type CreateUnitMutationFn = Apollo.MutationFunction;\n\n/**\n * __useCreateUnitMutation__\n *\n * To run a mutation, you first call `useCreateUnitMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useCreateUnitMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [createUnitMutation, { data, loading, error }] = useCreateUnitMutation({\n * variables: {\n * input: // value for 'input'\n * },\n * });\n */\nexport function useCreateUnitMutation(baseOptions?: Apollo.MutationHookOptions) {\n return Apollo.useMutation(CreateUnitDocument, baseOptions);\n }\nexport type CreateUnitMutationHookResult = ReturnType;\nexport type CreateUnitMutationResult = Apollo.MutationResult;\nexport type CreateUnitMutationOptions = Apollo.BaseMutationOptions;\nexport const DeleteTaskDocument = gql`\n mutation deleteTask($taskId: ID!) {\n deleteTask(taskId: $taskId) {\n value\n }\n}\n `;\nexport type DeleteTaskMutationFn = Apollo.MutationFunction;\n\n/**\n * __useDeleteTaskMutation__\n *\n * To run a mutation, you first call `useDeleteTaskMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useDeleteTaskMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [deleteTaskMutation, { data, loading, error }] = useDeleteTaskMutation({\n * variables: {\n * taskId: // value for 'taskId'\n * },\n * });\n */\nexport function useDeleteTaskMutation(baseOptions?: Apollo.MutationHookOptions) {\n return Apollo.useMutation(DeleteTaskDocument, baseOptions);\n }\nexport type DeleteTaskMutationHookResult = ReturnType;\nexport type DeleteTaskMutationResult = Apollo.MutationResult;\nexport type DeleteTaskMutationOptions = Apollo.BaseMutationOptions;\nexport const DisableLoginDocument = gql`\n mutation disableLogin($userId: ID!, $elevatedAccessCode: String!, $notifyUser: Boolean!) {\n disableLogin(userId: $userId, elevatedAccessCode: $elevatedAccessCode, notifyUser: $notifyUser) {\n message\n }\n}\n `;\nexport type DisableLoginMutationFn = Apollo.MutationFunction;\n\n/**\n * __useDisableLoginMutation__\n *\n * To run a mutation, you first call `useDisableLoginMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useDisableLoginMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [disableLoginMutation, { data, loading, error }] = useDisableLoginMutation({\n * variables: {\n * userId: // value for 'userId'\n * elevatedAccessCode: // value for 'elevatedAccessCode'\n * notifyUser: // value for 'notifyUser'\n * },\n * });\n */\nexport function useDisableLoginMutation(baseOptions?: Apollo.MutationHookOptions) {\n return Apollo.useMutation(DisableLoginDocument, baseOptions);\n }\nexport type DisableLoginMutationHookResult = ReturnType;\nexport type DisableLoginMutationResult = Apollo.MutationResult;\nexport type DisableLoginMutationOptions = Apollo.BaseMutationOptions;\nexport const EnableLoginDocument = gql`\n mutation enableLogin($userId: ID!, $elevatedAccessCode: String!) {\n enableLogin(userId: $userId, elevatedAccessCode: $elevatedAccessCode) {\n ...LoginSetupDetails\n }\n}\n ${LoginSetupDetailsFragmentDoc}`;\nexport type EnableLoginMutationFn = Apollo.MutationFunction;\n\n/**\n * __useEnableLoginMutation__\n *\n * To run a mutation, you first call `useEnableLoginMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useEnableLoginMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [enableLoginMutation, { data, loading, error }] = useEnableLoginMutation({\n * variables: {\n * userId: // value for 'userId'\n * elevatedAccessCode: // value for 'elevatedAccessCode'\n * },\n * });\n */\nexport function useEnableLoginMutation(baseOptions?: Apollo.MutationHookOptions) {\n return Apollo.useMutation(EnableLoginDocument, baseOptions);\n }\nexport type EnableLoginMutationHookResult = ReturnType;\nexport type EnableLoginMutationResult = Apollo.MutationResult;\nexport type EnableLoginMutationOptions = Apollo.BaseMutationOptions;\nexport const LoginSetupDocument = gql`\n mutation loginSetup($userId: ID!, $verificationCode: String!, $recoveryEmail: String!, $password: String!) {\n loginSetup(userId: $userId, verificationCode: $verificationCode, recoveryEmail: $recoveryEmail, password: $password) {\n errorMessage\n isSuccess\n }\n}\n `;\nexport type LoginSetupMutationFn = Apollo.MutationFunction;\n\n/**\n * __useLoginSetupMutation__\n *\n * To run a mutation, you first call `useLoginSetupMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useLoginSetupMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [loginSetupMutation, { data, loading, error }] = useLoginSetupMutation({\n * variables: {\n * userId: // value for 'userId'\n * verificationCode: // value for 'verificationCode'\n * recoveryEmail: // value for 'recoveryEmail'\n * password: // value for 'password'\n * },\n * });\n */\nexport function useLoginSetupMutation(baseOptions?: Apollo.MutationHookOptions) {\n return Apollo.useMutation(LoginSetupDocument, baseOptions);\n }\nexport type LoginSetupMutationHookResult = ReturnType;\nexport type LoginSetupMutationResult = Apollo.MutationResult;\nexport type LoginSetupMutationOptions = Apollo.BaseMutationOptions;\nexport const RemoveAllTenantsDocument = gql`\n mutation removeAllTenants($unitId: String!) {\n updateTenants(unitId: $unitId, newTenantIds: []) {\n ...UnitDetails\n }\n}\n ${UnitDetailsFragmentDoc}`;\nexport type RemoveAllTenantsMutationFn = Apollo.MutationFunction;\n\n/**\n * __useRemoveAllTenantsMutation__\n *\n * To run a mutation, you first call `useRemoveAllTenantsMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useRemoveAllTenantsMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [removeAllTenantsMutation, { data, loading, error }] = useRemoveAllTenantsMutation({\n * variables: {\n * unitId: // value for 'unitId'\n * },\n * });\n */\nexport function useRemoveAllTenantsMutation(baseOptions?: Apollo.MutationHookOptions) {\n return Apollo.useMutation(RemoveAllTenantsDocument, baseOptions);\n }\nexport type RemoveAllTenantsMutationHookResult = ReturnType;\nexport type RemoveAllTenantsMutationResult = Apollo.MutationResult;\nexport type RemoveAllTenantsMutationOptions = Apollo.BaseMutationOptions;\nexport const ResetLoginSetupDocument = gql`\n mutation resetLoginSetup($userId: ID!, $elevatedAccessCode: String) {\n resetLoginSetup(userId: $userId, elevatedAccessCode: $elevatedAccessCode) {\n ...LoginSetupDetails\n }\n}\n ${LoginSetupDetailsFragmentDoc}`;\nexport type ResetLoginSetupMutationFn = Apollo.MutationFunction;\n\n/**\n * __useResetLoginSetupMutation__\n *\n * To run a mutation, you first call `useResetLoginSetupMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useResetLoginSetupMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [resetLoginSetupMutation, { data, loading, error }] = useResetLoginSetupMutation({\n * variables: {\n * userId: // value for 'userId'\n * elevatedAccessCode: // value for 'elevatedAccessCode'\n * },\n * });\n */\nexport function useResetLoginSetupMutation(baseOptions?: Apollo.MutationHookOptions) {\n return Apollo.useMutation(ResetLoginSetupDocument, baseOptions);\n }\nexport type ResetLoginSetupMutationHookResult = ReturnType;\nexport type ResetLoginSetupMutationResult = Apollo.MutationResult;\nexport type ResetLoginSetupMutationOptions = Apollo.BaseMutationOptions;\nexport const SubmitFeedbackDocument = gql`\n mutation submitFeedback($input: FeedbackInput) {\n submitFeedback(input: $input) {\n value\n }\n}\n `;\nexport type SubmitFeedbackMutationFn = Apollo.MutationFunction;\n\n/**\n * __useSubmitFeedbackMutation__\n *\n * To run a mutation, you first call `useSubmitFeedbackMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useSubmitFeedbackMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [submitFeedbackMutation, { data, loading, error }] = useSubmitFeedbackMutation({\n * variables: {\n * input: // value for 'input'\n * },\n * });\n */\nexport function useSubmitFeedbackMutation(baseOptions?: Apollo.MutationHookOptions) {\n return Apollo.useMutation(SubmitFeedbackDocument, baseOptions);\n }\nexport type SubmitFeedbackMutationHookResult = ReturnType;\nexport type SubmitFeedbackMutationResult = Apollo.MutationResult;\nexport type SubmitFeedbackMutationOptions = Apollo.BaseMutationOptions;\nexport const UpdateOwnersDocument = gql`\n mutation updateOwners($unitId: String!, $newOwnerIds: [String]) {\n updateOwners(unitId: $unitId, newOwnerIds: $newOwnerIds) {\n ...UnitDetails\n }\n}\n ${UnitDetailsFragmentDoc}`;\nexport type UpdateOwnersMutationFn = Apollo.MutationFunction;\n\n/**\n * __useUpdateOwnersMutation__\n *\n * To run a mutation, you first call `useUpdateOwnersMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useUpdateOwnersMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [updateOwnersMutation, { data, loading, error }] = useUpdateOwnersMutation({\n * variables: {\n * unitId: // value for 'unitId'\n * newOwnerIds: // value for 'newOwnerIds'\n * },\n * });\n */\nexport function useUpdateOwnersMutation(baseOptions?: Apollo.MutationHookOptions) {\n return Apollo.useMutation(UpdateOwnersDocument, baseOptions);\n }\nexport type UpdateOwnersMutationHookResult = ReturnType;\nexport type UpdateOwnersMutationResult = Apollo.MutationResult;\nexport type UpdateOwnersMutationOptions = Apollo.BaseMutationOptions;\nexport const UpdateTaskDocument = gql`\n mutation updateTask($input: UpdateTaskInput) {\n updateTask(input: $input) {\n ...Task\n }\n}\n ${TaskFragmentDoc}`;\nexport type UpdateTaskMutationFn = Apollo.MutationFunction;\n\n/**\n * __useUpdateTaskMutation__\n *\n * To run a mutation, you first call `useUpdateTaskMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useUpdateTaskMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [updateTaskMutation, { data, loading, error }] = useUpdateTaskMutation({\n * variables: {\n * input: // value for 'input'\n * },\n * });\n */\nexport function useUpdateTaskMutation(baseOptions?: Apollo.MutationHookOptions) {\n return Apollo.useMutation(UpdateTaskDocument, baseOptions);\n }\nexport type UpdateTaskMutationHookResult = ReturnType;\nexport type UpdateTaskMutationResult = Apollo.MutationResult;\nexport type UpdateTaskMutationOptions = Apollo.BaseMutationOptions;\nexport const UpdateTenantsDocument = gql`\n mutation updateTenants($unitId: String!, $newTenantIds: [String]) {\n updateTenants(unitId: $unitId, newTenantIds: $newTenantIds) {\n ...UnitDetails\n }\n}\n ${UnitDetailsFragmentDoc}`;\nexport type UpdateTenantsMutationFn = Apollo.MutationFunction;\n\n/**\n * __useUpdateTenantsMutation__\n *\n * To run a mutation, you first call `useUpdateTenantsMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useUpdateTenantsMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [updateTenantsMutation, { data, loading, error }] = useUpdateTenantsMutation({\n * variables: {\n * unitId: // value for 'unitId'\n * newTenantIds: // value for 'newTenantIds'\n * },\n * });\n */\nexport function useUpdateTenantsMutation(baseOptions?: Apollo.MutationHookOptions) {\n return Apollo.useMutation(UpdateTenantsDocument, baseOptions);\n }\nexport type UpdateTenantsMutationHookResult = ReturnType;\nexport type UpdateTenantsMutationResult = Apollo.MutationResult;\nexport type UpdateTenantsMutationOptions = Apollo.BaseMutationOptions;\nexport const UpdateUnitDocument = gql`\n mutation updateUnit($input: UpdateUnitInput) {\n updateUnit(input: $input) {\n ...UnitDetails\n }\n}\n ${UnitDetailsFragmentDoc}`;\nexport type UpdateUnitMutationFn = Apollo.MutationFunction;\n\n/**\n * __useUpdateUnitMutation__\n *\n * To run a mutation, you first call `useUpdateUnitMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useUpdateUnitMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [updateUnitMutation, { data, loading, error }] = useUpdateUnitMutation({\n * variables: {\n * input: // value for 'input'\n * },\n * });\n */\nexport function useUpdateUnitMutation(baseOptions?: Apollo.MutationHookOptions) {\n return Apollo.useMutation(UpdateUnitDocument, baseOptions);\n }\nexport type UpdateUnitMutationHookResult = ReturnType;\nexport type UpdateUnitMutationResult = Apollo.MutationResult;\nexport type UpdateUnitMutationOptions = Apollo.BaseMutationOptions;\nexport const UpdateUserDocument = gql`\n mutation updateUser($input: UpdateUserInput) {\n updateUser(input: $input) {\n ...User\n }\n}\n ${UserFragmentDoc}`;\nexport type UpdateUserMutationFn = Apollo.MutationFunction;\n\n/**\n * __useUpdateUserMutation__\n *\n * To run a mutation, you first call `useUpdateUserMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useUpdateUserMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [updateUserMutation, { data, loading, error }] = useUpdateUserMutation({\n * variables: {\n * input: // value for 'input'\n * },\n * });\n */\nexport function useUpdateUserMutation(baseOptions?: Apollo.MutationHookOptions) {\n return Apollo.useMutation(UpdateUserDocument, baseOptions);\n }\nexport type UpdateUserMutationHookResult = ReturnType;\nexport type UpdateUserMutationResult = Apollo.MutationResult;\nexport type UpdateUserMutationOptions = Apollo.BaseMutationOptions;\nexport const AccessTokenDocument = gql`\n query AccessToken($loginId: String!, $password: String!) {\n accessToken(loginId: $loginId, password: $password) {\n ...AccessTokenResult\n }\n}\n ${AccessTokenResultFragmentDoc}`;\n\n/**\n * __useAccessTokenQuery__\n *\n * To run a query within a React component, call `useAccessTokenQuery` and pass it any options that fit your needs.\n * When your component renders, `useAccessTokenQuery` returns an object from Apollo Client that contains loading, error, and data properties\n * you can use to render your UI.\n *\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\n *\n * @example\n * const { data, loading, error } = useAccessTokenQuery({\n * variables: {\n * loginId: // value for 'loginId'\n * password: // value for 'password'\n * },\n * });\n */\nexport function useAccessTokenQuery(baseOptions?: Apollo.QueryHookOptions) {\n return Apollo.useQuery(AccessTokenDocument, baseOptions);\n }\nexport function useAccessTokenLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) {\n return Apollo.useLazyQuery(AccessTokenDocument, baseOptions);\n }\nexport type AccessTokenQueryHookResult = ReturnType;\nexport type AccessTokenLazyQueryHookResult = ReturnType;\nexport type AccessTokenQueryResult = Apollo.QueryResult;\nexport const CommunitiesDocument = gql`\n query Communities {\n communities {\n ...Community\n }\n}\n ${CommunityFragmentDoc}`;\n\n/**\n * __useCommunitiesQuery__\n *\n * To run a query within a React component, call `useCommunitiesQuery` and pass it any options that fit your needs.\n * When your component renders, `useCommunitiesQuery` returns an object from Apollo Client that contains loading, error, and data properties\n * you can use to render your UI.\n *\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\n *\n * @example\n * const { data, loading, error } = useCommunitiesQuery({\n * variables: {\n * },\n * });\n */\nexport function useCommunitiesQuery(baseOptions?: Apollo.QueryHookOptions) {\n return Apollo.useQuery(CommunitiesDocument, baseOptions);\n }\nexport function useCommunitiesLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) {\n return Apollo.useLazyQuery(CommunitiesDocument, baseOptions);\n }\nexport type CommunitiesQueryHookResult = ReturnType;\nexport type CommunitiesLazyQueryHookResult = ReturnType;\nexport type CommunitiesQueryResult = Apollo.QueryResult;\nexport const CommunityDocument = gql`\n query community($communityId: ID!) {\n community(communityId: $communityId) {\n ...Community\n }\n}\n ${CommunityFragmentDoc}`;\n\n/**\n * __useCommunityQuery__\n *\n * To run a query within a React component, call `useCommunityQuery` and pass it any options that fit your needs.\n * When your component renders, `useCommunityQuery` returns an object from Apollo Client that contains loading, error, and data properties\n * you can use to render your UI.\n *\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\n *\n * @example\n * const { data, loading, error } = useCommunityQuery({\n * variables: {\n * communityId: // value for 'communityId'\n * },\n * });\n */\nexport function useCommunityQuery(baseOptions?: Apollo.QueryHookOptions) {\n return Apollo.useQuery(CommunityDocument, baseOptions);\n }\nexport function useCommunityLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) {\n return Apollo.useLazyQuery(CommunityDocument, baseOptions);\n }\nexport type CommunityQueryHookResult = ReturnType;\nexport type CommunityLazyQueryHookResult = ReturnType;\nexport type CommunityQueryResult = Apollo.QueryResult;\nexport const CommunityUsersLoginDetailsDocument = gql`\n query communityUsersLoginDetails($communityId: ID!) {\n communityUsersLoginDetails(communityId: $communityId) {\n ...UserLoginDetails\n }\n}\n ${UserLoginDetailsFragmentDoc}`;\n\n/**\n * __useCommunityUsersLoginDetailsQuery__\n *\n * To run a query within a React component, call `useCommunityUsersLoginDetailsQuery` and pass it any options that fit your needs.\n * When your component renders, `useCommunityUsersLoginDetailsQuery` returns an object from Apollo Client that contains loading, error, and data properties\n * you can use to render your UI.\n *\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\n *\n * @example\n * const { data, loading, error } = useCommunityUsersLoginDetailsQuery({\n * variables: {\n * communityId: // value for 'communityId'\n * },\n * });\n */\nexport function useCommunityUsersLoginDetailsQuery(baseOptions?: Apollo.QueryHookOptions) {\n return Apollo.useQuery(CommunityUsersLoginDetailsDocument, baseOptions);\n }\nexport function useCommunityUsersLoginDetailsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) {\n return Apollo.useLazyQuery(CommunityUsersLoginDetailsDocument, baseOptions);\n }\nexport type CommunityUsersLoginDetailsQueryHookResult = ReturnType;\nexport type CommunityUsersLoginDetailsLazyQueryHookResult = ReturnType;\nexport type CommunityUsersLoginDetailsQueryResult = Apollo.QueryResult;\nexport const CurrentCommunityDocument = gql`\n query CurrentCommunity {\n currentCommunity @client {\n ...Community\n }\n}\n ${CommunityFragmentDoc}`;\n\n/**\n * __useCurrentCommunityQuery__\n *\n * To run a query within a React component, call `useCurrentCommunityQuery` and pass it any options that fit your needs.\n * When your component renders, `useCurrentCommunityQuery` returns an object from Apollo Client that contains loading, error, and data properties\n * you can use to render your UI.\n *\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\n *\n * @example\n * const { data, loading, error } = useCurrentCommunityQuery({\n * variables: {\n * },\n * });\n */\nexport function useCurrentCommunityQuery(baseOptions?: Apollo.QueryHookOptions) {\n return Apollo.useQuery(CurrentCommunityDocument, baseOptions);\n }\nexport function useCurrentCommunityLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) {\n return Apollo.useLazyQuery(CurrentCommunityDocument, baseOptions);\n }\nexport type CurrentCommunityQueryHookResult = ReturnType;\nexport type CurrentCommunityLazyQueryHookResult = ReturnType;\nexport type CurrentCommunityQueryResult = Apollo.QueryResult;\nexport const LoginSetupStatusDocument = gql`\n query LoginSetupStatus($userId: ID!) {\n loginSetupStatus(userId: $userId) {\n ...LoginSetupStatusResult\n }\n}\n ${LoginSetupStatusResultFragmentDoc}`;\n\n/**\n * __useLoginSetupStatusQuery__\n *\n * To run a query within a React component, call `useLoginSetupStatusQuery` and pass it any options that fit your needs.\n * When your component renders, `useLoginSetupStatusQuery` returns an object from Apollo Client that contains loading, error, and data properties\n * you can use to render your UI.\n *\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\n *\n * @example\n * const { data, loading, error } = useLoginSetupStatusQuery({\n * variables: {\n * userId: // value for 'userId'\n * },\n * });\n */\nexport function useLoginSetupStatusQuery(baseOptions?: Apollo.QueryHookOptions) {\n return Apollo.useQuery(LoginSetupStatusDocument, baseOptions);\n }\nexport function useLoginSetupStatusLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) {\n return Apollo.useLazyQuery(LoginSetupStatusDocument, baseOptions);\n }\nexport type LoginSetupStatusQueryHookResult = ReturnType;\nexport type LoginSetupStatusLazyQueryHookResult = ReturnType;\nexport type LoginSetupStatusQueryResult = Apollo.QueryResult;\nexport const TaskCommentsDocument = gql`\n query taskComments($taskId: ID!) {\n taskComments(taskId: $taskId) {\n ...TaskComment\n }\n}\n ${TaskCommentFragmentDoc}`;\n\n/**\n * __useTaskCommentsQuery__\n *\n * To run a query within a React component, call `useTaskCommentsQuery` and pass it any options that fit your needs.\n * When your component renders, `useTaskCommentsQuery` returns an object from Apollo Client that contains loading, error, and data properties\n * you can use to render your UI.\n *\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\n *\n * @example\n * const { data, loading, error } = useTaskCommentsQuery({\n * variables: {\n * taskId: // value for 'taskId'\n * },\n * });\n */\nexport function useTaskCommentsQuery(baseOptions?: Apollo.QueryHookOptions) {\n return Apollo.useQuery(TaskCommentsDocument, baseOptions);\n }\nexport function useTaskCommentsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) {\n return Apollo.useLazyQuery(TaskCommentsDocument, baseOptions);\n }\nexport type TaskCommentsQueryHookResult = ReturnType;\nexport type TaskCommentsLazyQueryHookResult = ReturnType;\nexport type TaskCommentsQueryResult = Apollo.QueryResult;\nexport const TaskDetailsByCommunityTaskIdDocument = gql`\n query taskDetailsByCommunityTaskId($communityId: ID!, $communityTaskId: Int!) {\n taskDetailsByCommunityTaskId(communityId: $communityId, communityTaskId: $communityTaskId) {\n ...Task\n }\n}\n ${TaskFragmentDoc}`;\n\n/**\n * __useTaskDetailsByCommunityTaskIdQuery__\n *\n * To run a query within a React component, call `useTaskDetailsByCommunityTaskIdQuery` and pass it any options that fit your needs.\n * When your component renders, `useTaskDetailsByCommunityTaskIdQuery` returns an object from Apollo Client that contains loading, error, and data properties\n * you can use to render your UI.\n *\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\n *\n * @example\n * const { data, loading, error } = useTaskDetailsByCommunityTaskIdQuery({\n * variables: {\n * communityId: // value for 'communityId'\n * communityTaskId: // value for 'communityTaskId'\n * },\n * });\n */\nexport function useTaskDetailsByCommunityTaskIdQuery(baseOptions?: Apollo.QueryHookOptions) {\n return Apollo.useQuery(TaskDetailsByCommunityTaskIdDocument, baseOptions);\n }\nexport function useTaskDetailsByCommunityTaskIdLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) {\n return Apollo.useLazyQuery(TaskDetailsByCommunityTaskIdDocument, baseOptions);\n }\nexport type TaskDetailsByCommunityTaskIdQueryHookResult = ReturnType;\nexport type TaskDetailsByCommunityTaskIdLazyQueryHookResult = ReturnType;\nexport type TaskDetailsByCommunityTaskIdQueryResult = Apollo.QueryResult;\nexport const TasksDocument = gql`\n query Tasks($communityId: ID!) {\n communityTasks(communityId: $communityId) {\n ...Task\n }\n}\n ${TaskFragmentDoc}`;\n\n/**\n * __useTasksQuery__\n *\n * To run a query within a React component, call `useTasksQuery` and pass it any options that fit your needs.\n * When your component renders, `useTasksQuery` returns an object from Apollo Client that contains loading, error, and data properties\n * you can use to render your UI.\n *\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\n *\n * @example\n * const { data, loading, error } = useTasksQuery({\n * variables: {\n * communityId: // value for 'communityId'\n * },\n * });\n */\nexport function useTasksQuery(baseOptions?: Apollo.QueryHookOptions) {\n return Apollo.useQuery(TasksDocument, baseOptions);\n }\nexport function useTasksLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) {\n return Apollo.useLazyQuery(TasksDocument, baseOptions);\n }\nexport type TasksQueryHookResult = ReturnType;\nexport type TasksLazyQueryHookResult = ReturnType;\nexport type TasksQueryResult = Apollo.QueryResult;\nexport const TenantUnitDocument = gql`\n query TenantUnit($communityId: String!, $userId: String!) {\n tenantUnit(communityId: $communityId, userId: $userId) @client {\n ...Unit\n }\n}\n ${UnitFragmentDoc}`;\n\n/**\n * __useTenantUnitQuery__\n *\n * To run a query within a React component, call `useTenantUnitQuery` and pass it any options that fit your needs.\n * When your component renders, `useTenantUnitQuery` returns an object from Apollo Client that contains loading, error, and data properties\n * you can use to render your UI.\n *\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\n *\n * @example\n * const { data, loading, error } = useTenantUnitQuery({\n * variables: {\n * communityId: // value for 'communityId'\n * userId: // value for 'userId'\n * },\n * });\n */\nexport function useTenantUnitQuery(baseOptions?: Apollo.QueryHookOptions) {\n return Apollo.useQuery(TenantUnitDocument, baseOptions);\n }\nexport function useTenantUnitLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) {\n return Apollo.useLazyQuery(TenantUnitDocument, baseOptions);\n }\nexport type TenantUnitQueryHookResult = ReturnType;\nexport type TenantUnitLazyQueryHookResult = ReturnType;\nexport type TenantUnitQueryResult = Apollo.QueryResult;\nexport const UnitDetailsDocument = gql`\n query UnitDetails($unitId: ID!) {\n unitDetails(unitId: $unitId) {\n ...UnitDetails\n }\n}\n ${UnitDetailsFragmentDoc}`;\n\n/**\n * __useUnitDetailsQuery__\n *\n * To run a query within a React component, call `useUnitDetailsQuery` and pass it any options that fit your needs.\n * When your component renders, `useUnitDetailsQuery` returns an object from Apollo Client that contains loading, error, and data properties\n * you can use to render your UI.\n *\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\n *\n * @example\n * const { data, loading, error } = useUnitDetailsQuery({\n * variables: {\n * unitId: // value for 'unitId'\n * },\n * });\n */\nexport function useUnitDetailsQuery(baseOptions?: Apollo.QueryHookOptions) {\n return Apollo.useQuery(UnitDetailsDocument, baseOptions);\n }\nexport function useUnitDetailsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) {\n return Apollo.useLazyQuery(UnitDetailsDocument, baseOptions);\n }\nexport type UnitDetailsQueryHookResult = ReturnType;\nexport type UnitDetailsLazyQueryHookResult = ReturnType;\nexport type UnitDetailsQueryResult = Apollo.QueryResult;\nexport const UnitsDocument = gql`\n query Units($communityId: ID!) {\n communityUnits(communityId: $communityId) {\n ...Unit\n }\n}\n ${UnitFragmentDoc}`;\n\n/**\n * __useUnitsQuery__\n *\n * To run a query within a React component, call `useUnitsQuery` and pass it any options that fit your needs.\n * When your component renders, `useUnitsQuery` returns an object from Apollo Client that contains loading, error, and data properties\n * you can use to render your UI.\n *\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\n *\n * @example\n * const { data, loading, error } = useUnitsQuery({\n * variables: {\n * communityId: // value for 'communityId'\n * },\n * });\n */\nexport function useUnitsQuery(baseOptions?: Apollo.QueryHookOptions) {\n return Apollo.useQuery(UnitsDocument, baseOptions);\n }\nexport function useUnitsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) {\n return Apollo.useLazyQuery(UnitsDocument, baseOptions);\n }\nexport type UnitsQueryHookResult = ReturnType;\nexport type UnitsLazyQueryHookResult = ReturnType;\nexport type UnitsQueryResult = Apollo.QueryResult;\nexport const UserDetailsDocument = gql`\n query userDetails($userId: ID!) {\n userDetails(userId: $userId) {\n ...UserDetails\n }\n}\n ${UserDetailsFragmentDoc}`;\n\n/**\n * __useUserDetailsQuery__\n *\n * To run a query within a React component, call `useUserDetailsQuery` and pass it any options that fit your needs.\n * When your component renders, `useUserDetailsQuery` returns an object from Apollo Client that contains loading, error, and data properties\n * you can use to render your UI.\n *\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\n *\n * @example\n * const { data, loading, error } = useUserDetailsQuery({\n * variables: {\n * userId: // value for 'userId'\n * },\n * });\n */\nexport function useUserDetailsQuery(baseOptions?: Apollo.QueryHookOptions) {\n return Apollo.useQuery(UserDetailsDocument, baseOptions);\n }\nexport function useUserDetailsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) {\n return Apollo.useLazyQuery(UserDetailsDocument, baseOptions);\n }\nexport type UserDetailsQueryHookResult = ReturnType;\nexport type UserDetailsLazyQueryHookResult = ReturnType;\nexport type UserDetailsQueryResult = Apollo.QueryResult;\nexport const UsersDocument = gql`\n query Users($communityId: ID!) {\n communityUsers(communityId: $communityId) {\n ...User\n }\n}\n ${UserFragmentDoc}`;\n\n/**\n * __useUsersQuery__\n *\n * To run a query within a React component, call `useUsersQuery` and pass it any options that fit your needs.\n * When your component renders, `useUsersQuery` returns an object from Apollo Client that contains loading, error, and data properties\n * you can use to render your UI.\n *\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\n *\n * @example\n * const { data, loading, error } = useUsersQuery({\n * variables: {\n * communityId: // value for 'communityId'\n * },\n * });\n */\nexport function useUsersQuery(baseOptions?: Apollo.QueryHookOptions) {\n return Apollo.useQuery(UsersDocument, baseOptions);\n }\nexport function useUsersLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) {\n return Apollo.useLazyQuery(UsersDocument, baseOptions);\n }\nexport type UsersQueryHookResult = ReturnType;\nexport type UsersLazyQueryHookResult = ReturnType;\nexport type UsersQueryResult = Apollo.QueryResult;","import { ApolloClient } from \"@apollo/client\";\nimport { startCase, camelCase, isEmpty, filter, some, find } from \"lodash\";\nimport { tenantUnit } from \"./data/queries\";\nimport jwt from \"jsonwebtoken\";\n\nimport {\n Address,\n Unit,\n UnitDetails,\n UnitsDocument,\n UnitsQuery,\n UnitsQueryVariables,\n User,\n UsersDocument,\n UsersQuery,\n UsersQueryVariables,\n} from \"./data/__generated__/client-graphql-types\";\nimport { Maybe } from \"graphql/jsutils/Maybe\";\nimport { navigate } from \"@reach/router\";\nimport { IUserContext } from \"./UserContext\";\nvar dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\",\n};\n\n\nexport const signoutAndClearContext = async (userContext: IUserContext, client: ApolloClient,\n setReload: React.Dispatch>, reload: boolean) => {\n window.localStorage.removeItem(\"token\");\n userContext.currentUser = undefined;\n userContext.currentCommunity = undefined;\n userContext.currentCommunityId = undefined;\n await client.clearStore();\n await navigate(\"/\");\n setReload(!reload);\n}\n\nexport const getTenantUnit = (\n client: ApolloClient,\n communityId: string,\n tenantId: string\n): Unit | undefined | null => {\n const result = client.readQuery({\n query: tenantUnit,\n variables: {\n communityId,\n userId: tenantId,\n },\n });\n return result;\n};\n\nexport const isTenantOccupancy = (unitDetails: UnitDetails) =>\n unitDetails.occupancyType === \"TENANT\";\n\nexport const getFormattedName = (\n firstName?: string | null,\n lastName?: string | null\n) => {\n return !!lastName\n ? startCase(camelCase(`${firstName} ${lastName}`))\n : startCase(camelCase(`${firstName}`));\n};\n\nexport const getFormattedDate = (date: Date) => {\n return date.toLocaleDateString(\"en-US\", dateOptions);\n};\n\nexport const getFormattedAddress = (address?: Address) => {\n return !!address\n ? address.addressLine2\n ? `${address.addressLine1}, ${address.addressLine2}, ${address.city}, ${address.state} - ${address.zipCode}`\n : `${address.addressLine1}, ${address.city}, ${address.state} - ${address.zipCode}`\n : \"\";\n};\n\nexport const isValidEmail = (email?: string): boolean => {\n if (isEmpty(email)) return false;\n const re = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n return re.test(String(email).toLowerCase());\n};\n\nexport const isValidZipCode = (zipCode?: string): boolean => {\n if (isEmpty(zipCode)) return false;\n const re = /^\\d{5}(?:[-\\s]\\d{4})?$/;\n return re.test(String(zipCode).toLowerCase());\n};\n\n/**\n * Array of all the state in United States\n */\nexport const allStates = [\n \"AL\",\n \"AK\",\n \"AS\",\n \"AZ\",\n \"AR\",\n \"CA\",\n \"CO\",\n \"CT\",\n \"DE\",\n \"DC\",\n \"FM\",\n \"FL\",\n \"GA\",\n \"GU\",\n \"HI\",\n \"ID\",\n \"IL\",\n \"IN\",\n \"IA\",\n \"KS\",\n \"KY\",\n \"LA\",\n \"ME\",\n \"MH\",\n \"MD\",\n \"MA\",\n \"MI\",\n \"MN\",\n \"MS\",\n \"MO\",\n \"MT\",\n \"NE\",\n \"NV\",\n \"NH\",\n \"NJ\",\n \"NM\",\n \"NY\",\n \"NC\",\n \"ND\",\n \"MP\",\n \"OH\",\n \"OK\",\n \"OR\",\n \"PW\",\n \"PA\",\n \"PR\",\n \"RI\",\n \"SC\",\n \"SD\",\n \"TN\",\n \"TX\",\n \"UT\",\n \"VT\",\n \"VI\",\n \"VA\",\n \"WA\",\n \"WV\",\n \"WI\",\n \"WY\",\n];\n\n/**\n * Array of all the state in United States\n */\nexport const allTaskLabels = [\n \"Routine Maintenance\",\n \"Repair\",\n \"Complaints\",\n \"Safety\",\n \"Security\",\n \"Driveway\",\n \"Roof\",\n \"Gutters\",\n \"Lawn\",\n \"Exterior\",\n \"Interior\",\n \"Termites\",\n \"Pest and Rodents\",\n \"Pool\",\n \"High\",\n \"Medium\",\n \"Low\",\n \"Urgent\",\n];\n\nexport const getUnits = (\n client: ApolloClient,\n currentCommunityId: string | undefined\n) => {\n const unitsData = client.readQuery({\n query: UnitsDocument,\n variables: {\n communityId: currentCommunityId ?? \"\",\n },\n });\n const units: Array = unitsData?.communityUnits as Array;\n return units;\n};\n\nexport const getUsers = (\n client: ApolloClient,\n currentCommunityId: string | undefined\n) => {\n const usersData = client.readQuery({\n query: UsersDocument,\n variables: {\n communityId: currentCommunityId ?? \"\",\n },\n });\n const users: Array = usersData?.communityUsers as Array;\n return users;\n};\n\nexport const getUser = (\n client: ApolloClient,\n currentCommunityId: string | undefined,\n userId: string\n) => {\n const users: Array = getUsers(client, currentCommunityId);\n return find(users, { id: userId });\n};\n\nexport const getUnitNamesForUnitIds = (unitIds: string[], units: Unit[]) => {\n return filter(units, (unit) =>\n some(unitIds, (unitId) => unitId === unit.id)\n ).map((unit) => unit.name);\n};\n\nexport const getUnitIdsForUnitNames = (unitNames: string[], units: Unit[]) => {\n return filter(units, (unit) =>\n some(unitNames, (unitName) => unitName === unit.name)\n ).map((unit) => unit.id);\n};\n\nexport const getUserFromToken = (accessToken: string) => {\n var decoded = jwt.decode(accessToken) as any;\n const {\n firstName,\n lastName,\n loginId, //use this\n roles,\n id,\n community,\n } = decoded;\n\n return {\n firstName,\n lastName,\n id,\n community,\n roles,\n } as User;\n};\n\nexport const isValidTaskStatus = (status: Maybe | null) => {\n return status && (status === \"open\" || status === \"closed\");\n};\n","\nimport { ApolloClient, useApolloClient } from \"@apollo/client\";\nimport { isEmpty } from \"lodash\";\nimport React from \"react\";\nimport { useMemoizedValue } from \"./common-utilities/use-memoized-value\";\nimport { Community, User } from \"./data/__generated__/client-graphql-types\";\nimport { getUserFromToken } from \"./app-helper\";\n\nconst getCurrentUser = (client: ApolloClient): User | undefined => {\n if (!window.localStorage.token) return undefined;\n\n // client.query({\n // query:\n // })\n //TODO: use the token to query for the user\n return getUserFromToken(window.localStorage.token ?? \"\");\n};\n\nconst getCurrentCommunity = (\n client: ApolloClient\n): string | undefined => {\n if (!window.localStorage.token) return undefined;\n\n // client.query({\n // query:\n // })\n //TODO: use the token to query for the user\n return getUserFromToken(window.localStorage.token ?? \"\").community;\n};\nexport interface IUserContext {\n currentCommunityId?: string;\n currentCommunity?: Community;\n currentUser?: User;\n appSettings: IAppSettings;\n}\n\n/**\n * This interface should capture all the app settings.\n * TODO: these app settings should come to the backend, instead of coming from env file\n */\nexport interface IAppSettings {\n showCommunityName: boolean;\n}\nconst UserContext = React.createContext(undefined as any);\nUserContext.displayName = \"UserContext\";\n\nexport interface IUserContextProviderProps {\n userId?: string;\n children?: React.ReactNode;\n}\n\nexport const UserContextProvider: React.FunctionComponent = ({\n userId,\n children,\n}) => {\n const client = useApolloClient();\n //TODO: these app settings should come to the backend, instead of coming from env file\n let showCommunityName =\n !isEmpty(process.env.REACT_APP_SHOW_COMMUNITY_NAME) &&\n process.env.REACT_APP_SHOW_COMMUNITY_NAME?.toLowerCase() === \"true\"\n ? true\n : false;\n const defaultContextWithoutAppAndClientState: IUserContext = {\n currentCommunityId: getCurrentCommunity(client),\n appSettings: {\n showCommunityName,\n },\n currentCommunity: undefined,\n currentUser: getCurrentUser(client),\n };\n const userContextValue = useMemoizedValue(\n defaultContextWithoutAppAndClientState\n );\n return (\n \n {children}\n \n );\n};\n\nexport const useUserContext = (): IUserContext =>\n React.useContext(UserContext);\n","import { useRef } from \"react\";\n\nimport { shallowComparator } from \"./shallow-comparator\";\n\n/**\n * `useMemoizedValue` will return a memoized version of the value that only changes if one of the `inputs`\n * has changed. It optionally also takes a `isValueSame` to support a custom comparision. By default it uses\n * `shallowCompare`\n * @param value The value to be memoized\n * @param isValueSame A comparision function to determine changes. Defaults to `shallowCompare`\n * @returns The memoized value if the new value is the same\n */\nexport const useMemoizedValue = (\n value: TValue,\n isValueSame: (\n oldValue: TValue,\n newValue: TValue\n ) => boolean = shallowComparator\n): TValue => {\n const memoizedValue = useRef(value);\n if (!isValueSame(memoizedValue.current, value)) {\n memoizedValue.current = value;\n }\n return memoizedValue.current;\n};\n","import React from \"react\";\nimport { navigate, RouteComponentProps } from \"@reach/router\";\n\nimport {\n Button,\n Form,\n FormField,\n Text,\n Input,\n Header,\n Flex,\n GeofenceArrivesIcon,\n} from \"@fluentui/react-northstar\";\nimport { useUserContext } from \"../UserContext\";\nimport { useApolloClient } from \"@apollo/client\";\nimport {\n AccessTokenDocument,\n AccessTokenQuery,\n AccessTokenQueryVariables,\n} from \"../data/__generated__/client-graphql-types\";\nimport { getUserFromToken } from \"../app-helper\";\nconst HomePage = React.memo(\n ({\n setReload,\n reload,\n }: RouteComponentProps & {\n setReload: React.Dispatch>;\n reload: boolean;\n }) => {\n const { currentUser } = useUserContext();\n React.useEffect(() => {\n const navigateToUnits = async () => {\n await navigate(\"/units\");\n };\n if (currentUser) {\n navigateToUnits().then(() => { });\n }\n });\n return ;\n }\n);\n\nconst SignInForm = ({\n setReload,\n reload,\n}: {\n setReload: React.Dispatch>;\n reload: boolean;\n}) => {\n const headerDisplayName = \"Sign In\";\n const client = useApolloClient();\n const userContext = useUserContext();\n const [loginIdInput, setLoginIdInput] = React.useState(\"\");\n const [passwordInput, setPasswordInput] = React.useState(\"\");\n\n const onLoginIdInputChange = React.useCallback(\n (e: React.SyntheticEvent) => {\n const input = e.target as HTMLInputElement;\n setLoginIdInput(input.value);\n },\n [setLoginIdInput]\n );\n\n const onPasswordInputChange = React.useCallback(\n (e: React.SyntheticEvent) => {\n const input = e.target as HTMLInputElement;\n setPasswordInput(input.value);\n },\n [setLoginIdInput]\n );\n\n return (\n <>\n \n \n \n \n \n \n }\n style={{ marginTop: 100 }}\n />\n\n \n {\n const { data } = await client.query<\n AccessTokenQuery,\n AccessTokenQueryVariables\n >({\n query: AccessTokenDocument,\n variables: {\n loginId: loginIdInput,\n password: passwordInput,\n },\n fetchPolicy: \"no-cache\",\n });\n if (data && data.accessToken?.statusCode === 200) {\n window.localStorage.token = data.accessToken.accessToken;\n\n userContext.currentUser = getUserFromToken(\n data.accessToken.accessToken ?? \"\"\n );\n userContext.currentCommunityId =\n userContext.currentUser.community;\n await navigate(\"/units\");\n setReload(!reload);\n } else {\n window.alert(data?.accessToken?.failureReason);\n }\n // TODO display loader\n }}\n style={{\n padding: 25,\n border: \"solid 1px #d7d7d7\",\n borderRadius: 1,\n }}\n >\n \n \n \n \n \n \n \n );\n};\n\nexport default HomePage;\n","import React from \"react\";\nimport { Link, LinkProps } from \"@reach/router\";\n\n// TODO: Drive Link prop types\nexport default (props: any) => (\n {\n return {\n style: {\n color: isCurrent ? \"black !important\" : \"white\",\n textDecoration: \"none\"\n },\n };\n }}\n />\n);\n","import {\n navigate,\n RouteComponentProps,\n useLocation,\n WindowLocation,\n} from \"@reach/router\";\nimport {\n Header,\n List,\n Button,\n TenantPersonalIcon,\n Text,\n Box,\n CalendarIcon,\n AudienceIcon,\n TeamCreateIcon,\n SpeakerPersonIcon,\n ToDoListIcon,\n Image,\n Divider,\n Flex,\n GeofenceLeavesIcon,\n QnaIcon,\n} from \"@fluentui/react-northstar\";\nimport React from \"react\";\nimport { pullAllBy, some } from \"lodash\";\nimport NavLink from \"./NavLink\";\nimport { IUserContext, useUserContext } from \"../UserContext\";\nimport { ApolloClient, useApolloClient } from \"@apollo/client\";\nimport { signoutAndClearContext } from \"../app-helper\";\nconst noSideBarPaths: Array = [\"/\", \"/communities\"];\nconst noSideBarPrefixPaths: Array = [\"/login/setup\"];\n\nconst navLinkStyle = {\n marginBottom: 10,\n fontSize: \"1.3rem\",\n float: \"left\"\n};\n// const buttonStyle = {\n// color:\"white\",\n// };\nexport const Sidebar = ({\n communityName,\n userFirstName,\n setReload,\n reload,\n}: RouteComponentProps & {\n communityName: string;\n userFirstName: string;\n setReload: React.Dispatch>;\n reload: boolean;\n}) => {\n const [showSidebar, setShowSidebar] = React.useState(false);\n const location = useLocation();\n const userContext = useUserContext();\n const client = useApolloClient();\n // const {\n // appSettings: { showCommunityName },\n // currentCommunity: { name: communityName } = { name: \"\" },\n // currentUser,\n // } = userContext;\n const shouldShowSidebar = (location: WindowLocation) => {\n let isNoSideBarPath = some(\n noSideBarPaths,\n (item: string) => item === location.pathname\n );\n\n if (isNoSideBarPath) return false;\n\n // check if the path has a noSideBarPathPrefix\n isNoSideBarPath = some(noSideBarPrefixPaths, (item: string) =>\n location.pathname.toLowerCase().startsWith(item)\n );\n\n return !isNoSideBarPath;\n };\n\n React.useEffect(() => {\n setShowSidebar(shouldShowSidebar(location));\n }, [location]);\n\n const navLinkListItems = [\n {\n key: \"units\",\n content: (\n }\n />\n ),\n style: navLinkStyle,\n },\n {\n key: \"residents\",\n content: (\n }\n />\n ),\n style: navLinkStyle,\n },\n {\n key: \"tasks\",\n content: (\n }\n />\n ),\n style: navLinkStyle,\n },\n // {\n // key: \"vendors\",\n // content: (\n // }\n // />\n // ),\n // style: navLinkStyle,\n // },\n {\n key: \"board\",\n content: (\n }\n />\n ),\n style: navLinkStyle,\n },\n // {\n // key: \"meetings\",\n // content: (\n // }\n // />\n // ),\n // style: navLinkStyle,\n // },\n {\n key: \"admin\",\n content: (\n }\n />\n ),\n style: navLinkStyle,\n },\n {\n key: \"feedback\",\n content: (\n }\n />\n ),\n style: navLinkStyle,\n },\n {\n key: \"logout\",\n content: (\n // }\n // />\n }\n size={\"small\"}\n content={{\"Sign out\"}}\n onClick={async () => {\n await signoutAndClearContext(userContext, client, setReload, reload);\n }}\n secondary\n iconPosition=\"before\"\n text\n fluid\n />\n ),\n style: navLinkStyle,\n },\n ];\n\n const headerDisplayName = communityName;\n\n if (userFirstName && userFirstName.toLowerCase() !== \"shruthi\") {\n pullAllBy(navLinkListItems, [{ key: \"admin\" }], \"key\");\n }\n\n return showSidebar ? (\n \n \n \n \n \n\n \n \n \n \n \n \n \n \n {/*

Secondary Nav

\n {props.children} */}\n \n ) : null;\n};\n\nconst NavLinkListItem = ({\n displayText,\n path,\n icon,\n}: {\n displayText: string;\n path: string;\n icon: any; //TODO: need to fix type\n}) => {\n const location = useLocation();\n const isActive = location.pathname.startsWith(`/${path}`);\n return (\n <>\n \n {displayText}}\n // secondary\n iconPosition=\"before\"\n style={{\n color: isActive ? \"#6264a7\" : \"#484644\",\n }}\n text\n fluid\n />{\" \"}\n \n \n );\n};\n\n\n","import { RouteComponentProps } from \"@reach/router\";\nimport React from \"react\";\n\nexport default (props: { children: React.ReactElement }) => (\n \n {props.children}\n \n);\n","import React from \"react\";\nimport {\n User,\n UserBasicDetails,\n} from \"../data/__generated__/client-graphql-types\";\nimport { navigate } from \"@reach/router\";\nimport { Button } from \"@fluentui/react-northstar\";\nimport { getFormattedName } from \"../app-helper\";\n\ninterface IResidentNavButtonProps {\n user?: User | UserBasicDetails | null;\n buttonLook?: boolean;\n}\nexport const ResidentNavButton = ({\n user,\n buttonLook = true,\n}: IResidentNavButtonProps): JSX.Element => (\n {\n //TODO: optimiize\n event.stopPropagation();\n await navigate(`/residents/${user?.id}`);\n }}\n />\n);\n","import { omit, isNumber, filter, isEmpty, some } from \"lodash\";\nimport {\n getFormattedName,\n getUnitIdsForUnitNames,\n isValidEmail,\n isValidZipCode,\n} from \"../app-helper\";\nimport { unit, unitDetails } from \"../data/fragments\";\nimport {\n UnitDetails,\n AddressInput,\n UserInput,\n UnitInput,\n Community,\n NewTaskInput,\n Unit,\n} from \"../data/__generated__/client-graphql-types\";\n\n/**\n * Interface for unit input form\n */\nexport interface IFormUnit {\n name?: string;\n addressLine1?: string;\n addressLine2?: string;\n zipCode?: string;\n city?: string;\n state?: string;\n}\n\n/**\n * Interface for user input form\n */\nexport interface IFormUser {\n firstName?: string;\n lastName?: string;\n email?: string;\n phone?: string;\n}\n\n/**\n * Interface for task input form\n */\nexport interface IFormTask {\n title?: string;\n description?: string;\n forUnits?: string[];\n assignedTo?: string;\n createdBy?: string;\n labels?: string[];\n}\n\n/**\n *\n * @param formUser This method does validation for the Resident Form\n */\nexport const residentFormValidation = (formUser: IFormUser) => {\n const errors: IFormUser = {};\n if (!formUser.firstName) {\n errors.firstName = \"Required\";\n }\n if (formUser.firstName && formUser.firstName.length < 2) {\n errors.firstName = \"Too small\";\n }\n\n if (!formUser.lastName) {\n errors.lastName = \"Required\";\n }\n if (formUser.lastName && formUser.lastName.length < 2) {\n errors.lastName = \"Too small\";\n }\n\n if (!formUser.email) {\n errors.email = \"Required\";\n }\n if (formUser.email && formUser.email.length < 4) {\n errors.email = \"Too small\";\n }\n if (formUser.email && !isValidEmail(formUser.email)) {\n errors.email = \"Invalid Email\";\n }\n console.log(\"Form validate issue\", errors);\n return errors;\n};\n\n/**\n *\n * @param formTask This method does validation for the Task Form\n */\nexport const taskFormValidation = (formTask: IFormTask) => {\n const errors: IFormTask = {};\n if (!formTask.title) {\n errors.title = \"Required\";\n }\n if (formTask.title && formTask.title.length < 5) {\n errors.title = \"Too small\";\n }\n\n console.log(\"Form validate issue\", errors);\n return errors;\n};\n\n/**\n *\n * @param formUser This method does validation for the Resident Form\n */\nexport const unitFormValidation = (\n formUnit: IFormUnit,\n existingUnitNames: string[]\n) => {\n const errors: IFormUnit = {};\n if (isEmpty(formUnit.name)) {\n errors.name = \"Required\";\n }\n\n //TODO: check if the unit name already exists\n if (formUnit.name && (isNumber(formUnit.name) || formUnit.name.length < 2)) {\n errors.name = \"Invalid Name. Ex: Unit#1 or Apt 1\";\n } else if (\n formUnit.name &&\n isUnitNameAlreadyExists(existingUnitNames, formUnit)\n ) {\n errors.name = \"Unit Name Already Exists\";\n }\n\n if (isEmpty(formUnit.addressLine1)) {\n errors.addressLine1 = \"Required\";\n }\n\n if (formUnit.addressLine1 && formUnit.addressLine1.length < 5) {\n errors.addressLine1 = \"Too small\";\n }\n\n if (isEmpty(formUnit.city)) {\n errors.city = \"Required\";\n }\n\n if (formUnit.city && formUnit.city.length < 3) {\n errors.city = \"Too small\";\n }\n\n if (isEmpty(formUnit.state)) {\n errors.state = \"Required\";\n }\n\n if (!formUnit.zipCode) {\n errors.zipCode = \"Required\";\n }\n if (formUnit.zipCode && formUnit.zipCode.length < 4) {\n errors.zipCode = \"Too small\";\n }\n if (formUnit.zipCode && !isValidZipCode(formUnit.zipCode)) {\n errors.zipCode = \"Invalid ZipCode. Ex: 98008 or 98008-1234\";\n }\n console.log(\"Form validate issue\", errors);\n return errors;\n};\n\nexport const getUserInputFromFormValues = (\n formUser: IFormUser,\n unitDetails: UnitDetails\n): UserInput => {\n const { firstName = \"\", lastName = \"\", email = \"\", phone = \"\" } = formUser;\n const addressInput: AddressInput = omit(unitDetails.address, \"__typename\");\n const userInput: UserInput = {\n firstName: getFormattedName(firstName),\n lastName: getFormattedName(lastName),\n contactDetails: {\n phone,\n email,\n },\n\n community: unitDetails.community,\n address: addressInput,\n };\n return userInput;\n};\n\nexport const getTaskInputFromFormValues = (\n formTask: IFormTask,\n community: Community,\n units: Unit[]\n): NewTaskInput => {\n const {\n title = \"\",\n description = \"\",\n forUnits: unitNames = [],\n assignedTo = null,\n createdBy = \"\",\n labels = [],\n } = formTask;\n\n const newTaskInput: NewTaskInput = {\n title,\n description,\n forUnits: isEmpty(unitNames)\n ? []\n : getUnitIdsForUnitNames(unitNames, units),\n labels,\n createdBy,\n assignedTo: null,\n community: community.id,\n isActive: true,\n };\n return newTaskInput;\n};\n\nexport const getUnitInputFromFormValues = (\n formUnit: IFormUnit,\n community: Community\n): UnitInput => {\n const {\n name = \"\",\n addressLine1 = \"\",\n addressLine2 = \"\",\n zipCode = \"\",\n city = \"\",\n state = \"\",\n } = formUnit;\n const addressInput: AddressInput = {\n addressLine1,\n addressLine2,\n city,\n zipCode,\n state,\n };\n const unitInput: UnitInput = {\n name: getFormattedName(name),\n community: community.id,\n address: addressInput,\n };\n return unitInput;\n};\nexport const isUnitNameAlreadyExists = (\n existingUnitNames: string[],\n formUnit: IFormUnit\n): boolean =>\n some(\n existingUnitNames,\n (existingUnitName) =>\n existingUnitName === formUnit.name?.toLocaleLowerCase()\n );\n","import { Form, FormInput, FormField, FormButton, FormDropdown, Button, Flex, FlexItem } from \"@fluentui/react-northstar\";\nimport { FormikErrors, FormikTouched } from \"formik\";\nimport { isEmpty } from \"lodash\";\nimport React from \"react\";\nimport { allStates, isValidEmail, isValidZipCode } from \"../app-helper\";\nimport { IFormUnit } from \"./modals-helper\";\n\ninterface INewUnitFormProps {\n handleSubmit: (e?: React.FormEvent) => void;\n touched: FormikTouched;\n errors: FormikErrors;\n handleBlur: {\n (e: React.FocusEvent): void;\n (fieldOrEvent: T): T extends string ? (e: any) => void : void;\n };\n handleChange: {\n (e: React.ChangeEvent): void;\n >(\n field: T\n ): T extends React.ChangeEvent\n ? void\n : (e: string | React.ChangeEvent) => void;\n };\n\n setTouched: (touched: FormikTouched) => void;\n setFieldValue: (\n field: keyof IFormUnit,\n value: any,\n shouldValidate?: boolean | undefined\n ) => void;\n\n values: IFormUnit;\n cancelDialog: () => void;\n}\n\nexport const NewUnitForm = ({\n handleSubmit,\n handleChange,\n errors,\n handleBlur,\n touched,\n values,\n cancelDialog,\n setTouched,\n setFieldValue,\n}: INewUnitFormProps) => {\n return (\n
\n = 3)}\n name=\"name\"\n id=\"name\"\n required\n fluid\n />\n = 3\n )}\n name=\"addressLine1\"\n id=\"addressLine1\"\n required\n fluid\n />\n\n = 3\n )}\n name=\"addressLine2\"\n id=\"addressLine2\"\n required\n fluid\n />\n\n = 3)}\n name=\"city\"\n id=\"city\"\n required\n fluid\n />\n\n {\n setTouched({ ...touched, state: true });\n }}\n onChange={(e, props) => {\n setFieldValue(\"state\", props.value);\n }}\n label=\"State *\"\n id=\"state\"\n fluid\n errorMessage={touched.state && errors.state}\n items={allStates}\n />\n\n \n\n \n \n \n \n cancelDialog(),\n }}\n />\n \n \n );\n};\n","import React from \"react\";\nimport { Formik } from \"formik\";\n\nimport {\n useCreateUnitMutation,\n Community,\n Unit,\n} from \"../data/__generated__/client-graphql-types\";\nimport { CloseIcon, Dialog, Loader } from \"@fluentui/react-northstar\";\nimport { units as unitsQuery } from \"../data/queries\";\nimport {\n getUnitInputFromFormValues,\n IFormUnit,\n unitFormValidation,\n} from \"./modals-helper\";\nimport { useApolloClient } from \"@apollo/client\";\nimport { NewUnitForm } from \"./NewUnitForm\";\nimport { useUserContext } from \"../UserContext\";\nimport { getUnits } from \"../app-helper\";\n\ninterface ICreateNewUnitDialogProps {\n open: boolean;\n onClose: () => void;\n communityId: string;\n}\nexport const CreateNewUnitDialog = ({\n open,\n onClose,\n communityId,\n}: ICreateNewUnitDialogProps) => {\n console.log(\"DEBUG CommunityId\", communityId);\n const [isOpen, setIsOpen] = React.useState(open);\n const onCancel = React.useCallback(() => {\n setIsOpen(false);\n onClose();\n }, [setIsOpen]);\n const onConfirm = React.useCallback(async () => {\n setIsOpen(false);\n onClose();\n }, [setIsOpen]);\n const dialogContent = useDialogContent(onConfirm, onCancel);\n return (\n ,\n title: \"Close\",\n onClick: () => onCancel(),\n }}\n />\n );\n};\n\nconst intialFormErrors: IFormUnit = {\n name: \"\",\n addressLine1: \"\",\n addressLine2: \"\",\n zipCode: \"\",\n city: \"\",\n state: \"\",\n};\n\nconst intialFormValues: IFormUnit = {\n name: \"\",\n addressLine1: \"\",\n addressLine2: \"\",\n zipCode: \"\",\n city: \"\",\n state: \"\",\n};\n\nconst useUnitFormValidation = (unit: Array) => {\n // convert to lowercase\n const existingUnitNames = unit.map((unit) => unit.name.toLowerCase());\n return React.useCallback(\n (formUnit: IFormUnit) => unitFormValidation(formUnit, existingUnitNames),\n [existingUnitNames]\n );\n};\nconst useDialogContent = (\n confirmDialog: () => void,\n cancelDialog: () => void\n) => {\n const [createUnit, { loading: mutationLoading }] = useCreateUnitMutation();\n const client = useApolloClient();\n const { currentCommunityId, currentCommunity } = useUserContext();\n const units: Array = getUnits(client, currentCommunityId);\n\n const formValidation = useUnitFormValidation(units);\n\n //TODO: avoid forecasting\n //TODO: address error case for mutation error\n return mutationLoading ? (\n \n ) : (\n \n initialValues={intialFormValues}\n initialErrors={intialFormErrors}\n validate={formValidation}\n onSubmit={(values, { setSubmitting }) => {\n // TODO: use loading and error\n createUnit({\n variables: {\n input: getUnitInputFromFormValues(\n values,\n currentCommunity as Community\n ),\n },\n refetchQueries: [\n {\n query: unitsQuery,\n variables: {\n communityId: currentCommunityId ?? \"\",\n },\n },\n ],\n }).then(() => {\n console.log(JSON.stringify(values, null, 2));\n setSubmitting(false);\n confirmDialog();\n });\n }}\n render={({\n handleSubmit,\n handleChange,\n errors,\n handleBlur,\n touched,\n values,\n isSubmitting,\n setTouched,\n setFieldValue,\n }) => {\n return isSubmitting ? (\n \n ) : (\n \n );\n }}\n />\n );\n};\n\n\n\n\n","import { Header, Flex, ToDoListIcon } from \"@fluentui/react-northstar\";\nimport React from \"react\";\nconst PAGE_PADDING = \"20px\";\n\nexport const PageBanner = ({\n title,\n icon,\n}: {\n title?: string;\n icon?: React.ReactNode;\n}) => {\n return title ? (\n \n {icon && icon}\n \n {/* */}\n \n ) : null;\n};\n","import { isNil } from \"lodash\";\nimport React from \"react\";\nimport { Menu } from \"@fluentui/react-northstar\";\n\nexport interface ITabsProps {\n tabTitles: string[];\n onTabSwitch: (tabIndex: number) => void;\n defaultActiveIndex?: number;\n underlined?: boolean;\n pointing: boolean;\n}\n\nexport const Tabs = React.memo(\n ({\n tabTitles,\n onTabSwitch,\n defaultActiveIndex,\n underlined,\n pointing,\n }: ITabsProps) => {\n const [activeIndex, setActiveIndex] = React.useState(\n isNil(defaultActiveIndex) ? 0 : defaultActiveIndex\n );\n\n if (isNil(underlined)) {\n underlined = true;\n }\n\n const items = tabTitles.map((title, index) => ({\n key: title,\n content: title,\n onClick: () => {\n setActiveIndex(index);\n onTabSwitch(index);\n console.log(\"asdasdasdas\");\n },\n }));\n\n return (\n \n );\n }\n);\n","import React from \"react\";\nimport {\n CurrentCommunityQuery,\n OccupancyType,\n Unit,\n User,\n useUnitsQuery,\n useUsersQuery,\n} from \"../data/__generated__/client-graphql-types\";\nimport { RouteComponentProps, navigate } from \"@reach/router\";\nimport { camelCase, Dictionary, keyBy, startCase, countBy, filter, includes, debounce, some } from \"lodash\";\nimport { Column, Row, useTable } from \"react-table\";\nimport {\n Box,\n Button,\n Flex,\n FlexItem,\n FlexItemProps,\n Header,\n Label,\n MenuButton,\n MoreIcon,\n Table,\n TenantPersonalIcon,\n Text,\n CardHeader,\n CardBody, Card,\n Accordion,\n Loader,\n Input,\n Divider,\n SearchIcon\n} from \"@fluentui/react-northstar\";\nimport { ResidentNavButton } from \"./ResidentNavButton\";\nimport { CreateNewUnitDialog } from \"../modals/CreateNewUnitDialog\";\nimport { useUserContext } from \"../UserContext\";\nimport { PageBanner } from \"./PageBanner\";\nimport { Tabs } from \"./Tabs\";\nimport { users } from \"../data/queries\";\nimport { ImportsNotUsedAsValues } from \"typescript\";\nimport { getFormattedName } from \"../app-helper\";\n\ntype OwnerUnit = {\n owners?: User[];\n} & Omit;\n\nconst useCreateNewUnitDialog = () => {\n const [\n showCreateNewUnitDialog,\n setShowCreateNewUnitDialog,\n ] = React.useState(false);\n\n const launchCreateNewUnitDialog = React.useCallback(() => {\n setShowCreateNewUnitDialog(true);\n }, [setShowCreateNewUnitDialog]);\n\n const onCreateNewUnitDialogClose = React.useCallback(() => {\n setShowCreateNewUnitDialog(false);\n }, [setShowCreateNewUnitDialog]);\n return {\n launchCreateNewUnitDialog,\n onCreateNewUnitDialogClose,\n showCreateNewUnitDialog,\n };\n};\nconst ALL_UNITS = 0;\nconst OWNER_TYPE = 1;\nconst TENANT_TYPE = 2;\nconst UNOCCUPIED_TYPE = 3;\n\nconst UnitsTableContainer = (_: RouteComponentProps) => {\n let data: CurrentCommunityQuery | null;\n const { currentCommunityId: communityId = \"\" } = useUserContext();\n const {\n data: unitsData,\n loading: unitsLoading,\n error: unitsError,\n } = useUnitsQuery({\n variables: {\n communityId,\n },\n });\n const {\n data: usersData,\n loading: usersLoading,\n error: usersError,\n } = useUsersQuery({\n variables: {\n communityId,\n },\n });\n\n const {\n launchCreateNewUnitDialog,\n onCreateNewUnitDialogClose,\n showCreateNewUnitDialog,\n } = useCreateNewUnitDialog();\n const units = unitsData?.communityUnits as Unit[];\n const users = usersData?.communityUsers as User[];\n const { OWNER, TENANT, NONE } = countBy(units, \"occupancyType\");\n return (\n <>\n }\n />\n\n { unitsLoading || usersLoading ? : (\n \n \n \n \n \n \n \n \n \n \n {communityId ? (\n \n ) : null}\n \n \n )}\n {showCreateNewUnitDialog && (\n \n )}\n \n );\n};\n\nconst FluentReactUnitsTable = ({\n columns,\n ownerUnits,\n}: {\n columns: Column[]; // TODO: try to avoid this!!\n ownerUnits: OwnerUnit[];\n}) => {\n const [searchQuery, setSearchQuery] = React.useState(\"\");\n const [displayUnits, setDisplayUnits] = React.useState(ownerUnits);\n const onInputChange = React.useCallback(\n (_ev: React.ChangeEvent, newValue: any) => {\n setSearchQuery(newValue.value);\n if (!newValue.value || newValue.value.trim().length === 0) {\n setDisplayUnits(ownerUnits);\n } else {\n const trimmedLowerCasedValue = newValue.value.toLowerCase().trim();\n const filteredDisplayUnits = filter(ownerUnits, unit => isUnitNameMatched(unit, trimmedLowerCasedValue) ||\n isOwnersNameMatched(unit, trimmedLowerCasedValue)\n || isUnitOccupancyMatched(unit, trimmedLowerCasedValue));\n setDisplayUnits(filteredDisplayUnits);\n }\n }\n , [searchQuery, setSearchQuery, setDisplayUnits, ownerUnits]\n );\n React.useEffect(() => {\n if (!searchQuery || searchQuery.trim().length === 0) {\n setDisplayUnits(ownerUnits);\n } else {\n const trimmedLowerCasedValue = searchQuery.toLowerCase().trim();\n const filteredDisplayUnits = filter(ownerUnits, unit => isUnitNameMatched(unit, trimmedLowerCasedValue) ||\n isOwnersNameMatched(unit, trimmedLowerCasedValue)\n || isUnitOccupancyMatched(unit, trimmedLowerCasedValue));\n setDisplayUnits(filteredDisplayUnits);\n }\n }, [ownerUnits]);\n\n // Use the state and functions returned from useTable to build your UI\n const {\n getTableProps,\n getTableBodyProps,\n headerGroups,\n rows,\n prepareRow,\n } = useTable({\n columns: columns,\n data: displayUnits,\n });\n\n const getRowCells = (row: Row) => {\n return row.cells.map((cell, index) => {\n let content = cell.render(\"Cell\");\n return {\n key: index,\n content,\n };\n });\n };\n const headers = {\n items: headerGroups[0].headers.map((column) => (\n
{column.render(\"Header\")}
\n )),\n };\n\n // TODO: optimize\n const tableRows = rows.map((row, i) => {\n prepareRow(row);\n\n return {\n key: i,\n items: getRowCells(row),\n };\n });\n\n // Render the UI for your table\n return <>\n
\n \n \n } clearable placeholder=\"Search...\" style={{ paddingRight: 10 }} value={searchQuery}\n onChange={onInputChange as any} />\n \n \n \n ;\n};\nconst tabsTitles: string[] = [\"All\", \"Owner Occupied\", \"Rental\", \"Unoccupied\"];\n\nexport const UnitsTableRenderer = ({\n units,\n users,\n}: {\n units: Unit[];\n users: User[];\n}) => {\n //TODO: scope to optimize. Write to cache instead of always computing this userIds map\n const userIdsMap = keyBy(users, \"id\");\n const [activeTabIndex, setActiveTabIndex] = React.useState(0);\n const onTabSwitch = React.useCallback((tabIndex: number) => {\n setActiveTabIndex(tabIndex);\n }, []);\n const ownerUnits: OwnerUnit[] = units?.map((unit) => ({\n ...unit,\n owners: getOwnersByUnit(unit, userIdsMap),\n }));\n\n const columns = React.useMemo(\n (): Column[] => [\n {\n Header: \"Unit\",\n accessor: \"name\",\n Cell: ({ cell }) => (\n {\n //TODO: optimiize\n event.stopPropagation();\n await navigate(`/units/${cell.row.original.id}`);\n }}\n >\n {startCase(camelCase(cell.value))}{\" \"}\n \n ),\n },\n {\n Header: \"Occupancy\",\n accessor: \"occupancyType\",\n Cell: ({ cell: { value: occupancyType } }) => (\n
;\n};\n\nexport const ResidentsTable = ResidentsTableContainer;\n\nfunction isAnyRoleMatched(user: User, searchText: string): boolean {\n return some(user.roles, role => role && role.toLowerCase().trim().includes(searchText));\n}\n\nfunction isAnyUnitMatched(user: User, searchText: string): boolean {\n //TODO(vaboda): BUG IMPORTANT \n return some(user.unitsOwned, unit => unit && unit.name.toLowerCase().trim().includes(searchText));\n}\n\n","import { useApolloClient } from \"@apollo/client\";\nimport { Link, RouteComponentProps } from \"@reach/router\";\nimport React from \"react\";\nimport {\n Community,\n useCommunitiesQuery,\n} from \"../data/__generated__/client-graphql-types\";\nimport * as queries from \"../data/queries\";\nimport { useUserContext } from \"../UserContext\";\n\n// cache.writeQuery({\n// data: {\n// isLoggedIn: !!localStorage.getItem('token')\n// },\n// });\nconst CommunitiesContainer = (props: RouteComponentProps) => {\n const client = useApolloClient();\n const { data, loading, error } = useCommunitiesQuery();\n const userContext = useUserContext();\n\n const onSelect = (selectedCommunity: Community) => {\n client.writeQuery({\n query: queries.currentCommunity,\n data: { currentCommunity: selectedCommunity },\n });\n userContext.currentCommunityId = selectedCommunity.id;\n };\n\n // return a table of links to Community page\n // upon click write to cache the community id\n return (\n <>\n \n Select a community\n \n \n
    \n {data &&\n data.communities &&\n data.communities.map((community, index) => {\n return (\n
  1. \n onSelect(community as Community)}\n style={{}}\n >\n {community?.name}\n \n
    \n
  2. \n );\n })}{\" \"}\n
\n \n \n );\n};\n\nexport const Communities = CommunitiesContainer;\n","import { ButtonStyles } from \"./fluentui/buttonStyles\";\nimport { FlexStyles } from \"./fluentui/flexStyles\";\nimport { TextStyles } from \"./fluentui/textStyles\";\nimport { BoxStyles } from \"./fluentui/boxStyles\";\nimport { TableCellStyles } from \"./fluentui/tableCellStyles\";\n\nconst themeOverrides = {\n componentStyles: {\n Button: ButtonStyles,\n Flex: FlexStyles,\n Text: TextStyles,\n Box: BoxStyles,\n TableCell: TableCellStyles,\n },\n};\n\nexport default themeOverrides;\n","import {\n ComponentSlotStylesPrepared,\n TeamsThemeStylesProps,\n} from \"@fluentui/react-northstar\";\n\nexport const ButtonStyles: ComponentSlotStylesPrepared<\n NonNullable,\n any\n> = {\n root: ({\n props: {},\n variables: {\n isFullRowCell,\n isTaskTitleInTaskPreview,\n },\n theme: {\n siteVariables: { colors, borderWidth },\n },\n }) => ({\n ...(isTaskTitleInTaskPreview && {\n selectors: {\n \":hover\": {\n cursor: \"pointer\",\n },\n },\n }),\n ...(isFullRowCell && {\n width: \"100%\",\n minWidth: \"100%\",\n }),\n }),\n};\n","import {\n ComponentSlotStylesPrepared,\n TeamsThemeStylesProps,\n} from \"@fluentui/react-northstar\";\n\nexport const FlexStyles: ComponentSlotStylesPrepared<\n NonNullable,\n any\n> = {\n root: ({\n props: {},\n variables: { isEntityDetailsField, isTaskPreviewCardRenderer },\n theme: {\n siteVariables: { colors, borderWidth },\n },\n }) => ({\n ...(isEntityDetailsField && {\n margin: 10,\n // \":active\": {\n // color: \"black !important\",\n // },\n // \":hover\": {\n // color: \"black !important\",\n // },\n }),\n\n ...(isTaskPreviewCardRenderer && {\n flexShrink: 1,\n overflow: \"hidden\",\n whiteSpace: \"nowrap\",\n }),\n }),\n};\n","import {\n ComponentSlotStylesPrepared,\n TeamsThemeStylesProps,\n} from \"@fluentui/react-northstar\";\n\nconst focusActiveStyles = {\n // background: FOCUS_BACKGROUND_COLOR,\n // color: HOVER_COLOR,\n // boxShadow: \"none\",\n // selectors: {\n // \".icons-default-fill\": {\n // fill: HOVER_COLOR\n // },\n // \".ms-Persona-primaryText\": {\n // color: HOVER_COLOR\n // },\n // \".ms-Persona-secondaryText\": {\n // color: HOVER_COLOR\n // },\n // \".ms-Button-label\": {\n // color: HOVER_COLOR\n // }\n};\nexport const TextStyles: ComponentSlotStylesPrepared<\n NonNullable,\n any\n> = {\n root: ({\n props: {},\n variables: { isTaskTitleInTaskPreview, isUnitName },\n theme: {\n siteVariables: { colors, borderWidth },\n },\n }) => ({\n ...(isTaskTitleInTaskPreview && {\n padding: 8,\n textDecoration: \"none\",\n\n selectors: {\n \":hover\": {\n textDecoration: \"underline\",\n },\n },\n }),\n }),\n};\n","import {\n ComponentSlotStylesPrepared,\n TeamsThemeStylesProps,\n} from \"@fluentui/react-northstar\";\n\nexport const BoxStyles: ComponentSlotStylesPrepared<\n NonNullable,\n any\n> = {\n root: ({\n props: {},\n variables: { isFullRowCell },\n theme: {\n siteVariables: { colors, borderWidth },\n },\n }) => ({\n ...(isFullRowCell && {\n width: \"100%\",\n minWidth: \"100%\",\n }),\n }),\n};\n","import {\n ComponentSlotStylesPrepared,\n ICSSInJSStyle,\n TeamsThemeStylesProps,\n} from \"@fluentui/react-northstar\";\n\nexport const TableCellStyles: ComponentSlotStylesPrepared<\n NonNullable,\n any\n> = {\n root: ({\n props: {},\n variables: { isFullRowCell },\n theme: {\n siteVariables: { colors, borderWidth },\n },\n }) => {\n return {\n ...(isFullRowCell && {\n width: \"100%\",\n }),\n };\n },\n content: ({ variables: { isFullRowCell } }: ICSSInJSStyle) => {\n return {\n ...(isFullRowCell && {\n width: \"100%\",\n }),\n };\n },\n};\n","import { mergeThemes, Provider, teamsTheme } from \"@fluentui/react-northstar\";\n// @ts-ignore\nimport * as React from \"react\";\nimport themeOverrides from \"./theme\";\n\nexport const FluentUIStyleProvider: React.FunctionComponent = (props) => {\n const { children } = props;\n\n return (\n \n {/* TODO: Load it in more React way */}\n \n {children}\n \n );\n};\n","import { RouteComponentProps } from \"@reach/router\";\nimport React from \"react\";\n\nexport const Residents = (\n props: RouteComponentProps & {\n children: {};\n }\n) => <>{props.children};\n","import React from \"react\";\n\nexport interface IEmailNumberProps {\n address: string;\n isLinked: boolean;\n className?: string;\n}\nexport const Email = (props: IEmailNumberProps) => {\n let { address, isLinked, className } = props;\n\n if (!address) return null;\n\n if (isLinked) {\n return React.createElement(\n \"a\",\n { href: \"mailto:\" + address, className: className },\n address\n );\n } else {\n return React.createElement(\"span\", { className: className }, address);\n }\n};\n","import React from \"react\";\n\nexport interface IPhoneNumberProps {\n number: string;\n isLinked: boolean;\n className?: string;\n}\nexport const PhoneNumber = (props: IPhoneNumberProps) => {\n let { number, isLinked, className } = props;\n\n if (!number) return null;\n\n number = number\n .toString()\n .replace(/[^0-9\\+]+/g, \"\")\n .replace(/\\s+/, \"\");\n\n var formatted_number = number;\n\n if (number.length == 8) {\n formatted_number = number.replace(\n /([0-9]{2})([0-9]{3})([0-9]{3})/,\n \"$1 $2 $3\"\n );\n } else if (number.length == 10) {\n formatted_number = number.replace(\n /([0-9]{3})([0-9]{3})([0-9]{4})/,\n \"$1 $2 $3\"\n );\n } else if (number.indexOf(\"+\") == 0) {\n formatted_number = number.replace(\n /([0-9]{2})([0-9]{3})([0-9]{3})([0-9]{3})/,\n \"$1 $2 $3 $4\"\n );\n }\n\n if (isLinked) {\n return React.createElement(\n \"a\",\n { href: \"tel:\" + number, className: className },\n formatted_number\n );\n } else {\n return React.createElement(\n \"span\",\n { className: className },\n formatted_number\n );\n }\n};\n","import {\n Alert,\n Button,\n EditIcon, EmailIcon,\n Flex,\n Label,\n Loader, SpotlightIcon,\n Table,\n Text,\n UserPhoneIcon\n} from \"@fluentui/react-northstar\";\nimport { navigate, RouteComponentProps } from \"@reach/router\";\nimport { camelCase, startCase } from \"lodash\";\nimport React from \"react\";\nimport { getFormattedAddress, getFormattedName } from \"../app-helper\";\nimport userDetailsQuery from \"../data/queries/userDetails.query\";\nimport usersQuery from \"../data/queries/users.query\";\nimport {\n UnitBasicDetails, UserDetails,\n useUpdateUserMutation, useUserDetailsQuery\n} from \"../data/__generated__/client-graphql-types\";\nimport { Email } from \"./Email\";\nimport { PageBanner } from \"./PageBanner\";\nimport { PhoneNumber } from \"./PhoneNumber\";\nimport { Tabs } from \"./Tabs\";\n\n\ninterface IUserRendererProps {\n userDetails: UserDetails;\n}\ninterface IResidentProps extends RouteComponentProps {\n userId?: string;\n}\n\nconst ResidentContainer = (props: IResidentProps) => {\n const { userId = \"\" } = props;\n const { data, loading, error } = useUserDetailsQuery({\n variables: {\n userId,\n },\n });\n\n if (loading) {\n return ;\n }\n\n if (!loading && error) {\n console.error(\n `Unable to find the resident details for the user id: ${userId}`,\n error\n );\n return {\"Unable to find the resident\"};\n }\n\n return ;\n};\n\nconst UserRenderer = ({ userDetails }: IUserRendererProps) => {\n const tabsTitles: string[] = [\"Profile\", \"Tasks\"];\n const [activeTabIndex, setActiveTabIndex] = React.useState(0);\n const onTabSwitch = React.useCallback((tabIndex: number) => {\n setActiveTabIndex(tabIndex);\n }, []);\n return (\n <>\n }\n />\n\n \n {activeTabIndex === 0 ? (\n \n ) : (\n \n )}\n \n );\n};\n\nconst ResidentProfileDetails = ({ details }: { details: UserDetails }) => {\n const [updateUserMutation] = useUpdateUserMutation();\n const onEdit = React.useCallback(async (field, oldValue) => {\n\n if (field === \"email\" && details.loginEnabled) {\n const isConfirm = window.confirm(\"Updating email may break user's login. Would like to continue?\");\n if (!isConfirm) {\n return;\n }\n }\n\n const newValue = window.prompt(`Pleas Enter the ${field}`, oldValue);\n if (!newValue) {\n return;\n }\n\n if (newValue === oldValue) {\n return;\n }\n let input: any = {\n id: details.id,\n [field]: newValue\n };\n\n if (field === \"phone\") {\n input = {\n id: details.id,\n contactDetails: {\n phone: newValue,\n email: details.contactDetails.email\n }\n }\n }\n else if (field === \"email\") {\n input = {\n id: details.id,\n contactDetails: {\n phone: details.contactDetails.phone,\n email: newValue\n }\n }\n }\n await updateUserMutation({\n variables: {\n input\n },\n refetchQueries: [\n {\n query: usersQuery,\n variables: {\n communityId: details.community,\n },\n },\n {\n query: userDetailsQuery,\n variables: {\n userId: details.id,\n },\n },\n ],\n });\n\n\n if (field === \"email\" && details.loginEnabled) {\n window.alert(`Please make to notify: ${getFormattedName(details.firstName, details.lastName)} that login id has changed to ${details.contactDetails.email}?`)\n }\n }, [details, updateUserMutation]);\n return (\n \n
\n \n \n \n onEdit(\"firstName\", details.firstName)} />} />\n \n \n \n \n onEdit(\"lastName\", details.lastName)} />} />\n \n \n \n \n \n \n \n }\n />\n onEdit(\"phone\", details.contactDetails.phone)} />} />\n\n \n \n \n \n \n \n \n }\n />\n onEdit(\"email\", details.contactDetails.email)} />} />\n\n \n \n \n \n \n \n {details.roles && (\n \n \n getFormattedName(role))\n )}\n />\n \n \n )}\n \n \n \n {getUnitButtons(details.unitsOwned as UnitBasicDetails[])}\n \n }\n />\n \n\n \n
\n \n );\n};\n\nconst getUnitButtons = (units: UnitBasicDetails[]) =>\n units.map((unit) => (\n {\n //TODO: optimiize\n event.stopPropagation();\n await navigate(`/units/${unit.id}`);\n }}\n >\n {startCase(camelCase(unit.name ?? \"\"))}\n \n ));\n\nexport const getRoleTags = (roles: string[]) => (\n \n {roles.map((role) =>\n role.toLowerCase() !== \"none\" ? \n);\n\nconst header = {\n items: [\"Title\", \"Status\"],\n};\nconst rowsPlain = [\n {\n key: 1,\n items: [\"Roof Leak Fix\", \"Closed\"],\n },\n {\n key: 2,\n items: [\"Bug Treatment\", \"Open\"],\n },\n];\n\n//TODO: hook real tasks\nconst ResidentTask = ({ details }: { details: UserDetails }) => (\n \n \n \n \n);\nexport const Resident = ResidentContainer;\n","import { RouteComponentProps } from \"@reach/router\";\nimport React from \"react\";\nimport { usePageBannerContext } from \"../PageBannerContext\";\n\nexport const Units = (\n props: RouteComponentProps & {\n children: {};\n }\n) => {\n return <>{props.children};\n};\n","import { Form, FormInput, FormButton, FormField, Button, Flex, FlexItem } from \"@fluentui/react-northstar\";\nimport { FormikTouched, FormikErrors } from \"formik\";\nimport { isEmpty } from \"lodash\";\nimport React from \"react\";\nimport { isValidEmail } from \"../app-helper\";\nimport { IFormUser } from \"./modals-helper\";\n\ninterface INewResidentFormProps {\n handleSubmit: (e?: React.FormEvent) => void;\n touched: FormikTouched;\n errors: FormikErrors;\n handleBlur: {\n (e: React.FocusEvent): void;\n (fieldOrEvent: T): T extends string ? (e: any) => void : void;\n };\n handleChange: {\n (e: React.ChangeEvent): void;\n >(\n field: T\n ): T extends React.ChangeEvent\n ? void\n : (e: string | React.ChangeEvent) => void;\n };\n values: IFormUser;\n cancelDialog: () => void;\n}\n\nexport const NewResidentForm = ({\n handleSubmit,\n handleChange,\n errors,\n handleBlur,\n touched,\n values,\n cancelDialog,\n}: INewResidentFormProps) => {\n return (\n
\n = 3\n )}\n name=\"firstName\"\n id=\"firstName\"\n required\n fluid\n />\n = 3\n )}\n name=\"lastName\"\n id=\"lastName\"\n required\n fluid\n />\n\n = 4)}\n name=\"phone\"\n id=\"phone\"\n required\n placeholder=\"(888) 888-8888\"\n fluid\n />\n\n \n\n \n \n \n \n cancelDialog(),\n }}\n />\n \n \n );\n};\n","import React from \"react\";\nimport { Formik } from \"formik\";\n\nimport {\n UnitDetails,\n useAddNewUnitOwnerMutation,\n useUnitDetailsQuery,\n} from \"../data/__generated__/client-graphql-types\";\nimport { CloseIcon, Dialog, Loader } from \"@fluentui/react-northstar\";\nimport { units as unitsQuery, users as usersQuery } from \"../data/queries\";\nimport {\n getUserInputFromFormValues,\n IFormUser,\n residentFormValidation,\n} from \"./modals-helper\";\nimport { NewResidentForm } from \"./NewResidentForm\";\n\ninterface ICreateNewOwnerDialogProps {\n open: boolean;\n onClose: () => void;\n unitId: string;\n communityId: string;\n}\nexport const CreateNewOwnerDialog = ({\n open,\n onClose,\n unitId,\n communityId,\n}: ICreateNewOwnerDialogProps) => {\n console.log(\"DEBUG CommunityId\", communityId);\n const [isOpen, setIsOpen] = React.useState(open);\n const onCancel = React.useCallback(() => {\n setIsOpen(false);\n onClose();\n }, [setIsOpen]);\n const onConfirm = React.useCallback(async () => {\n setIsOpen(false);\n onClose();\n }, [setIsOpen]);\n const dialogContent = useDialogContent(unitId, onConfirm, onCancel);\n return (\n ,\n title: \"Close\",\n onClick: () => onCancel(),\n }}\n />\n );\n};\n\nconst intialFormErrors: IFormUser = {\n firstName: \"\",\n lastName: \"\",\n phone: \"\",\n email: \"\",\n};\n\nconst intialFormValues: IFormUser = {\n firstName: \"\",\n lastName: \"\",\n phone: \"\",\n email: \"\",\n};\n\nconst useDialogContent = (\n unitId: string,\n confirmDialog: () => void,\n cancelDialog: () => void\n) => {\n const [addOwner, { loading: mutationLoading }] = useAddNewUnitOwnerMutation();\n const { data, loading } = useUnitDetailsQuery({\n variables: {\n unitId,\n },\n });\n\n const unitDetails = data?.unitDetails as UnitDetails;\n //TODO: address error case for both query and mutation error\n return loading || mutationLoading ? (\n \n ) : (\n {\n // TODO: use loading and error\n addOwner({\n variables: {\n unitId,\n input: getUserInputFromFormValues(values, unitDetails),\n },\n refetchQueries: [\n {\n query: unitsQuery,\n variables: {\n communityId: unitDetails.community,\n },\n },\n {\n query: usersQuery,\n variables: {\n communityId: unitDetails.community,\n },\n },\n ],\n }).then(() => {\n console.log(JSON.stringify(values, null, 2));\n setSubmitting(false);\n //TODO: add user mutation\n // update owner mutation\n confirmDialog();\n });\n }}\n render={({\n handleSubmit,\n handleChange,\n errors,\n handleBlur,\n touched,\n values,\n isSubmitting,\n }) => {\n return isSubmitting ? (\n \n ) : (\n \n );\n }}\n />\n );\n};\n","import React from \"react\";\nimport { Formik } from \"formik\";\n\nimport {\n UnitDetails,\n useAddNewUnitTenantMutation,\n useUnitDetailsQuery,\n} from \"../data/__generated__/client-graphql-types\";\nimport { CloseIcon, Dialog, Loader } from \"@fluentui/react-northstar\";\nimport { units as unitsQuery, users as usersQuery } from \"../data/queries\";\nimport {\n getUserInputFromFormValues,\n IFormUser,\n residentFormValidation,\n} from \"./modals-helper\";\nimport { NewResidentForm } from \"./NewResidentForm\";\n\ninterface ICreateNewTenantDialogProps {\n open: boolean;\n onClose: () => void;\n unitId: string;\n communityId: string;\n}\n\nconst initialFormValues: IFormUser = {\n firstName: \"\",\n lastName: \"\",\n phone: \"\",\n email: \"\",\n};\n\nconst initialFormErrors: IFormUser = {\n firstName: \"\",\n lastName: \"\",\n phone: \"\",\n email: \"\",\n};\n\nexport const CreateNewTenantDialog = ({\n open,\n onClose,\n unitId,\n communityId,\n}: ICreateNewTenantDialogProps) => {\n console.log(\"DEBUG CommunityId\", communityId);\n const [isOpen, setIsOpen] = React.useState(open);\n const onCancel = React.useCallback(() => {\n setIsOpen(false);\n onClose();\n }, [setIsOpen]);\n const onConfirm = React.useCallback(async () => {\n setIsOpen(false);\n onClose();\n }, [setIsOpen]);\n const dialogContent = useDialogContent(unitId, onConfirm, onCancel);\n return (\n ,\n title: \"Close\",\n onClick: () => onCancel(),\n }}\n />\n );\n};\n\nconst useDialogContent = (\n unitId: string,\n confirmDialog: () => void,\n cancelDialog: () => void\n) => {\n const [\n createNewTenant,\n { loading: mutationLoading },\n ] = useAddNewUnitTenantMutation();\n const { data, loading } = useUnitDetailsQuery({\n variables: {\n unitId,\n },\n });\n\n const unitDetails = data?.unitDetails as UnitDetails;\n //TODO: address error case for both query and mutation error\n return loading || mutationLoading ? (\n \n ) : (\n {\n // TODO: use loading and error\n createNewTenant({\n variables: {\n unitId,\n input: getUserInputFromFormValues(values, unitDetails),\n },\n refetchQueries: [\n {\n query: unitsQuery,\n variables: {\n communityId: unitDetails.community,\n },\n },\n {\n query: usersQuery,\n variables: {\n communityId: unitDetails.community,\n },\n },\n ],\n }).then(() => {\n console.log(\"DEBUG: done adding tenant\");\n console.log(JSON.stringify(values, null, 2));\n setSubmitting(false);\n //TODO: add user mutation\n // update tenant mutation\n confirmDialog();\n });\n }}\n render={({\n handleSubmit,\n handleChange,\n errors,\n handleBlur,\n touched,\n values,\n isSubmitting,\n }) => {\n return isSubmitting ? (\n \n ) : (\n \n );\n }}\n />\n );\n};\n","import React from \"react\";\nimport { useRemoveAllTenantsMutation } from \"../data/__generated__/client-graphql-types\";\nimport { CloseIcon, Dialog } from \"@fluentui/react-northstar\";\nimport { units as unitsQuery, users as usersQuery } from \"../data/queries\";\n\ninterface IRemoveAllTenantsConfirmDialogProps {\n open: boolean;\n onClose: () => void;\n unitId: string;\n communityId: string;\n}\n\nexport const RemoveAllTenantsConfirmDialog = ({\n open,\n onClose,\n unitId,\n communityId,\n}: IRemoveAllTenantsConfirmDialogProps) => {\n const [isOpen, setIsOpen] = React.useState(open);\n const [removeAllTenants] = useRemoveAllTenantsMutation();\n const onCancel = React.useCallback(() => {\n setIsOpen(false);\n onClose();\n }, [setIsOpen]);\n const onConfirm = React.useCallback(async () => {\n // TODO: use loading and error\n // disable users who don't occupy any units or tenants anymore\n await removeAllTenants({\n variables: {\n unitId,\n },\n refetchQueries: [\n {\n query: unitsQuery,\n variables: {\n communityId,\n },\n },\n {\n query: usersQuery,\n variables: {\n communityId,\n },\n },\n ],\n });\n setIsOpen(false);\n onClose();\n }, [setIsOpen, removeAllTenants]);\n return (\n \n );\n};\n","import { Box, Button, Flex, Text } from \"@fluentui/react-northstar\";\nimport React from \"react\";\nimport { UsePaginationInstanceProps } from \"react-table\";\nimport { User } from \"../data/__generated__/client-graphql-types\";\n\nconst defaultPageSizes = [10, 20, 30, 40, 50];\nexport const TablePaginationRenderer = ({\n canPreviousPage,\n canNextPage,\n pageOptions,\n pageCount,\n gotoPage,\n nextPage,\n previousPage,\n setPageSize,\n pageIndex,\n pageSize,\n pageSizeOptions,\n}: UsePaginationInstanceProps & {\n pageIndex: number;\n pageSize: number;\n pageSizeOptions?: number[];\n}) => {\n return (\n \n \n \n {\" \"}\n {\" \"}\n gotoPage(pageCount - 1)}\n disabled={!canNextPage}\n >\n {\">>\"}\n {\" \"}\n \n \n \n {/* \n // TODO: Should we support entering page number\n \n | Go to page:{\" \"}\n {\n const page = e.target.value ? Number(e.target.value) - 1 : 0;\n gotoPage(page);\n }}\n style={{ width: \"100px\" }}\n />\n {\" \"} */}\n {\n setPageSize(Number(e.target.value));\n }}\n >\n {(pageSizeOptions ?? defaultPageSizes).map((pageSize) => (\n \n ))}\n \n \n \n );\n};\n","import { Maybe } from \"graphql/jsutils/Maybe\";\nimport {\n camelCase,\n filter,\n includes,\n isEmpty,\n orderBy,\n some,\n startCase,\n} from \"lodash\";\nimport React from \"react\";\nimport { Row, Column, usePagination, useTable } from \"react-table\";\n\nimport {\n Box,\n Flex,\n Header,\n Label,\n Loader,\n Table,\n} from \"@fluentui/react-northstar\";\n\nimport { getFormattedName } from \"../app-helper\";\nimport {\n Unit,\n User,\n useUnitsQuery,\n useUsersQuery,\n} from \"../data/__generated__/client-graphql-types\";\nimport { TablePaginationRenderer } from \"../components/TablePaginationRenderer\";\nimport { Tabs } from \"../components/Tabs\";\nimport { useUserContext } from \"../UserContext\";\n\nconst tableHooks = [usePagination];\nconst pageSizeOptions = [5, 10, 25];\nexport const SelectableUsersContainer = ({\n onUserSelect,\n noShowUsersList,\n activeTabIndex,\n onTabSwitch,\n}: {\n onUserSelect: (selectedOwnerRow: User) => void;\n noShowUsersList: User[];\n activeTabIndex: number;\n onTabSwitch: (tabIndex: number) => void;\n}) => {\n const { currentCommunityId: communityId = \"\" } = useUserContext();\n const { data: units, loading: unitsLoading } = useUnitsQuery({\n variables: {\n communityId,\n },\n });\n const { data: users, loading: usersLoading } = useUsersQuery({\n variables: {\n communityId,\n },\n });\n\n return usersLoading || unitsLoading ? (\n \n ) : communityId ? (\n \n ) : null;\n};\n\nconst SelectableUsersListRenderer = ({\n units,\n users,\n noShowUsersList,\n onSelect,\n activeTabIndex,\n onTabSwitch,\n}: {\n units: Unit[];\n users: User[];\n noShowUsersList: User[];\n onSelect: (selectedOwnerRow: User) => void;\n activeTabIndex: number;\n onTabSwitch: (tabIndex: number) => void;\n}) => {\n const allUsersTableData = React.useMemo(() => {\n return {\n columns: [\n {\n Header: \"Name\",\n id: \"name\",\n accessor: (user: User) =>\n getFormattedName(user?.firstName, user?.lastName),\n },\n ],\n users: filter(\n users,\n ({ id: userId }) => !some(noShowUsersList, ({ id }) => userId === id)\n ),\n };\n }, []);\n\n const ownersTableData = React.useMemo(() => {\n return {\n columns: [\n {\n Header: \"Name\",\n id: \"name\",\n accessor: (user: User) =>\n getFormattedName(user?.firstName, user?.lastName),\n },\n {\n Header: \"Units Owners\",\n id: \"units\",\n accessor: (user: User) => {\n const units: Maybe[] = [];\n //units.push(...user.unitsOwned);\n return units;\n },\n Cell: ({ cell: { value } }: any) => (\n \n {value?.map((unit: Unit) => (\n \n ),\n },\n ],\n users: filter(\n users,\n ({ roles, id: userId }) =>\n includes(roles, \"OWNER\") &&\n !some(noShowUsersList, ({ id }) => userId === id)\n ),\n };\n }, []);\n\n let { columns, users: selectableUsers } =\n activeTabIndex === 0 ? allUsersTableData : ownersTableData;\n\n if (!units) return null;\n return isEmpty(users) ? (\n \n ) : (\n \n \n \n \n );\n};\n\nconst FluentReactSelectableUsersList = ({\n columns,\n users,\n onSelect,\n}: {\n columns: Column[]; // TODO: try to avoid this!!\n users: User[];\n onSelect: (selectedOwnerRow: User) => void;\n}) => {\n const tableOptions = React.useMemo(\n () => ({\n columns: columns,\n data: orderBy(users, \"firstName\"),\n initialState: { pageIndex: 0, pageSize: pageSizeOptions[0] },\n }),\n [columns]\n );\n const tableInstance = useTable(tableOptions, ...tableHooks);\n\n const {\n headerGroups,\n prepareRow,\n page,\n canPreviousPage,\n canNextPage,\n pageOptions,\n pageCount,\n gotoPage,\n nextPage,\n previousPage,\n setPageSize,\n state: { pageIndex, pageSize },\n } = tableInstance;\n const getRowCells = (\n row: Row,\n onCellClick: (selectedOwnerRow: User) => void\n ) => {\n return row.cells.map((cell, index) => {\n let content = cell.render(\"Cell\");\n return {\n key: index,\n content,\n onClick: () => onCellClick(row.original),\n };\n });\n };\n const headers = {\n items: headerGroups[0].headers.map((column) => (\n
{column.render(\"Header\")}
\n )),\n };\n\n const tableRows = page.map((row, i) => {\n prepareRow(row);\n return {\n key: i,\n items: getRowCells(row, onSelect),\n };\n });\n\n // Render the UI for your table\n return (\n \n
\n \n {...{\n page,\n canPreviousPage,\n canNextPage,\n pageOptions,\n pageCount,\n gotoPage,\n nextPage,\n previousPage,\n setPageSize,\n pageIndex,\n pageSize,\n pageSizeOptions,\n }}\n />\n \n );\n};\n\n// ts-ignore\nFluentReactSelectableUsersList.whyDidYouRender = true;\n","import React from \"react\";\n\nimport {\n useUpdateOwnersMutation,\n User,\n useUnitDetailsQuery,\n UnitDetails,\n} from \"../data/__generated__/client-graphql-types\";\nimport { CloseIcon, Dialog, Loader } from \"@fluentui/react-northstar\";\nimport { units as unitsQuery, users as usersQuery } from \"../data/queries\";\nimport { SelectableUsersContainer } from \"./SelectableUsersRenderer\";\nimport { map } from \"lodash\";\n\ninterface IUpdateExistingUnitOwnerDialogProps {\n open: boolean;\n onClose: () => void;\n unitId: string;\n communityId: string;\n}\nexport const UpdateExistingUnitOwnerDialog = ({\n open,\n onClose,\n unitId,\n communityId,\n}: IUpdateExistingUnitOwnerDialogProps) => {\n const [isOpen, setIsOpen] = React.useState(open);\n const onCancel = React.useCallback(() => {\n setIsOpen(false);\n onClose();\n }, [setIsOpen]);\n const [updateOwnersMutation] = useUpdateOwnersMutation();\n const { data, loading } = useUnitDetailsQuery({\n variables: {\n unitId,\n },\n });\n\n const unitDetails = data?.unitDetails as UnitDetails;\n const onOwnerSelect = React.useCallback(\n async (selectedOwnerRow: User) => {\n const owners = map(unitDetails.owners, \"id\");\n // TODO: use loading and error\n // disable users who don't occupy any units or tenants anymore\n await updateOwnersMutation({\n variables: {\n unitId,\n newOwnerIds: [...owners, selectedOwnerRow.id],\n },\n refetchQueries: [\n {\n query: unitsQuery,\n variables: {\n communityId,\n },\n },\n {\n query: usersQuery,\n variables: {\n communityId,\n },\n },\n ],\n });\n setIsOpen(false);\n onClose();\n },\n [setIsOpen]\n );\n // making owners tabs as default\n const [activeTabIndex, setActiveTabIndex] = React.useState(1);\n const onTabSwitch = React.useCallback((tabIndex: number) => {\n setActiveTabIndex(tabIndex);\n }, []);\n const dialogContent = useDialogContent(\n onOwnerSelect,\n unitDetails,\n activeTabIndex,\n onTabSwitch\n );\n const header =\n activeTabIndex === 0\n ? \"Update Ownership from Existing Residents\"\n : \"Update Ownership from Existing Owners\";\n return loading ? (\n \n ) : (\n ,\n title: \"Close\",\n onClick: () => onCancel(),\n }}\n />\n );\n};\n\nconst useDialogContent = (\n confirmDialog: (selectedOwnerRow: User) => void,\n unitDetails: UnitDetails,\n activeTabIndex: number,\n onTabSwitch: (tabIndex: number) => void\n) =>\n React.useMemo(() => {\n const doNotShowUserList = map(unitDetails.owners as User[]).concat(\n map(unitDetails.tenants as User[])\n );\n return (\n \n );\n }, [confirmDialog, unitDetails, activeTabIndex, onTabSwitch]);\n","import {\n Button,\n Card,\n CloseIcon,\n Divider,\n EmailIcon,\n Flex,\n Tooltip,\n UserPhoneIcon,\n} from \"@fluentui/react-northstar\";\nimport React from \"react\";\n\nimport {\n Maybe,\n UserBasicDetails,\n} from \"../data/__generated__/client-graphql-types\";\nimport { Email } from \"./Email\";\nimport { PhoneNumber } from \"./PhoneNumber\";\nimport { ResidentNavButton } from \"./ResidentNavButton\";\n\ninterface IContactDetailsProps {\n title?: string;\n users?: UserBasicDetails[];\n removeButtonTootTipText: string;\n onRemove: (userId?: string) => void;\n}\n\nexport const UserDetailsPreviewCardRenderer = ({\n title,\n users,\n removeButtonTootTipText,\n onRemove,\n}: IContactDetailsProps) => {\n return (\n <>\n \n \n \n {/* {title && } */}\n {title && (\n \n )}\n \n \n \n \n {users?.map((user, index) => (\n <>\n \n \n \n \n \n \n \n \n \n \n \n {index + 1 !== users?.length && (\n \n )}\n \n ))}\n \n \n \n \n );\n};\n\nexport const UserNameWithCloseButton = ({\n user,\n tooltipText,\n onCloseButtonClick,\n}: {\n user: Maybe;\n tooltipText: string;\n onCloseButtonClick: (userId?: string) => void;\n}): JSX.Element => {\n return (\n }\n iconPosition=\"after\"\n color=\"white\"\n icon={\n }\n text\n iconOnly\n title=\"Close\"\n onClick={() => onCloseButtonClick(user?.id)}\n />\n }\n content={tooltipText}\n />\n }\n />\n );\n};\n","import { useApolloClient } from \"@apollo/client\";\nimport {\n AddIcon,\n Box, Button, Divider,\n EditIcon,\n Flex,\n FlexItem, Header,\n Loader,\n MenuButton,\n MoreIcon,\n ParticipantAddIcon, TenantPersonalIcon, Text,\n TrashCanIcon\n} from \"@fluentui/react-northstar\";\nimport { RouteComponentProps } from \"@reach/router\";\nimport { isEmpty, map, size, some, without } from \"lodash\";\nimport React from \"react\";\nimport {\n getFormattedAddress,\n getFormattedName,\n isTenantOccupancy\n} from \"../app-helper\";\nimport { FlexItemStyleProp } from \"../app.interface\";\nimport { units as unitsQuery, users as usersQuery } from \"../data/queries\";\nimport {\n UnitDetails,\n UnitDetailsDocument, UnitDetailsQuery,\n UnitDetailsQueryVariables, useUnitDetailsQuery,\n useUnitsQuery,\n useUpdateOwnersMutation,\n useUpdateTenantsMutation,\n useUpdateUnitMutation\n} from \"../data/__generated__/client-graphql-types\";\nimport {\n CreateNewOwnerDialog, CreateNewTenantDialog,\n RemoveAllTenantsConfirmDialog,\n UpdateExistingUnitOwnerDialog\n} from \"../modals\";\nimport { useUserContext } from \"../UserContext\";\nimport { PageBanner } from \"./PageBanner\";\nimport { UserDetailsPreviewCardRenderer } from \"./UserDetailsPreviewCardRenderer\";\n\n\ninterface IUnitProps extends RouteComponentProps {\n unitId?: string;\n}\nconst UnitContainer = (props: IUnitProps) => {\n const { unitId = \"\" } = props;\n\n const { data, loading, error } = useUnitDetailsQuery({\n variables: {\n unitId,\n },\n });\n\n\n if (loading) {\n return ;\n }\n if (!loading && error) {\n console.error(\n `Unable to find the unit details for the unit id: ${unitId}`,\n error\n );\n return {\"Unable to find the unit\"};\n }\n\n return ;\n};\n\ninterface IUnitRendererProps {\n unitDetails: UnitDetails;\n}\n\nconst useRemoveAllTenantsDialog = () => {\n const [\n showRemoveAllTenantsDialog,\n setShowRemoveAllTenantsDialog,\n ] = React.useState(false);\n\n const launchRemoveAllTenantsDialog = React.useCallback(() => {\n setShowRemoveAllTenantsDialog(true);\n }, [setShowRemoveAllTenantsDialog]);\n\n const onRemoveAllTenantsDialogClose = React.useCallback(() => {\n setShowRemoveAllTenantsDialog(false);\n }, [setShowRemoveAllTenantsDialog]);\n return {\n launchRemoveAllTenantsDialog,\n onRemoveAllTenantsDialogClose,\n showRemoveAllTenantsDialog,\n };\n};\n\nconst useCreateNewOwnerDialog = () => {\n const [\n showCreateNewOwnerDialog,\n setShowCreateNewOwnerDialog,\n ] = React.useState(false);\n\n const launchCreateNewOwnerDialog = React.useCallback(() => {\n setShowCreateNewOwnerDialog(true);\n }, [setShowCreateNewOwnerDialog]);\n\n const onCreateNewOwnerDialogClose = React.useCallback(() => {\n setShowCreateNewOwnerDialog(false);\n }, [setShowCreateNewOwnerDialog]);\n return {\n launchCreateNewOwnerDialog,\n onCreateNewOwnerDialogClose,\n showCreateNewOwnerDialog,\n };\n};\n\nconst useUpdateExistingUnitOwnerDialog = () => {\n const [\n showUpdateExistingUnitOwnerDialog,\n setShowUpdateExistingUnitOwnerDialog,\n ] = React.useState(false);\n\n const launchUpdateExistingUnitOwnerDialog = React.useCallback(() => {\n setShowUpdateExistingUnitOwnerDialog(true);\n }, [setShowUpdateExistingUnitOwnerDialog]);\n\n const onUpdateExistingUnitOwnerDialogClose = React.useCallback(() => {\n setShowUpdateExistingUnitOwnerDialog(false);\n }, [setShowUpdateExistingUnitOwnerDialog]);\n return {\n launchUpdateExistingUnitOwnerDialog,\n onUpdateExistingUnitOwnerDialogClose,\n showUpdateExistingUnitOwnerDialog,\n };\n};\n\nconst useCreateNewTenantDialog = () => {\n const [\n showCreateNewTenantDialog,\n setShowCreateNewTenantDialog,\n ] = React.useState(false);\n\n const launchCreateNewTenantDialog = React.useCallback(() => {\n setShowCreateNewTenantDialog(true);\n }, [setShowCreateNewTenantDialog]);\n\n const onCreateNewTenantDialogClose = React.useCallback(() => {\n setShowCreateNewTenantDialog(false);\n }, [setShowCreateNewTenantDialog]);\n return {\n launchCreateNewTenantDialog,\n onCreateNewTenantDialogClose,\n showCreateNewTenantDialog,\n };\n};\n\nconst useOnUserRemoveCallback = (\n userType: \"owner\" | \"tenant\",\n unitId: string\n) => {\n const [updateOwnersMutation] = useUpdateOwnersMutation();\n const [updateTenantsMutation] = useUpdateTenantsMutation();\n const client = useApolloClient();\n let updateUnit =\n userType === \"owner\" ? updateOwnersMutation : updateTenantsMutation;\n\n return React.useCallback(\n async (userId?: string) => {\n const { data } = await client.query<\n UnitDetailsQuery,\n UnitDetailsQueryVariables\n >({\n query: UnitDetailsDocument,\n variables: {\n unitId,\n },\n });\n const unitDetails = data?.unitDetails;\n const communityId = unitDetails?.community;\n\n const userIds =\n userType === \"owner\"\n ? map(unitDetails?.owners, \"id\")\n : map(unitDetails?.tenants, \"id\");\n console.log(\n userType,\n unitDetails,\n size(unitDetails?.owners),\n size(unitDetails?.tenants)\n );\n //TODO: use FluentUI dialog confirmation\n const confirmationMessage =\n userType === \"owner\" &&\n size(unitDetails?.owners) === 1 &&\n size(unitDetails?.tenants) > 0\n ? \"Removing this owner would remove all the tenants as well. Would you like to proceed?\"\n : `Would you like to remove the ${userType}?`;\n\n const isConfirm = window.confirm(confirmationMessage);\n\n const variables =\n userType === \"owner\"\n ? {\n unitId,\n newOwnerIds: without(userIds, userId),\n }\n : {\n unitId,\n newTenantIds: without(userIds, userId),\n };\n // TODO: use loading and error\n // disable users who don't occupy any units or tenants anymore\n if (isConfirm) {\n await updateUnit({\n variables,\n refetchQueries: [\n {\n query: unitsQuery,\n variables: {\n communityId,\n },\n },\n {\n query: usersQuery,\n variables: {\n communityId,\n },\n },\n ],\n });\n }\n },\n [userType]\n );\n};\n\nconst UnitRenderer = ({ unitDetails }: IUnitRendererProps) => {\n const [updateUnitMutation] = useUpdateUnitMutation();\n const { currentCommunityId: communityId = \"\" } = useUserContext();\n\n const {\n data: units,\n loading: unitsLoading,\n error: unitsError,\n } = useUnitsQuery({\n variables: {\n communityId: communityId,\n },\n });\n\n const existingUnitNames = React.useMemo((): string[] => {\n return units?.communityUnits?.map(unit => unit?.name.toLowerCase() ?? \"\") ?? [];\n }, [units]);\n\n const onEdit = React.useCallback(async () => {\n const name = window.prompt(`Pleas Enter the unit name:`, unitDetails.name);\n if (!name) {\n return;\n }\n if (isUnitNameAlreadyExists(existingUnitNames ?? [], name)) {\n window.alert(`Unable to update. A unit with name ${name} already exists!`);\n return;\n }\n\n await updateUnitMutation({\n variables: {\n input: {\n id: unitDetails.id,\n name\n }\n },\n refetchQueries: [\n {\n query: unitsQuery,\n variables: {\n communityId: unitDetails.community,\n },\n },\n ],\n });\n }, [unitDetails, updateUnitMutation]);\n const {\n launchRemoveAllTenantsDialog,\n onRemoveAllTenantsDialogClose,\n showRemoveAllTenantsDialog,\n } = useRemoveAllTenantsDialog();\n\n const {\n launchUpdateExistingUnitOwnerDialog,\n onUpdateExistingUnitOwnerDialogClose,\n showUpdateExistingUnitOwnerDialog,\n } = useUpdateExistingUnitOwnerDialog();\n\n const {\n launchCreateNewOwnerDialog,\n onCreateNewOwnerDialogClose,\n showCreateNewOwnerDialog,\n } = useCreateNewOwnerDialog();\n\n const {\n launchCreateNewTenantDialog,\n onCreateNewTenantDialogClose,\n showCreateNewTenantDialog,\n } = useCreateNewTenantDialog();\n const { id } = unitDetails;\n const onOwnerRemove = useOnUserRemoveCallback(\"owner\", id);\n const onTenantRemove = useOnUserRemoveCallback(\"tenant\", id);\n\n return (\n <>\n }\n />\n \n \n }\n />\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n {isTenantOccupancy(unitDetails) && (\n \n \n \n \n \n \n )}\n \n \n \n {showCreateNewOwnerDialog && (\n //TODO: need\n \n )}\n {showUpdateExistingUnitOwnerDialog && (\n \n )}\n\n {showRemoveAllTenantsDialog && (\n \n )}\n {showCreateNewTenantDialog && (\n \n )}\n \n );\n};\n\ninterface IUnitMenuProps extends FlexItemStyleProp {\n launchCreateNewOwnerDialog: () => void;\n launchUpdateExistingUnitOwnerDialog: () => void;\n launchRemoveAllTenantsDialog: () => void;\n launchCreateNewTenantDialog: () => void;\n unitDetails: UnitDetails;\n}\n\nconst UnitMenu: React.FC = ({\n launchCreateNewOwnerDialog,\n launchUpdateExistingUnitOwnerDialog,\n launchRemoveAllTenantsDialog,\n launchCreateNewTenantDialog,\n unitDetails,\n ...rest\n}: IUnitMenuProps) => {\n const ownershipSubMenu = {\n key: \"0\",\n content: \"Ownership\",\n menu: [\n {\n key: \"0\",\n content: (\n }\n onClick={() => launchCreateNewOwnerDialog()}\n />\n ),\n },\n {\n key: \"1\",\n content: (\n }\n onClick={() => launchUpdateExistingUnitOwnerDialog()}\n />\n ),\n },\n ],\n };\n\n const tenanancySubMenu = {\n key: 1,\n content: \"Tenancy\",\n menu: [\n {\n key: \"1\",\n content: (\n }\n onClick={() => launchCreateNewTenantDialog()}\n />\n ),\n },\n {\n key: \"2\",\n content: (\n }\n onClick={() => launchRemoveAllTenantsDialog()}\n />\n ),\n },\n ],\n };\n const menu = isEmpty(unitDetails.owners)\n ? [ownershipSubMenu]\n : [ownershipSubMenu, tenanancySubMenu];\n return (\n } />}\n menu={menu}\n style={{ padding: 10 }}\n />\n );\n};\n\nexport const isUnitNameAlreadyExists = (\n existingUnitNames: string[],\n newUnitName: string): boolean =>\n some(\n existingUnitNames,\n (existingUnitName) =>\n existingUnitName === newUnitName.toLocaleLowerCase()\n );\n\nexport const Unit = UnitContainer;\n","import { useApolloClient } from \"@apollo/client\";\nimport { Form, Button, FormInput, FormButton, FormField, FormDropdown, Flex, FlexItem } from \"@fluentui/react-northstar\";\nimport { FormikErrors, FormikTouched } from \"formik\";\nimport { isEmpty } from \"lodash\";\nimport React from \"react\";\nimport {\n allTaskLabels,\n getUnits,\n} from \"../app-helper\";\nimport { useUserContext } from \"../UserContext\";\nimport { IFormTask } from \"./modals-helper\";\n\ninterface INewTaskFormProps {\n handleSubmit: (e?: React.FormEvent) => void;\n touched: FormikTouched;\n errors: FormikErrors;\n handleBlur: {\n (e: React.FocusEvent): void;\n (fieldOrEvent: T): T extends string ? (e: any) => void : void;\n };\n handleChange: {\n (e: React.ChangeEvent): void;\n >(\n field: T\n ): T extends React.ChangeEvent\n ? void\n : (e: string | React.ChangeEvent) => void;\n };\n\n setTouched: (touched: FormikTouched) => void;\n setFieldValue: (\n field: keyof IFormTask,\n value: any,\n shouldValidate?: boolean | undefined\n ) => void;\n\n values: IFormTask;\n cancelDialog: () => void;\n}\n\nexport const NewTaskForm = ({\n handleSubmit,\n handleChange,\n errors,\n handleBlur,\n touched,\n values,\n cancelDialog,\n setTouched,\n setFieldValue,\n}: INewTaskFormProps) => {\n const client = useApolloClient();\n const { currentCommunityId } = useUserContext();\n const unitNames = React.useMemo(() => {\n return getUnits(client, currentCommunityId).map((unit) => unit.name);\n }, []);\n return (\n
\n = 5\n )}\n name=\"title\"\n id=\"title\"\n required\n fluid\n />\n\n {\n setTouched({ ...touched, labels: true });\n }}\n onChange={(e, props) => {\n setFieldValue(\"forUnits\", props.value);\n }}\n label=\"For Units\"\n id=\"forUnits\"\n fluid\n errorMessage={touched.forUnits && errors.forUnits}\n items={unitNames}\n />\n = 1\n )}\n name=\"description\"\n id=\"description\"\n fluid\n />\n\n {\n setTouched({ ...touched, labels: true });\n }}\n onChange={(e, props) => {\n setFieldValue(\"labels\", props.value);\n }}\n label=\"Labels\"\n id=\"labels\"\n fluid\n errorMessage={touched.labels && errors.labels}\n items={allTaskLabels}\n />\n\n \n \n \n \n cancelDialog(),\n }}\n />\n \n \n );\n};\n","import React from \"react\";\nimport { Formik } from \"formik\";\n\nimport {\n useCreateTaskMutation,\n Community,\n Unit,\n} from \"../data/__generated__/client-graphql-types\";\nimport { CloseIcon, Dialog, Loader } from \"@fluentui/react-northstar\";\nimport {\n getTaskInputFromFormValues,\n IFormTask,\n taskFormValidation,\n} from \"./modals-helper\";\nimport { useApolloClient } from \"@apollo/client\";\nimport { NewTaskForm } from \"./NewTaskForm\";\nimport { useUserContext } from \"../UserContext\";\nimport { getUnits } from \"../app-helper\";\nimport { tasks as tasksQuery } from \"../data/queries\";\nimport { navigate } from \"@reach/router\";\n\ninterface ICreateNewTaskDialogProps {\n open: boolean;\n onClose: () => void;\n communityId: string;\n}\nexport const CreateNewTaskDialog = ({\n open,\n onClose,\n communityId,\n}: ICreateNewTaskDialogProps) => {\n console.log(\"DEBUG CommunityId\", communityId);\n const [isOpen, setIsOpen] = React.useState(open);\n const onCancel = React.useCallback(() => {\n setIsOpen(false);\n onClose();\n }, [setIsOpen]);\n const onConfirm = React.useCallback(async () => {\n setIsOpen(false);\n onClose();\n }, [setIsOpen]);\n const dialogContent = useDialogContent(onConfirm, onCancel);\n return (\n ,\n title: \"Close\",\n onClick: () => onCancel(),\n }}\n />\n );\n};\n\nconst intialFormErrors: IFormTask = {\n title: \"\",\n description: \"\",\n forUnits: [],\n assignedTo: \"\",\n createdBy: \"\",\n labels: [],\n};\n\nconst intialFormValues: IFormTask = {\n title: \"\",\n description: \"\",\n forUnits: [],\n assignedTo: \"\",\n createdBy: \"\",\n labels: [],\n};\n\nconst useTaskFormValidation = () => {\n // convert to lowercase\n return React.useCallback(\n (formTask: IFormTask) => taskFormValidation(formTask),\n []\n );\n};\nconst useDialogContent = (\n confirmDialog: () => void,\n cancelDialog: () => void\n) => {\n const [createTask, { loading: mutationLoading }] = useCreateTaskMutation();\n const client = useApolloClient();\n const {\n currentCommunityId,\n currentCommunity,\n currentUser,\n } = useUserContext();\n const currentUserId = currentUser?.id;\n const units: Array = getUnits(client, currentCommunityId);\n\n const formValidation = useTaskFormValidation();\n\n //TODO: avoid forecasting\n //TODO: address error case for mutation error\n return mutationLoading ? (\n \n ) : (\n \n initialValues={intialFormValues}\n initialErrors={intialFormErrors as any}\n validate={formValidation}\n onSubmit={(values, { setSubmitting }) => {\n values.createdBy = currentUserId;\n // TODO: use loading and error\n createTask({\n variables: {\n input: getTaskInputFromFormValues(\n values,\n currentCommunity as Community,\n units\n ),\n },\n refetchQueries: [\n {\n query: tasksQuery,\n variables: {\n communityId: currentCommunityId ?? \"\",\n },\n },\n ],\n }).then(async ({ data }: any) => {\n const {\n createTask: { communityTaskId },\n } = data;\n await navigate(\"/tasks/\" + communityTaskId);\n setSubmitting(false);\n confirmDialog();\n });\n }}\n render={({\n handleSubmit,\n handleChange,\n errors,\n handleBlur,\n touched,\n values,\n isSubmitting,\n setTouched,\n setFieldValue,\n }) => {\n return isSubmitting ? (\n \n ) : (\n \n );\n }}\n />\n );\n};\n","import { Flex, Header, Image, Button } from \"@fluentui/react-northstar\";\nimport React from \"react\";\n\nimport SomethingWentWrongImage from \"./images/illustration-something-went-wrong.svg\";\nexport interface IApplicationErrorProps {\n retryHandler?: () => void;\n errorMessage?: string;\n}\nexport const ApplicationError: React.FunctionComponent = React.memo(\n ({ retryHandler, errorMessage }) => {\n const imageProps = {\n src: SomethingWentWrongImage,\n id: \"illustration\",\n };\n return (\n \n \n \n {retryHandler && (\n
\n {tableRows.map((row) => {\n return (\n \n \n \n );\n })}\n
\n \n {...{\n page,\n canPreviousPage,\n canNextPage,\n pageOptions,\n pageCount,\n gotoPage,\n nextPage,\n previousPage,\n setPageSize,\n pageIndex,\n pageSize,\n pageSizeOptions,\n }}\n />\n
\n );\n};\n\nconst TasksRenderer = ({\n tasks,\n activeTabIndex,\n setActiveTabIndex,\n units,\n users,\n}: {\n tasks: Task[];\n activeTabIndex: number;\n setActiveTabIndex: React.Dispatch>;\n units: Unit[];\n users: User[];\n}) => {\n return (\n \n \n \n \n );\n};\n\nconst filterByStatus = (tasks: Task[], status: \"open\" | \"closed\") => {\n return filter(tasks, (task) => task.status === status);\n};\n","import { Dictionary } from \"lodash\";\nimport { Task, User } from \"../data/__generated__/client-graphql-types\";\nimport { Text } from \"@fluentui/react-northstar\";\nimport React from \"react\";\nexport const TaskAttachmentsContainer = ({\n task,\n usersDirectory,\n}: {\n task: Task;\n usersDirectory: Dictionary;\n}) => {\n return ;\n};\n","import { Dictionary } from \"lodash\";\nimport { Task, User } from \"../data/__generated__/client-graphql-types\";\nimport { Text } from \"@fluentui/react-northstar\";\nimport React from \"react\";\nexport const TaskExpensesContainer = ({\n task,\n usersDirectory,\n}: {\n task: Task;\n usersDirectory: Dictionary;\n}) => {\n return ;\n};\n","import {\n AcceptIcon,\n Avatar,\n Box,\n Button,\n Card,\n CardBody,\n CardHeader,\n Divider,\n EditIcon,\n FilesUploadIcon,\n Flex,\n FlexItemProps,\n Header,\n Label,\n Loader,\n MenuButton,\n MoreIcon,\n NotesIcon,\n SurveyIcon,\n TagIcon,\n TenantPersonalIcon,\n Text,\n TextArea,\n Tooltip,\n WorkOrSchoolIcon,\n} from \"@fluentui/react-northstar\";\nimport { navigate, RouteComponentProps } from \"@reach/router\";\nimport { Dictionary, isEmpty, keyBy, startCase } from \"lodash\";\nimport React from \"react\";\nimport { getFormattedDate, getFormattedName, getUnitNamesForUnitIds } from \"../app-helper\";\nimport {\n Task,\n TaskComment,\n Unit,\n useAddTaskCommentMutation,\n User,\n useTaskCommentsQuery,\n useTaskDetailsByCommunityTaskIdQuery,\n useUnitsQuery,\n useUpdateTaskMutation,\n useUsersQuery,\n} from \"../data/__generated__/client-graphql-types\";\nimport { useUserContext } from \"../UserContext\";\nimport { ApplicationError } from \"./ApplicationError\";\nimport { PageBanner } from \"./PageBanner\";\nimport { taskComments as taskCommentsQuery } from \"../data/queries\";\n\nimport { TaskActivityDetails } from \"./TaskActivityDetails\";\nimport { OpenStatusIcon, ClosedStatusIcon } from \"./TaskPreviewCardRenderer\";\nimport tasksQuery from \"../data/queries/tasks.query\";\nimport { Tabs } from \"./Tabs\";\nimport { TaskAttachmentsContainer } from \"./TaskAttachmentsContainer\";\nimport { TaskExpensesContainer } from \"./TaskExpensesContainer\";\nimport { TaskLabels } from \"./TaskLabels\";\n\nconst variables = { isUnitName: true };\n\ntype FlexItemStyleProp = Pick;\ninterface ITaskMenuProps extends FlexItemStyleProp {\n task: Task;\n user: User;\n}\ninterface ITaskDetailsProps extends RouteComponentProps {\n communityTaskId?: string;\n}\n\nconst TaskDetailsContainer = (props: ITaskDetailsProps) => {\n const { communityTaskId = \"\" } = props;\n const { currentCommunityId } = useUserContext();\n const {\n data: taskDetailsData,\n loading: taskDetailsLoading,\n error: taskDetailsError,\n } = useTaskDetailsByCommunityTaskIdQuery({\n variables: {\n communityTaskId: parseInt(communityTaskId), //TODO: error handling for invalid non-Integr Id\n communityId: currentCommunityId ?? \"\",\n },\n });\n const {\n data: usersData,\n loading: usersLoading,\n error: usersError,\n } = useUsersQuery({\n variables: {\n communityId: currentCommunityId ?? \"\",\n },\n });\n const loading = taskDetailsLoading || usersLoading;\n const error = !!taskDetailsError || !!usersError;\n\n return loading ? (\n \n ) : !!error ? (\n \n ) : (\n \n );\n};\n\nconst CloseTaskIcon = React.memo(() => {\n return (\n \n }\n />\n );\n});\n\nconst ReopenTaskIcon = React.memo(() => {\n return (\n \n }\n />\n );\n});\n\nconst TaskDetailsRenderer = ({\n task,\n usersDirectory,\n}: {\n task: Task;\n usersDirectory: Dictionary;\n}) => {\n const user = !!task.closedBy\n ? usersDirectory[task.closedBy]\n : usersDirectory[task.createdBy];\n\n const tabsTitles: string[] = [\"Conversation\", \"Attachments\", \"Expenses\"];\n const [activeTabIndex, setActiveTabIndex] = React.useState(0);\n const onTabSwitch = React.useCallback((tabIndex: number) => {\n setActiveTabIndex(tabIndex);\n }, []);\n return (\n <>\n }\n />\n \n \n {activeTabIndex === 0 ? (\n \n ) : activeTabIndex === 1 ? (\n \n ) : (\n \n )}\n \n );\n};\n\nconst TaskHeader = ({ task, user }: { task: Task; user: User }) => {\n const BlankSpace =   ;\n const { currentUser, currentCommunityId = \"\" } = useUserContext();\n const [updateTaskMutation] = useUpdateTaskMutation();\n const {\n data,\n loading: unitsLoading,\n error: unitsError,\n } = useUnitsQuery({\n variables: {\n communityId: currentCommunityId,\n },\n });\n const units = data?.communityUnits as Unit[];\n const unitNames =\n task && !isEmpty(task.forUnits)\n ? getUnitNamesForUnitIds(task?.forUnits as string[], units)\n : [];\n const onTitleEdit = React.useCallback(async () => {\n const title = window.prompt(`Pleas Enter the title`, task.title);\n if (!title) {\n return;\n }\n\n await updateTaskMutation({\n variables: {\n input: {\n id: task.id,\n title\n }\n },\n refetchQueries: [\n {\n query: tasksQuery,\n variables: {\n communityId: currentCommunityId,\n },\n },\n ],\n });\n }, [task.title, updateTaskMutation]);\n return (\n \n \n }\n />\n {BlankSpace}\n \n \n \n \n \n \n \n ) : (\n \n )\n }\n circular\n iconPosition=\"start\"\n style={{ padding: 10, color: \"white\", height: 15 }}\n />\n \n \n\n \n \n {unitNames &&\n unitNames.map((unitName) => (\n \n }\n variables={variables}\n icon={}\n iconPosition=\"start\"\n style={{\n padding: 6,\n }}\n />\n }\n size=\"smallest\"\n onClick={async () =>\n await navigate(\"/units/\" + task.forUnits?.[0])\n }\n text\n style={{\n cursor: \"pointer\",\n paddingBottom: 10,\n paddingRight: 6,\n }}\n />\n ))}\n \n }\n />\n \n \n \n );\n};\n\nconst TaskMenu: React.FC = ({\n task,\n user,\n ...rest\n}: ITaskMenuProps) => {\n const [\n updateTask,\n { loading: updateMutationLoading },\n ] = useUpdateTaskMutation();\n const { currentCommunityId: communityId = \"\" } = useUserContext();\n\n const onTaskClose = React.useCallback(\n (task: Task) => {\n const {\n __typename,\n createdBy,\n communityTaskId,\n community,\n ...rest\n } = task;\n updateTask({\n variables: {\n input: {\n id: task.id,\n closedBy: user?.id,\n status: \"closed\",\n closedAt: new Date().toUTCString(),\n },\n },\n refetchQueries: [\n {\n query: tasksQuery,\n variables: {\n communityId,\n },\n },\n ],\n });\n },\n [updateTask, communityId]\n );\n\n const onTaskReopen = React.useCallback(\n (task: Task) => {\n const isConfirm = window.confirm(\"Would you like to reopen the task?\");\n\n // TODO: use loading and error\n // disable users who don't occupy any units or tenants anymore\n if (!isConfirm) {\n return;\n }\n const {\n __typename,\n createdBy,\n communityTaskId,\n community,\n ...rest\n } = task;\n updateTask({\n variables: {\n input: {\n id: task.id,\n closedBy: null,\n status: \"open\",\n closedAt: null,\n },\n },\n refetchQueries: [\n {\n query: tasksQuery,\n variables: {\n communityId,\n },\n },\n ],\n });\n },\n [updateTask, communityId]\n );\n\n const taskStatusActionItem =\n task.status === \"open\"\n ? {\n key: \"0\",\n content: (\n \n }\n onClick={() => onTaskClose(task)}\n />\n ),\n }\n : {\n key: \"0\",\n content: (\n \n }\n onClick={() => onTaskReopen(task)}\n />\n ),\n };\n return (\n } title=\"Task Menu\" />}\n style={{ padding: 10 }}\n menu={[\n taskStatusActionItem,\n {\n key: \"1\",\n content: (\n }\n // onClick={() => launchCreateNewUnitDialog()}\n />\n ),\n },\n {\n key: \"1\",\n content: (\n }\n // onClick={() => launchCreateNewUnitDialog()}\n />\n ),\n },\n ]}\n />\n );\n};\nconst TaskCommentsContainer = ({\n task,\n usersDirectory,\n}: {\n task: Task;\n usersDirectory: Dictionary;\n}) => {\n const { data, loading, error } = useTaskCommentsQuery({\n variables: {\n taskId: task.id,\n },\n });\n const taskComments = data?.taskComments as TaskComment[];\n\n return loading ? (\n \n ) : !!error ? (\n \n ) : (\n <>\n \n \n \n \n );\n};\n\nconst PostNewComment = ({ taskId }: { taskId: string }) => {\n const [\n addTaskComment,\n { loading: updateMutationLoading },\n ] = useAddTaskCommentMutation();\n\n const [\n actionButtonVisibility,\n setActionButtonVisibility,\n ] = React.useState(false);\n\n const [\n actionButtonGroupVisibility,\n setActionButtonGroupVisibility,\n ] = React.useState(false);\n\n const [taskComment, setTaskComment] = React.useState(\"\");\n const { currentUser } = useUserContext();\n const currentUserId = currentUser?.id ?? \"\";\n\n const onPostTaskComment = React.useCallback(async () => {\n await addTaskComment({\n variables: {\n input: {\n commentedBy: currentUserId, //TODO: IMP use login user id\n comment: taskComment,\n taskId,\n },\n },\n refetchQueries: [\n {\n query: taskCommentsQuery,\n variables: {\n taskId,\n },\n },\n ],\n });\n\n setTaskComment(\"\");\n setActionButtonVisibility(false);\n }, [taskComment, taskId]);\n\n const onReset = React.useCallback(() => {\n setTaskComment(\"\");\n setActionButtonVisibility(false);\n }, []);\n\n const onInputChange = React.useCallback(\n (e: React.SyntheticEvent) => {\n const input = e.target as HTMLInputElement;\n setTaskComment(input.value);\n if (!actionButtonGroupVisibility) {\n setActionButtonGroupVisibility(true);\n }\n if (isEmpty(input.value)) {\n setActionButtonVisibility(false);\n } else {\n setActionButtonVisibility(true);\n }\n },\n [setTaskComment]\n );\n\n return (\n <>\n \n \n \n \n {actionButtonGroupVisibility && (\n \n )}\n \n \n \n );\n};\n\nconst TaskCommentRenderer = ({\n taskComment,\n user,\n index,\n}: {\n taskComment: TaskComment;\n user?: User;\n index: number;\n}) => {\n const { currentUser } = useUserContext();\n const name = getFormattedName(user?.firstName, user?.lastName);\n const bgColor = index % 2 !== 0 ? \"white\" : \"#8a8db614\";\n return (\n \n {currentUser?.id === taskComment.commentedBy && (\n \n {/* \n ),\n },\n {\n Header: \"Email\",\n id: \"email\",\n Cell: ({ cell }) => (\n \n \n \n \n ),\n },\n {\n Header: \"Units\",\n id: \"units\",\n accessor: (user: User, rowIndex) => {\n const units: Maybe[] = [];\n const { roles, unitsOwned } = user;\n if (includes(roles, \"OWNER\")) {\n //units.push(...user.unitsOwned);\n }\n return units;\n },\n Cell: ({ cell: { value } }: any) => (\n \n {value?.map((unit: Unit) => (\n \n ))}\n \n ),\n },\n {\n Header: \"Login Account Status\",\n Cell: ({ cell }: any) => {\n const loginDetails = usersLoginDetailsDirectoryByUserId[cell.row.original.id];\n const status = getLoginAccountStatus(cell.row.original, loginDetails);\n return loginDetails?.setup?.notes ? } content={loginDetails.setup.notes} /> :