{"version":3,"sources":["core/enums/index.ts","core/helpers/index.ts","core/api/_utils/axios-config.ts","core/api/_utils/api.ts","core/context/user/index.ts","core/helpers/app-routes.ts","core/api/index.ts","core/api/user/index.ts","core/api/community-feed.api.ts","core/api/reporting.api.ts","core/helpers/validators.ts","core/helpers/file-size.helper.ts","core/helpers/storage-helper.ts","core/index.ts","core/api/shared/common.api.ts","core/context/consumer/objectDetails/index.ts","core/helpers/format-currency.ts","core/api/consumer/collector.api.ts","core/api/consumer/collector-collection.api.ts","core/context/admin/taxonomy/index.ts","core/context/admin/collector-profile/index.tsx","core/context/global/index.ts","core/context/consumer/collection/index.ts","core/api/consumer/collector-share.api.ts","core/context/admin/expert-profile/index.tsx","core/helpers/artifact-value.helper.ts","core/context/searchResults/index.ts","core/context/feedback-requests/listing/index.ts","core/context/feedback-requests/feedback/index.tsx","core/helpers/reg-exp.ts","core/helpers/upload-files-helper.ts","core/context/user/user.reducer.ts","core/context/consumer/objectDetails/object-details.reducer.ts","core/context/searchResults/search-results.reducer.ts","core/api/object.api.ts","core/context/feedback-requests/listing/feedback-requests-listing.reducer.ts","core/context/admin/taxonomy/taxonomy.reducer.ts","core/context/admin/collector-listing/collector-listing.reducer.ts","core/context/admin/expert-listing/expert-listing.reducer.ts","core/context/admin/archivist-listing/archivist-listing.reducer.ts","core/context/admin/curator-listing/curator-listing.reducer.ts","core/context/admin/collector-profile/collector-profile.reducer.ts","core/context/feedback-requests/feedback/feedback.reducer.ts","core/context/global/global.reducer.ts","core/context/admin/archivist-profile/archivist-profile.reducer.ts","core/context/admin/curator-profile/curator-profile.reducer.ts","core/context/admin/expert-profile/expert-profile.reducer.ts","core/context/consumer/sharedWithMe/shared-with-me.reducer.ts","core/context/consumer/sharedObject/shared-object.reducer.ts","core/context/consumer/collection/collection.reducer.ts","core/context/admin/collector-listing/index.ts","core/context/admin/expert-listing/index.ts","core/context/admin/archivist-listing/index.tsx","core/context/admin/curator-listing/index.ts","core/context/admin/archivist-profile/index.tsx","core/context/admin/curator-profile/index.tsx","core/context/consumer/sharedWithMe/index.tsx","core/context/consumer/sharedObject/index.ts","core/enums/enums.ts","core/context/user/user.context.tsx","core/context/consumer/objectDetails/object-details.context.tsx","core/context/searchResults/search-results.context.tsx","core/api/user/user.api.ts","core/api/user/notifications.api.ts","core/api/user/register.api.ts","core/context/feedback-requests/listing/feedback-requests-listing.context.tsx","core/context/admin/taxonomy/taxonomy.context.tsx","core/context/admin/collector-listing/collector-listing.context.tsx","core/context/admin/expert-listing/expert-listing.context.tsx","core/context/admin/archivist-listing/archivist-listing.context.tsx","core/context/admin/curator-listing/curator-listing.context.tsx","core/context/admin/collector-profile/collector-profile.context.tsx","core/context/feedback-requests/feedback/feedback.context.tsx","core/context/global/global.context.tsx","core/context/admin/archivist-profile/archivist-profile.context.tsx","core/context/admin/curator-profile/curator-profile.context.tsx","core/context/admin/expert-profile/expert-profile.context.tsx","core/context/consumer/sharedWithMe/shared-with-me.context.tsx","core/context/consumer/sharedObject/shared-object.context.tsx","core/context/consumer/collection/collection.context.tsx","assets/images/loader.svg","components/layout/_components/Loader.tsx","components/_others/BackNavigation.tsx","assets/artifact-logo.png","components/layout/_components/Logo.tsx","components/_others/PasswordFormControl.tsx","components/_others/modals/modal-styles.ts","components/_others/modals/ModalHeader.tsx","components/_others/ConfirmDeleteModal.tsx","components/_others/TypeaheadChipMultiselect.tsx","components/_others/UnsavedChangesModal.tsx","components/_others/PrivateRoute.tsx","components/layout/ConsumerToolbar/styles/styles.ts","components/layout/_styles/responsive-styles.ts","components/layout/_helpers/consumer-toolbar-nav-links.ts","assets/fonts/myriad-pro/MYRIADPRO-REGULAR.woff","assets/fonts/myriad-pro/MYRIADPRO-BOLD.woff","assets/fonts/myriad-pro/MYRIADPRO-SEMIBOLD.woff","assets/fonts/myriad-pro/MyriadPro-Light.woff","assets/fonts/myriad-pro/index.ts","assets/themes/dark-theme.ts","assets/themes/light-theme.ts","components/layout/_styles/header-theme.ts","components/layout/ConsumerToolbar/components/Searchbar.tsx","core/context/utils.context.tsx","components/layout/ConsumerToolbar/components/UserAvatar.tsx","components/layout/_styles/mobile-menu.styles.ts","components/layout/_components/MobileMenuHeader.tsx","components/_others/ContactUsModal.tsx","components/layout/_components/MobileMenuNavLink.tsx","components/layout/_components/MobileMenuNavigation.tsx","components/layout/_components/ThemeSwitch.tsx","components/layout/_components/MobileMenuUserActions.tsx","components/layout/ConsumerMobileMenu/index.tsx","components/layout/ConsumerToolbar/components/FullOpacity.tsx","components/layout/ConsumerToolbar/components/LogInBtn.tsx","components/layout/ConsumerToolbar/components/SignUpBtn.tsx","components/layout/ConsumerToolbar/components/AuthButtons.tsx","components/layout/ConsumerToolbar/components/NavLink.tsx","components/layout/ConsumerToolbar/components/Navigation.tsx","components/layout/ConsumerToolbar/index.tsx","components/layout/ConsumerToolbar/utils.ts","components/_others/CustomSnackbar/index.tsx","components/_others/TextDivider.tsx","components/_others/ButtonGrow/index.tsx","components/layout/ConsumerFooter/styles.ts","components/layout/_helpers/consumer-footer-nav-links.ts","components/layout/ConsumerFooter/components/NavigationList.tsx","components/layout/ConsumerFooter/components/Navigation.tsx","components/layout/ConsumerFooter/index.tsx","assets/placeholders/artifact-placeholder.png","components/object/ObjectHighlights.tsx","components/_consumer/share-object/Form.tsx","components/_consumer/share-object/ShareObjectToPersonsModal/index.tsx","components/_consumer/share-object/SelectShareOptionModal/ShareOption.tsx","components/_consumer/share-object/SelectShareOptionModal/index.tsx","components/_consumer/share-object/ShareObjectToPublicFeedModal/index.tsx","components/Gallery/components/ObjectCard.tsx","components/collection/CollectionHighlights.tsx","components/_consumer/share-object/ShareCollectionsToPersonsModal/index.tsx","components/Gallery/components/CollectionCard.tsx","components/Gallery/components/SharedWithMeCard.tsx","core/api/admin/manage-users.api.ts","components/_dashboard/EditUserAccessModal/EditUserAccessModal.tsx","core/api/admin-users.api.ts","components/_dashboard/ConfirmUserEmailModal/ConfirmUserEmailModal.tsx","components/Gallery/components/CollectorCard.tsx","core/helpers/customer-satisfaction.ts","core/helpers/format-address.tsx","components/Gallery/components/ExpertCard.tsx","components/Gallery/helpers/GalleryTypeEnum.ts","components/Gallery/components/ArchivistCard.tsx","components/Gallery/components/CuratorCard.tsx","components/Gallery/index.tsx","components/_others/NumberInput.tsx","components/_consumer/ObjectForm/components/UploadDocuments.tsx","components/_consumer/ObjectForm/components/SelectedDocuments.tsx","components/_consumer/ObjectForm/components/Documents.tsx","components/_consumer/ObjectForm/components/UploadPhoto.tsx","components/_consumer/ObjectForm/components/SelectedPhotos.tsx","components/_consumer/ObjectForm/components/PhotoCropper.tsx","components/_consumer/ObjectForm/components/Photos.tsx","components/_consumer/ObjectForm/helpers/errors.manager.ts","components/_consumer/ObjectForm/index.tsx","core/helpers/redirect-helper.ts","assets/images/confirm-email.svg","scenes/consumer/Tutorial/views.enum.ts","scenes/auth/components/ConfirmationPin/ConfirmationPin.tsx","scenes/auth/components/ConfirmationPin/ConfirmEmailModal.tsx","scenes/auth/components/PageTitle.tsx","assets/images/auth_image.png","assets/images/add-object.svg","scenes/auth/managers/enums.ts","scenes/consumer/Tutorial/styles/take-photo.style.ts","scenes/consumer/Tutorial/components/TakePhoto.tsx","assets/videos/tutorial_org.mp4","scenes/consumer/Tutorial/styles/how-to-organize.style.ts","scenes/consumer/Tutorial/components/HowToOrganize.tsx","assets/videos/tutorial_photo.mp4","scenes/consumer/Tutorial/styles/how-to-photograph.style.ts","scenes/consumer/Tutorial/components/HowToPhotograph.tsx","scenes/consumer/Tutorial/components/StepDots.tsx","scenes/consumer/Tutorial/index.tsx","scenes/auth/components/PhotoArea.tsx","scenes/auth/components/ResendEmail/EnterResendEmailModal.tsx","scenes/auth/components/ResendEmail/ResendEmail.tsx","scenes/auth/components/SwitchAuthView.tsx","assets/images/google-icon.png","scenes/auth/components/ExternalAuth/GoogleAuth.tsx","scenes/auth/components/ExternalAuth/FacebookAuth.tsx","assets/images/apple-icon.png","scenes/auth/components/ExternalAuth/AppleAuth.tsx","scenes/auth/components/ExternalAuth/index.tsx","assets/images/register-reason.png","scenes/auth/components/RegisterReasonModal.tsx","scenes/auth/managers/business-rules.manager.ts","scenes/auth/managers/errors.manager.ts","scenes/auth/components/ForgotPassword/ForgotPasswordModal.tsx","scenes/auth/components/ForgotPassword/EnterEmail.tsx","scenes/auth/components/ForgotPassword/EnterNewPassword.tsx","scenes/auth/components/ForgotPassword/ForgotPassword.tsx","scenes/auth/scenes/SignIn/SignInForm.tsx","scenes/auth/scenes/SignIn/index.tsx","scenes/auth/managers/utils.manager.ts","scenes/auth/components/TermsAndConditionsCheckbox.tsx","scenes/auth/scenes/CreateAccount/CreateAccountForm.tsx","scenes/auth/components/ChooseRole.tsx","scenes/auth/components/ExpertiseModal.tsx","scenes/auth/components/ReferralModal.tsx","scenes/auth/scenes/CreateAccount/index.tsx","components/layout/DashboardDrawer/styles.ts","components/layout/_helpers/dashboard-drawer-nav-links.tsx","components/layout/DashboardDrawer/components/Navigation.tsx","components/layout/DashboardDrawer/index.tsx","components/layout/DashboardToolbar/UserAvatar.tsx","components/layout/DashboardMobileDrawer/theme.ts","components/layout/DashboardMobileDrawer/index.tsx","components/layout/DashboardToolbar/index.tsx","core/api/feedback-requests/feedback-requests.api.ts","scenes/dashboard/feedbackRequests/scenes/FeedbackRequestsListing/components/FeedbackRequestItem.tsx","scenes/dashboard/feedbackRequests/scenes/FeedbackRequestsListing/components/FeedbackRequestsList.tsx","components/_dashboard/Searchbox/Searchbox.tsx","core/helpers/utils.ts","scenes/dashboard/feedbackRequests/scenes/FeedbackRequestsListing/index.tsx","scenes/dashboard/collectors/scenes/CollectorProfile/enums.ts","core/api/admin/taxonomy.api.ts","core/api/admin/collectors.api.ts","core/api/admin/experts.api.ts","core/api/admin/curators.api.ts","core/api/admin/archivists.api.ts","core/api/admin/statistics.api.ts","scenes/dashboard/admin-settings/scenes/Taxonomy/components/Label.tsx","scenes/dashboard/admin-settings/scenes/Taxonomy/components/AddLabelModal.tsx","scenes/dashboard/admin-settings/scenes/Taxonomy/components/EditLabelModal.tsx","scenes/dashboard/admin-settings/scenes/Taxonomy/components/ActivateLabelModal.tsx","scenes/dashboard/admin-settings/scenes/Taxonomy/components/SubTypes.tsx","scenes/dashboard/admin-settings/scenes/Taxonomy/components/RootTypes.tsx","scenes/dashboard/admin-settings/scenes/Taxonomy/index.tsx","components/_dashboard/InviteUsersModal/index.tsx","scenes/dashboard/collectors/scenes/CollectorListing/index.tsx","scenes/dashboard/experts/scenes/ExpertListing/SearchType.tsx","scenes/dashboard/experts/scenes/ExpertListing/index.tsx","scenes/dashboard/archivists/scenes/ArchivistListing/index.tsx","scenes/dashboard/curators/scenes/CuratorListing/index.tsx","components/_dashboard/_user-profiles/AccessStatusLabel.tsx","components/_dashboard/_user-profiles/EditUserProfileModal.tsx","scenes/dashboard/collectors/scenes/CollectorProfile/components/ChangeCollectorTypeModal.tsx","scenes/dashboard/collectors/scenes/CollectorProfile/components/Lightbox.tsx","scenes/dashboard/collectors/scenes/CollectorProfile/components/Stats.tsx","scenes/dashboard/collectors/scenes/CollectorProfile/components/Bio.tsx","scenes/dashboard/collectors/scenes/CollectorProfile/components/ActiveRequests.tsx","scenes/dashboard/collectors/scenes/CollectorProfile/components/ArtifactCard.tsx","scenes/dashboard/collectors/scenes/CollectorProfile/components/ArtifactsList.tsx","components/_dashboard/_user-profiles/ChangeUserRole.tsx","scenes/dashboard/collectors/scenes/CollectorProfile/components/PaymentFreePass.tsx","scenes/dashboard/collectors/scenes/CollectorProfile/styles/navigation.style.ts","scenes/dashboard/collectors/scenes/CollectorProfile/components/Navigation.tsx","core/hooks/use-pagination.hook.ts","core/api/jobs.api.ts","components/jobs/_hooks/use-assigned-users-data.hook.ts","components/jobs/ActiveJob/style.ts","components/jobs/RemoveJobModal/index.tsx","components/jobs/_hooks/use-remove-job.hook.ts","components/jobs/ActiveJob/index.tsx","components/jobs/AssignedUsersList/index.tsx","scenes/dashboard/collectors/scenes/CollectorProfile/components/DeletedObjectCard.tsx","scenes/dashboard/collectors/scenes/CollectorProfile/components/DeletedObjectsList.tsx","scenes/dashboard/collectors/scenes/CollectorProfile/index.tsx","components/_consumer/ObjectDetails/Gallery/PhotoLightbox.tsx","scenes/consumer/objectDetails/components/CropPhotoModal/index.tsx","components/_consumer/ObjectDetails/Gallery/index.tsx","core/api/object-comments.api.ts","assets/placeholders/avatar-placeholder.png","components/object/ObjectComments/CommentDetails.tsx","components/object/ObjectComments/AddComment.tsx","components/object/ObjectComments/index.tsx","components/_consumer/ObjectDetails/Dimensions.tsx","components/_consumer/ObjectDetails/SectionHeader.tsx","components/_consumer/ObjectDetails/Documents.tsx","scenes/consumer/objectDetails/components/Chat/AddComment.tsx","scenes/consumer/objectDetails/components/Chat/Comments.tsx","scenes/consumer/objectDetails/components/Chat/index.tsx","components/_consumer/ObjectDetails/Feedbacks.tsx","components/_consumer/ObjectDetails/ObjectLabels.tsx","components/_consumer/ObjectDetails/Title.tsx","scenes/dashboard/feedbackRequests/scenes/FeedbackRequest/components/AboutObject.tsx","scenes/dashboard/feedbackRequests/scenes/FeedbackRequest/components/AboutCollector.tsx","scenes/dashboard/feedbackRequests/scenes/FeedbackRequest/components/RequestBetterPhotos.tsx","scenes/dashboard/feedbackRequests/scenes/FeedbackRequest/components/AboutObjectShort.tsx","scenes/dashboard/feedbackRequests/scenes/FeedbackRequest/components/FeedbackForm/SectionTitle.tsx","components/_others/InfoText.tsx","scenes/dashboard/feedbackRequests/scenes/FeedbackRequest/components/FeedbackForm/EntryField.tsx","scenes/dashboard/feedbackRequests/scenes/FeedbackRequest/components/GiveFeedbackActions.tsx","scenes/dashboard/feedbackRequests/scenes/FeedbackRequest/components/FeedbackForm/ApproximateAge.tsx","scenes/dashboard/feedbackRequests/scenes/FeedbackRequest/components/FeedbackForm/ApproximateValue.tsx","scenes/dashboard/feedbackRequests/scenes/FeedbackRequest/components/FeedbackForm/AddNewLabel.tsx","scenes/dashboard/feedbackRequests/scenes/FeedbackRequest/components/FeedbackForm/Labels.tsx","scenes/dashboard/feedbackRequests/scenes/FeedbackRequest/components/FeedbackForm/index.tsx","core/hooks/use-interval.hook.ts","scenes/dashboard/feedbackRequests/scenes/FeedbackRequest/components/Chat/AddComment.tsx","scenes/dashboard/feedbackRequests/scenes/FeedbackRequest/components/Chat/Comments.tsx","scenes/dashboard/feedbackRequests/scenes/FeedbackRequest/components/Chat/index.tsx","scenes/dashboard/feedbackRequests/scenes/FeedbackRequest/components/FeedbackForm/AdminAssignLabels.tsx","scenes/dashboard/feedbackRequests/scenes/FeedbackRequest/index.tsx","assets/images/empty-notifications.svg","assets/themes/components/empty-theme.ts","scenes/auth/scenes/Notifications/Empty.tsx","scenes/auth/scenes/Notifications/helpers/compute-description.tsx","scenes/auth/scenes/Notifications/NotificationItem.tsx","scenes/auth/scenes/Notifications/index.tsx","scenes/dashboard/archivists/scenes/ArchivistProfile/components/Lightbox.tsx","scenes/dashboard/archivists/scenes/ArchivistProfile/components/Stats.tsx","scenes/dashboard/archivists/scenes/ArchivistProfile/components/Bio.tsx","components/jobs/AssignJobBtn.tsx","components/jobs/AssignJobModal/style.ts","components/jobs/JobCard/style.ts","components/jobs/JobCard/index.tsx","components/jobs/_hooks/use-available-jobs-data.hook.ts","components/jobs/AssignJobModal/index.tsx","components/jobs/_hooks/use-assign-job.hook.ts","components/jobs/_hooks/use-jobs-data.hook.ts","components/jobs/ActiveJobsList/index.tsx","scenes/dashboard/archivists/scenes/ArchivistProfile/index.tsx","scenes/dashboard/curators/scenes/CuratorProfile/components/Lightbox.tsx","scenes/dashboard/curators/scenes/CuratorProfile/components/Stats.tsx","scenes/dashboard/curators/scenes/CuratorProfile/components/Bio.tsx","scenes/dashboard/curators/scenes/CuratorProfile/index.tsx","scenes/auth/scenes/UserProfile/AvatarEditorModal.tsx","scenes/auth/scenes/UserProfile/components/ConfirmEmailChangeModal.tsx","scenes/dashboard/experts/scenes/ExpertProfile/components/Lightbox.tsx","scenes/dashboard/experts/scenes/ExpertProfile/components/Stats.tsx","scenes/dashboard/experts/scenes/ExpertProfile/components/Bio.tsx","scenes/dashboard/experts/scenes/ExpertProfile/components/AddNewLabelsModal.tsx","scenes/dashboard/experts/scenes/ExpertProfile/components/ExpertLabels.tsx","scenes/dashboard/experts/scenes/ExpertProfile/components/CompletedFeedback.tsx","scenes/dashboard/experts/scenes/ExpertProfile/components/CompletedFeedbacksList.tsx","scenes/auth/scenes/UserProfile/components/DeleteEmailSentModal.tsx","scenes/auth/scenes/UserProfile/components/DeleteAccountSegment.tsx","scenes/dashboard/experts/scenes/ExpertProfile/index.tsx","scenes/dashboard/collectors/scenes/CollectorArtifact/context/collector-artifact.reducer.ts","scenes/dashboard/collectors/scenes/CollectorArtifact/context/collector-artifact.context.tsx","components/_consumer/ObjectDetails/FeedbackResultModal.tsx","scenes/dashboard/collectors/scenes/CollectorArtifact/index.tsx","scenes/dashboard/collectors/scenes/CollectorArtifact/managers/utils.manager.ts","scenes/dashboard/admin-settings/scenes/Statistics/index.tsx","scenes/dashboard/index.tsx","assets/images/empty-page.svg","scenes/consumer/MyObjects/styles/root.styles.ts","scenes/consumer/MyObjects/components/Empty.tsx","scenes/consumer/_components/RemoveObjectModal/index.tsx","scenes/consumer/_components/RemoveObjectModal/hook.ts","scenes/consumer/_helpers/objects-sorting.helper.ts","assets/styles/fixed-header.ts","scenes/consumer/MyObjects/styles/header.styles.ts","components/_others/SortBy.tsx","scenes/consumer/MyObjects/components/AddNewObjectBtn.tsx","scenes/consumer/_components/Statistics/styles.ts","scenes/consumer/_components/Statistics/index.tsx","scenes/consumer/MyObjects/components/PageHeader.tsx","scenes/consumer/MyObjects/hooks/use-my-objects-data.hook.ts","scenes/consumer/MyObjects/index.tsx","scenes/consumer/addObject/components/Header.tsx","scenes/consumer/addObject/scenes/AddObject/index.tsx","components/_consumer/ObjectDetails/RecommendedExperts/ExpertDetails.tsx","components/_consumer/ObjectDetails/RecommendedExperts/index.tsx","components/_consumer/ObjectDetails/RecommendedExperts/RecommendedExpertsModal.tsx","scenes/consumer/objectDetails/components/AboutObject/index.tsx","scenes/consumer/objectDetails/components/Feedback/MissingInformationModal.tsx","scenes/consumer/objectDetails/helpers/missing-info-helper.ts","scenes/consumer/_components/ObjectDetailsProgressBar/progress-bars.style.ts","scenes/consumer/_components/ObjectDetailsProgressBar/index.tsx","scenes/consumer/objectDetails/components/Header/ActionButtons.tsx","scenes/consumer/objectDetails/components/Header/index.tsx","core/api/consumer/payment.api.ts","scenes/consumer/objectDetails/components/Feedback/Payment.tsx","scenes/consumer/objectDetails/components/Feedback/RequestAsessmentModal.tsx","scenes/consumer/objectDetails/components/ReorderPhotosModal/PhotoBox.tsx","scenes/consumer/objectDetails/components/ReorderPhotosModal/index.tsx","scenes/consumer/objectDetails/scenes/ObjectDetails/index.tsx","scenes/consumer/sharedWithMe/scenes/SharedWithMeDashboard/index.tsx","scenes/consumer/sharedWithMe/scenes/SharedObjectDetails/components/Header.tsx","scenes/consumer/sharedWithMe/scenes/SharedObjectDetails/components/AboutObject.tsx","scenes/consumer/sharedWithMe/scenes/SharedObjectDetails/components/SharedBy.tsx","scenes/consumer/sharedWithMe/scenes/SharedObjectDetails/index.tsx","scenes/consumer/MyCollections/styles/empty.style.ts","scenes/consumer/MyCollections/styles/header.styles.ts","core/api/collection.api.ts","scenes/consumer/MyCollections/components/AddNewCollectionModal.tsx","scenes/consumer/MyCollections/hooks/use-new-collection.hook.ts","scenes/consumer/MyCollections/components/AddNewCollectionBtn.tsx","scenes/consumer/MyCollections/components/Empty.tsx","scenes/consumer/_components/RemoveCollectionModal/index.tsx","scenes/consumer/_components/RemoveCollectionModal/hook.ts","scenes/consumer/_helpers/collections-sorting.helper.ts","scenes/consumer/MyCollections/components/PageHeader.tsx","scenes/consumer/MyCollections/hooks/use-my-collections-data.hook.ts","scenes/consumer/MyCollections/index.tsx","scenes/consumer/MyCollectionObjects/components/AddObjectToCollectionModal.tsx","scenes/consumer/MyCollectionObjects/components/EditCollectionNameModal.tsx","scenes/consumer/MyCollectionObjects/components/CollectionPageHeader.tsx","scenes/consumer/MyCollectionObjects/components/DeleteObjectModal.tsx","scenes/consumer/MyCollectionObjects/components/EmptyCollection.tsx","scenes/consumer/MyCollectionObjects/index.tsx","scenes/shared/SearchResults/index.tsx","scenes/auth/scenes/UserProfile/CollectorProfile/Lightbox.tsx","scenes/auth/scenes/UserProfile/CollectorProfile/UserProfileForm.tsx","scenes/auth/scenes/UserProfile/CollectorProfile/index.tsx","scenes/consumer/CommunityFeed/styles/root.style.ts","scenes/consumer/CommunityFeed/hooks/use-feed-data.hook.ts","scenes/consumer/CommunityFeed/components/EmptyFeed.tsx","scenes/consumer/CommunityFeed/styles/artifact-card.style.ts","scenes/consumer/CommunityFeed/styles/comments.styles.ts","scenes/consumer/CommunityFeed/components/Comments/CommentDetails.tsx","scenes/consumer/CommunityFeed/components/Comments/AddComment.tsx","scenes/consumer/CommunityFeed/components/Comments/index.tsx","scenes/consumer/_hooks/use-object-comments-data.ts","scenes/consumer/CommunityFeed/components/ArtifactCard/Photos.tsx","scenes/consumer/CommunityFeed/components/ArtifactCard/Details.tsx","scenes/consumer/CommunityFeed/styles/make-offer.style.ts","scenes/consumer/CommunityFeed/components/MakeAnOffer/MakeAnOfferButton.tsx","scenes/consumer/CommunityFeed/components/MakeAnOffer/index.tsx","scenes/consumer/CommunityFeed/hooks/use-make-offer.hook.ts","scenes/consumer/CommunityFeed/components/ArtifactCard/index.tsx","scenes/consumer/CommunityFeed/index.tsx","scenes/consumer/Reporting/styles/root.style.ts","scenes/consumer/Reporting/styles/objects-list.style.ts","scenes/consumer/_components/RemoveFeedObjectModal/index.tsx","scenes/consumer/_components/RemoveFeedObjectModal/hook.ts","scenes/consumer/Reporting/components/ObjectDetails.tsx","scenes/consumer/Reporting/components/ListOfObjects.tsx","scenes/consumer/Reporting/styles/widget.style.ts","scenes/consumer/Reporting/components/Widget.tsx","scenes/consumer/Reporting/index.tsx","scenes/consumer/Reporting/hooks/use-reporting-data.hook.ts","scenes/consumer/collector-app.tsx","scenes/shared/PrivacyPolicy/index.tsx","scenes/shared/TermsAndConditions/index.tsx","scenes/shared/OurMission/index.tsx","scenes/consumer/AssignedCollectors/styles/root.style.ts","assets/images/assign_collectors.svg","scenes/consumer/AssignedCollectors/index.tsx","scenes/consumer/helper-app.tsx","components/layout/_styles/helper-toolbar-theme.ts","components/layout/HelperToolbar/styles.ts","components/layout/HelperToolbar/components/Navigation.tsx","components/layout/_helpers/helper-toolbar-nav-links.ts","components/layout/HelperToolbar/index.tsx","AppRouting.tsx","App.tsx","index.tsx"],"names":["axiosInstance","axios","create","baseURL","interceptors","request","use","config","url","indexOf","params","userId","getJobIdFromStorage","error","Promise","reject","response","a","originalRequest","console","log","data","message","localStorage","clear","status","Boolean","getRefreshToken","headers","Authorization","getToken","put","token","then","setToken","refreshToken","defaults","common","catch","window","location","replace","_get","AXIOS","get","_put","payload","_post","post","_patch","patch","_delete","delete","AppRoutes","getMyObjectsRoute","role","UserRoles","COLLECTOR","ARCHIVIST","CURATOR","MY_OBJECTS","CommunityFeedApi","objectId","enableOffers","api","page","size","publicFeed","id","ReportingApi","type","statistics","validateEmail","email","EMAIL","test","passwordStrength","password","result","valid","length","digits","uppercase","lowercase","specialChars","getPhotoUrl","photo","TOKEN_KEY","REFRESH_TOKEN_KEY","ROLE","JOB_ID","setItem","setRole","getItem","clearLocalStorage","removeItem","setJobIdInStorage","jobId","toString","resourceUrl","CommonApi","text","searchBy","countryId","stateId","formatUSD","value","undefined","Intl","NumberFormat","style","currency","format","CollectorApi","artifactId","emails","searchInput","collectionId","paymentClientSecret","registerPurpose","feedbackId","rating","CollectorCollectionApi","sortBy","asc","shared","isSharedWithMe","artifacts","CollectorShareApi","getEstimatedDisplayValue","exactValue","min","max","RegExp","WEBSITE","base64ToFile","dataurl","filename","arr","split","mime","match","bstr","atob","n","u8arr","Uint8Array","charCodeAt","File","state","action","roles","newNotifications","user","firstName","lastName","title","phoneNumber","description","address","country","city","organization","website","photoUrl","registerType","paymentFreePass","lightTheme","save","artifact","minimumValue","maximumValue","width","height","depth","weight","exactProductionYear","lowerProductionYear","upperProductionYear","origin","material","artist","artistBio","condition","createdDate","dateCreated","detailsPercent","Math","round","isFeedbackImported","isSharedToPublicFeed","fileOcrContent","createdBy","documents","justObject","feedbackRequests","experts","photos","categories","materials","conditions","eras","origins","styles","collections","feedbacks","artistImageUrl","modals","displayConfirmDelete","displayUnsavedChangesModal","displayShareObjectOptionsModal","displayShareObjectToPersonsModal","displayShareObjectToFeedModal","displayMissingInfoModal","displayRequestAssessmentModal","displayRecommendedExpertsModal","loader","onEditMode","concat","displayUnsavedPhotosModal","paginationArtifacts","totalCount","numberOfPages","ceil","paginationCollections","scope","ObjectApi","search","body","exactYearNotation","lowerYearNotation","upperYearNotation","map","c","Object","keys","key","trim","files","batch","formData","FormData","forEach","file","index","f","append","photosId","documentId","labelId","isLoading","displayEmptyPage","totalRequests","pagination","rootTypes","selectedRootType","selectedForDeleteId","deleted","deletedLabels","push","displayAddLabelModal","collectors","totalUsers","archivists","curators","activeFeedbackRequests","artifactsPagination","uploadPhotosBatch1","uploadPhotosBatch2","uploadPhotosBatch3","shouldReloadBatch1","shouldReloadBatch2","shouldReloadBatch3","completedFeedbacks","totalDeletedFeedbacksCount","totalDeletedCount","feedbacksPagination","totalObjects","paginationObjects","collectorName","collector","collectorPhoto","fileName","isLoadingObjects","collection","name","isLoadingCollections","totalCollections","displayDeleteButtonOnCard","totalValue","displayDeleteCollectionModal","displayAddObjectModal","displayDeleteObjectModal","displayEditCollectionNameModal","RegisterTypesEnum","CollectorTypes","FileSize","SortObjectsOptions","SortCollectionsOptions","ShareArtifactOptions","AdminStatistics","ReportTypeEnum","ExpertsSearchType","PreferencesDictionary","1","2","3","4","5","6","7","initialState","setUser","onLogout","setProfilePic","setHasNewNotifications","setTheme","UserContext","createContext","UserProvider","children","useReducer","UserReducer","dispatch","Provider","setDeleteLoader","toggleConfirmDeleteModal","toggleUnsavedChangesModal","toggleShareObjectOptionsModal","toggleShareObjectToPersonsModal","toggleShareObjectToFeedModal","toggleMissingInfoModal","toggleRequestAssessmentModal","toggleRecommendedExpertsModal","toggleDisplayUnsavedPhotosModal","hasUnsavedPhotos","setArtifact","setTitleAndDescription","setCategories","setEditMode","addNewPhotos","addNewDocuments","setPhotos","ObjectDetailsContext","ObjectDetailsProvider","ObjectDetailsReducer","setArtifactsResult","setCollectionsResult","setCurrentPage","setSearchBy","clearSearchResults","SearchResultsContext","SearchResultsProvider","SearchResultsReducer","UserApi","avatar","isCurrentEmail","code","NotificationsApi","ids","RegisterApi","setData","setLoading","FeedbackRequestsListingContext","FeedbackRequestsListingProvider","FeedbackRequestsListingReducer","loading","setRootTypes","selectRootType","setSelectedForDeleteId","pushDeletedLabel","toggleAddLabelModal","TaxonomyContext","TaxonomyProvider","TaxonomyReducer","label","setCollectors","CollectorListingContext","CollectorListingProvider","CollectorListingReducer","setExperts","ExpertListingContext","ExpertListingProvider","ExpertListingReducer","setArchivists","ArchivistListingContext","ArchivistListingProvider","ArchivistListingReducer","setCurators","CuratorListingContext","CuratorListingProvider","CuratorListingReducer","isActive","namePlural","symbol","symbolNative","totalReviewedObjects","setArtifacts","CollectorProfileContext","CollectorProfileProvider","CollectorProfileReducer","isCompleted","morePhotosRequired","feedback","comments","feedbackDraft","FeedbackRequestContext","FeedbackRequestProvider","FeedbackRequestsReducer","setUploadPhotosBatch1","setUploadPhotosBatch2","setUploadPhotosBatch3","setShouldReloadBatch1","setShouldReloadBatch2","setShouldReloadBatch3","manageUploadPhotosBatch","setJobId","GlobalContext","GlobalProvider","GlobalReducer","chunks","reference","totalJobs","totalActiveJobs","ArchivistProfileContext","ArchivistProfileProvider","ArchivistProfileReducer","CuratorProfileContext","CuratorProfileProvider","CuratorProfileReducer","totalFeedbacks","expertise","setCompletedFeedbacks","setExpertType","ExpertProfileContext","ExpertProfileProvider","ExpertProfileReducer","setCollections","setCurrentPageObjects","setCurrentPageCollections","setLoadingObjects","setLoadingCollections","SharedWithMeContext","SharedWithMeProvider","SharedWithMeReducer","SharedObjectContext","SharedObjectProvider","SharedObjectReducer","DateCreated","toggleAddObjectModal","toggleDeleteCollectionModal","toggleDeleteObjectModal","toggleEditCollectionNameModal","setCollectionId","setSortBy","CollectionContext","CollectionProvider","CollectionReducer","Loader","Box","textAlign","src","alt","useStyles","makeStyles","root","display","alignItems","color","fontSize","cursor","icon","BackNavigation","notify","classes","history","useHistory","Typography","variant","onClick","goBack","className","_theme","Logo","BASE","logo","PasswordFormControl","helperText","onChange","onFocus","onBlur","onKeyPress","React","useState","showPassword","values","setValues","FormControl","fullWidth","marginTop","marginBottom","InputLabel","htmlFor","OutlinedInput","autoComplete","inputProps","maxLength","e","endAdornment","InputAdornment","position","IconButton","aria-label","onMouseDown","event","preventDefault","edge","Visibility","VisibilityOff","modalStyles","theme","modal","justifyContent","overflow","paper","backgroundColor","palette","background","border","outline","boxShadow","shadows","padding","maxWidth","breakpoints","down","modalHeader","top","zIndex","modalFooter","bottom","modalTitle","primary","letterSpacing","fontWeight","modalSubtitle","opacity","divider","margin","primaryButton","borderRadius","secondaryButton","ModalHeader","handleClose","Divider","ConfirmDeleteModal","open","onConfirm","subtitle","Modal","onClose","closeAfterTransition","BackdropComponent","Backdrop","BackdropProps","timeout","Fade","in","Button","marginRight","CircularProgress","InputWrapper","styled","Tag","onDelete","props","Listbox","TypeaheadChipMultiselect","options","selectedOptions","useAutocomplete","defaultValue","multiple","getOptionLabel","option","_event","getRootProps","getInputProps","getTagProps","getListboxProps","getOptionProps","groupedOptions","focused","setAnchorEl","userContext","useContext","NoSsr","ref","UnsavedChangesModal","objectDetailsContext","aria-labelledby","aria-describedby","PrivateRoute","component","path","restrictedRoles","exact","rest","render","findIndex","r","to","pathname","SIGN_IN","from","fullOpacityStyles","right","full","dashboardHeader","main","partial","logoStyles","paddingLeft","generalStyles","authButtonsContainer","textTransform","minWidth","navItem","paddingRight","navLink","lineHeight","textDecoration","authButtonsStyles","button","signUp","logIn","responsiveStyles","hideMobile","justOnMobile","navLinks","default","CREATE_ACCOUNT","onAuthPages","OUR_MISSION","dashboard","MY_COLLECTIONS","SHARED_WITH_ME","PUBLIC_FEED","REPORTING","auth","COLLECTOR_PROFILE","NOTIFICATIONS","helpers","ASSIGNED_COLLECTORS_INDEX","myriadProRegular","fontFamily","fontStyle","fontDisplay","MyriadProRegular","myriadProBold","MyriadProBold","myriadProSemiBold","MyriadProSemibold","myriadProLight","MyriadProLight","darkTheme","createMuiTheme","rootBackground","secondary","secondaryBorder","cardBackground","progressBarBackground","modalBackground","highlightBackground","labelBackground","formLabel","black","white","contrastText","warning","info","success","typography","join","shape","overrides","MuiCssBaseline","MuiTextField","MuiOutlinedInput","MuiButton","MuiSelect","paddingTop","paddingBottom","MuiChip","collectorHeaderDarkTheme","htmlFontSize","MuiAppBar","minHeight","MuiToolbar","MuiList","flexGrow","MuiLink","MuiPopover","maxHeight","left","collectorHeaderLightTheme","MuiPaper","spacing","marginLeft","borderColor","up","searchIcon","pointerEvents","inputRoot","inputInput","transition","transitions","hideOnSmallScreens","Searchbar","searchResultsContext","onSearch","SEARCH_RESULTS","InputBase","placeholder","input","target","handleKeyPress","snackbar","severity","appLoader","selectedJob","Reducer","UtilsContext","UtilsProvider","addSnackbar","closeSnackbar","setAppLoaderState","selectJob","UserAvatar","setOpen","ClickAwayListener","onClickAway","Tooltip","arrow","interactive","TransitionComponent","Zoom","disableFocusListener","disableHoverListener","placement","SM","UserMenu","utilsContext","mobileMenuStyles","hamburgerMenu","hamburgerMenuSvg","headerBox","logoBox","iconBox","closeIcon","navBox","nav","Header","mobileMenuClasses","Grid","container","item","xs","ContactUsModal","setMessage","setEmail","errors","setErrors","setIsLoading","TextField","multiline","rows","rowsMax","sendContactUsEmail","disabled","inactiveLinkColor","isLightTheme","MobileMenuNavLink","Link","useRouteMatch","ListItem","MobileMenuNavigation","authLinks","onLightTheme","displayContactUsModal","toggleContactUsModal","filter","ThemeProvider","ThemeSwitch","FormControlLabel","control","Switch","checked","MobileMenuUserActions","MobileMenu","anchorEl","currentTarget","Popover","List","FullOpacity","fullOpacity","LogInBtn","SignUpBtn","AuthButtons","responsiveClasses","NavLink","isHelperUser","Navigation","isLoggedOut","links","generalClasses","ConsumerToolbar","logoClasses","hasFullOpacity","href","routes","AppBar","Toolbar","disableGutters","Hidden","xsDown","CustomSnackbar","Snackbar","anchorOrigin","vertical","horizontal","autoHideDuration","TextDivider","content","borderBottom","ButtonGrow","highlightOnHover","footerStyles","copyrightPaper","copyrightText","navigationListStyles","box","listTitle","list","link","listItem","PRIVACY_POLICY","TERMS_AND_CONDITIONS","TUTORIAL","NavigationLinks","alignContent","sm","md","ConsumerFooter","Paper","elevation","smDown","moment","ObjectHighlights","imagePlaceholder","artifactTitle","artifactDescription","objectFit","float","Form","errorMessage","onShare","modalClasses","setEmails","currentEmail","setCurrentEmail","useEffect","form","Autocomplete","freeSolo","disableClearable","clearOnBlur","_e","newEmails","invalidEmailIndex","el","splice","slice","onAddEmail","onInputChange","handleEmailsBlur","renderTags","Chip","renderInput","ShareObjectToPersonsModal","setErrorMessage","shareArtifact","ShareOption","onSelect","borderLeft","SelectShareOptionModal","canBeSharedToFeed","onRemove","confirm","removeObjectFromCommunityFeed","PublicFeed","People","ShareObjectToPublicFeedModal","onShareSuccess","setEnableOffers","Checkbox","shareObjectToCommunityFeed","ObjectCard","displayShareOptionsModal","toggleShareOptionsModal","displayShareObjectModal","toggleShareObjectModal","canEdit","canDelete","goToObjectPage","OBJECT","Card","CardActionArea","CardMedia","image","displayShareButtonOnCard","displayEditButtonOnCard","CardContent","CollectionHighlights","detailsBox","ShareCollectionsToPersonsModal","shareCollection","CollectionCard","displayShareCollectionModal","toggleShareCollectionModal","URLSearchParams","COLLECTION","generateObjectsLink","SharedWithMeCard","sharedFromCollection","SHARED_OBJECT","shareCollectionId","substring","ManageUsersApi","enable","_role","currencyId","cityId","EditUserAccessModal","onSuccess","hasActiveJobs","editAccess","reload","AdminUsersApi","searchType","Type","ConfirmUserEmailModal","isOpen","setError","setSuccess","confirmUserEmail","profileIconPlaceholder","profilePic","whiteSpace","textOverflow","wordBreak","expertReviews","borderTop","typeLabel","activeIcon","inactiveIcon","activateEmailButton","CollectorCard","isEnabled","setIsEnabled","displayManageAccessModal","toggleManageAccessModal","displayConfirmEmailModal","setDisplayConfirmEmailModal","emailConfirmed","setEmailConfirmed","AVID","visibility","ADMIN_COLLECTOR_PROFILE","getCustomerSatisfactionColor","getCustomerSatisfactionText","formatAddress","GalleryTypeEnum","category","ExpertCard","expert","ADMIN_EXPERT_PROFILE","toFixed","ArchivistCard","archivist","ADMIN_ARCHIVIST_PROFILE","CuratorCard","curator","ADMIN_CURATOR_PROFILE","useStylesOptionsMenu","Gallery","galleryType","handlePageChange","onObjectDelete","handlePageSizeChange","Artifacts","object","Collections","CollectionsSharedWithMe","SharedWithMe","Collectors","Experts","Archivists","Curators","pageSize","Pagination","count","currentPage","siblingCount","NumberInput","inputRef","other","getInputRef","allowNegative","thousandSeparator","onValueChange","isAllowed","inputObj","isNumericString","decimalScale","YearInput","UploadDocuments","onUpload","initialDocuments","setFile","uploading","setUploading","onDrop","useCallback","acceptedFiles","handleUpload","useDropzone","alert","substr","toLowerCase","setTimeout","accept","LinearProgress","fileContainer","fileIcon","removeContainer","SelectedDocuments","document","Documents","setCurrentDocuments","setDocuments","current","d","UploadPhoto","uploadFiles","Array","newPhotosArr","reader","FileReader","readAsDataURL","onload","Image","this","ratio","parseFloat","canvasHeight","floor","canvasWidth","canvas","createElement","ctx","getContext","drawImage","dataUrl","toDataURL","remove","photoContainer","crop","actionsBox","SelectedPhotos","onDeleteClick","onCropClick","hideDeleteButton","p","XS","handleCropClick","cropZone","flexDirection","buttonsZone","cropperContainer","PhotoCropper","onCancelClick","onDoneClick","hideCancelButton","setPhoto","cropperRef","useRef","guides","imageElement","cropper","getCroppedCanvas","onCrop","viewMode","autoCropArea","autoCrop","checkOrientation","checkCrossOrigin","rotatable","movable","angle","rotate","Photos","setCurrentPhotos","initialPhotos","existing","photoOnCrop","setPhotoOnCrop","photoIndex","_p","newPhotos","res","oldPhoto","manageTitleError","manageDescriptionError","managePriceRangesError","Number","manageYearRangeError","manageExactProductionYearError","year","notation","required","isNaN","manageMinProductionYearError","minNotation","maxNotation","minIsBeforeMax","manageMaxProductionYearError","labelSm","labelXs","focusLabel","errorLabel","inputWrapper","ObjectForm","disableEditFields","setFormErrors","displayErrors","onPhotoDelete","onDocumentDelete","onAddNew","newPhotosNumber","setNewPhotosNumber","setOnFocus","estimatedRanges","yearRange","minProductionYear","maxProductionYear","getCollections","manageErrors","Title","field","err","estimatedValueOption","productionYearOption","noValidate","hasPendingAssessments","onRemovePhoto","_id","InputProps","inputComponent","RadioGroup","row","Radio","Select","MenuItem","startAdornment","homepageByUserRole","userRole","EXPERT","ADMIN","FEEDBACK_REQUESTS","TutorialViews","ConfirmationPin","initialValue","inputMode","inputStyle","inputFocusStyle","onComplete","_index","confirmRegistrationEmail","autoSelect","regexCriteria","ConfirmEmailModal","credentials","displaySuccessIcon","setDisplaySuccessIcon","unknownError","setUnknownError","confirmEmailImg","resendRegisterConfirmationEmail","pageTitleContainer","PageTitle","AfterRegisterAction","AfterLoginAction","takePhotoStyles","TakePhoto","changeView","addObjectIcon","howToOrganizeStyles","videoContainer","navigationContainer","leftCol","rightCol","HowToOrganize","onSkip","onNext","hideNavigation","video","controls","howToPhotographStyles","HowToPhotograph","onAddObject","StepDots","view","Tutorial","activeStep","currentView","setCurrentView","Container","ADD_OBJECT","currentUserRole","PhotoArea","onVideoMode","setOnVideoMode","lg","mdDown","lgUp","photoMD","EnterResendEmailModal","validEmail","setValidEmail","onFinish","generateErrorText","clickableText","ResendEmail","setIsOpen","SwitchAuthView","btnText","redirectUrl","GoogleAuth","acceptTerms","manageGoogleSuccess","profileObj","givenName","familyName","tokenId","termsAccepted","Google","clientId","accessType","cookiePolicy","resp","onFailure","onRequest","renderProps","googleIcon","FacebookAuth","isDisabled","appId","autoLoad","fields","callback","accessToken","externalId","userID","Facebook","onSubmit","AppleAuth","authorization","id_token","Apple","authOptions","redirectURI","usePopup","uiType","noDefaultStyle","onError","iconprop","appleIcon","ExternalAuth","RegisterReasonModal","portfolio","otherText","answer","setAnswer","registerReasonImg","replaceAll","updateRegisterPurpose","waitForAccountConfirmationMessage","initialRegisterData","Web","shouldAskForExpertise","shouldAskForReferral","shouldAskForRegisterReason","askForExpertise","isExternalRegister","accountRole","askForExtraRegisterInformation","askForReferral","manageRegister","isAllowedToLoginAfterRegister","ContinueToLogin","DisplayWaitForActivationMessage","DisplayConfirmEmailModal","manageLogin","isFirstLogin","askForRegisterReason","AskForRegisterReason","GoToApp","getLoginPayload","loginType","rememberMe","getRegisterPayload","getAuthError","errorType","Views","EnterEmail","userEmail","onEmailSent","reqResult","setReqResult","emailNotConfirmed","setEmailNotConfirmed","toggleDisplayConfirmEmail","emailHasBeenConfirmed","setEmailHasBeenConfirmed","computeEmailError","onSave","sendConfirmationEmail","sendForgotPasswordEmail","EnterNewPassword","onBack","pin","newPassword","resetPassword","ForgotPasswordModal","forChangePassword","setView","EnterCode","ForgotPassword","forgetPassModalOpened","toggleForgetPassModal","SignInForm","onLoginUser","onSignIn","isValidForm","SignIn","setCredentials","setRedirectUrl","displayRegisterReasonModal","toggleRegisterReasonModal","displayCEM","toggleCEM","userData","login","afterLoginAction","isNewUser","DisplayBlockedPlatformMessage","getUserDetails","manageHttpError","getUser","_error","errorData","TermsAndConditionsCheckbox","handleChange","CreateAccountForm","onRegisterUser","toggleAcceptTerms","hasLetterRegExp","boxTitle","boxSubtitle","arrowIcon","ChooseRole","ExpertiseModal","setExpertise","ReferralModal","CreateAccount","setAccountRole","registerData","setRegisterData","roleQueryParam","getAccountRoleFromURLSearchParams","manageRegisterIntent","registerPayload","onRegister","external","register","afterRegisterAction","onLogin","manageCEM","appDrawerStyles","flexShrink","logoContainer","themeSwitchContainer","drawerNavigationStyles","adminLinks","COLLECTOR_LISTING","EXPERT_LISTING","ARCHIVIST_LISTING","CURATOR_LISTING","TAXONOMY","ADMIN_STATISTICS","expertLinks","getNavLinks","ListItemIcon","ListItemText","DashboardDrawer","Drawer","anchor","mobileDrawerDarkTheme","DashboardMobileDrawer","toolbar","notificationIcon","DashboardToolbar","DASHBOARD_NOTIFICATIONS","FeedbackRequestsApi","isRated","feedbackRequestId","comment","isCollector","_feedbackRequestId","collectorBox","borderRight","feedbackDate","artifactPhoto","artifactName","giveFeedbackBtn","deleteFeedbackBtn","FeedbackRequestItem","isDeleted","setIsDeleted","feedbackDateCreated","isRead","isArtifactUpdated","deleteFeedbackRequest","FEEDBACK_REQUEST","FeedbackRequestsList","Searchbox","onClear","intersectArrays","list1","list2","isUnion","some","b","cleanPhoneNumber","getCurrentPageFromUrl","pageParam","getPageSizeFromUrl","defaultSize","getSortByFromUrl","getAscFromUrl","splitArrayIntoChunksOfLen","len","i","getSortPreference","preferenceFor","sortFromUrl","ascFromUrl","getObjectPreferences","enumValue","artifactSortByPreference","collectionSortByPreference","sortPreference","ascEnum","artifactOrderPreference","collectionOrderPreference","ascPreference","NavigationEnum","FeedbackRequestsListing","feedbackRequestsListingContext","toggleIsCompleted","ratingFilter","toggleRatingFilter","isCompletedParam","getListing","scrollTo","val","TaxonomyApi","parentId","CollectorsApi","collectorId","ExpertsApi","expertId","labels","CuratorsApi","curatorId","ArchivistsApi","archivistId","StatisticsApi","numberOfDays","showInactiveUsers","selected","Label","isSelected","hasActions","onEdit","onActivate","AddNewLabelModal","labelName","setLabelName","addLabel","EditLabelModal","updateLabel","ActivateLabelModal","SubTypes","parent","types","onRefresh","onTypeClick","taxonomyContext","selectedType","setSelectedType","editLabel","setEditLabel","activateLabel","setActivateLabel","droppableId","provided","snapshot","isDraggingOver","flexWrap","innerRef","l","draggableId","isDragDisabled","draggableProps","dragHandleProps","RootTypes","subTypes","setSubtypes","onRootTypeClick","rootType","getTypes","isRootType","getRootTypes","element","updateParent","onDragEnd","destination","source","s","labelsContainer","Taxonomy","deleteLabel","isLabelInUse","InviteUsersModal","alreadyInvitedUsers","setAlreadyInvitedUsers","handleBlur","inviteUsers","CollectorListing","collectorListingContext","displayInviteModal","toggleInviteModal","getCollectors","SearchType","Location","Expertise","ExpertListing","expertListingContext","Default","setSearchType","getExperts","ArchivistListing","archivistListingContext","getArchivists","CuratorListing","curatorListingContext","getCurators","AccessStatusLabel","displayEditModal","setDisplayEditModal","formControl","EditUserProfileModal","formClasses","currencies","setCurrencies","countries","setCountries","states","setStates","cities","setCities","getCurrencies","getCountries","getStates","getCities","errF","errL","errW","errExp","errP","mask","updateUserProfile","ChangeCollectorTypeModal","labelClasses","AVERAGE","changeCollectorType","avatarPlaceholder","userAvatar","userName","contactDetails","editButton","editIcon","Lightbox","displayEditProfileModal","toggleDisplayEditProfileModal","displayEditTypeModal","toggleEditTypeModal","go","Stats","Bio","emptyText","requestBox","objectTitle","ActiveRequests","activeRequests","img","titleBox","ArtifactCard","COLLECTOR_ARTIFACT","ArtifactsList","collectorProfileContext","getArtifacts","getCollectorArtifacts","ChangeUserRole","currentRole","confirmMessage","changeUserRole","onSelectRole","PaymentFreePas","setValue","transform","changeUserPaymentFreePass","navigationStyles","activeItem","navItems","OBJECTS","DELETED_OBJECTS","JOBS","activeView","usePagination","setPagination","JobsApi","mapData","j","userPhotoUrl","activeJobStyles","borderLeftColor","flexRow","textHighlight","viewCollectorLink","removeJob","RemoveJobModal","useRemoveJob","ActiveJob","jobRole","job","jobOwnerId","isOld","onRemoveJob","displayRemoveConfirmModal","toggleRemoveConfirmModal","AssignedUsersList","setAssignedCurators","getAssignedArchivists","old","getAssignedUsers","getAssignedCurators","useAssignedUsersData","DeletedObjectCard","isRestored","setIsRestored","restoreObject","_res","restoreBtn","DeletedObjectsList","getCollectorDeletedArtifacts","profileBox","artifactsBox","stats","CollectorProfile","setActiveView","getCollectorProfile","PhotoLightbox","setPhotoIndex","mainSrc","LG","nextSrc","prevSrc","onCloseRequest","onMovePrevRequest","onMoveNextRequest","CropPhotoModal","globalContext","deletePhoto","addPhoto","isMyObject","displayDeleteButton","onPhotoDeleteSuccess","primaryPhoto","find","isPrimary","currentPhoto","setCurrentPhoto","carouselWidth","setCarouselWidth","lightbox","setLightbox","displayConfirmDeleteModal","currentPhotoContainer","getElementById","clientWidth","addEventListener","scrollCarousel","x","carousel","scrollBy","MD","currentPhotoIndex","prevPhoto","wasDeleted","selectCurrentPhoto","photoId","nextPhoto","ObjectCommentsApi","JSON","stringify","commentId","CommentDetails","editMode","commentText","setCommentText","authorPhotoUrl","textarea","date","authorFirstName","authorLastName","saveIcon","deleteIcon","AddComment","onAddComment","setComment","ObjectComments","userIsObjectOwner","setComments","commentIdToBeDeleted","setCommentIdToBeDeleted","isLoadingDelete","setIsLoadingDelete","getObjectComments","commentsContainer","commentIndex","initialText","editComment","emptyMessage","addComment","unshift","deleteComment","Dimensions","SectionHeader","hideSectionHeader","pushComment","Comments","isFeedbackCompleted","onDeleteComment","isExpert","myBubbleContainer","myBubble","otherBubble","Chat","currentComments","infoText","commentsBox","newComments","Feedbacks","displayFeedbackRequestMessage","activeFeedbacksComments","activeFeedbackRequestId","ObjectLabels","canDeleteLabels","setNewCategories","deletedLabelId","setDeletedLabelId","openConfirmDelete","categoryId","labelIndex","updateArtifactCategories","AboutObject","ownerMessage","onGiveFeedback","AboutCollector","requestedDate","RequestBetterPhotos","displayConfirmModal","toggleConfirmModal","requestBetterPhotos","AboutObjectShort","SectionTitle","InfoText","collectorInputLabel","collectorInput","EntryField","accurateStatement","setAccurateStatement","GiveFeedbackActions","onCancel","onSaveFeedback","onSaveDraft","isSaveDraftLoading","ApproximateAge","draftData","setProductionYearOption","setValuesByCollectorInput","productionYear","hasErrors","k","ApproximateValue","setEstimatedValueOption","selectBox","select","actionBtn","customStyles","menu","_state","multiValueRemove","AddNewLabel","disableCreate","isMulti","onAddLabel","setOnAddLabel","selectedLabels","setSelectedLabels","isValidNewOption","allowCreateWhileLoading","loadOptions","inputValue","searchTaxonomy","isArray","labelSectionName","noLabelsText","Labels","setNewMaterials","setNewStyles","setNewOrigins","setNewConditions","handleNewLabels","newCategories","thing","self","t","handleDeleteLabel","FeedbackForm","feedbackResult","saveAttempt","setSaveAttempt","expertStatement","ageInvalid","valueInvalid","setMaterials","setStyles","setOrigins","setConditions","setSaveDraftLoading","delay","savedCallback","setInterval","clearInterval","useInterval","statement","initDraft","searchForLabels","saveFeedbackDraft","saveFeedbackRequest","v","byCollectorInput","hasError","isFirstMessage","isAdmin","expertBubbleContainer","expertBubble","pre","collectorBubble","AdminAssignLabels","forAdmins","updateArtifactLabel","FeedbackRequest","feedbackRequestContext","setMorePhotosRequired","setGiveFeedback","getFeedbackRequest","_extends","assign","arguments","prototype","hasOwnProperty","call","apply","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","fill","stroke","strokeWidth","cx","cy","SvgEmptyNotifications","_ref","svgRef","titleId","xmlns","viewBox","ForwardRef","emptyTheme","Empty","computeDescription","notification","titleContainer","NotificationItem","pageTitle","itemsContainer","sectionTitle","emptySectionText","newNotificationsBox","readAllText","Notifications","new","notifications","setNotifications","getNotifications","oldNotifications","markAsRead","notificationIds","AssignJobBtn","assignJobModalStyles","searchBox","jobsContainer","jobCardStyles","JobCard","actionText","onAssign","useAvailableJobsData","notAssigned","jobs","setJobs","isEmptyList","setIsEmptyList","getAvailableJobs","getJobs","getInfoText","AssignJobModal","onJobSelect","assignJobModalClasses","assignJob","useAssignJob","totalAssigned","ActiveJobsList","refresh","hasHistory","onJobStatistics","displayHistory","setDisplayHistory","setTotalJobs","getActiveJobs","totalJob","useJobsData","jobsBox","ArchivistProfile","archivistProfileContext","refreshJobs","setRefreshJobs","displayJobsModal","toggleJobsModal","getArchivistProfile","CuratorProfile","curatorProfileContext","getCuratorProfile","AvatarEditorModal","editorRef","setEditorRef","scale","getImageScaledToCanvas","changeAvatar","ConfirmEmailChangeModal","sendConfirmChangeEmail","changeEmail","setNewEmail","isMyProfile","openAvatarEditor","toggleAvatarEditor","openChangePasswordModal","toggleChangePasswordModal","openChangeEmailModal","toggleChangeEmailModal","Mobile","System","customerSatisfaction","saveExpertType","isEditingType","setIsEditingType","currentType","setCurrentType","labelContent","AddNewLabelsModal","labelStyles","onLabelSelect","onLabelDelete","assignLabelsToExpert","addNewBtn","ExpertLabels","currentLabels","setCurrentLabels","displayAddLabelsModal","toggleAddLabelsModal","deleteExpertLabel","CompletedFeedback","CompletedFeedbacksList","expertProfileContext","getFeedbacks","getExpertCompletedFeedbacks","DeleteEmailSentModal","deleteCode","onPinInputComplete","deleteAccount","deleteAccountPaper","deleteAccountButton","DeleteAccountSegment","openDeleteAccountModal","setOpenDeleteAccountModal","deleteAccountEmailLoading","setDeleteAccountEmailLoading","setCode","sendDeleteAccountEmail","finally","labelsBox","pageContainer","ExpertProfile","setIsMyProfile","getExpertProfile","updateExpertType","setLoadingState","CollectorArtifactContext","CollectorArtifactProvider","CollectorArtifactReducer","taxonomy","taxonomyContainer","FeedbackResultModal","isOwnArtifact","isImported","importFeedback","setImportFeedback","insurance","usagePurpose","estate","sale","infoUsage","setInfoUsage","setRating","markFeedbackAsRead","newRating","activeColor","updateFeedbackResult","CollectorArtifact","collectorArtifactContext","displayFeedbackResultModal","toggleFeedbackResultModal","urlSearchParams","getCollectorAndArtifactIdFromURLSearchParams","isInvalidURLSearchParams","getArtifact","getCollectorArtifact","Statistics","setNumberOfDays","setShowInactiveUsers","downloadStatistics","getStatistics","focus","Date","User","UserByDay","TotalUsersStats","TotalUsersByDate","DashboardApp","displayPage","setDisplayPage","SvgEmptyPage","rootStyles","emptyPageStyles","goToAddObject","RemoveObjectModal","removeObject","deleteObject","useRemoveObject","setHasError","getSortingOptions","activeOption","active","EstimatedValue","Artist","getNewSortingOption","newOption","fixedHeaderStyles","headerStyles","gridContainer","actionsContainer","addNewObjectBtnStyles","hideXS","selectEmpty","SortBy","sortByValue","AddNewObjectBtn","statisticsStyles","PageHeader","sortingOptions","onSortByChange","fixedHeaderCss","mapObjects","canDeleteOrEdit","hasActiveFeedbackRequest","canBeSharedToPublicFeed","MyObjects","deleteObjectId","setDeleteObjectId","selectedSortBy","setSelectedSortBy","objects","setObjects","setTotalValue","isError","getObjects","getMyObjects","handleSortByChange","useMyObjectsData","getObjectsAsync","parseInt","preferences","addAndAssesButton","onAdd","onAddAndAssess","objectFormBox","AddObject","setDisplayErrors","era","addObject","bypassPhoto","firstPhoto","remainingPhotos","preUploadPhoto","formValues","uploadPhotos","uploadDocuments","uploadPhotosChunks","addFile","ExpertDetails","noOfExperts","expertsCount","RecommendedExperts","RecommendedExpertsModal","inProgressFeedback","MissingInformationModal","missingFields","primaryAction","secondaryAction","computeMissingFields","getStylesForCircularProgress","rotation","strokeLinecap","textSize","pathTransitionDuration","pathColor","textColor","trailColor","linearProgressBarStyles","legend","colorPrimary","barSuccess","bar","tooltip","tooltipArrow","ObjectDetailsProgressBar","percentage","ActionButtons","isOnEditMode","onToggleEditMode","onSaveObject","noOfRecommendedExperts","hasPendingAsessments","toggleEditMode","xl","newState","PaymentApi","cardStyle","base","fontSmoothing","invalid","iconColor","hidePostalCode","Payment","stripe","useStripe","elements","useElements","onRequestAssessment","submitFeedback","createPaymentIntent","handlePaymentSubmit","confirmCardPayment","payment_method","card","getElement","CardElement","requestFeedback","promise","loadStripe","RequestAssessmentModal","paymentData","setPaymentData","manageError","PhotoBox","ReorderPhotosModal","items","setItems","startIndex","endIndex","removed","reorder","direction","order","reorderPhotos","assess","handleSubmit","ObjectDetails","displayDeleteButtonInGallery","setDisplayDeleteButtonInGallery","hasEditChanges","setHasEditChanges","newDocuments","setNewDocuments","shouldLeavePage","toggleShouldLeavePage","updateLoading","setUpdateLoading","showSharedToPublicFeed","setShowSharedToPublicFeed","displayReorderPhotosModal","toggleReorderPhotosModal","loadingPhotos","setLoadingPhotos","setObjectDetails","abs","cancelEditMode","resetValues","shouldUpdateArtifact","shouldDisableEdit","isEqual","activeFeedback","saveObject","updateObject","deleteDocument","photosToDelete","includes","markPhotoAsDeleted","markDocumentAsDeleted","SharedWithMeDashboard","sharedWithMeContext","pageArtifacts","pageCollections","getSharedObjects","getSharedCollections","handlePageChangeObjects","handlePageChangeCollections","SharedBy","SharedObjectDetails","sharedObjectContext","setSharedFromCollection","sharedWithMe","getSharedObject","emptyStyles","addNewCollectionBtnStyles","CollectionApi","AddNewCollectionModal","collectionName","setCollectionName","addNewCollection","useNewCollection","AddNewCollectionBtn","displayAddNewModal","toggleAddNewModal","RemoveCollectionModal","removeCollection","useRemoveCollection","NumberOfItems","mapCollections","canShare","MyCollections","displayRemoveCollectionModal","toggleRemoveCollectionModal","getMyCollections","useMyCollectionsData","getCollectionsAsync","AddObjectToCollectionModal","selectedObjects","setSelectedObjects","objectOptions","setObjectOptions","disableCloseOnSelect","noOptionsText","getOptionSelected","_value","searchArtifactsByCollection","getObjectsOptions","renderOption","Fragment","addArtifactsToCollection","EditCollectionNameModal","updateCollection","CollectionPageHeader","changeSortByOption","collectionContext","DeleteObjectModal","removeArtifactFromCollection","EmptyCollection","MyCollectionObjects","setIsSharedWithMe","setShareCollectionId","getCollectionArtifactsAsync","getCollectionArtifacts","getCollectionItems","desc","SearchResults","searchForArtifacts","searchForCollections","searchObjects","searchCollections","profileActionsContainer","UserProfileForm","errFN","errLN","shouldDisableSaveButton","leftSection","borderRightColor","setStats","feed","publicFeedId","offersEnabled","totalCommentsCount","EmptyFeed","artifactCardStyles","artifactSubtitle","showMore","commentsStyles","addCommentStyles","isAllowedToDelete","isAllowedToEdit","onEditComment","displayFullComment","toggleFullComment","toggleConfirmDelete","setOnEditMode","onAddNewComment","hasMoreComments","setHasMoreComments","addNewComment","getMoreComments","objectOwnerId","commentCreatedById","useObjectCommentsData","mainPhoto","Details","displayFullDescription","toggleFullDescription","makeOfferStyles","formContainer","makeOfferBtnStyles","MakeAnOfferButton","MakeAnOffer","amount","isMakeOfferLoading","makeOffer","postCommunityFeedOffer","useMakeOffer","displayMakeAnOfferModal","toggleMakeAnOfferModal","CommunityFeed","feedData","setFeedData","getFeedData","getCommunityFeedObjects","useFeedData","widgetsContainer","objectsContainer","objectsListStyles","objectsList","objectStyles","viewObjectBtn","viewObjectIcon","removeFromFeedBtn","RemoveFeedObjectModal","removeObjectFromFeed","useRemoveFeedObject","reportType","onObjectRemove","isRemoveObjectFeedModalOpen","toggleRemoveObjectFeedModal","isRemovedFromFeed","setIsRemovedFromFeed","SharedOnCommunityFeed","MissingDetails","ListOfObjects","MissingPhotos","widgetStyles","borderWidth","flexBox","toggleListBtn","selectedBtn","expandIcon","circularProgressBox","Widget","widgetClasses","buildStyles","Reporting","selectedReportType","setSelectedReportType","isObjectDataLoading","objectsData","setObjectsData","missingPhotos","missingDetails","sharedOnCommunityFeed","widgetData","setWidgetDataData","getObjectsData","getArtifactsByStatistics","getWidgetData","getReportingStatistics","onePhotoCount","onePhotoPercent","missingDetailsCount","missingDetailsPercent","sharedOnPublicFeedCount","sharedOnPublicFeedPercent","onRemoveFromCommunityFeed","useReportingData","selectReportType","CollectorApp","PrivacyPolicy","rel","data-cfemail","TermsAndConditions","OurMission","seeCollectors","AssignedCollectors","toggleDisplayJobsModal","imgSrc","HelperApp","getJobIdFromUrl","helperToolbarDarkTheme","helperToolbarLightTheme","helperToolbarClasses","selectCollectorBox","selectCollectorLabel","selectFormControl","navigationClasses","activeLinkColor","selectedCollector","HelperToolbar","setSelectedCollector","AppRouting","CssBaseline","App","check","navigator","userAgent","vendor","isMobileBrowser","sessionStorage","ReactDOM"],"mappings":"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","file":"static/js/main.04f18287.chunk.js","sourcesContent":["export * from \"./enums\";\nexport * from \"./interfaces\";\n","export * from \"./reg-exp\";\nexport * from \"./app-routes\";\nexport * from \"./artifact-value.helper\";\nexport * from \"./file-size.helper\";\nexport * from \"./format-currency\";\nexport * from \"./storage-helper\";\nexport * from \"./upload-files-helper\";\nexport * from \"./validators\";\n","import axios from 'axios';\n\nimport {getJobIdFromStorage, getRefreshToken, getToken, setToken} from \"core/helpers/storage-helper\";\n\nconst axiosInstance = axios.create({\n baseURL: `https://artifact.li/api/`,\n});\n\naxiosInstance.interceptors.request.use((config) => {\n if(config.url?.indexOf('collectors/get/assignedTo') === -1) {\n config.params = {...config.params, userId: getJobIdFromStorage()}\n }\n return config;\n// eslint-disable-next-line @typescript-eslint/promise-function-async\n}, (error: any) => {\n return Promise.reject(error);\n});\n\naxiosInstance.interceptors.response.use(\n (response) => {\n return response;\n },\n async (error) => {\n const originalRequest = error.config;\n\n console.log(error?.response)\n if(error?.response?.data?.message === 'UserNotActive' && error?.response?.config?.url !== 'users/login') {\n localStorage.clear();\n //location.reload();\n return;\n }\n\n if ((error?.response?.status === 401 ) && Boolean(getRefreshToken())) {\n return axios\n .create({\n baseURL: `https://artifact.li/api/`,\n headers: { Authorization: `Bearer ${getToken()}` },\n })\n .put(`user/token/refresh`, {token: getRefreshToken()})\n // eslint-disable-next-line @typescript-eslint/promise-function-async\n .then((response) => {\n setToken(response.data.token, response.data.refreshToken);\n\n axiosInstance.defaults.headers.common['Authorization'] = `Bearer ${getToken()}`;\n originalRequest.headers['Authorization'] = `Bearer ${getToken()}`;\n return axiosInstance(originalRequest);\n })\n .catch((error: any) => {\n console.error(error);\n window.localStorage.clear();\n window.location.replace(\"/\");\n });\n }\n return Promise.reject(error);\n },\n);\n\nexport default axiosInstance;\n","import AXIOS from './axios-config';\nimport { getToken } from \"../../helpers/storage-helper\";\n\nexport async function _get(url: string): Promise {\n AXIOS.defaults.headers.common['Authorization'] = `Bearer ${getToken()}`;\n return AXIOS.get(url);\n}\n\nexport async function _put(url: string, payload: unknown = null, headers: unknown = null): Promise {\n AXIOS.defaults.headers.common['Authorization'] = `Bearer ${getToken()}`;\n return headers ? AXIOS.put(url, payload, {headers}) : AXIOS.put(url, payload);\n}\n\nexport async function _post(url: string, payload: unknown = null, headers: unknown = null): Promise {\n AXIOS.defaults.headers.common['Authorization'] = `Bearer ${getToken()}`;\n return headers ? AXIOS.post(url, payload, {headers}) : AXIOS.post(url, payload);\n}\n\nexport async function _patch(url: string, payload: unknown = null, headers: unknown = null): Promise {\n AXIOS.defaults.headers.common['Authorization'] = `Bearer ${getToken()}`;\n return headers ? AXIOS.patch(url, payload, {headers}) : AXIOS.patch(url, payload);\n}\n\nexport async function _delete(url: string, payload: any = null): Promise {\n AXIOS.defaults.headers.common['Authorization'] = `Bearer ${getToken()}`;\n return AXIOS.delete(url, {data: payload});\n}\n","export * from './user.context';\nexport * from './user.reducer';\nexport * from './user.interfaces';\n","import {UserRoles} from \"../enums\";\n\nexport enum AppRoutes {\n BASE = '',\n PRIVACY_POLICY = '/privacy-policy',\n TERMS_AND_CONDITIONS = '/terms-and-conditions',\n OUR_MISSION = '/our-mission',\n SIGN_IN = '/sign-in',\n CREATE_ACCOUNT = '/create-account',\n NOTIFICATIONS = '/collector/notifications',\n COLLECTOR_PROFILE = '/collector/my-profile',\n SEARCH_RESULTS = '/collector/search-results',\n MY_OBJECTS = '/collector/my-objects',\n MY_COLLECTIONS = '/collector/my-collections',\n COLLECTION = '/collector/collection',\n OBJECT = '/collector/object',\n ADD_OBJECT = '/collector/add-object',\n SHARED_WITH_ME = '/collector/shared-with-me',\n SHARED_OBJECT = '/collector/shared/object',\n TUTORIAL = '/help',\n PUBLIC_FEED = '/collector/community-feed',\n REPORTING = '/collector/reporting',\n\n FEEDBACK_REQUESTS = '/dashboard/feedback-requests',\n FEEDBACK_REQUEST = '/dashboard/feedback-requests/details',\n COLLECTOR_LISTING = '/dashboard/collectors',\n COLLECTOR_ARTIFACT = '/dashboard/collector/artifact',\n EXPERT_LISTING = '/dashboard/experts',\n ARCHIVIST_LISTING = '/dashboard/archivists',\n CURATOR_LISTING = '/dashboard/curators',\n TAXONOMY = '/dashboard/taxonomy',\n ADMIN_COLLECTOR_PROFILE = '/dashboard/collectors/profile',\n ADMIN_ARCHIVIST_PROFILE = '/dashboard/archivists/profile',\n ADMIN_CURATOR_PROFILE = '/dashboard/curators/profile',\n ADMIN_EXPERT_PROFILE = '/dashboard/experts/profile',\n DASHBOARD_NOTIFICATIONS = '/dashboard/notifications',\n ADMIN_STATISTICS = '/dashboard/statistics',\n\n ASSIGNED_COLLECTORS_INDEX = '/helper/assigned-collectors',\n}\n\nexport function getMyObjectsRoute(role: string|undefined): string {\n switch(role) {\n case UserRoles.COLLECTOR:\n return AppRoutes.MY_OBJECTS;\n case UserRoles.ARCHIVIST:\n return AppRoutes.MY_OBJECTS;\n case UserRoles.CURATOR:\n return AppRoutes.MY_OBJECTS;\n default:\n return '';\n }\n}\n","export * from \"./shared\";\nexport * from \"./consumer\";\nexport * from \"./user\";\n","export * from './user.api';\nexport * from './user.interfaces';\nexport * from './notifications.api';\nexport * from './register.api';\n","import * as api from './_utils/api';\n\nexport class CommunityFeedApi {\n\n static async shareObjectToCommunityFeed(objectId: number, enableOffers: boolean): Promise {\n return api._post(\n `publicFeed/shareArtifact/${objectId}?offersEnabled=${enableOffers}`,\n {message: ''}\n );\n }\n\n static async getCommunityFeedObjects(page:number, size: number): Promise {\n return api._post(`artifact/get?page=${page}&size=${size}`, {publicFeed: true});\n }\n\n static async removeObjectFromCommunityFeed(id: number): Promise {\n return api._delete(`publicFeed/removeArtifact/${id}`);\n }\n\n static async postCommunityFeedOffer(id: number, payload: unknown): Promise {\n return api._post(`publicFeed/makeOffer/${id}`, payload);\n }\n}\n","import * as api from './_utils/api';\n\nexport class ReportingApi {\n\n static async getArtifactsByStatistics(page:number, size: number, type: string): Promise {\n return api._post(`artifact/get?page=${page}&size=${size}`, {statistics: type});\n }\n\n static async getReportingStatistics(): Promise {\n return api._get(`artifact/getStatistics`);\n }\n}\n","import {EMAIL} from \"./reg-exp\";\n\nexport function validateEmail(email: string): boolean {\n return EMAIL.test(email);\n}\n\nexport function passwordStrength(password: string): any {\n const result = {\n valid: true,\n length: {\n valid: true,\n message: '',\n },\n digits: {\n valid: true,\n message: '',\n },\n uppercase: {\n valid: true,\n message: '',\n },\n lowercase: {\n valid: true,\n message: '',\n },\n specialChars: {\n valid: true,\n message: '',\n },\n }\n\n if(!password?.length) {\n return result;\n }\n\n if(password.length < 8) {\n result.length.valid = false;\n result.length.message = 'Your password must contain at least 8 characters.';\n result.valid = false;\n }\n\n if(!(/[0-9]/.test(password))) {\n result.digits.valid = false;\n result.digits.message = 'Your password must contain at least 1 digit.';\n result.valid = false;\n }\n\n if(!(/[A-Z]/.test(password))) {\n result.uppercase.valid = false;\n result.uppercase.message = 'Your password must contain at least 1 uppercase character.';\n result.valid = false;\n }\n\n if(!(/[a-z]/.test(password))) {\n result.lowercase.valid = false;\n result.lowercase.message = 'Your password must contain at least 1 lowercase character.';\n result.valid = false;\n }\n if(!(/[`!@#$%^&*()_+\\-=[\\]{};':\"\\\\|,.<>/?~]/.test(password))) {\n result.specialChars.valid = false;\n result.specialChars.message = 'Your password must contain at least 1 special character (eg. !, @, #).';\n result.valid = false;\n }\n\n return result;\n}\n","export function getPhotoUrl(photo: string | null | undefined, size: string): string | null {\n if(!photo) {\n return null;\n }\n return photo + size;\n}\n","const TOKEN_KEY = 'art_token';\nconst REFRESH_TOKEN_KEY = 'art_ref_token';\nconst ROLE = 'art_role';\nconst JOB_ID = 'jobId';\n\nexport function setToken(token: string, refreshToken: string): void {\n localStorage.setItem(TOKEN_KEY, token);\n localStorage.setItem(REFRESH_TOKEN_KEY, refreshToken);\n}\n\nexport function setRole(role: string): void {\n localStorage.setItem(ROLE, role);\n}\n\nexport function getRole(): string {\n return localStorage.getItem(ROLE) || '';\n}\n\nexport function getToken(): string|null {\n return localStorage.getItem(TOKEN_KEY);\n}\n\nexport function getRefreshToken(): string|null {\n return localStorage.getItem(REFRESH_TOKEN_KEY);\n}\n\nexport function clearLocalStorage(): void {\n localStorage.removeItem(TOKEN_KEY);\n localStorage.removeItem(REFRESH_TOKEN_KEY);\n localStorage.removeItem(ROLE);\n localStorage.removeItem(JOB_ID);\n}\n\nexport function setJobIdInStorage(jobId: number): void {\n localStorage.setItem(JOB_ID, jobId.toString());\n}\n\nexport function getJobIdFromStorage(): string|null {\n return localStorage.getItem(JOB_ID);\n}\n","export * from \"./helpers\";\nexport * from \"./enums\";\n","import * as api from \"../_utils/api\";\n\nconst resourceUrl = 'common';\n\nexport interface ICurrency {\n id: number;\n code: string;\n name: string;\n namePlural: string;\n symbol: string;\n symbolNative: string;\n}\n\nexport interface ICountry {\n id: number;\n name: string;\n}\n\nexport interface ICity {\n id: number;\n name: string;\n}\n\nexport interface IState {\n id: number;\n name: string;\n}\n\nexport class CommonApi {\n\n static async getCategoriesByText(text: string): Promise {\n return api._post(\n `${resourceUrl}/Category/Search?type=Category`,\n text,\n {'Content-Type': \"application/json-patch+json\"}\n )\n }\n\n static async searchTaxonomy(searchBy: string, type: string): Promise {\n return api._post(\n `${resourceUrl}/Category/Search?type=${type}`,\n searchBy,\n {'Content-Type': \"application/json-patch+json\"}\n )\n }\n\n static async getCurrencies(): Promise {\n return api._get('common/currency');\n }\n\n static async getCountries(): Promise {\n return api._get('common/country');\n }\n\n static async getStates(countryId: number): Promise {\n return api._get(`common/state?countryId=${countryId}`);\n }\n\n static async getCities(stateId: number): Promise {\n return api._get(`common/city?stateId=${stateId}`);\n }\n\n static async sendContactUsEmail(payload: unknown): Promise {\n return api._post(`common/review`, payload);\n }\n}\n","export * from \"./object-details.context\";\nexport * from \"./object-details.reducer\";\nexport * from './object-details.interfaces';\n","export function formatUSD(value: number|null): string {\n if(value === null || value === undefined) {\n return 'unknown';\n }\n const result = new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format(value);\n return `$${ result.replace('$', '')}`;\n}\n","import * as api from '../_utils/api';\nimport {getJobIdFromStorage} from \"../../helpers\";\n\nexport class CollectorApi {\n\n static async shareArtifact(artifactId: number, emails: string[], message: string): Promise {\n return api._post(`share/shareArtifact/${artifactId}`, {message, emails});\n }\n\n static async searchArtifactsByCollection(searchInput: string, collectionId: number): Promise {\n if(getJobIdFromStorage()) {\n return api._post(\n `artifact/searchByCollection/${collectionId}?userId=${getJobIdFromStorage()}`,\n searchInput,\n {'Content-Type': \"application/json-patch+json\"}\n )\n }\n\n return api._post(\n `artifact/searchByCollection/${collectionId}`,\n searchInput,\n {'Content-Type': \"application/json-patch+json\"}\n )\n }\n\n static async removeArtifactFromCollection(artifactId: number, collectionId: number): Promise {\n return api._put(`collection/removeArtifact/${artifactId}/fromCollection/${collectionId}`);\n }\n\n static async requestFeedback(artifactId: number, message: string, paymentClientSecret: string): Promise {\n return api._post(`feedback/createRequest/${artifactId}`, {message, paymentClientSecret});\n }\n\n static async updateRegisterPurpose(registerPurpose: string[]): Promise {\n return api._put(`collectors/updateRegisterPurpose`, {registerPurpose});\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n static async updateFeedbackResult(feedbackId: number, payload: any): Promise {\n if(payload.rating === 0) {\n payload.rating = null;\n }\n return api._put(`feedback/updateFeedback/${feedbackId}`, payload);\n }\n\n static async reorderPhotos(payload: unknown): Promise {\n return api._put(`photo/changeOrder`, payload);\n }\n}\n","import * as api from '../_utils/api';\n\nexport class CollectorCollectionApi {\n\n static async getCollections(sortBy: string, asc: boolean|undefined, page?: number, size?: number): Promise {\n const payload = {\n shared: false,\n }\n return api._post(`collection/get?page=${page}&size=${size}&desc=${!asc}&orderBy=${sortBy}`, payload);\n }\n\n static async getCollectionItems(\n collectionId: number, page: number, size: number, sortBy: string, asc: boolean|undefined,\n isSharedWithMe: boolean\n ): Promise {\n if(isSharedWithMe) {\n // eslint-disable-next-line max-len\n return api._get(`collection/get/${collectionId}?page=${page}&size=${size}&desc=${!asc}&orderBy=${sortBy}`);\n }\n return api._get(`collection/get/${collectionId}?page=${page}&size=${size}&desc=${!asc}&orderBy=${sortBy}`);\n }\n\n static async addArtifactsToCollection(collectionId: number, artifacts: number[]): Promise {\n return api._post(`collection/addArtifactsToCollection/${collectionId}`, artifacts);\n }\n\n static async updateCollection(collectionId: number, payload: unknown): Promise {\n return api._put(`collection/update/${collectionId}`, payload);\n }\n\n static async shareCollection(collectionId: number, emails: string[], message: string): Promise {\n return api._post(`share/shareCollection/${collectionId}`, {message, emails});\n }\n}\n","export * from \"./taxonomy.context\";\nexport * from \"./taxonomy.interfaces\";\nexport * from \"./taxonomy.reducer\";\n","export * from \"./collector-profile.context\";\nexport * from \"./collector-profile.interfaces\";\nexport * from \"./collector-profile.reducer\";\n","export * from \"./global.context\";\nexport * from \"./global.reducer\";\nexport * from \"./global.interfaces\";\n","export * from \"./collection.context\";\nexport * from \"./collection.interfaces\";\nexport * from \"./collection.reducer\";\n","import * as api from '../_utils/api';\n\nexport class CollectorShareApi {\n\n static async getSharedObjects(size: number, page: number): Promise {\n return api._post(`artifact/get?page=${page}&size=${size}`, {shared: true})\n }\n\n static async getSharedObject(artifactId: number, collectionShareId = ''): Promise {\n if(collectionShareId) {\n return api._get(`artifact/get/${artifactId}`);\n }\n return api._get(`artifact/get/${artifactId}`);\n }\n\n static async getSharedCollections(size: number, page: number): Promise {\n return api._post(`collection/get?page=${page}&size=${size}`, {shared: true})\n }\n}\n","export * from \"./expert-profile.context\";\nexport * from \"./expert-profile.interfaces\";\nexport * from \"./expert-profile.reducer\";\n","import { formatUSD } from \"./format-currency\";\n\nexport function getEstimatedDisplayValue(exactValue: number|null, min: number|null, max: number|null): string {\n if(exactValue !== null) {\n return formatUSD(exactValue);\n }\n\n if(min !== null && max !== null) {\n return `${formatUSD(min)} - ${formatUSD(max)}`\n }\n\n return 'unknown';\n}\n","export * from \"./search-results.context\";\nexport * from \"./search-results.interfaces\";\nexport * from \"./search-results.reducer\";\n","export * from \"./feedback-requests-listing.context\";\nexport * from \"./feedback-requests-listing.interfaces\";\nexport * from \"./feedback-requests-listing.reducer\";\n","export * from \"./feedback.context\";\nexport * from \"./feedback.interfaces\";\nexport * from \"./feedback.reducer\";\n","// eslint-disable-next-line max-len\nexport const EMAIL = new RegExp(/^(([^<>()[\\]\\\\.,;:\\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// eslint-disable-next-line max-len\nexport const WEBSITE = new RegExp(/^(http:\\/\\/www\\.|https:\\/\\/www\\.|http:\\/\\/|https:\\/\\/)?[a-z0-9]+([-.]{1}[a-z0-9]+)*\\.[a-z]{2,5}(:[0-9]{1,5})?(\\/.*)?$/);\n\n","// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function base64ToFile(dataurl: any, filename: string): File {\n const arr = dataurl.split(',');\n const mime = arr[0].match(/:(.*?);/)[1];\n const bstr = atob(arr[1]);\n let n = bstr.length;\n const u8arr = new Uint8Array(n);\n while (n--) {\n u8arr[n] = bstr.charCodeAt(n);\n }\n return new File([u8arr], filename, { type: mime });\n}\n","import { IUserState } from \"./user.interfaces\";\nimport { IAction } from \"../interfaces\";\nimport {clearLocalStorage, setRole, setToken} from \"../../helpers\";\n\nexport default (state: IUserState, action: IAction): IUserState => {\n switch(action.type) {\n case 'SET_USER':\n if(action.payload.token !== undefined) {\n setToken(action.payload.token, action.payload.refreshToken);\n }\n setRole(action.payload.roles);\n return {\n ...state,\n newNotifications: action.payload.newNotifications,\n user: {\n firstName: action.payload.firstName,\n lastName: action.payload.lastName,\n email: action.payload.email,\n title: action.payload.title,\n phoneNumber: action.payload.phoneNumber,\n description: action.payload.description,\n address: action.payload.address,\n country: action.payload.country,\n state: action.payload.state,\n city: action.payload.city,\n organization: action.payload.organization,\n website: action.payload.website,\n currency: action.payload.currency,\n role: action.payload.roles,\n id: action.payload.id,\n photoUrl: action.payload.photoUrl,\n registerType: action.payload.registerType,\n paymentFreePass: action.payload.paymentFreePass || false,\n },\n lightTheme: localStorage.getItem('theme') === 'light',\n };\n case 'SET_PROFILE_PIC':\n return {\n ...state,\n user: {\n id: state.user?.id || 0,\n firstName: state.user?.firstName || '',\n lastName: state.user?.lastName || '',\n role: state.user?.role || '',\n email: state.user?.email || '',\n title: state.user?.title || '',\n phoneNumber: state.user?.phoneNumber || '',\n description: state.user?.description || '',\n address: state.user?.address || '',\n country: state.user?.country || null,\n state: state.user?.state || null,\n city: state.user?.city || null,\n organization: state.user?.organization || '',\n website: state.user?.website || '',\n currency: state.user?.currency || null,\n registerType: state.user?.registerType || '',\n paymentFreePass: state.user?.paymentFreePass || false,\n photoUrl: action.payload\n }\n }\n case 'LOGOUT':\n clearLocalStorage();\n return {\n ...state,\n user: null,\n lightTheme: false,\n }\n case 'SET_HAS_NEW_NOTIFICATIONS':\n return {\n ...state,\n newNotifications: action.payload,\n }\n case 'SET_THEME':\n if(action.payload.save) {\n localStorage.setItem('theme', action.payload.value === true ? 'light' : 'dark')\n }\n return {\n ...state,\n lightTheme: action.payload.value,\n }\n default:\n return state;\n }\n}\n","import { IAction } from '../../interfaces';\nimport { IObjectDetailsState } from './object-details.interfaces';\n\nexport default (state: IObjectDetailsState, action: IAction): IObjectDetailsState => {\n switch (action.type) {\n case 'SET_ARTIFACT':\n return {\n ...state,\n artifact: {\n id: action.payload.artifact.id,\n title: action.payload.artifact.title,\n description: action.payload.artifact.description,\n exactValue: action.payload.artifact.exactValue,\n minimumValue: action.payload.artifact.minimumValue,\n maximumValue: action.payload.artifact.maximumValue,\n width: action.payload.artifact.width,\n height: action.payload.artifact.height,\n depth: action.payload.artifact.depth,\n weight: action.payload.artifact.weight,\n exactProductionYear: action.payload.artifact.exactProductionYear,\n lowerProductionYear: action.payload.artifact.lowerProductionYear,\n upperProductionYear: action.payload.artifact.upperProductionYear,\n origin: action.payload.artifact.origin,\n material: action.payload.artifact.material,\n style: action.payload.artifact.style,\n artist: action.payload.artifact.artist,\n artistBio: action.payload.artifact.artistBio,\n condition: action.payload.artifact.condition,\n createdDate: action.payload.artifact.dateCreated,\n detailsPercent: Math.round(action.payload.artifact.detailsPercent || 0),\n isFeedbackImported: action.payload.artifact.isFeedbackImported,\n isSharedToPublicFeed: action.payload.artifact.isSharedToPublicFeed,\n fileOcrContent: action.payload.artifact.fileOcrContent,\n createdBy: action.payload.artifact.createdBy,\n paymentFreePass: action.payload.artifact.paymentFreePass,\n documents: !action.payload.justObject\n ? action.payload.artifact.documents || []\n : state.artifact.documents,\n feedbackRequests: action.payload.artifact.feedbackRequests || [],\n experts: action.payload.artifact.experts || [],\n photos: !action.payload.justObject ? action.payload.artifact.photos || [] : state.artifact.photos,\n categories: action.payload.artifact.categories || [],\n materials: action.payload.artifact.materials || [],\n conditions: action.payload.artifact.conditions || [],\n eras: action.payload.artifact.eras || [],\n origins: action.payload.artifact.origins || [],\n styles: action.payload.artifact.styles || [],\n collections: action.payload.artifact.collections || [],\n feedbacks: action.payload.artifact.feedbacks || [],\n artistImageUrl: action.payload.artifact.artistImageUrl,\n },\n };\n case 'SET_TITLE_AND_DESCRIPTION':\n return {\n ...state,\n artifact: {\n ...state.artifact,\n title: action.payload.title,\n description: action.payload.description,\n },\n };\n case 'SET_CATEGORIES':\n return {\n ...state,\n artifact: {\n ...state.artifact,\n categories: action.payload,\n },\n };\n case 'TOGGLE_CONF_DELETE_MODAL':\n return {\n ...state,\n modals: {\n ...state.modals,\n displayConfirmDelete: action.payload,\n },\n };\n case 'TOGGLE_UNSAVED_CHANGES_MODAL':\n return {\n ...state,\n modals: {\n ...state.modals,\n displayUnsavedChangesModal: action.payload,\n },\n };\n case 'TOGGLE_SHARE_OBJECT_OPTIONS_MODAL':\n return {\n ...state,\n modals: {\n ...state.modals,\n displayShareObjectOptionsModal: action.payload,\n },\n };\n case 'TOGGLE_SHARE_OBJECT_PERSONS_MODAL':\n return {\n ...state,\n modals: {\n ...state.modals,\n displayShareObjectToPersonsModal: action.payload,\n },\n };\n case 'TOGGLE_SHARE_OBJECT_FEED_MODAL':\n return {\n ...state,\n modals: {\n ...state.modals,\n displayShareObjectToFeedModal: action.payload,\n },\n };\n case 'TOGGLE_MISSING_INFO_MODAL':\n return {\n ...state,\n modals: {\n ...state.modals,\n displayMissingInfoModal: action.payload,\n },\n };\n case 'TOGGLE_REQUEST_ASSESSMENT_MODAL':\n return {\n ...state,\n modals: {\n ...state.modals,\n displayRequestAssessmentModal: action.payload,\n },\n };\n case 'TOGGLE_RECOMMENDED_EXPERTS_MODAL':\n return {\n ...state,\n modals: {\n ...state.modals,\n displayRecommendedExpertsModal: action.payload,\n },\n };\n case 'SET_DELETE_LOADER':\n return {\n ...state,\n loader: {\n ...state.loader,\n delete: action.payload,\n },\n };\n case 'SET_EDIT_MODE':\n return {\n ...state,\n onEditMode: action.payload,\n };\n case 'ADD_NEW_PHOTOS':\n return {\n ...state,\n artifact: {\n ...state.artifact,\n photos: state.artifact.photos.concat(action.payload),\n },\n };\n case 'ADD_NEW_DOCUMENTS':\n return {\n ...state,\n artifact: {\n ...state.artifact,\n documents: state.artifact.documents.concat(action.payload),\n },\n };\n case 'TOGGLE_UNSAVED_PHOTOS_MODAL':\n return {\n ...state,\n modals: {\n ...state.modals,\n displayUnsavedPhotosModal: action.payload,\n },\n };\n case 'SET_PHOTOS':\n return {\n ...state,\n artifact: {\n ...state.artifact,\n photos: action.payload,\n },\n };\n default:\n return state;\n }\n};\n","import { IAction } from \"../interfaces\";\nimport {ISearchResultsState} from \"./search-results.interfaces\";\n\nexport default (state: ISearchResultsState, action: IAction): ISearchResultsState => {\n switch(action.type) {\n case 'SET_ARTIFACTS_RESULT': {\n return {\n ...state,\n artifacts: action.payload?.data || [],\n paginationArtifacts: {\n page: state.paginationArtifacts.page,\n size: state.paginationArtifacts.size,\n totalCount: action.payload?.totalCount,\n numberOfPages: Math.ceil(action.payload.totalCount/state.paginationArtifacts.size),\n\n },\n }\n }\n case 'SET_COLLECTIONS_RESULT': {\n return {\n ...state,\n collections: action.payload?.data || [],\n paginationCollections: {\n page: state.paginationCollections.page,\n size: state.paginationCollections.size,\n totalCount: action.payload?.totalCount,\n numberOfPages: Math.ceil(action.payload.totalCount/state.paginationCollections.size),\n },\n }\n }\n case 'SET_SEARCH_BY': {\n return {\n ...state,\n searchBy: action.payload\n }\n }\n case 'CLEAR_SEARCH_RESULTS': {\n return {\n ...state,\n artifacts: [],\n collections: [],\n }\n }\n case 'SET_CURRENT_PAGE': {\n if(action.payload.scope === 'artifacts') {\n return {\n ...state,\n paginationArtifacts: {\n ...state.paginationArtifacts,\n page: action.payload.page\n }\n }\n }\n\n if(action.payload.scope === 'collections') {\n return {\n ...state,\n paginationCollections: {\n ...state.paginationCollections,\n page: action.payload.page\n }\n }\n }\n\n return state;\n }\n default:\n return state;\n }\n}\n","import * as api from './_utils/api';\nimport { base64ToFile } from '../helpers';\nimport { ICategory } from '../context/consumer/objectDetails';\n\nexport class ObjectApi {\n static async getMyObjects(\n page: number,\n size: number,\n sortBy: string,\n asc: boolean | undefined,\n jobId = -1,\n ): Promise {\n if (jobId === -1) {\n return api._post(`artifact/get?page=${page}&size=${size}&desc=${!asc}&orderBy=${sortBy}`, {});\n }\n return api._post(`artifact/get?page=${page}&size=${size}&desc=${!asc}&orderBy=${sortBy}`, { userId: jobId });\n }\n\n static async getArtifact(artifactId: number): Promise {\n return api._get(`artifact/get/${artifactId}`);\n }\n\n static async deleteObject(objectId: number): Promise {\n return api._delete(`artifact/delete/${objectId}`);\n }\n\n static async searchObjects(page: number, size: number, searchBy: string, jobId = -1): Promise {\n if (jobId === -1) {\n return api._post(`artifact/get?page=${page}&size=${size}`, { search: searchBy });\n }\n return api._post(`artifact/get?page=${page}&size=${size}`, { userId: jobId, search: searchBy });\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n static async addObject(payload: any): Promise {\n const body: any = { ...payload };\n body.exactProductionYear =\n body.exactProductionYear !== null\n ? body.exactYearNotation === 'BC'\n ? body.exactProductionYear * -1\n : body.exactProductionYear\n : null;\n body.lowerProductionYear =\n body.lowerProductionYear !== null\n ? body.lowerYearNotation === 'BC'\n ? body.lowerProductionYear * -1\n : body.lowerProductionYear\n : null;\n body.upperProductionYear =\n body.upperProductionYear !== null\n ? body.upperYearNotation === 'BC'\n ? body.upperProductionYear * -1\n : body.upperProductionYear\n : null;\n body.categories = payload.categories.map((c: any) => c.id);\n body.collections = payload.collections.map((c: any) => c.id);\n\n Object.keys(body).map((key) => {\n if (typeof body[key] === 'string') {\n body[key] = body[key].trim();\n }\n });\n\n return api._post(`artifact/create`, body);\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n static async updateObject(payload: any, artifactId: number): Promise {\n const body: any = { ...payload };\n body.exactProductionYear =\n body.exactProductionYear !== null\n ? body.exactYearNotation === 'BC'\n ? body.exactProductionYear * -1\n : body.exactProductionYear\n : null;\n body.lowerProductionYear =\n body.lowerProductionYear !== null\n ? body.lowerYearNotation === 'BC'\n ? body.lowerProductionYear * -1\n : body.lowerProductionYear\n : null;\n body.upperProductionYear =\n body.upperProductionYear !== null\n ? body.upperYearNotation === 'BC'\n ? body.upperProductionYear * -1\n : body.upperProductionYear\n : null;\n body.collections = payload.collections.map((c: ICategory) => c.id);\n\n Object.keys(body).map((key) => {\n if (typeof body[key] === 'string') {\n body[key] = body[key].trim();\n }\n });\n\n return api._put(`artifact/update/${artifactId}`, body);\n }\n\n static async updateArtifactCategories(payload: number[], artifactId: number): Promise {\n return api._put(`artifact/update/${artifactId}`, { categories: payload });\n }\n\n static async addPhoto(objectId: number, files: string[], batch: number): Promise {\n const formData = new FormData();\n files.forEach((file: string, index: number) => {\n const f = base64ToFile(file, `photo_${objectId}_${index}_${batch}.png`);\n formData.append('photos', f);\n });\n return api._post(`photo/create/${objectId}`, formData);\n }\n\n static async deletePhoto(photosId: number[]): Promise {\n return api._delete(`photo/delete`, photosId);\n }\n\n static async addFile(artifactId: number, files: File[]): Promise {\n const formData = new FormData();\n files.forEach((file: File) => {\n formData.append('documents', file);\n });\n return api._post(`document/create/${artifactId}`, formData);\n }\n\n static async deleteDocument(documentId: number): Promise {\n return api._delete(`document/delete/${documentId}`);\n }\n\n static async updateArtifactLabel(artifactId: number, labelId: number): Promise {\n return api._put(`label/updateArtifactLabel/${artifactId}/${labelId}`);\n }\n\n static async preUploadPhoto(photo: string): Promise {\n const formData = new FormData();\n const f = base64ToFile(photo, `photo.png`);\n formData.append('file', f);\n return api._post(`File/Upload-Photo`, formData);\n }\n\n static async getObjectPreferences(userId = -1): Promise {\n return api._get(userId !== -1 ? `Collectors/Preference/Get?userId=${userId}` : 'Collectors/Preference/Get');\n }\n}\n","import {IFeedbackRequestsListingState} from \"./feedback-requests-listing.interfaces\";\nimport {IAction} from \"../../interfaces\";\n\nexport default (state: IFeedbackRequestsListingState, action: IAction): IFeedbackRequestsListingState => {\n switch(action.type) {\n case 'SET_DATA':\n return {\n ...state,\n data: action.payload.data,\n isLoading: false,\n displayEmptyPage: action.payload.data?.length === 0,\n statistics: {\n totalRequests: action.payload.totalCount\n },\n pagination: {\n page: state.pagination.page,\n size: state.pagination.size,\n totalCount: action.payload.totalCount,\n numberOfPages: Math.ceil(action.payload.totalCount/state.pagination.size),\n },\n }\n case 'SET_CURRENT_PAGE':\n return {\n ...state,\n isLoading: false,\n pagination: {\n ...state.pagination,\n page: action.payload,\n }\n }\n case 'SET_LOADING':\n return {\n ...state,\n isLoading: action.payload\n }\n default:\n return state;\n }\n}\n","import {ITaxonomyState} from \"./taxonomy.interfaces\";\nimport {IAction} from \"../../interfaces\";\n\nexport default (state: ITaxonomyState, action: IAction): ITaxonomyState => {\n switch(action.type) {\n case 'SET_ROOT_TYPES':\n return {\n ...state,\n rootTypes: action.payload,\n }\n case 'SELECT_ROOT_TYPE':\n return {\n ...state,\n selectedRootType: action.payload,\n }\n case 'SET_SELECTED_FOR_DELETE_ID':\n return {\n ...state,\n selectedForDeleteId: action.payload,\n }\n case 'PUSH_DELETED_LABEL':\n // eslint-disable-next-line no-case-declarations\n const deleted = state.deletedLabels;\n deleted.push(action.payload);\n return {\n ...state,\n deletedLabels: deleted,\n }\n case 'TOGGLE_ADD_LABEL_MODAL':\n return {\n ...state,\n displayAddLabelModal: action.payload,\n }\n default:\n return state;\n }\n}\n","import { ICollectorListingState } from \"./collector-listing.interfaces\";\nimport { IAction } from \"../../interfaces\";\n\nexport default (state: ICollectorListingState, action: IAction): ICollectorListingState => {\n switch(action.type) {\n case 'SET_COLLECTORS':\n return {\n ...state,\n collectors: action.payload.data,\n isLoading: false,\n displayEmptyPage: action.payload.data?.length === 0,\n statistics: {\n totalUsers: action.payload.totalCount,\n },\n pagination: {\n page: state.pagination.page,\n size: state.pagination.size,\n totalCount: action.payload.totalCount,\n numberOfPages: Math.ceil(action.payload.totalCount/state.pagination.size),\n },\n };\n case 'SET_CURRENT_PAGE':\n return {\n ...state,\n isLoading: false,\n pagination: {\n ...state.pagination,\n page: action.payload,\n }\n }\n case 'SET_LOADING':\n return {\n ...state,\n isLoading: action.payload\n }\n default:\n return state;\n }\n}\n","import { IAction } from \"../../interfaces\";\nimport {IExpertListingState} from \"./expert-listing.interfaces\";\n\nexport default (state: IExpertListingState, action: IAction): IExpertListingState => {\n switch(action.type) {\n case 'SET_EXPERTS':\n return {\n ...state,\n experts: action.payload.data,\n isLoading: false,\n displayEmptyPage: action.payload.data?.length === 0,\n statistics: {\n totalUsers: action.payload.totalCount,\n },\n pagination: {\n page: state.pagination.page,\n size: state.pagination.size,\n totalCount: action.payload.totalCount,\n numberOfPages: Math.ceil(action.payload.totalCount/state.pagination.size),\n },\n };\n case 'SET_CURRENT_PAGE':\n return {\n ...state,\n isLoading: false,\n pagination: {\n ...state.pagination,\n page: action.payload,\n }\n }\n case 'SET_LOADING':\n return {\n ...state,\n isLoading: action.payload\n }\n default:\n return state;\n }\n}\n","import { IAction } from \"../../interfaces\";\nimport { IArchivistListingState } from \"./archivist-listing.interfaces\";\n\nexport default (state: IArchivistListingState, action: IAction): IArchivistListingState => {\n switch(action.type) {\n case 'SET_ARCHIVISTS':\n return {\n ...state,\n archivists: action.payload.data,\n isLoading: false,\n displayEmptyPage: action.payload.data?.length === 0,\n statistics: {\n totalUsers: action.payload.totalCount,\n },\n pagination: {\n page: state.pagination.page,\n size: state.pagination.size,\n totalCount: action.payload.totalCount,\n numberOfPages: Math.ceil(action.payload.totalCount/state.pagination.size),\n },\n };\n case 'SET_CURRENT_PAGE':\n return {\n ...state,\n isLoading: false,\n pagination: {\n ...state.pagination,\n page: action.payload,\n }\n }\n case 'SET_LOADING':\n return {\n ...state,\n isLoading: action.payload\n }\n default:\n return state;\n }\n}\n","import { IAction } from \"../../interfaces\";\nimport {ICuratorListingState} from \"./curator-listing.interfaces\";\n\nexport default (state: ICuratorListingState, action: IAction): ICuratorListingState => {\n switch(action.type) {\n case 'SET_CURATORS':\n return {\n ...state,\n curators: action.payload.data,\n isLoading: false,\n displayEmptyPage: action.payload.data?.length === 0,\n statistics: {\n totalUsers: action.payload.totalCount,\n },\n pagination: {\n page: state.pagination.page,\n size: state.pagination.size,\n totalCount: action.payload.totalCount,\n numberOfPages: Math.ceil(action.payload.totalCount/state.pagination.size),\n },\n };\n case 'SET_CURRENT_PAGE':\n return {\n ...state,\n isLoading: false,\n pagination: {\n ...state.pagination,\n page: action.payload,\n }\n }\n case 'SET_LOADING':\n return {\n ...state,\n isLoading: action.payload\n }\n default:\n return state;\n }\n}\n","import {ICollectorProfileState} from \"./collector-profile.interfaces\";\nimport {IAction} from \"../../interfaces\";\n\nexport default (state: ICollectorProfileState, action: IAction): ICollectorProfileState => {\n switch(action.type) {\n case 'SET_DATA':\n return {\n ...state,\n data: action.payload,\n activeFeedbackRequests: action.payload.activeFeedbackRequests,\n isLoading: false,\n };\n case 'SET_ARTIFACTS':\n return {\n ...state,\n artifacts: action.payload.data,\n isLoading: false,\n artifactsPagination: {\n page: state.artifactsPagination.page,\n size: state.artifactsPagination.size,\n totalCount: action.payload.totalCount,\n numberOfPages: Math.ceil(action.payload.totalCount/state.artifactsPagination.size),\n },\n };\n case 'SET_CURRENT_PAGE':\n return {\n ...state,\n isLoading: false,\n artifactsPagination: {\n ...state.artifactsPagination,\n page: action.payload,\n }\n }\n default:\n return state;\n }\n}\n","import {IAction} from \"../../interfaces\";\nimport {IFeedbackRequestState} from \"./feedback.interfaces\";\n\nexport default (state: IFeedbackRequestState, action: IAction): IFeedbackRequestState => {\n switch(action.type) {\n case 'SET_DATA':\n return {\n ...state,\n data: {...action.payload.data, id: action.payload.id},\n isLoading: false,\n }\n case 'SET_LOADING':\n return {\n ...state,\n isLoading: action.payload\n }\n default:\n return state;\n }\n}\n","import { IAction } from \"../interfaces\";\nimport { IGlobalState } from \"./global.interfaces\";\n\nexport default (state: IGlobalState, action: IAction): IGlobalState => {\n switch(action.type) {\n case 'SET_UPLOAD_PHOTOS_BATCH_1':\n return {\n ...state,\n uploadPhotosBatch1: action.payload,\n }\n case 'SET_UPLOAD_PHOTOS_BATCH_2':\n return {\n ...state,\n uploadPhotosBatch2: action.payload,\n }\n case 'SET_UPLOAD_PHOTOS_BATCH_3':\n return {\n ...state,\n uploadPhotosBatch3: action.payload,\n }\n case 'SET_SHOULD_RELOAD_BATCH_1':\n return {\n ...state,\n shouldReloadBatch1: action.payload,\n }\n case 'SET_SHOULD_RELOAD_BATCH_2':\n return {\n ...state,\n shouldReloadBatch2: action.payload,\n }\n case 'SET_SHOULD_RELOAD_BATCH_3':\n return {\n ...state,\n shouldReloadBatch3: action.payload,\n }\n case 'SET_JOB_ID':\n return {\n ...state,\n jobId: action.payload,\n }\n default:\n return state;\n }\n}\n","import {IAction} from \"../../interfaces\";\nimport {IArchivistProfileState} from \"./archivist-profile.interfaces\";\n\nexport default (state: IArchivistProfileState, action: IAction): IArchivistProfileState => {\n switch(action.type) {\n case 'SET_DATA':\n return {\n ...state,\n data: action.payload,\n };\n default:\n return state;\n }\n}\n","import {IAction} from \"../../interfaces\";\nimport {ICuratorProfileState} from \"./curator-profile.interfaces\";\n\nexport default (state: ICuratorProfileState, action: IAction): ICuratorProfileState => {\n switch(action.type) {\n case 'SET_DATA':\n return {\n ...state,\n data: action.payload,\n };\n default:\n return state;\n }\n}\n","import {IAction} from \"../../interfaces\";\nimport {IExpertProfileState} from \"./expert-profile.interfaces\";\n\nexport default (state: IExpertProfileState, action: IAction): IExpertProfileState => {\n switch(action.type) {\n case 'SET_DATA':\n return {\n ...state,\n data: action.payload,\n categories: action.payload.categories,\n };\n case 'SET_EXPERT_TYPE':\n return {\n ...state,\n data: {\n ...state.data,\n type: action.payload,\n },\n categories: action.payload.categories,\n };\n case 'SET_COMPLETED_FEEDBACKS':\n return {\n ...state,\n completedFeedbacks: action.payload.data,\n totalDeletedFeedbacksCount: action.payload.totalDeletedCount,\n isLoading: false,\n feedbacksPagination: {\n page: state.feedbacksPagination.page,\n size: state.feedbacksPagination.size,\n totalCount: action.payload.totalCount,\n numberOfPages: Math.ceil(action.payload.totalCount/state.feedbacksPagination.size),\n },\n };\n case 'SET_CURRENT_PAGE':\n return {\n ...state,\n isLoading: false,\n feedbacksPagination: {\n ...state.feedbacksPagination,\n page: action.payload,\n }\n }\n default:\n return state;\n }\n}\n","import {IAction} from \"../../interfaces\";\nimport {ISharedWithMeState} from \"./shared-with-me.interfaces\";\n\nexport default (state: ISharedWithMeState, action: IAction): ISharedWithMeState => {\n switch(action.type) {\n case 'SET_ARTIFACTS':\n return {\n ...state,\n\n statistics: {\n ...state.statistics,\n totalObjects: action.payload.totalCount,\n },\n paginationObjects: {\n page: state.paginationObjects.page,\n size: state.paginationObjects.size,\n totalCount: action.payload.totalCount,\n numberOfPages: Math.ceil(action.payload.totalCount/state.paginationObjects.size),\n },\n artifacts: action.payload.data?.map((a: any) => {\n return {\n id: a.id,\n title: a.title,\n description: a.description,\n collectorName: `${a.collector.firstName || ''} ${a.collector.lastName || ''}`,\n collectorPhoto: a.collector.photoUrl || '',\n photo: {\n fileName: a.title,\n url: a.photoUrl,\n }\n }\n }),\n isLoadingObjects: false,\n }\n case 'SET_COLLECTIONS':\n // eslint-disable-next-line no-case-declarations\n const collections = action.payload.data?.map((c: any) => {\n return {\n id: c.id,\n message: c.message,\n collection: {\n id: c.id,\n name: c.name,\n photoUrl: c.photoUrl,\n totalObjects: c.totalObjects,\n }\n }\n })\n\n\n return {\n ...state,\n isLoadingCollections: false,\n statistics: {\n ...state.statistics,\n totalCollections: action.payload.totalCount,\n },\n paginationCollections: {\n page: state.paginationCollections.page,\n size: state.paginationCollections.size,\n totalCount: action.payload.totalCount,\n numberOfPages: Math.ceil(action.payload.totalCount/state.paginationCollections.size),\n },\n collections,\n }\n case 'SET_CURRENT_PAGE_OBJECTS':\n return {\n ...state,\n isLoadingObjects: false,\n paginationObjects: {\n ...state.paginationObjects,\n page: action.payload,\n }\n }\n case 'SET_CURRENT_PAGE_COLLECTIONS':\n return {\n ...state,\n isLoadingCollections: false,\n paginationCollections: {\n ...state.paginationCollections,\n page: action.payload,\n }\n }\n case 'SET_LOADING_OBJECTS':\n return {\n ...state,\n isLoadingObjects: action.payload\n }\n case 'SET_LOADING_COLLECTIONS':\n return {\n ...state,\n isLoadingCollections: action.payload\n }\n default:\n return state;\n }\n}\n","import { ISharedObjectState } from './shared-object.interfaces';\nimport { IAction } from '../../interfaces';\n\nexport default (state: ISharedObjectState, action: IAction): ISharedObjectState => {\n switch (action.type) {\n case 'SET_ARTIFACT':\n return {\n ...state,\n id: action.payload.id,\n artifact: {\n id: action.payload.id,\n // eslint-disable-next-line max-len\n collectorName: `${action.payload.collector?.firstName} ${action.payload.collector?.lastName}`,\n collectorPhoto: action.payload.collector?.photoUrl,\n title: action.payload.title,\n description: action.payload.description,\n exactValue: action.payload.exactValue,\n minimumValue: action.payload.minimumValue,\n maximumValue: action.payload.maximumValue,\n width: action.payload.width,\n height: action.payload.height,\n depth: action.payload.depth,\n weight: action.payload.weight,\n exactProductionYear: action.payload.exactProductionYear,\n lowerProductionYear: action.payload.lowerProductionYear,\n upperProductionYear: action.payload.upperProductionYear,\n isFeedbackImported: action.payload.isFeedbackImported,\n origin: action.payload.origin,\n material: action.payload.material,\n style: action.payload.style,\n artist: action.payload.artist,\n condition: action.payload.condition,\n message: action.payload.message,\n createdDate: action.payload.dateCreated,\n photos: action.payload.photos || [],\n documents: action.payload.documents || [],\n categories: action.payload.categories || [],\n materials: action.payload.materials || [],\n conditions: action.payload.conditions || [],\n eras: action.payload.eras || [],\n origins: action.payload.origins || [],\n styles: action.payload.styles || [],\n feedbacks: action.payload.feedbacks || [],\n artistImageUrl: action.payload.artistImageUrl,\n },\n };\n default:\n return state;\n }\n};\n","import {IAction} from \"../../interfaces\";\nimport {ICollectionState} from \"./collection.interfaces\";\n\nexport default (state: ICollectionState, action: IAction): ICollectionState => {\n switch (action.type) {\n case 'SET_ARTIFACTS':\n\n // eslint-disable-next-line no-case-declarations\n const artifacts = action.payload.artifacts.data;\n artifacts?.forEach((a: any) => {\n a.displayDeleteButtonOnCard = true;\n })\n\n return {\n ...state,\n name: action.payload.name,\n artifacts,\n isLoading: false,\n displayEmptyPage: artifacts?.length === 0,\n statistics: {\n totalObjects: action.payload.artifacts.totalCount,\n totalValue: action.payload.artifacts.totalValue,\n },\n pagination: {\n ...state.pagination,\n page: state.pagination.page,\n size: state.pagination.size,\n totalCount: action.payload.artifacts.totalCount,\n numberOfPages: Math.ceil(action.payload.artifacts.totalCount/state.pagination.size),\n },\n }\n case 'SET_CURRENT_PAGE':\n return {\n ...state,\n isLoading: false,\n pagination: {\n ...state.pagination,\n page: action.payload.page,\n size: action.payload.size,\n }\n }\n case 'SET_SORT_OPTION':\n return {\n ...state,\n isLoading: false,\n pagination: {\n ...state.pagination,\n sortBy: action.payload.sortBy,\n asc: action.payload.asc,\n }\n }\n case 'SET_LOADING':\n return {\n ...state,\n isLoading: action.payload,\n }\n case 'SET_COLLECTION_ID':\n return {\n ...state,\n id: action.payload,\n }\n case 'TOGGLE_DELETE_COLLECTION_MODAL':\n return {\n ...state,\n modals: {\n ...state.modals,\n displayDeleteCollectionModal: action.payload,\n },\n }\n case 'TOGGLE_ADD_OBJECT_MODAL':\n return {\n ...state,\n modals: {\n ...state.modals,\n displayAddObjectModal: action.payload,\n },\n }\n case 'TOGGLE_DELETE_OBJ_MODAL':\n return {\n ...state,\n modals: {\n ...state.modals,\n displayDeleteObjectModal: action.payload\n }\n }\n case 'TOGGLE_EDIT_COLLECTION_NAME_MODAL':\n return {\n ...state,\n modals: {\n ...state.modals,\n displayEditCollectionNameModal: action.payload\n }\n }\n default:\n return state;\n }\n}\n","export * from \"./collector-listing.context\";\nexport * from \"./collector-listing.interfaces\";\nexport * from \"./collector-listing.reducer\";\n","export * from \"./expert-listing.context\";\nexport * from \"./expert-listing.interfaces\";\nexport * from \"./expert-listing.reducer\";\n","export * from \"./archivist-listing.context\";\nexport * from \"./archivist-listing.interfaces\";\nexport * from \"./archivist-listing.reducer\";\n","export * from \"./curator-listing.context\";\nexport * from \"./curator-listing.interfaces\";\nexport * from \"./curator-listing.reducer\";\n","export * from \"./archivist-profile.context\";\nexport * from \"./archivist-profile.interfaces\";\nexport * from \"./archivist-profile.reducer\";\n","export * from \"./curator-profile.context\";\nexport * from \"./curator-profile.interfaces\";\nexport * from \"./curator-profile.reducer\";\n","export * from './shared-with-me.context';\nexport * from './shared-with-me.interfaces';\nexport * from './shared-with-me.reducer';\n","export * from \"./shared-object.context\";\nexport * from \"./shared-object.interfaces\";\nexport * from \"./shared-object.reducer\";\n","export enum RegisterTypesEnum {\n Web = 'Web',\n Mobile = 'Mobile',\n Facebook = 'Facebook',\n Google = 'Google',\n Apple = 'Apple',\n System = 'System',\n}\n\nexport enum CollectorTypes {\n AVERAGE = 'Average',\n AVID = 'Avid',\n}\n\nexport enum FileSize {\n XS = '/xs', //150\n SM = '/s', //400\n MD = '/m', //900\n LG = '/l', //1920\n DEFAULT = '',\n}\n\nexport enum SortObjectsOptions {\n Title = 'Title',\n EstimatedValue = 'Value',\n Feedbacks = 'Feedback',\n DateCreated = 'DateCreated',\n Artist = 'Artist',\n}\n\nexport enum SortCollectionsOptions {\n Title = 'Name',\n NumberOfItems = 'Item',\n EstimatedValue = 'Value',\n DateCreated = 'DateCreated',\n}\n\nexport enum UserRoles {\n COLLECTOR = 'Collector',\n EXPERT = 'Expert',\n ARCHIVIST = 'Archivist',\n CURATOR = 'Curator',\n ADMIN = 'Admin',\n}\n\nexport enum ShareArtifactOptions {\n PublicFeed,\n People,\n}\n\nexport enum AdminStatistics {\n Date = 'Date',\n User = 'User',\n UserByDay = 'UserByDay',\n TotalUsersStats = 'TotalUsersStats',\n TotalUsersByDate = 'TotalUsersByDate',\n}\n\nexport enum ReportTypeEnum {\n MissingPhotos = 'OnePhoto',\n MissingDetails = 'MissingDetails',\n SharedOnCommunityFeed = 'PublicFeed',\n}\n\nexport enum ExpertsSearchType {\n Default = 'Default',\n Type = 'Type',\n Expertise = 'Expertise',\n Location = 'Location',\n}\n\nexport const PreferencesDictionary = {\n 1: 'Title',\n 2: 'Name',\n 3: 'Value',\n 4: 'Feedback',\n 5: 'DateCreated',\n 6: 'Artist',\n 7: 'Item',\n};\n","import React, { createContext, useReducer } from 'react';\nimport UserReducer from './user.reducer';\n\nimport { IUserState } from \"./user.interfaces\";\n\nconst initialState: IUserState = {\n user: null,\n newNotifications: false,\n lightTheme: false,\n setUser: () => null,\n onLogout: () => null,\n setProfilePic: () => null,\n setHasNewNotifications: () => null,\n setTheme: () => null,\n}\n\nexport const UserContext = createContext(initialState);\n\nexport const UserProvider: any = ({children}: any) => {\n\n const [state, dispatch] = useReducer(UserReducer, initialState);\n\n const setUser = (user: unknown): void => {\n dispatch({\n type: 'SET_USER',\n payload: user\n })\n }\n\n const onLogout = (): void => {\n dispatch({\n type: 'LOGOUT',\n payload: null,\n })\n }\n\n const setProfilePic = (url: string): void => {\n dispatch({\n type: 'SET_PROFILE_PIC',\n payload: url\n })\n }\n\n const setHasNewNotifications = (value: boolean): void => {\n dispatch({\n type: 'SET_HAS_NEW_NOTIFICATIONS',\n payload: value,\n })\n }\n\n const setTheme = (value: boolean, save: boolean): void => {\n dispatch({\n type: 'SET_THEME',\n payload: {value, save},\n })\n }\n\n return (\n \n {children}\n \n )\n}\n","import React, { createContext, useReducer } from 'react';\nimport ObjectDetailsReducer from './object-details.reducer';\nimport { ICategory, IDocument, IObjectDetailsState, IPhoto } from './object-details.interfaces';\n\nconst initialState: IObjectDetailsState = {\n artifact: {\n id: 0,\n title: '',\n description: '',\n exactValue: null,\n minimumValue: null,\n maximumValue: null,\n width: null,\n height: null,\n depth: null,\n weight: null,\n exactProductionYear: null,\n lowerProductionYear: null,\n upperProductionYear: null,\n detailsPercent: 0,\n isFeedbackImported: false,\n isSharedToPublicFeed: false,\n paymentFreePass: false,\n origin: '',\n material: '',\n style: '',\n artist: '',\n artistBio: '',\n condition: '',\n createdDate: '',\n documents: [],\n feedbackRequests: [],\n experts: [],\n photos: [],\n collections: [],\n categories: [],\n materials: [],\n conditions: [],\n eras: [],\n origins: [],\n styles: [],\n feedbacks: [],\n artistImageUrl: null,\n },\n loader: {\n delete: false,\n setDeleteLoader: () => null,\n },\n modals: {\n displayConfirmDelete: false,\n toggleConfirmDeleteModal: () => null,\n displayUnsavedChangesModal: false,\n toggleUnsavedChangesModal: () => null,\n displayShareObjectOptionsModal: false,\n toggleShareObjectOptionsModal: () => null,\n displayShareObjectToPersonsModal: false,\n toggleShareObjectToPersonsModal: () => null,\n displayShareObjectToFeedModal: false,\n toggleShareObjectToFeedModal: () => null,\n displayMissingInfoModal: false,\n toggleMissingInfoModal: () => null,\n displayRequestAssessmentModal: false,\n toggleRequestAssessmentModal: () => null,\n displayRecommendedExpertsModal: false,\n toggleRecommendedExpertsModal: () => null,\n displayUnsavedPhotosModal: false,\n toggleDisplayUnsavedPhotosModal: () => null,\n },\n onEditMode: false,\n hasUnsavedPhotos: false,\n setArtifact: () => null,\n setTitleAndDescription: () => null,\n setCategories: () => null,\n setEditMode: () => null,\n addNewPhotos: () => null,\n addNewDocuments: () => null,\n setPhotos: () => null,\n};\n\nexport const ObjectDetailsContext = createContext(initialState);\n\nexport const ObjectDetailsProvider: any = ({ children }: any) => {\n const [state, dispatch] = useReducer(ObjectDetailsReducer, initialState);\n\n const setArtifact = (artifact: unknown, justObject: boolean): void => {\n dispatch({\n type: 'SET_ARTIFACT',\n payload: { artifact, justObject },\n });\n };\n\n const setTitleAndDescription = (title: string, description: string): void => {\n dispatch({\n type: 'SET_TITLE_AND_DESCRIPTION',\n payload: { title, description },\n });\n };\n\n const setCategories = (categories: ICategory[]): void => {\n dispatch({\n type: 'SET_CATEGORIES',\n payload: categories,\n });\n };\n\n const toggleConfirmDeleteModal = (): void => {\n dispatch({\n type: 'TOGGLE_CONF_DELETE_MODAL',\n payload: !state.modals.displayConfirmDelete,\n });\n };\n\n const toggleUnsavedChangesModal = (): void => {\n dispatch({\n type: 'TOGGLE_UNSAVED_CHANGES_MODAL',\n payload: !state.modals.displayUnsavedChangesModal,\n });\n };\n\n const toggleShareObjectOptionsModal = (): void => {\n dispatch({\n type: 'TOGGLE_SHARE_OBJECT_OPTIONS_MODAL',\n payload: !state.modals.displayShareObjectOptionsModal,\n });\n };\n\n const toggleShareObjectToPersonsModal = (): void => {\n dispatch({\n type: 'TOGGLE_SHARE_OBJECT_PERSONS_MODAL',\n payload: !state.modals.displayShareObjectToPersonsModal,\n });\n };\n\n const toggleShareObjectToFeedModal = (): void => {\n dispatch({\n type: 'TOGGLE_SHARE_OBJECT_FEED_MODAL',\n payload: !state.modals.displayShareObjectToFeedModal,\n });\n };\n\n const toggleMissingInfoModal = (): void => {\n dispatch({\n type: 'TOGGLE_MISSING_INFO_MODAL',\n payload: !state.modals.displayMissingInfoModal,\n });\n };\n\n const toggleRequestAssessmentModal = (): void => {\n dispatch({\n type: 'TOGGLE_REQUEST_ASSESSMENT_MODAL',\n payload: !state.modals.displayRequestAssessmentModal,\n });\n };\n\n const toggleRecommendedExpertsModal = (): void => {\n dispatch({\n type: 'TOGGLE_RECOMMENDED_EXPERTS_MODAL',\n payload: !state.modals.displayRecommendedExpertsModal,\n });\n };\n\n const setDeleteLoader = (value: boolean): void => {\n dispatch({\n type: 'SET_DELETE_LOADER',\n payload: value,\n });\n };\n\n const setEditMode = (value: boolean): void => {\n dispatch({\n type: 'SET_EDIT_MODE',\n payload: value,\n });\n };\n\n const addNewPhotos = (photos: IPhoto): void => {\n dispatch({\n type: 'ADD_NEW_PHOTOS',\n payload: photos,\n });\n };\n\n const addNewDocuments = (documents: IDocument): void => {\n dispatch({\n type: 'ADD_NEW_DOCUMENTS',\n payload: documents,\n });\n };\n\n const toggleDisplayUnsavedPhotosModal = (value: boolean): void => {\n dispatch({\n type: 'TOGGLE_UNSAVED_PHOTOS_MODAL',\n payload: value,\n });\n };\n\n const setPhotos = (value: IPhoto[]): void => {\n dispatch({\n type: 'SET_PHOTOS',\n payload: value,\n });\n };\n\n return (\n \n {children}\n \n );\n};\n","import React, { createContext, useReducer } from 'react';\nimport SearchResultsReducer from \"./search-results.reducer\";\nimport {ISearchResultsState} from \"./search-results.interfaces\";\n\nconst initialState: ISearchResultsState = {\n artifacts: [],\n collections: [],\n searchBy: '',\n paginationArtifacts: {\n page: 1,\n size: 5,\n totalCount: 0,\n numberOfPages: 0,\n },\n paginationCollections: {\n page: 1,\n size: 5,\n totalCount: 0,\n numberOfPages: 0,\n },\n setArtifactsResult: () => null,\n setCollectionsResult: () => null,\n setCurrentPage: () => null,\n setSearchBy: () => null,\n clearSearchResults: () => null,\n}\n\nexport const SearchResultsContext = createContext(initialState);\n\nexport const SearchResultsProvider: any = ({children}: any) => {\n\n const [state, dispatch] = useReducer(SearchResultsReducer, initialState);\n\n const setArtifactsResult = (artifacts: unknown): void => {\n dispatch({\n type: 'SET_ARTIFACTS_RESULT',\n payload: artifacts || []\n })\n }\n\n const setCollectionsResult = (collections: unknown): void => {\n dispatch({\n type: 'SET_COLLECTIONS_RESULT',\n payload: collections || []\n })\n }\n\n const clearSearchResults = (): void => {\n dispatch({\n type: 'CLEAR_SEARCH_RESULTS',\n payload: null\n })\n }\n\n const setCurrentPage = (scope: string, page: number): void => {\n dispatch({\n type: 'SET_CURRENT_PAGE',\n payload: {scope, page}\n })\n }\n\n const setSearchBy = (searchBy: string): void => {\n dispatch({\n type: 'SET_SEARCH_BY',\n payload: searchBy\n })\n }\n\n return (\n \n {children}\n \n )\n}\n","import * as api from '../_utils/api';\nimport { IConfirmRegistrationEmail, IRefreshToken, IResetPassword } from './user.interfaces';\nimport { base64ToFile } from 'core/helpers/upload-files-helper';\n\nexport class UserApi {\n static async getUser(): Promise {\n return api._get(`users/userDetails?full=true`);\n }\n\n static async updateUserProfile(payload: unknown, userId: number): Promise {\n return api._put(`users/profile/updateUserProfile?userId=${userId}`, payload);\n }\n\n static async login(payload: unknown): Promise {\n return api._post(`users/login`, payload);\n }\n\n static async revokeRefreshToken(payload: IRefreshToken): Promise {\n return api._put(`users/revokeToken`, payload);\n }\n\n static async logout(): Promise {\n return api._post(`users/logout`);\n }\n\n static async resendRegisterConfirmationEmail(email: string): Promise {\n return api._post(`users/register/resendConfirmationEmail/${email}`);\n }\n\n static async confirmRegistrationEmail(payload: IConfirmRegistrationEmail): Promise {\n return api._put(`users/register/confirmEmail`, payload);\n }\n\n static async sendForgotPasswordEmail(email: string): Promise {\n return api._post(`users/sendForgotPasswordEmail/${email}`);\n }\n\n static async resetPassword(payload: IResetPassword): Promise {\n return api._put(`users/resetPassword`, payload);\n }\n\n static async changeAvatar(avatar: string): Promise {\n const formData = new FormData();\n formData.append('photo', base64ToFile(avatar, `avatar.png`));\n return api._put(`users/profile/changeAvatar`, formData);\n }\n\n static async sendConfirmChangeEmail(email: string, isCurrentEmail: boolean): Promise {\n return api._post(`users/profile/sendConfirmationEmail/${email}?old=${isCurrentEmail}`);\n }\n\n static async changeEmail(payload: unknown): Promise {\n return api._post(`users/profile/validateEmail`, payload);\n }\n\n static async setNewEmail(payload: unknown): Promise {\n return api._put(`users/profile/changeEmail`, payload);\n }\n\n static async sendDeleteAccountEmail(): Promise {\n return api._post('users/delete/sendEmail');\n }\n\n static async deleteAccount(code: string): Promise {\n return api._delete(`users/DeleteAccount?code=${code}`);\n }\n}\n","import * as api from '../_utils/api';\n\nexport class NotificationsApi {\n\n static async getNotifications(): Promise {\n return api._get(`users/getNotifications`);\n }\n\n static async markAsRead(ids: number[]): Promise {\n return api._put(`users/updateNotifications`, ids);\n }\n}\n","import * as api from '../_utils/api';\n\nexport class RegisterApi {\n\n static async register(role: string, payload: unknown): Promise {\n return api._post(`users/register?role=${role}`, payload);\n }\n}\n","import React, { createContext, useReducer } from 'react';\nimport FeedbackRequestsListingReducer from \"./feedback-requests-listing.reducer\";\nimport {IFeedbackRequestsListingState} from \"./feedback-requests-listing.interfaces\";\n\nconst initialState: IFeedbackRequestsListingState = {\n data: [],\n isLoading: true,\n displayEmptyPage: false,\n statistics: {\n totalRequests: 0\n },\n pagination: {\n page: 1,\n size: 20,\n totalCount: 0,\n numberOfPages: 0,\n },\n setData: () => null,\n setCurrentPage: () => null,\n setLoading: () => null,\n}\n\nexport const FeedbackRequestsListingContext = createContext(initialState);\n\nexport const FeedbackRequestsListingProvider: any = ({children}: any) => {\n\n const [state, dispatch] = useReducer(FeedbackRequestsListingReducer, initialState);\n\n const setData = (data: unknown): void => {\n dispatch({\n type: 'SET_DATA',\n payload: data\n })\n }\n\n const setCurrentPage = (page: number): void => {\n dispatch({\n type: 'SET_CURRENT_PAGE',\n payload: page,\n })\n }\n\n const setLoading = (loading: boolean): void => {\n dispatch({\n type: 'SET_LOADING',\n payload: loading\n });\n }\n\n return (\n \n {children}\n \n )\n}\n","import {ITaxonomyLabel, ITaxonomyState} from \"./taxonomy.interfaces\";\nimport {createContext, useReducer} from \"react\";\nimport TaxonomyReducer from \"./taxonomy.reducer\";\nimport React from \"react\";\n\nconst initialState: ITaxonomyState = {\n rootTypes: [],\n selectedRootType: null,\n selectedForDeleteId: null,\n deletedLabels: [],\n displayAddLabelModal: -1,\n setRootTypes: () => null,\n selectRootType: () => null,\n setSelectedForDeleteId: () => null,\n pushDeletedLabel: () => null,\n toggleAddLabelModal: () => null,\n}\n\nexport const TaxonomyContext = createContext(initialState);\n\nexport const TaxonomyProvider: any = ({children}: any) => {\n\n const [state, dispatch] = useReducer(TaxonomyReducer, initialState);\n\n const setRootTypes = (rootTypes: ITaxonomyLabel[]): void => {\n dispatch({\n type: 'SET_ROOT_TYPES',\n payload: rootTypes,\n })\n }\n\n const selectRootType = (label: ITaxonomyLabel): void => {\n dispatch({\n type: 'SELECT_ROOT_TYPE',\n payload: label,\n })\n }\n\n const setSelectedForDeleteId = (id: number|null): void => {\n dispatch({\n type: 'SET_SELECTED_FOR_DELETE_ID',\n payload: id,\n })\n }\n\n const pushDeletedLabel = (id: number): void => {\n dispatch({\n type: 'PUSH_DELETED_LABEL',\n payload: id,\n })\n }\n\n const toggleAddLabelModal = (value: number): void => {\n dispatch({\n type: 'TOGGLE_ADD_LABEL_MODAL',\n payload: value,\n })\n }\n\n return (\n \n {children}\n \n )\n}\n","import React, { createContext, useReducer } from 'react';\nimport CollectorListingReducer from \"./collector-listing.reducer\";\nimport {ICollectorListingState} from \"./collector-listing.interfaces\";\n\nconst initialState: ICollectorListingState = {\n collectors: [],\n isLoading: true,\n displayEmptyPage: false,\n statistics: {\n totalUsers: 0\n },\n pagination: {\n page: 1,\n size: 20,\n totalCount: 0,\n numberOfPages: 0,\n },\n setCollectors: () => null,\n setCurrentPage: () => null,\n setLoading: () => null,\n}\n\nexport const CollectorListingContext = createContext(initialState);\n\nexport const CollectorListingProvider: any = ({children}: any) => {\n\n const [state, dispatch] = useReducer(CollectorListingReducer, initialState);\n\n const setCollectors = (data: unknown): void => {\n dispatch({\n type: 'SET_COLLECTORS',\n payload: data\n })\n }\n\n const setCurrentPage = (page: number): void => {\n dispatch({\n type: 'SET_CURRENT_PAGE',\n payload: page,\n })\n }\n\n const setLoading = (loading: boolean): void => {\n dispatch({\n type: 'SET_LOADING',\n payload: loading\n });\n }\n\n return (\n \n {children}\n \n )\n}\n","import React, { createContext, useReducer } from 'react';\nimport ExpertListingReducer from \"./expert-listing.reducer\";\nimport {IExpertListingState} from \"./expert-listing.interfaces\";\n\n\nconst initialState: IExpertListingState = {\n experts: [],\n isLoading: true,\n displayEmptyPage: false,\n statistics: {\n totalUsers: 0\n },\n pagination: {\n page: 1,\n size: 20,\n totalCount: 0,\n numberOfPages: 0,\n },\n setExperts: () => null,\n setCurrentPage: () => null,\n setLoading: () => null,\n}\n\nexport const ExpertListingContext = createContext(initialState);\n\nexport const ExpertListingProvider: any = ({children}: any) => {\n\n const [state, dispatch] = useReducer(ExpertListingReducer, initialState);\n\n const setExperts = (data: unknown): void => {\n dispatch({\n type: 'SET_EXPERTS',\n payload: data\n })\n }\n\n const setCurrentPage = (page: number): void => {\n dispatch({\n type: 'SET_CURRENT_PAGE',\n payload: page,\n })\n }\n\n const setLoading = (loading: boolean): void => {\n dispatch({\n type: 'SET_LOADING',\n payload: loading\n });\n }\n\n return (\n \n {children}\n \n )\n}\n","import React, { createContext, useReducer } from 'react';\nimport ArchivistListingReducer from \"./archivist-listing.reducer\";\nimport {IArchivistListingState} from \"./archivist-listing.interfaces\";\n\nconst initialState: IArchivistListingState = {\n archivists: [],\n isLoading: true,\n displayEmptyPage: false,\n statistics: {\n totalUsers: 0\n },\n pagination: {\n page: 1,\n size: 20,\n totalCount: 0,\n numberOfPages: 0,\n },\n setArchivists: () => null,\n setCurrentPage: () => null,\n setLoading: () => null,\n}\n\nexport const ArchivistListingContext = createContext(initialState);\n\nexport const ArchivistListingProvider: any = ({children}: any) => {\n\n const [state, dispatch] = useReducer(ArchivistListingReducer, initialState);\n\n const setArchivists = (data: unknown): void => {\n dispatch({\n type: 'SET_ARCHIVISTS',\n payload: data\n })\n }\n\n const setCurrentPage = (page: number): void => {\n dispatch({\n type: 'SET_CURRENT_PAGE',\n payload: page,\n })\n }\n\n const setLoading = (loading: boolean): void => {\n dispatch({\n type: 'SET_LOADING',\n payload: loading\n });\n }\n\n return (\n \n {children}\n \n )\n}\n","import React, { createContext, useReducer } from 'react';\nimport {ICuratorListingState} from \"./curator-listing.interfaces\";\nimport CuratorListingReducer from \"./curator-listing.reducer\";\n\nconst initialState: ICuratorListingState = {\n curators: [],\n isLoading: true,\n displayEmptyPage: false,\n statistics: {\n totalUsers: 0\n },\n pagination: {\n page: 1,\n size: 20,\n totalCount: 0,\n numberOfPages: 0,\n },\n setCurators: () => null,\n setCurrentPage: () => null,\n setLoading: () => null,\n}\n\nexport const CuratorListingContext = createContext(initialState);\n\nexport const CuratorListingProvider: any = ({children}: any) => {\n\n const [state, dispatch] = useReducer(CuratorListingReducer, initialState);\n\n const setCurators = (data: unknown): void => {\n dispatch({\n type: 'SET_CURATORS',\n payload: data\n })\n }\n\n const setCurrentPage = (page: number): void => {\n dispatch({\n type: 'SET_CURRENT_PAGE',\n payload: page,\n })\n }\n\n const setLoading = (loading: boolean): void => {\n dispatch({\n type: 'SET_LOADING',\n payload: loading\n });\n }\n\n return (\n \n {children}\n \n )\n}\n","import React, { createContext, useReducer } from 'react';\nimport CollectorProfileReducer from \"./collector-profile.reducer\";\nimport {ICollectorProfileState} from \"./collector-profile.interfaces\";\n\nconst initialState: ICollectorProfileState = {\n data: {\n userId: 0,\n isActive: false,\n type: '',\n registerPurpose: [],\n email: '',\n phoneNumber: '',\n firstName: '',\n lastName: '',\n organization: '',\n website: '',\n address: '',\n title: '',\n description: '',\n paymentFreePass: false,\n currency: {\n id: -1,\n code: '',\n name: '',\n namePlural: '',\n symbol: '',\n symbolNative: '',\n },\n country: {id: -1, name: ''},\n state: {id: -1, name: ''},\n city: {id: -1, name: ''},\n photoUrl: '',\n totalReviewedObjects: 0,\n totalObjects: 0,\n },\n activeFeedbackRequests: [],\n artifacts: [],\n artifactsPagination: {\n page: 0,\n size: 21,\n totalCount: 0,\n numberOfPages: 0,\n },\n isLoading: true,\n setData: () => null,\n setArtifacts: () => null,\n setLoading: () => null,\n setCurrentPage: () => null,\n}\n\nexport const CollectorProfileContext = createContext(initialState);\n\nexport const CollectorProfileProvider: any = ({children}: any) => {\n\n const [state, dispatch] = useReducer(CollectorProfileReducer, initialState);\n\n const setData = (data: unknown): void => {\n dispatch({\n type: 'SET_DATA',\n payload: data\n })\n }\n\n const setArtifacts = (data: unknown): void => {\n dispatch({\n type: 'SET_ARTIFACTS',\n payload: data,\n })\n }\n\n const setCurrentPage = (page: number): void => {\n dispatch({\n type: 'SET_CURRENT_PAGE',\n payload: page,\n })\n }\n\n const setLoading = (loading: boolean): void => {\n dispatch({\n type: 'SET_LOADING',\n payload: loading\n });\n }\n\n return (\n \n {children}\n \n )\n}\n","import React, { createContext, useReducer } from 'react';\nimport FeedbackRequestsReducer from \"./feedback.reducer\";\nimport {IFeedbackRequestState} from \"./feedback.interfaces\";\n\nconst initialState: IFeedbackRequestState = {\n data: {\n id: -1,\n dateCreated: '',\n isCompleted: false,\n message: '',\n morePhotosRequired: false,\n artifact: null,\n collector: {\n userId: -1,\n firstName: '',\n lastName: '',\n email: '',\n photoUrl: null,\n },\n feedback: null,\n comments: [],\n feedbackDraft: null,\n },\n isLoading: true,\n setData: () => null,\n setLoading: () => null,\n}\n\nexport const FeedbackRequestContext = createContext(initialState);\n\nexport const FeedbackRequestProvider: any = ({children}: any) => {\n\n const [state, dispatch] = useReducer(FeedbackRequestsReducer, initialState);\n\n const setData = (data: unknown, id: number): void => {\n dispatch({\n type: 'SET_DATA',\n payload: {data, id}\n })\n }\n\n const setLoading = (loading: boolean): void => {\n dispatch({\n type: 'SET_LOADING',\n payload: loading\n });\n }\n\n return (\n \n {children}\n \n )\n}\n","import React, { createContext, useReducer } from 'react';\nimport GlobalReducer from './global.reducer';\nimport {IGlobalState} from \"./global.interfaces\";\n\nconst initialState: IGlobalState|undefined = {\n uploadPhotosBatch1: false,\n uploadPhotosBatch2: false,\n uploadPhotosBatch3: false,\n shouldReloadBatch1: false,\n shouldReloadBatch2: false,\n shouldReloadBatch3: false,\n jobId: null,\n setUploadPhotosBatch1: () => null,\n setUploadPhotosBatch2: () => null,\n setUploadPhotosBatch3: () => null,\n setShouldReloadBatch1: () => null,\n setShouldReloadBatch2: () => null,\n setShouldReloadBatch3: () => null,\n manageUploadPhotosBatch: () => null,\n setJobId: () => null,\n}\n\nexport const GlobalContext = createContext(initialState);\n\nexport const GlobalProvider: any = ({children}: any) => {\n\n const [state, dispatch] = useReducer(GlobalReducer, initialState);\n\n const setUploadPhotosBatch1 = (value: boolean): void => {\n dispatch({\n type: 'SET_UPLOAD_PHOTOS_BATCH_1',\n payload: value,\n })\n }\n\n const setUploadPhotosBatch2 = (value: boolean): void => {\n dispatch({\n type: 'SET_UPLOAD_PHOTOS_BATCH_2',\n payload: value,\n })\n }\n\n const setUploadPhotosBatch3 = (value: boolean): void => {\n dispatch({\n type: 'SET_UPLOAD_PHOTOS_BATCH_3',\n payload: value,\n })\n }\n\n const setShouldReloadBatch1 = (value: boolean): void => {\n dispatch({\n type: 'SET_SHOULD_RELOAD_BATCH_1',\n payload: value,\n })\n }\n\n const setShouldReloadBatch2 = (value: boolean): void => {\n dispatch({\n type: 'SET_SHOULD_RELOAD_BATCH_2',\n payload: value,\n })\n }\n\n const setShouldReloadBatch3 = (value: boolean): void => {\n dispatch({\n type: 'SET_SHOULD_RELOAD_BATCH_3',\n payload: value,\n })\n }\n\n const manageUploadPhotosBatch = (chunks: any): void => {\n dispatch({\n type: 'MANAGE_UPLOAD_PHOTOS_BATCH',\n payload: chunks,\n })\n }\n\n const setJobId = (jobId: number): void => {\n dispatch({\n type: 'SET_JOB_ID',\n payload: jobId,\n })\n }\n\n return (\n \n {children}\n \n )\n}\n","import React, { createContext, useReducer } from 'react';\nimport ArchivistProfileReducer from \"./archivist-profile.reducer\";\nimport {IArchivistProfileState} from \"./archivist-profile.interfaces\";\n\nconst initialState: IArchivistProfileState = {\n data: {\n userId: 0,\n isActive: false,\n type: '',\n email: '',\n phoneNumber: '',\n firstName: '',\n lastName: '',\n organization: '',\n website: '',\n address: '',\n title: '',\n description: '',\n reference: '',\n totalJobs: 0,\n totalActiveJobs: 0,\n currency: {\n id: -1,\n code: '',\n name: '',\n namePlural: '',\n symbol: '',\n symbolNative: '',\n },\n country: {id: -1, name: ''},\n state: {id: -1, name: ''},\n city: {id: -1, name: ''},\n photoUrl: '',\n },\n setData: () => null,\n}\n\nexport const ArchivistProfileContext = createContext(initialState);\n\nexport const ArchivistProfileProvider: any = ({children}: any) => {\n\n const [state, dispatch] = useReducer(ArchivistProfileReducer, initialState);\n\n const setData = (data: unknown): void => {\n dispatch({\n type: 'SET_DATA',\n payload: data\n })\n }\n\n return (\n \n {children}\n \n )\n}\n","import React, { createContext, useReducer } from 'react';\nimport CuratorProfileReducer from \"./curator-profile.reducer\";\nimport {ICuratorProfileState} from \"./curator-profile.interfaces\";\n\nconst initialState: ICuratorProfileState = {\n data: {\n userId: 0,\n isActive: false,\n type: '',\n email: '',\n phoneNumber: '',\n firstName: '',\n lastName: '',\n organization: '',\n website: '',\n address: '',\n title: '',\n description: '',\n totalJobs: 0,\n totalActiveJobs: 0,\n reference: '',\n currency: {\n id: -1,\n code: '',\n name: '',\n namePlural: '',\n symbol: '',\n symbolNative: '',\n },\n country: {id: -1, name: ''},\n state: {id: -1, name: ''},\n city: {id: -1, name: ''},\n photoUrl: '',\n },\n setData: () => null,\n}\n\nexport const CuratorProfileContext = createContext(initialState);\n\nexport const CuratorProfileProvider: any = ({children}: any) => {\n\n const [state, dispatch] = useReducer(CuratorProfileReducer, initialState);\n\n const setData = (data: unknown): void => {\n dispatch({\n type: 'SET_DATA',\n payload: data\n })\n }\n\n return (\n \n {children}\n \n )\n}\n","import React, { createContext, useReducer } from 'react';\nimport ExpertProfileReducer from \"./expert-profile.reducer\";\nimport {IExpertProfileState} from \"./expert-profile.interfaces\";\n\nconst initialState: IExpertProfileState = {\n data: {\n userId: 0,\n isActive: false,\n type: '',\n email: '',\n phoneNumber: '',\n firstName: '',\n lastName: '',\n organization: '',\n website: '',\n address: '',\n title: '',\n description: '',\n totalFeedbacks: 0,\n rating: 0,\n expertise: '',\n currency: {\n id: -1,\n code: '',\n name: '',\n namePlural: '',\n symbol: '',\n symbolNative: '',\n },\n country: {id: -1, name: ''},\n state: {id: -1, name: ''},\n city: {id: -1, name: ''},\n photoUrl: '',\n },\n categories: [],\n completedFeedbacks: [],\n totalDeletedFeedbacksCount: 0,\n feedbacksPagination: {\n page: 0,\n size: 10,\n totalCount: 0,\n numberOfPages: 0,\n },\n isLoading: true,\n setData: () => null,\n setCompletedFeedbacks: () => null,\n setLoading: () => null,\n setCurrentPage: () => null,\n setExpertType: () => null,\n}\n\nexport const ExpertProfileContext = createContext(initialState);\n\nexport const ExpertProfileProvider: any = ({children}: any) => {\n\n const [state, dispatch] = useReducer(ExpertProfileReducer, initialState);\n\n const setData = (data: unknown): void => {\n dispatch({\n type: 'SET_DATA',\n payload: data\n })\n }\n\n const setCompletedFeedbacks = (data: unknown): void => {\n dispatch({\n type: 'SET_COMPLETED_FEEDBACKS',\n payload: data,\n })\n }\n\n const setCurrentPage = (page: number): void => {\n dispatch({\n type: 'SET_CURRENT_PAGE',\n payload: page,\n })\n }\n\n const setLoading = (loading: boolean): void => {\n dispatch({\n type: 'SET_LOADING',\n payload: loading\n });\n }\n\n const setExpertType = (type: string): void => {\n dispatch({\n type: 'SET_EXPERT_TYPE',\n payload: type\n });\n }\n\n return (\n \n {children}\n \n )\n}\n","import {ISharedWithMeState} from \"./shared-with-me.interfaces\";\nimport React, {createContext, useReducer} from \"react\";\nimport SharedWithMeReducer from \"./shared-with-me.reducer\";\n\nconst initialState: ISharedWithMeState = {\n isLoadingObjects: true,\n isLoadingCollections: true,\n artifacts: [],\n collections: [],\n statistics: {\n totalObjects: 0,\n totalCollections: 0,\n },\n paginationObjects: {\n page: 0,\n size: 4,\n totalCount: 0,\n numberOfPages: 0,\n },\n paginationCollections: {\n page: 0,\n size: 4,\n totalCount: 0,\n numberOfPages: 0,\n },\n setArtifacts: () => null,\n setCollections: () => null,\n setCurrentPageObjects: () => null,\n setCurrentPageCollections: () => null,\n setLoadingObjects: () => null,\n setLoadingCollections: () => null,\n}\n\nexport const SharedWithMeContext = createContext(initialState);\n\nexport const SharedWithMeProvider: any = ({children}: any) => {\n\n const [state, dispatch] = useReducer(SharedWithMeReducer, initialState);\n\n const setArtifacts = (artifacts: any): void => {\n dispatch({\n type: 'SET_ARTIFACTS',\n payload: artifacts\n })\n }\n\n const setCollections = (collections: any): void => {\n dispatch({\n type: 'SET_COLLECTIONS',\n payload: collections\n })\n }\n\n const setCurrentPageCollections = (page: number): void => {\n dispatch({\n type: 'SET_CURRENT_PAGE_COLLECTIONS',\n payload: page,\n })\n }\n\n const setCurrentPageObjects = (page: number): void => {\n dispatch({\n type: 'SET_CURRENT_PAGE_OBJECTS',\n payload: page,\n })\n }\n\n const setLoadingObjects = (loading: boolean): void => {\n dispatch({\n type: 'SET_LOADING_OBJECTS',\n payload: loading\n });\n }\n\n const setLoadingCollections = (loading: boolean): void => {\n dispatch({\n type: 'SET_LOADING_COLLECTIONS',\n payload: loading\n });\n }\n\n return (\n \n {children}\n \n )\n}\n","import React, { createContext, useReducer } from 'react';\nimport { ISharedObjectState } from './shared-object.interfaces';\nimport SharedObjectReducer from './shared-object.reducer';\n\nconst initialState: ISharedObjectState = {\n id: 0,\n artifact: {\n id: 0,\n collectorName: '',\n collectorPhoto: '',\n title: '',\n description: '',\n exactValue: null,\n minimumValue: null,\n maximumValue: null,\n width: null,\n height: null,\n depth: null,\n weight: null,\n exactProductionYear: null,\n lowerProductionYear: null,\n upperProductionYear: null,\n isFeedbackImported: false,\n artistImageUrl: null,\n origin: '',\n material: '',\n style: '',\n artist: '',\n condition: '',\n message: '',\n createdDate: '',\n photos: [],\n categories: [],\n materials: [],\n conditions: [],\n eras: [],\n origins: [],\n styles: [],\n feedbacks: [],\n documents: [],\n },\n setArtifact: () => null,\n};\n\nexport const SharedObjectContext = createContext(initialState);\n\nexport const SharedObjectProvider: any = ({ children }: any) => {\n const [state, dispatch] = useReducer(SharedObjectReducer, initialState);\n\n const setArtifact = (artifact: unknown): void => {\n dispatch({\n type: 'SET_ARTIFACT',\n payload: artifact,\n });\n };\n\n return (\n \n {children}\n \n );\n};\n","import {ICollectionState} from \"./collection.interfaces\";\nimport React, {createContext, useReducer} from \"react\";\nimport CollectionReducer from \"./collection.reducer\";\nimport {SortObjectsOptions} from \"../../../enums\";\n\nconst initialState: ICollectionState = {\n id: 0,\n name: '',\n isLoading: true,\n displayEmptyPage: false,\n artifacts: [],\n pagination: {\n page: 0,\n size: 20,\n totalCount: 0,\n numberOfPages: 0,\n sortBy: SortObjectsOptions.DateCreated,\n asc: false,\n },\n statistics: {\n totalObjects: 0,\n totalValue: 0,\n },\n modals: {\n displayAddObjectModal: false,\n displayDeleteCollectionModal: false,\n displayDeleteObjectModal: -1,\n displayEditCollectionNameModal: false,\n toggleAddObjectModal: () => null,\n toggleDeleteCollectionModal: () => null,\n toggleDeleteObjectModal: () => null,\n toggleEditCollectionNameModal: () => null,\n },\n setArtifacts: () => null,\n setLoading: () => null,\n setCurrentPage: () => null,\n setCollectionId: () => null,\n setSortBy: () => null,\n}\n\nexport const CollectionContext = createContext(initialState);\n\nexport const CollectionProvider: any = ({children}: any) => {\n\n const [state, dispatch] = useReducer(CollectionReducer, initialState);\n\n const setArtifacts = (artifacts: any): void => {\n dispatch({\n type: 'SET_ARTIFACTS',\n payload: artifacts,\n })\n }\n\n const setCurrentPage = (page: number, size: number): void => {\n dispatch({\n type: 'SET_CURRENT_PAGE',\n payload: {page, size},\n })\n }\n\n const setSortBy = (sortBy: string, asc: boolean): void => {\n dispatch({\n type: 'SET_SORT_OPTION',\n payload: {sortBy, asc},\n })\n }\n\n const setLoading = (loading: boolean): void => {\n dispatch({\n type: 'SET_LOADING',\n payload: loading\n })\n }\n\n const setCollectionId = (id: number): void => {\n dispatch({\n type: 'SET_COLLECTION_ID',\n payload: id,\n })\n }\n\n const toggleDeleteCollectionModal = (): void => {\n dispatch({\n type: 'TOGGLE_DELETE_COLLECTION_MODAL',\n payload: !state.modals.displayDeleteCollectionModal,\n })\n }\n\n const toggleAddObjectModal = (): void => {\n dispatch({\n type: 'TOGGLE_ADD_OBJECT_MODAL',\n payload: !state.modals.displayAddObjectModal,\n })\n }\n\n const toggleDeleteObjectModal = (id: number): void => {\n dispatch({\n type: 'TOGGLE_DELETE_OBJ_MODAL',\n payload: id\n })\n }\n\n const toggleEditCollectionNameModal = (value: boolean): void => {\n dispatch({\n type: 'TOGGLE_EDIT_COLLECTION_NAME_MODAL',\n payload: value\n })\n }\n\n return (\n \n {children}\n \n )\n}\n","export default __webpack_public_path__ + \"static/media/loader.def85052.svg\";","import React from \"react\";\n\nimport loader from \"assets/images/loader.svg\";\nimport {Box} from \"@material-ui/core\";\n\nexport const Loader: React.FC = () => {\n return (\n \n \"loader\"\n \n )\n}\n","import React from \"react\";\nimport { Box, Typography } from \"@material-ui/core\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { useHistory } from \"react-router-dom\";\n\nimport ArrowBackIosIcon from '@material-ui/icons/ArrowBackIos';\n\nconst useStyles = makeStyles({\n root: {\n display: 'flex',\n alignItems: 'center',\n color: '#707070',\n fontSize: 18,\n cursor: 'pointer'\n },\n icon: {\n fontSize: 15\n }\n});\n\ntype BackNavigationProps = {\n notify?: () => void;\n}\n\nexport const BackNavigation: React.FC = ({notify}) => {\n\n const classes = useStyles();\n const history = useHistory();\n\n return (\n \n \n notify ? notify() : history.goBack()}\n className={classes.root}\n >\n Back\n \n \n \n )\n}\n","export default __webpack_public_path__ + \"static/media/artifact-logo.8ab90fba.png\";","import React from \"react\";\nimport {makeStyles} from \"@material-ui/core/styles\";\nimport {useHistory} from \"react-router-dom\";\n\nimport logo from \"assets/artifact-logo.png\";\n\nimport {AppRoutes} from \"core/helpers\";\n\nexport const useStyles = makeStyles(_theme => ({\n root: {\n height: 30,\n cursor: 'pointer',\n [\"@media (max-width:1200px)\"]: { height: 22, },\n },\n}))\n\nexport const Logo: React.FC = () => {\n\n const classes = useStyles();\n\n const history = useHistory();\n\n return (\n history.push(AppRoutes.BASE)}\n src={logo}\n alt=\"artifact-logo\"\n className={classes.root}\n />\n )\n}\n","import React from \"react\";\n\nimport { FormControl, IconButton, InputAdornment, Typography } from \"@material-ui/core\";\nimport { Visibility, VisibilityOff } from \"@material-ui/icons\";\nimport InputLabel from \"@material-ui/core/InputLabel\";\nimport OutlinedInput from \"@material-ui/core/OutlinedInput\";\n\ntype PasswordFormControlProps = {\n value: string;\n error: boolean;\n helperText: string;\n className: string;\n onChange: (e: React.ChangeEvent) => unknown;\n onFocus: () => unknown;\n onBlur: () => unknown;\n onKeyPress?: (key: string) => unknown;\n}\n\nexport const PasswordFormControl: React.FC = (\n {value, error, helperText, className, onChange, onFocus, onBlur, onKeyPress}\n) => {\n\n const [values, setValues] = React.useState({\n showPassword: false,\n });\n\n const handleClickShowPassword = (): void => {\n setValues({showPassword: !values.showPassword });\n };\n\n const handleMouseDownPassword = (event: any): void => {\n event.preventDefault();\n };\n\n return (\n \n Password\n onKeyPress ? onKeyPress(e) : null}\n endAdornment={\n \n \n {values.showPassword ? : }\n \n \n }\n />\n {\n error &&\n \n {helperText}\n \n }\n \n )\n}\n","import { makeStyles } from \"@material-ui/core/styles\";\n\nexport const modalStyles = makeStyles((theme) => ({\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n overflow: 'auto'\n },\n paper: {\n backgroundColor: theme.palette.background.paper,\n border: 'none',\n outline: 'none',\n boxShadow: theme.shadows[5],\n padding: '15px 20px',\n width: '30%',\n maxWidth: '440px',\n [theme.breakpoints.down('md')]: {\n width: '40%',\n },\n [theme.breakpoints.down('sm')]: {\n width: '90%',\n },\n },\n modalHeader: {\n position: 'sticky',\n top: 0,\n backgroundColor: theme.palette.background.paper,\n zIndex: 1,\n },\n modalFooter: {\n position: 'sticky',\n bottom: -15,\n padding: '10px 0',\n marginBottom: 10,\n backgroundColor: theme.palette.background.paper\n },\n modalTitle: {\n color: theme.palette.text.primary,\n fontSize: 20,\n letterSpacing: 1,\n fontWeight: 'bold'\n },\n modalSubtitle: {\n color: theme.palette.text.primary,\n fontSize: 13.5,\n marginTop: 10,\n opacity: 0.8,\n },\n divider: {\n backgroundColor: '#707070',\n margin: '10px 0',\n height: 0.5,\n maxWidth: 135,\n },\n primaryButton: {\n color: '#FFFFFF',\n fontSize: 16,\n height: 28,\n borderRadius: 2,\n '&:disabled': {\n backgroundColor: '#A94E15',\n color: '#a8a8a8'\n }\n },\n secondaryButton: {\n color: '#FFFFFF',\n fontSize: 16,\n height: 28,\n borderRadius: 2,\n backgroundColor: '#707070',\n '&:hover': {\n backgroundColor: '#929292',\n }\n }\n}));\n","import React from \"react\";\nimport { Box, Divider, Typography } from \"@material-ui/core\";\n\nimport { modalStyles } from \"components/_others/modals/modal-styles\";\n\nimport CloseIcon from \"@material-ui/icons/Close\";\n\ntype ModalHeaderProps = {\n title: string;\n handleClose: () => void;\n}\n\nexport const ModalHeader: React.FC = ({title, handleClose}) => {\n\n const classes = modalStyles();\n\n return (\n \n
\n \n {title}\n \n \n
\n \n \n )\n}\n","import React from \"react\";\nimport { modalStyles } from \"components/_others/modals/modal-styles\";\nimport { Backdrop, Box, Button, CircularProgress, Fade, Modal, Typography } from \"@material-ui/core\";\n\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport {ModalHeader} from \"./modals/ModalHeader\";\n\ntype ConfirmDeleteModalProps = {\n open: boolean;\n isLoading: boolean;\n subtitle: string;\n handleClose: () => void;\n onConfirm: () => void\n}\n\nexport const ConfirmDeleteModal: React.FC = (\n {open, handleClose, isLoading, onConfirm, subtitle}\n) => {\n\n const classes = modalStyles();\n\n return (\n \n \n
\n\n \n\n \n {subtitle}\n \n\n \n \n Cancel\n \n\n onConfirm()}\n >\n {\n isLoading && \n }\n {\n !isLoading && \n }\n Delete\n \n \n
\n\n
\n \n )\n}\n","import React, {useContext} from 'react';\nimport useAutocomplete from '@material-ui/lab/useAutocomplete';\nimport NoSsr from '@material-ui/core/NoSsr';\nimport CheckIcon from '@material-ui/icons/Check';\nimport CloseIcon from '@material-ui/icons/Close';\nimport styled from 'styled-components';\nimport {UserContext} from \"../../core/context/user\";\n\nconst InputWrapper = styled('div')`\n width: 100%;\n border: 1px solid transparent;\n background-color: '#383838'};\n border-radius: 3px;\n padding: 1px;\n display: flex;\n flex-wrap: wrap;\n\n &:hover {\n border-color: #FE6502;\n }\n\n &.focused {\n border-color: #FE6502;\n }\n\n & input {\n font-size: 1rem;\n height: 30px;\n box-sizing: border-box;\n background-color: '#383838';\n color: #B2B2B2;\n padding: 4px 6px;\n width: 0;\n min-width: 30px;\n flex-grow: 1;\n border: 0;\n margin: 0;\n outline: 0;\n }\n`;\n\nconst Tag = styled(({ label, onDelete, ...props }) => (\n
\n {label}\n \n
\n))`\n display: flex;\n align-items: center;\n height: 24px;\n margin: 2px;\n line-height: 22px;\n background-color: #707070;\n color: #EFEFEF;\n border-radius: 2px;\n box-sizing: content-box;\n padding: 0 4px 0 10px;\n outline: 0;\n overflow: hidden;\n\n &:focus {\n border-color: #40a9ff;\n background-color: #e6f7ff;\n }\n\n & span {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n & svg {\n font-size: 12px;\n cursor: pointer;\n padding: 4px;\n }\n`;\n\nconst Listbox = styled('ul')`\n width: 300px;\n margin: 2px 0 0;\n padding: 0;\n position: absolute;\n list-style: none;\n background-color: ${window.localStorage.getItem('theme') !== 'light' ? '#383838' : '#EFEFEF'};\n overflow: auto;\n max-height: 250px;\n border-radius: 4px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n z-index: 1;\n color: #B2B2B2;\n\n & li {\n padding: 5px 12px;\n display: flex;\n\n & span {\n flex-grow: 1;\n }\n\n & svg {\n color: transparent;\n }\n }\n\n & li[aria-selected='true'] {\n background-color: #fafafa;\n font-weight: 600;\n color: black;\n \n & svg {\n color: #1890ff;\n }\n }\n\n & li[data-focus='true'] {\n background-color: #e6f7ff;\n cursor: pointer;\n color: black;\n\n & svg {\n color: #000;\n }\n }\n`;\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport default function TypeaheadChipMultiselect({options, selectedOptions, onChange} : any): any {\n const {\n getRootProps,\n getInputProps,\n getTagProps,\n getListboxProps,\n getOptionProps,\n groupedOptions,\n value,\n focused,\n setAnchorEl,\n } = useAutocomplete({\n id: 'customized-hook-demo',\n defaultValue: selectedOptions !== null ? selectedOptions : [],\n multiple: true,\n options: options || [],\n getOptionLabel: (option) => option.name,\n onChange: (_event, value) => onChange(value)\n });\n\n const userContext = useContext(UserContext);\n\n return (\n \n
\n
\n \n {value.map((option, index) => (\n \n ))}\n \n \n
\n {groupedOptions.length > 0 ? (\n \n {groupedOptions.map((option, index) => (\n
  • \n {option.name}\n \n
  • \n ))}\n
    \n ) : null}\n
    \n
    \n );\n}\n","import React, {useContext} from \"react\";\nimport { modalStyles } from \"components/_others/modals/modal-styles\";\nimport { Backdrop, Box, Button, Fade, Modal, Typography } from \"@material-ui/core\";\n\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport ArrowBackIosIcon from '@material-ui/icons/ArrowBackIos';\nimport {ObjectDetailsContext} from \"../../core/context/consumer/objectDetails\";\nimport SaveIcon from \"@material-ui/icons/Save\";\n\ntype ConfirmDeleteModalProps = {\n open: boolean;\n handleClose: () => void;\n onConfirm: () => void\n}\n\nexport const UnsavedChangesModal: React.FC = (\n {open, handleClose, onConfirm}\n) => {\n\n const classes = modalStyles();\n const objectDetailsContext = useContext(ObjectDetailsContext);\n\n return (\n \n \n
    \n \n \n \n\n \n \n Unsaved Changes\n \n \n Your changes won't be saved if you cancel this.\n {objectDetailsContext?.modals?.displayUnsavedPhotosModal ? ' You have an unsaved photo.' +\n ' Please click on the Done button below your photo if ' +\n 'you want to save it, or on Delete to remove it.' : ''}\n \n \n\n \n\n {\n !objectDetailsContext?.modals?.displayUnsavedPhotosModal &&\n onConfirm()}\n >\n {\n objectDetailsContext?.modals?.displayUnsavedPhotosModal ?\n \n : \n }\n Cancel\n \n }\n\n \n \n Continue Editing\n \n\n\n\n \n
    \n\n
    \n \n )\n}\n","import React, {FunctionComponent, useContext} from 'react'\nimport { Redirect, Route } from 'react-router-dom'\n\nimport { getToken } from \"core/helpers/storage-helper\";\nimport { UserContext } from \"core/context/user\";\nimport { AppRoutes } from \"../../core/helpers\";\n\ntype PrivateRouteProps = {\n component: FunctionComponent;\n path: string;\n exact?: boolean;\n restrictedRoles?: string[];\n}\n\nexport const PrivateRoute: React.FC = (\n { component, path, restrictedRoles, exact, ...rest }\n) => {\n\n const userContext = useContext(UserContext);\n\n const shouldAllow = (): boolean => {\n if(!getToken()) {\n return false;\n }\n if(!restrictedRoles) {\n return true;\n }\n return restrictedRoles.findIndex((r: string) => r === userContext.user?.role) > -1;\n }\n\n return (\n \n shouldAllow() ? (\n \n ) : (\n \n )\n }\n />\n )\n}\n","import { makeStyles } from '@material-ui/core/styles';\n\nexport const fullOpacityStyles = makeStyles((theme) => ({\n root: {\n width: '50%',\n height: 65,\n position: 'absolute',\n right: 0,\n ['@media (max-width:1280px)']: { width: '100%' },\n },\n full: {\n width: '100%',\n backgroundColor: theme.dashboardHeader.main,\n },\n partial: {\n padding: 30,\n marginTop: 0,\n backgroundColor: theme.dashboardHeader.main,\n },\n}));\n\nexport const logoStyles = makeStyles({\n root: {\n paddingLeft: 24,\n },\n});\n\nexport const generalStyles = makeStyles((_theme) => ({\n authButtonsContainer: {\n display: 'flex',\n height: 64,\n '&button': {\n height: 64,\n fontSize: 18,\n textTransform: 'capitalize',\n },\n '&#sign-up-header-btn': {\n minWidth: 141,\n },\n '#log-in-header-btn': {\n minWidth: 100,\n },\n },\n navItem: {\n ['@media (max-width:1340px)']: { paddingLeft: 5, paddingRight: 9 },\n },\n navLink: {\n fontSize: 17,\n lineHeight: 1,\n ['@media (max-width:1140px)']: { fontSize: 15, lineHeight: 1 },\n ['@media (max-width:1345px)']: { lineHeight: 1 },\n '&:hover': {\n textDecoration: 'underline',\n },\n },\n}));\n\nexport const authButtonsStyles = makeStyles((_theme) => ({\n authButtonsContainer: {\n display: 'flex',\n height: 64,\n },\n button: {\n height: 64,\n fontSize: 18,\n textTransform: 'capitalize',\n },\n signUp: {\n minWidth: 141,\n },\n logIn: {\n minWidth: 100,\n },\n}));\n","import {makeStyles} from \"@material-ui/core/styles\";\n\nexport const responsiveStyles = makeStyles({\n hideMobile: {\n [\"@media (max-width:1000px)\"]: { display: 'none !important' },\n },\n justOnMobile: {\n display: 'none',\n [\"@media (max-width:1000px)\"]: { display: 'inline' },\n },\n})\n","import {AppRoutes} from \"core/helpers/app-routes\";\n\nexport const navLinks = {\n default: [\n {\n id: 0,\n name: 'Home',\n path: AppRoutes.CREATE_ACCOUNT,\n onAuthPages: true,\n },\n {\n id: 1,\n name: 'Our Mission',\n path: AppRoutes.OUR_MISSION,\n onAuthPages: true,\n },\n ],\n dashboard: [\n {\n id: 10,\n name: 'My Objects',\n path: AppRoutes.MY_OBJECTS,\n onAuthPages: false,\n },\n {\n id: 11,\n name: 'My Collections',\n path: AppRoutes.MY_COLLECTIONS,\n onAuthPages: false,\n },\n {\n id: 12,\n name: 'Shared with me',\n path: AppRoutes.SHARED_WITH_ME,\n onAuthPages: false,\n },\n {\n id: 13,\n name: 'Community Feed',\n path: AppRoutes.PUBLIC_FEED,\n onAuthPages: false,\n },\n {\n id: 14,\n name: 'Reporting',\n path: AppRoutes.REPORTING,\n onAuthPages: false,\n },\n ],\n auth: [\n {\n id: 20,\n name: 'Log In',\n path: AppRoutes.SIGN_IN,\n onAuthPages: true,\n },\n {\n id: 21,\n name: 'Sign Up',\n path: AppRoutes.CREATE_ACCOUNT,\n onAuthPages: true,\n },\n {\n id: 22,\n name: 'Edit Profile',\n path: AppRoutes.COLLECTOR_PROFILE,\n onAuthPages: false,\n },\n {\n id: 23,\n name: 'Notifications',\n path: AppRoutes.NOTIFICATIONS,\n onAuthPages: false,\n }\n ],\n helpers: [\n {\n id: 30,\n name: 'Home',\n path: AppRoutes.ASSIGNED_COLLECTORS_INDEX,\n onAuthPages: false,\n },\n {\n id: 31,\n name: 'Our Mission',\n path: AppRoutes.OUR_MISSION,\n onAuthPages: false,\n },\n ]\n}\n","export default __webpack_public_path__ + \"static/media/MYRIADPRO-REGULAR.d30b0546.woff\";","export default __webpack_public_path__ + \"static/media/MYRIADPRO-BOLD.1c643226.woff\";","export default __webpack_public_path__ + \"static/media/MYRIADPRO-SEMIBOLD.230dfc3b.woff\";","export default __webpack_public_path__ + \"static/media/MyriadPro-Light.43b72dcd.woff\";","import MyriadProRegular from './MYRIADPRO-REGULAR.woff';\nimport MyriadProBold from './MYRIADPRO-BOLD.woff';\nimport MyriadProSemibold from './MYRIADPRO-SEMIBOLD.woff';\nimport MyriadProLight from './MyriadPro-Light.woff';\n\nexport const myriadProRegular: any = {\n fontFamily: 'Myriad Pro Regular',\n fontStyle: 'normal',\n fontDisplay: 'swap',\n fontWeight: 'normal',\n src: `\n local('Myriad Pro'),\n local('Myriad Pro Regular'),\n url(${MyriadProRegular}) format('woff')\n `,\n};\n\nexport const myriadProBold: any = {\n fontFamily: 'Myriad Pro Bold',\n fontStyle: 'normal',\n fontDisplay: 'swap',\n fontWeight: 'bold',\n src: `\n local('Myriad Pro'),\n local('Myriad Pro Bold'),\n url(${MyriadProBold}) format('woff')\n `,\n};\n\nexport const myriadProSemiBold: any = {\n fontFamily: 'Myriad Pro Semibold',\n fontStyle: 'normal',\n fontDisplay: 'swap',\n fontWeight: 'bolder',\n src: `\n local('Myriad Pro'),\n local('Myriad Pro Semibold'),\n url(${MyriadProSemibold}) format('woff')\n `,\n};\n\nexport const myriadProLight: any = {\n fontFamily: 'Myriad Pro Light',\n fontStyle: 'normal',\n fontDisplay: 'swap',\n fontWeight: 'light',\n src: `\n local('Myriad Pro'),\n local('Myriad Pro Light'),\n url(${MyriadProLight}) format('woff')\n `,\n}\n","import { createMuiTheme, ThemeOptions } from '@material-ui/core/styles';\nimport {myriadProBold, myriadProLight, myriadProRegular, myriadProSemiBold} from \"../fonts/myriad-pro\";\n\nexport const darkTheme: ThemeOptions = createMuiTheme({\n rootBackground: {\n main: \"#23232B\",\n secondary: \"#383838\",\n secondaryBorder: \"#444444\",\n cardBackground: \"#2B2B33\",\n progressBarBackground: \"#707070\",\n modalBackground: '#33333B',\n highlightBackground: '#423534',\n },\n divider: {\n main: '#383838',\n },\n dashboardHeader: {\n main: '#2B2B33'\n },\n label: {\n main: '#707070',\n text: '#EFEFEF',\n labelBackground: '#34343a'\n },\n formLabel: {\n main: \"#ACACAC\",\n },\n palette: {\n common: {\n black: \"#000\",\n white: \"#fff\"\n },\n background: {\n default: \"#23232B\",\n paper: \"#2B2B33\"\n },\n text: {\n primary: \"#EFEFEF\",\n secondary: \"#ACACAC\",\n },\n primary: {\n main: \"#FE6502\",\n contrastText: \"#FFFFFF\"\n },\n secondary: {\n main: \"#029BFE\",\n contrastText: \"#FFFFFF\"\n },\n error: {\n main: \"#B32222\",\n },\n warning: {\n main: \"#FE6502\",\n },\n info: {\n main: \"#707070\"\n },\n success: {\n main: \"#57B894\",\n }\n },\n typography: {\n fontFamily: [\n 'Myriad Pro',\n 'Myriad Pro Regular',\n 'Myriad Pro Semibold',\n 'sans-serif'\n ].join(','),\n },\n shape: {\n borderRadius: 3,\n },\n overrides: {\n MuiCssBaseline: {\n '@global': {\n '@font-face': [\n myriadProRegular,\n myriadProBold,\n myriadProLight,\n myriadProSemiBold,\n ],\n },\n },\n MuiTextField: {\n root: {\n borderRadius: 3,\n color: '#fff',\n '& input:disabled': {\n color: '#ACACAC',\n },\n '& textarea:disabled': {\n color: '#ACACAC',\n },\n },\n },\n MuiOutlinedInput: {\n root: {\n backgroundColor: '#383838',\n borderRadius: 3,\n color: '#B2B2B2',\n '& input:disabled': {\n color: '#ACACAC',\n },\n },\n },\n MuiButton: {\n root: {\n textTransform: 'none',\n fontSize: 16,\n borderRadius: 2,\n }\n },\n MuiSelect: {\n root: {\n paddingTop: 10,\n paddingBottom: 10,\n '& input:disabled': {\n color: '#ACACAC',\n },\n }\n },\n MuiChip: {\n root: {\n backgroundColor: '#707070 !important',\n }\n }\n },\n});\n","import { createMuiTheme, ThemeOptions } from '@material-ui/core/styles';\nimport {myriadProBold, myriadProLight, myriadProRegular, myriadProSemiBold} from \"../fonts/myriad-pro\";\n\nexport const lightTheme: ThemeOptions = createMuiTheme({\n rootBackground: {\n main: \"#FFFFFF\",\n secondary: \"#EFEFEF\",\n secondaryBorder: \"#e2e2e2\",\n cardBackground: \"#EFEFEF\",\n progressBarBackground: \"#acacac\",\n modalBackground: '#FFFFFF',\n highlightBackground: '#ffd8bf',\n },\n divider: {\n main: '#e2e2e2',\n },\n dashboardHeader: {\n main: '#FFFFFF'\n },\n label: {\n main: '#EFEFEF',\n text: '#23232B',\n labelBackground: '#EFEFEF',\n },\n formLabel: {\n main: \"#383838\",\n },\n palette: {\n common: {\n black: \"#000\",\n white: \"#fff\"\n },\n background: {\n default: \"#FFFFFF\",\n paper: \"#FFFFFF\",\n },\n text: {\n primary: \"#383838\",\n secondary: \"#B2B2B2\",\n },\n primary: {\n main: \"#FE6502\",\n contrastText: \"#FFFFFF\"\n },\n secondary: {\n main: \"#029BFE\",\n contrastText: \"#FFFFFF\"\n },\n error: {\n main: \"#B32222\",\n },\n warning: {\n main: \"#FE6502\",\n },\n info: {\n main: \"#707070\"\n },\n success: {\n main: \"#57B894\",\n }\n },\n typography: {\n fontFamily: [\n 'Myriad Pro',\n 'Myriad Pro Regular',\n 'Myriad Pro Semibold',\n 'sans-serif'\n ].join(','),\n },\n shape: {\n borderRadius: 3,\n },\n overrides: {\n MuiCssBaseline: {\n '@global': {\n '@font-face': [\n myriadProRegular,\n myriadProBold,\n myriadProLight,\n myriadProSemiBold,\n ],\n },\n },\n MuiTextField: {\n root: {\n borderRadius: 3,\n color: '#fff'\n },\n },\n MuiOutlinedInput: {\n root: {\n backgroundColor: '#F7F7F7',\n borderRadius: 3,\n color: '#23232B'\n },\n },\n MuiButton: {\n root: {\n textTransform: 'none',\n fontSize: 16,\n borderRadius: 2,\n }\n },\n MuiSelect: {\n root: {\n paddingTop: 10,\n paddingBottom: 10,\n }\n },\n MuiChip: {\n root: {\n backgroundColor: '#EFEFEF !important',\n color: '#23232B !important'\n }\n }\n },\n});\n","import { createMuiTheme, ThemeOptions } from \"@material-ui/core\";\nimport { darkTheme } from \"assets/themes/dark-theme\";\nimport {lightTheme} from \"../../../assets/themes/light-theme\";\n\nexport function getHeaderTheme(isLightTheme: boolean): ThemeOptions {\n return isLightTheme ? collectorHeaderLightTheme : collectorHeaderDarkTheme;\n}\n\nexport const collectorHeaderDarkTheme: ThemeOptions = createMuiTheme({\n ...darkTheme,\n palette: {\n ...darkTheme.palette,\n primary: {\n main: \"rgb(43,43,51, 0.7)\",\n contrastText: \"#EFEFEF\",\n },\n secondary: {\n main: \"#FE6502\",\n contrastText: \"#EFEFEF\",\n }\n },\n typography: {\n htmlFontSize: 18,\n fontFamily: \"Myriad Pro Regular\"\n },\n overrides: {\n MuiAppBar: {\n root: {\n boxShadow: \"0 3px 10px #00000014\",\n minHeight: 65,\n backgroundColor: 'rgb(43,43,51, 0.7) !important',\n },\n },\n MuiToolbar: {\n root: {\n minHeight: 65,\n }\n },\n MuiList: {\n root: {\n display: \"inline-flex\",\n paddingLeft: 40,\n paddingRight: 40,\n flexGrow: 1,\n }\n },\n MuiLink: {\n root: {\n cursor: \"pointer\",\n }\n },\n MuiButton: {\n root: {\n borderRadius: 0,\n }\n },\n MuiPopover: {\n root: {\n top: 0,\n maxWidth: '100vw',\n maxHeight: '100vh',\n overflow: 'auto!important',\n },\n paper: {\n position: 'absolute',\n maxWidth: '100vw',\n maxHeight: '100vh',\n overflow: 'auto!important',\n top: '0!important',\n left: '0!important',\n bottom: 0,\n right: 0\n }\n }\n },\n});\n\nexport const collectorHeaderLightTheme: ThemeOptions = createMuiTheme({\n ...lightTheme,\n palette: {\n ...darkTheme.palette,\n primary: {\n main: \"rgb(43,43,51, 0.7)\",\n contrastText: \"#EFEFEF\",\n },\n secondary: {\n main: \"#FE6502\",\n contrastText: \"#EFEFEF\",\n },\n background: {\n default: \"#FFFFFF\",\n paper: \"#FFFFFF\",\n },\n text: {\n primary: \"#383838\",\n secondary: \"#B2B2B2\",\n },\n },\n typography: {\n htmlFontSize: 18,\n fontFamily: \"Myriad Pro Regular\"\n },\n overrides: {\n MuiAppBar: {\n root: {\n boxShadow: \"0 3px 10px #00000014\",\n minHeight: 65,\n backgroundColor: '#FFFFFF !important',\n },\n },\n MuiToolbar: {\n root: {\n minHeight: 65,\n }\n },\n MuiList: {\n root: {\n display: \"inline-flex\",\n paddingLeft: 40,\n paddingRight: 40,\n flexGrow: 1,\n }\n },\n MuiLink: {\n root: {\n cursor: \"pointer\",\n }\n },\n MuiButton: {\n root: {\n borderRadius: 0,\n }\n },\n MuiPopover: {\n root: {\n top: 0,\n maxWidth: '100vw',\n maxHeight: '100vh',\n overflow: 'auto!important',\n },\n paper: {\n position: 'absolute',\n maxWidth: '100vw',\n maxHeight: '100vh',\n overflow: 'auto!important',\n top: '0!important',\n left: '0!important',\n bottom: 0,\n right: 0\n }\n },\n MuiPaper: {\n root: {\n backgroundColor: \"#EFEFEF\",\n }\n }\n },\n});\n","import React, { useContext, useState } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { InputBase } from '@material-ui/core';\n\nimport SearchIcon from '@material-ui/icons/Search';\n\nimport { AppRoutes } from 'core/helpers';\nimport { SearchResultsContext } from 'core/context/searchResults';\n\nconst useStyles = makeStyles((theme) => ({\n search: {\n position: 'relative',\n borderRadius: theme.shape.borderRadius,\n height: 35,\n marginRight: theme.spacing(2),\n marginLeft: 0,\n width: '100%',\n backgroundColor: theme.divider.main,\n border: '1px solid',\n borderColor: theme.label.main,\n [theme.breakpoints.up('sm')]: {\n marginLeft: theme.spacing(3),\n width: 'auto',\n },\n [theme.breakpoints.down('md')]: {\n marginLeft: theme.spacing(3),\n maxWidth: 180,\n },\n },\n searchIcon: {\n padding: theme.spacing(0, 2),\n height: '100%',\n position: 'absolute',\n pointerEvents: 'none',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: theme.formLabel.main,\n },\n inputRoot: {\n color: theme.formLabel.main,\n },\n inputInput: {\n padding: theme.spacing(1, 1, 1, 0),\n paddingLeft: `calc(1em + ${theme.spacing(4)}px)`,\n transition: theme.transitions.create('width'),\n width: '100%',\n [theme.breakpoints.up('md')]: {\n width: '40ch',\n },\n [theme.breakpoints.down('md')]: {\n width: '17ch',\n },\n },\n hideOnSmallScreens: {\n ['@media (max-width:600px)']: { display: 'none !important' },\n ['@media (min-width:600px) and (max-width:1000px)']: { position: 'absolute', right: 55 },\n },\n}));\n\nexport const Searchbar: React.FC = () => {\n const classes = useStyles();\n const history = useHistory();\n const searchResultsContext = useContext(SearchResultsContext);\n\n const [searchBy, setSearchBy] = useState('');\n\n const onSearch = (): void => {\n if (searchBy.length < 4 && searchBy.length !== 0) {\n return;\n }\n searchResultsContext.setSearchBy(searchBy);\n history.push(AppRoutes.SEARCH_RESULTS);\n };\n\n const handleKeyPress = (e: any): void => {\n if (e.key === 'Enter') {\n onSearch();\n e.preventDefault();\n }\n };\n\n return (\n
    \n
    \n onSearch()} />\n
    \n setSearchBy(e.target.value)}\n onKeyPress={(e: any) => handleKeyPress(e)}\n />\n
    \n );\n};\n","import React, { createContext, useReducer } from 'react';\nimport {IAction} from \"./interfaces\";\n\nconst initialState: any = {\n snackbar: {\n severity: '',\n text: '',\n },\n appLoader: false,\n\n selectedJob: -1,\n}\n\nconst Reducer = (state: any, action: IAction): any => {\n switch(action.type) {\n case 'ADD':\n return {\n ...state,\n snackbar: {\n severity: action.payload.severity,\n text: action.payload.text || 'Sorry, there was an error. Please try again later.',\n }\n }\n case 'CLOSE':\n return {\n ...state,\n snackbar: {\n severity: '',\n text: '',\n }\n }\n case 'SET_LOADER': {\n return {\n ...state,\n appLoader: action.payload\n }\n }\n case 'SELECT_JOB': {\n return {\n ...state,\n selectedJob: action.payload\n }\n }\n default:\n return state;\n }\n}\n\nexport const UtilsContext = createContext(initialState);\n\nexport const UtilsProvider: any = ({children}: any) => {\n\n const [state, dispatch] = useReducer(Reducer, initialState);\n\n const addSnackbar = (severity: string, text?: string): void => {\n dispatch({\n type: 'ADD',\n payload: {severity, text}\n })\n }\n\n const closeSnackbar = (): void => {\n dispatch({\n type: 'CLOSE',\n payload: null\n })\n }\n\n const setAppLoaderState = (value: boolean): void => {\n dispatch({\n type: 'SET_LOADER',\n payload: value,\n })\n }\n\n const selectJob = (id: number): void => {\n dispatch({\n type: 'SELECT_JOB',\n payload: id,\n })\n }\n\n return (\n \n {children}\n \n )\n}\n","import React, {useContext} from \"react\";\nimport { Link, useHistory } from \"react-router-dom\";\nimport { Box, ClickAwayListener, Tooltip, Typography, Zoom } from \"@material-ui/core\";\nimport \"../styles/user-menu.less\"\n\nimport AccountCircleIcon from '@material-ui/icons/AccountCircle';\nimport PersonIcon from '@material-ui/icons/Person';\nimport NotificationsIcon from '@material-ui/icons/Notifications';\nimport ExitToAppIcon from '@material-ui/icons/ExitToApp';\n\nimport { UserContext } from \"core/context/user\";\nimport { clearLocalStorage } from \"core/helpers/storage-helper\";\nimport { AppRoutes } from \"core/helpers/app-routes\";\nimport { getPhotoUrl } from \"core/helpers/file-size.helper\";\nimport { FileSize } from \"core/enums\";\nimport {UtilsContext} from \"../../../../core/context/utils.context\";\n\n\nexport const UserAvatar: React.FC = () => {\n\n const userContext = useContext(UserContext);\n\n const [open, setOpen] = React.useState(false);\n\n return (\n <>\n
    \n\n \n \n {\n userContext.newNotifications && \n }\n \n\n open ? setOpen(false) : null}>\n }\n onClose={() => setOpen(false)}\n open={open}\n disableFocusListener\n disableHoverListener\n placement={'bottom-end'}\n id=\"user-menu-tooltip\"\n >\n {\n !userContext.user?.photoUrl ?\n setOpen(!open)}\n style={{width: 40, height: 40, color: '#FE6502', cursor: 'pointer'}}\n /> : setOpen(!open)}\n src={getPhotoUrl(userContext.user.photoUrl, FileSize.SM) || ''}\n alt=\"avatar\"\n style={{width: 40, height: 40, borderRadius: 150, cursor: 'pointer'}}\n />\n }\n \n \n
    \n \n\n )\n}\n\nconst UserMenu: React.FC = () => {\n\n const userContext = useContext(UserContext);\n const utilsContext = useContext(UtilsContext);\n const history = useHistory();\n\n const onLogout = (): void => {\n clearLocalStorage();\n userContext.onLogout();\n utilsContext.selectJob(-1);\n history.push(AppRoutes.SIGN_IN);\n }\n\n return (\n \n \n {\n !userContext.user?.photoUrl &&\n \n }\n\n {\n userContext.user?.photoUrl &&\n \n }\n \n {userContext.user?.firstName}{' '}{userContext.user?.lastName}\n \n \n\n \n \n \n Edit Profile\n \n \n\n
    \n\n onLogout()}>\n Log out\n \n \n \n )\n}\n","import {makeStyles} from \"@material-ui/core/styles\";\n\nexport const mobileMenuStyles = makeStyles(theme => ({\n hamburgerMenu: {\n [\"@media (max-width:1000px)\"]: {\n position: 'absolute',\n right: 0\n }\n },\n hamburgerMenuSvg: {\n color: theme.palette.text.primary,\n [\"@media (max-width:1000px)\"]: {\n width: '4rem',\n marginTop: -17,\n height: '2rem',\n cursor: 'pointer'\n }\n },\n headerBox: {\n position: 'fixed',\n width: '100%',\n zIndex: 1,\n backgroundColor: theme.palette.background.paper,\n },\n logoBox: {\n height: 65,\n display: 'flex',\n alignItems: 'center',\n paddingLeft: 24\n },\n iconBox: {\n height: 65,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n },\n closeIcon: {\n width: '4rem',\n height: '2rem',\n color: theme.palette.text.primary,\n },\n divider: {\n width: 115,\n marginLeft: 12,\n marginTop: 20,\n marginBottom: 20,\n backgroundColor: theme.divider.main,\n },\n navBox: {\n marginTop: 60,\n marginBottom: 20,\n },\n nav: {\n display: 'block',\n paddingLeft: 40,\n paddingRight: 40,\n },\n}))\n","import React from \"react\";\nimport {Box, Grid} from \"@material-ui/core\";\n\nimport {mobileMenuStyles} from \"../_styles/mobile-menu.styles\";\nimport CloseIcon from \"@material-ui/icons/Close\";\n\nimport {Logo} from \"components/_others\";\n\ntype HeaderProps = {\n handleClose: () => void;\n}\n\nexport const Header: React.FC = ({handleClose}) => {\n\n const mobileMenuClasses = mobileMenuStyles();\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n","import React, {useContext, useState} from \"react\";\nimport {\n Backdrop,\n Box,\n Button,\n CircularProgress,\n Fade, InputLabel,\n Modal,\n TextField,\n Typography\n} from \"@material-ui/core\";\nimport {modalStyles} from \"./modals/modal-styles\";\nimport {CommonApi} from \"../../core/api/shared\";\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport ReplyIcon from \"@material-ui/icons/Reply\";\nimport {UtilsContext} from \"../../core/context/utils.context\";\nimport {UserContext} from \"../../core/context/user\";\nimport {validateEmail} from \"../../core/helpers\";\n\ntype ContactUsModalProps = {\n open: boolean;\n handleClose: () => void;\n}\n\nexport const ContactUsModal: React.FC = ({open, handleClose}) => {\n\n const classes = modalStyles();\n\n const utilsContext = useContext(UtilsContext);\n const userContext = useContext(UserContext);\n\n const [message, setMessage] = useState('');\n const [email, setEmail] = useState(userContext.user?.email || '');\n\n const [errors, setErrors] = useState({\n email: '',\n message: 'Please enter your message'\n })\n\n const [isLoading, setIsLoading] = useState(false);\n\n\n const onSend = (): void => {\n if(!message || !message.trim().length) {\n return;\n }\n\n setIsLoading(true);\n CommonApi.sendContactUsEmail({text: message, email})\n .then(() => {\n setIsLoading(false);\n utilsContext.addSnackbar('success', 'Thank you! Your message was sent to us.');\n })\n .catch((error: any) => {\n console.error(error.response);\n setIsLoading(false);\n utilsContext.addSnackbar('error');\n })\n }\n\n return (\n \n \n
    \n \n \n \n\n \n \n Contact Us\n \n \n We'd love to hear from you. Send us a message, suggestion or feedback using the form below\n \n \n Your email is not required, you can be anonymous,\n but if you have a problem related to your account, your address will help us get back to you.\n \n \n\n \n Email\n \n {\n setEmail(e.target.value);\n setErrors({...errors, email: email ? !validateEmail(email) ? 'Please enter a valid email' : '' : ''})\n }}\n onBlur={() => setErrors({...errors, email: email ? !validateEmail(email) ? 'Please enter a valid email' : '' : ''})}\n />\n\n \n Message\n \n setMessage(e.target.value)}\n onBlur={() => setErrors({...errors, message: message.trim().length === 0 ? 'Please enter your message' : ''})}\n />\n\n \n onSend()}\n disabled={errors.message !== '' || errors.email !== ''}\n >\n {\n isLoading && \n }\n {\n !isLoading && \n }\n Send\n \n \n
    \n
    \n \n )\n}\n","import React, {useContext} from \"react\";\nimport {useHistory, useRouteMatch} from \"react-router-dom\";\nimport {Link, ListItem, Typography} from \"@material-ui/core\";\n\nimport {UserContext} from \"core/context/user\";\nimport {INavLink} from \"../_helpers/nav-link.interfaces\";\n\ntype Props = {\n navLink: INavLink;\n onClick?: () => void\n}\n\nconst activeLinkColor = (isLightTheme: boolean): string => {\n return isLightTheme ? 'black' : '#FFFFFF';\n}\n\nconst inactiveLinkColor = (isLightTheme: boolean): string => {\n return isLightTheme ? '#6c6c6c' : '#B2B2B2';\n}\n\nexport const MobileMenuNavLink: React.FC = ({navLink, onClick}) => {\n\n const history = useHistory();\n const userContext = useContext(UserContext);\n\n const isRouteMatch = (path: string, exact: boolean): any => {\n return useRouteMatch({\n path, exact\n });\n }\n\n return (\n {history.push(navLink.path); onClick ? onClick() : {}}}\n style={\n navLink.onAuthPages || isRouteMatch(navLink.path, true)\n ? {color: activeLinkColor(userContext.lightTheme)}\n : {color: inactiveLinkColor(userContext.lightTheme)}\n }\n >\n \n \n {navLink.name}\n \n \n \n )\n}\n","import React, {useState} from \"react\";\nimport {Divider, Link, ListItem, Typography} from \"@material-ui/core\";\n\nimport {mobileMenuStyles} from \"../_styles/mobile-menu.styles\";\nimport {lightTheme} from \"assets/themes/light-theme\";\nimport {darkTheme} from \"assets/themes/dark-theme\";\n\nimport {INavLink} from \"../_helpers/nav-link.interfaces\";\n\nimport {ContactUsModal} from \"components/_others/ContactUsModal\";\nimport {ThemeProvider} from \"@material-ui/core/styles\";\nimport {MobileMenuNavLink} from \"./MobileMenuNavLink\";\n\ntype NavigationProps = {\n navLinks: INavLink[];\n authLinks: INavLink[];\n onAuthPages: boolean;\n onLightTheme: boolean;\n handleClose: () => void;\n}\n\nexport const MobileMenuNavigation: React.FC = (\n {navLinks, authLinks, onAuthPages, onLightTheme, handleClose}\n) => {\n\n const mobileMenuClasses = mobileMenuStyles();\n\n const [displayContactUsModal, toggleContactUsModal] = useState(false);\n\n return (\n <>\n {navLinks.map((navLink: INavLink) => (\n handleClose()} />\n ))}\n\n {\n onAuthPages &&\n toggleContactUsModal(true)}>\n \n \n Contact Us\n \n \n \n }\n\n {\n authLinks.length > 0 &&\n <>\n \n\n {authLinks\n .filter((navLink: INavLink) => navLink.onAuthPages === onAuthPages)\n .map((navLink: INavLink) => (\n handleClose()} />\n ))\n }\n \n }\n\n \n toggleContactUsModal(false)}\n />\n \n \n )\n}\n","import React, { useContext } from \"react\";\nimport { FormControlLabel, Switch } from \"@material-ui/core\";\n\nimport { UserContext } from \"core/context/user\";\n\nexport const ThemeSwitch: React.FC = () => {\n\n const userContext = useContext(UserContext);\n\n return (\n userContext.setTheme(!userContext.lightTheme, true)}\n color={\"primary\"}\n name=\"change-theme\"\n inputProps={{ 'aria-label': 'secondary checkbox' }}\n />\n }\n style={{color: 'gray'}}\n label={userContext.lightTheme ? 'Light' : 'Dark'}\n />\n )\n}\n","import React, {useContext} from \"react\";\nimport {useHistory} from \"react-router-dom\";\nimport {Box, Divider, Typography} from \"@material-ui/core\";\n\nimport ExitToAppIcon from \"@material-ui/icons/ExitToApp\";\nimport {mobileMenuStyles} from \"../_styles/mobile-menu.styles\";\n\nimport {AppRoutes, clearLocalStorage} from \"core/helpers\";\nimport {UserContext} from \"core/context/user\";\n\nimport {ThemeSwitch} from \"./ThemeSwitch\";\n\ntype UserActionsProps = {\n handleClose: () => void;\n}\n\nexport const MobileMenuUserActions: React.FC = ({handleClose}) => {\n\n const history = useHistory();\n const userContext = useContext(UserContext);\n\n const mobileMenuClasses = mobileMenuStyles();\n\n const onLogout = (): void => {\n clearLocalStorage();\n userContext.onLogout();\n history.push(AppRoutes.SIGN_IN);\n handleClose();\n }\n\n return (\n <>\n \n\n \n \n \n\n \n\n onLogout()}\n >\n \n Log out\n \n \n )\n}\n","import React, {useContext} from \"react\";\nimport {Box, List, Popover} from \"@material-ui/core\";\n\nimport MenuIcon from \"@material-ui/icons/Menu\";\nimport {mobileMenuStyles} from \"../_styles/mobile-menu.styles\";\n\nimport {UserContext} from \"core/context/user\";\n\nimport {Header} from \"../_components/MobileMenuHeader\";\nimport {MobileMenuNavigation} from \"../_components/MobileMenuNavigation\";\nimport {MobileMenuUserActions} from \"../_components/MobileMenuUserActions\";\nimport {INavLink} from \"../_helpers/nav-link.interfaces\";\n\ntype MobileMenuProps = {\n navLinks: INavLink[],\n authLinks: INavLink[],\n onAuthPages: boolean;\n}\n\nexport const MobileMenu: React.FC = ({navLinks, authLinks, onAuthPages}) => {\n\n const userContext = useContext(UserContext);\n\n const mobileMenuClasses = mobileMenuStyles();\n\n const [anchorEl, setAnchorEl] = React.useState(null);\n\n const handleClick = (event: any): void => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClose = (): void => {\n setAnchorEl(null);\n };\n\n const open = Boolean(anchorEl);\n const id = open ? 'mobile-menu-popover' : undefined;\n\n return (\n \n \n \n
    \n\n \n \n \n\n {\n userContext.user !== null &&\n \n }\n \n \n \n \n\n )\n}\n","import React from \"react\";\nimport { Box } from \"@material-ui/core\";\n\nimport { fullOpacityStyles } from \"../styles/styles\";\n\ntype FullOpacityProps = {\n fullOpacity: boolean;\n}\n\nexport const FullOpacity: React.FC = ({fullOpacity}) => {\n\n const classes = fullOpacityStyles();\n\n return (\n \n )\n}\n","import React from \"react\";\nimport { useHistory } from 'react-router-dom';\nimport { Button} from \"@material-ui/core\";\n\nimport { authButtonsStyles } from \"../styles/styles\";\n\nimport { AppRoutes } from \"core/helpers/app-routes\";\n\nexport const LogInBtn: React.FC = () => {\n\n const history = useHistory();\n const classes = authButtonsStyles();\n\n return (\n history.push(AppRoutes.SIGN_IN)}\n className={`${classes.button} ${classes.logIn}`}\n >\n Log In\n \n )\n}\n","import React from \"react\";\nimport { useHistory } from 'react-router-dom';\nimport { Button } from \"@material-ui/core\";\n\nimport { authButtonsStyles } from \"../styles/styles\";\n\nimport { AppRoutes } from \"core/helpers/app-routes\";\n\nexport const SignUpBtn: React.FC = () => {\n\n const history = useHistory();\n\n const classes = authButtonsStyles();\n\n return (\n history.push(AppRoutes.CREATE_ACCOUNT)}\n >\n Sign Up\n \n )\n}\n","import React from \"react\";\nimport {Box} from \"@material-ui/core\";\n\nimport {authButtonsStyles} from \"../styles/styles\";\n\nimport {LogInBtn} from \"./LogInBtn\";\nimport {SignUpBtn} from \"./SignUpBtn\";\nimport {responsiveStyles} from \"../../_styles/responsive-styles\";\n\nexport const AuthButtons: React.FC = () => {\n\n const classes = authButtonsStyles();\n const responsiveClasses = responsiveStyles();\n\n return (\n \n \n \n \n )\n}\n","import React, {useContext} from \"react\";\nimport {useRouteMatch} from \"react-router-dom\";\nimport {Link} from \"react-router-dom\";\n\nimport {ListItem, Typography} from \"@material-ui/core\";\n\nimport {UserContext} from \"core/context/user\";\nimport {generalStyles} from \"../styles/styles\";\nimport {INavLink} from \"../../_helpers/nav-link.interfaces\";\nimport {UserRoles} from \"../../../../core/enums\";\n\ntype Props = {\n navLink: INavLink;\n onClick?: () => void\n}\n\nconst activeLinkColor = (isLightTheme: boolean): string => {\n return isLightTheme ? 'black' : '#FFFFFF';\n}\n\nconst inactiveLinkColor = (isLightTheme: boolean): string => {\n return isLightTheme ? '#6c6c6c' : '#B2B2B2';\n}\n\nexport const NavLink: React.FC = ({navLink, onClick}) => {\n\n const userContext = useContext(UserContext);\n const classes = generalStyles();\n\n const isHelperUser = userContext.user?.role === UserRoles.ARCHIVIST || userContext.user?.role === UserRoles.CURATOR;\n\n const isRouteMatch = (path: string, exact: boolean): any => {\n return useRouteMatch({\n path, exact\n });\n }\n\n return (\n {onClick ? onClick() : {}}}\n style={\n navLink.onAuthPages || isRouteMatch(navLink.path, true) || isHelperUser\n ? {color: activeLinkColor(userContext.lightTheme)}\n : {color: inactiveLinkColor(userContext.lightTheme)}\n }\n >\n \n \n {navLink.name}\n \n \n \n )\n}\n","import React, {useContext, useState} from \"react\";\nimport {Link, List, ListItem, Typography} from \"@material-ui/core\";\n\nimport {generalStyles} from \"../styles/styles\";\nimport {lightTheme} from \"assets/themes/light-theme\";\nimport {darkTheme} from \"assets/themes/dark-theme\";\n\nimport {NavLink} from \"./NavLink\";\n\nimport {ContactUsModal} from \"components/_others/ContactUsModal\";\nimport {ThemeProvider} from \"@material-ui/core/styles\";\nimport {responsiveStyles} from \"../../_styles/responsive-styles\";\nimport {INavLink} from \"../../_helpers/nav-link.interfaces\";\nimport {UserContext} from \"../../../../core/context/user\";\nimport {UserRoles} from \"../../../../core/enums\";\n\ntype NavigationProps = {\n isLoggedOut: boolean;\n links: INavLink[];\n}\n\nexport const Navigation: React.FC = ({isLoggedOut, links}) => {\n\n const userContext = useContext(UserContext);\n\n const generalClasses = generalStyles();\n const responsiveClasses = responsiveStyles();\n\n const [displayContactUsModal, toggleContactUsModal] = useState(false);\n\n return (\n <>\n \n {links.map((navLink: INavLink) => (\n \n ))}\n {\n (isLoggedOut || (userContext.user?.role === UserRoles.ARCHIVIST || userContext.user?.role === UserRoles.CURATOR)) &&\n toggleContactUsModal(true)}>\n \n \n Contact Us\n \n \n \n }\n \n\n \n toggleContactUsModal(false)}\n />\n \n \n )\n}\n","import React, {useContext} from \"react\";\nimport {ThemeProvider} from '@material-ui/core/styles'\nimport {AppBar, Box, Hidden, Toolbar } from \"@material-ui/core\";\n\nimport {logoStyles} from \"./styles/styles\";\nimport {responsiveStyles} from \"../_styles/responsive-styles\";\n\nimport {navLinks} from \"../_helpers/consumer-toolbar-nav-links\";\nimport {UserContext} from \"core/context/user\";\nimport {getHeaderTheme} from \"components/layout/_styles/header-theme\";\nimport {hasFullOpacity} from \"./utils\";\n\nimport {Searchbar} from \"./components/Searchbar\";\nimport {UserAvatar} from \"./components/UserAvatar\";\nimport {MobileMenu} from \"../ConsumerMobileMenu\";\nimport {Logo} from \"components/_others\";\nimport {FullOpacity} from \"./components/FullOpacity\";\nimport {AuthButtons} from \"./components/AuthButtons\";\nimport {Navigation} from \"./components/Navigation\";\nimport {ThemeSwitch} from \"../_components/ThemeSwitch\";\nimport {UserRoles} from \"../../../core/enums\";\n\nexport const ConsumerToolbar: React.FC = () => {\n\n const userContext = useContext(UserContext);\n\n const logoClasses = logoStyles();\n const responsiveClasses = responsiveStyles();\n\n const isLoggedOut = userContext.user === null;\n const fullOpacity = hasFullOpacity(window.location.href) || !isLoggedOut;\n\n const routes = (userContext.user?.role === UserRoles.ARCHIVIST || userContext.user?.role === UserRoles.CURATOR) && !isLoggedOut ?\n navLinks.helpers : isLoggedOut\n ? navLinks.default\n : navLinks.dashboard;\n\n return (\n \n \n \n\n \n \n \n \n\n \n\n {\n isLoggedOut && \n }\n\n {\n !isLoggedOut &&\n <>\n {\n userContext.user?.role === UserRoles.COLLECTOR &&\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","/// when the user is not logged in, the header is not fully opaque\nexport function hasFullOpacity(location: string): boolean {\n return location.indexOf('terms-and-conditions') > -1 ||\n location.indexOf('privacy-policy') > -1 ||\n location.indexOf('our-mission') > -1\n}\n","import React from \"react\";\nimport { Box, Snackbar, Typography } from \"@material-ui/core\";\n\nimport NotificationsIcon from '@material-ui/icons/Notifications';\nimport CloseIcon from '@material-ui/icons/Close';\n\nimport \"./style.less\";\n\ntype CustomSnackbarProps = {\n open: boolean;\n severity: string;\n message: string;\n handleClose: () => void;\n}\n\nexport const CustomSnackbar: React.FC = ({open, severity, message, handleClose}) => {\n return (\n \n \n \n \n \n \n {message}\n handleClose()} />\n \n \n \n )\n}\n","import React from \"react\";\nimport {makeStyles} from \"@material-ui/styles\";\n\ntype TextDividerProps = {\n text?: string;\n}\n\nexport const TextDivider: React.FC = ({text}) => {\n\n const classes = useStyles();\n\n return (\n
    \n
    \n {\n text &&\n <>\n \n {text}\n \n
    \n \n }\n\n
    \n )\n}\n\nconst useStyles = makeStyles({\n root: {\n display: 'flex',\n alignItems: 'center'\n },\n border: {\n borderBottom: '1px solid #676767',\n width: '100%',\n },\n content: {\n color: '#ACACAC',\n opacity: 0.5,\n padding: '0 10px 0 10px',\n fontSize: 16,\n }\n})\n","import React, {ReactElement} from \"react\";\nimport \"./style.less\";\nimport { Button } from \"@material-ui/core\";\n\ntype ButtonGrowProps = {\n icon: ReactElement;\n text: string;\n id: string;\n highlightOnHover?: boolean;\n onClick: () => void\n}\n\nexport const ButtonGrow: React.FC = ({icon, text, id, highlightOnHover = false, onClick}) => {\n return (\n onClick()}\n >\n {icon}\n  {text}\n \n )\n}\n","import {makeStyles, ThemeOptions} from \"@material-ui/core/styles\";\n\nexport const footerStyles = makeStyles((theme: ThemeOptions) => ({\n paper: {\n padding: 30,\n marginTop: 0,\n backgroundColor: theme.rootBackground.cardBackground\n },\n copyrightPaper: {\n padding: '10px 30px',\n backgroundColor: theme.divider.main\n },\n copyrightText: {\n color: theme.label.text,\n fontSize: 14,\n }\n}))\n\nexport const navigationListStyles = makeStyles((theme) => ({\n box: {\n width: 'fit-content',\n margin: 'auto',\n [theme.breakpoints.down('sm')]: {\n marginLeft: 0\n }\n },\n listTitle: {\n color: theme.label.text,\n fontSize: 20,\n opacity: 0.95\n },\n list: {\n paddingTop: 15,\n },\n link: {\n color: '#B2B2B2',\n cursor: 'pointer',\n textDecoration: 'none'\n },\n listItem: {\n paddingLeft: 0,\n paddingBottom: 0,\n fontSize: 16,\n color: theme.label.text,\n opacity: 0.7\n }\n}))\n","import {AppRoutes} from \"../../../core/helpers\";\nimport {INavList} from \"./nav-link.interfaces\";\n\nexport const navLinks: INavList[] = [\n {\n title: 'Our Company',\n id: 0,\n list: [\n {\n id: 0,\n name: 'Our Mission',\n path: AppRoutes.OUR_MISSION\n },\n {\n id: 1,\n name: 'Contact Us',\n path: '',\n },\n ]\n },\n {\n title: 'Privacy',\n id: 1,\n list: [\n {\n id: 0,\n name: 'Privacy Policy',\n path: AppRoutes.PRIVACY_POLICY\n },\n {\n id: 1,\n name: 'Terms and Conditions',\n path: AppRoutes.TERMS_AND_CONDITIONS\n },\n ]\n },\n {\n title: 'Help Center',\n id: 2,\n list: [\n {\n id: 0,\n name: 'Tutorial',\n path: AppRoutes.TUTORIAL\n },\n ]\n },\n];\n","import React, {useState} from \"react\";\nimport {Box, List, ListItem, Typography } from \"@material-ui/core\";\n\nimport {navigationListStyles} from \"../styles\";\n\nimport {ContactUsModal} from \"../../../_others/ContactUsModal\";\nimport {INavLink, INavList} from \"../../_helpers/nav-link.interfaces\";\n\ntype NavigationListProps = {\n list: INavList;\n}\n\nexport const NavigationLinks: React.FC = ({list}) => {\n\n const classes = navigationListStyles();\n\n const [displayContactUsModal, toggleContactUsModal] = useState(false);\n\n return (\n \n \n {list.title}\n \n \n {\n list.list.map((link: INavLink) => (\n \n {\n link.name !== 'Contact Us' &&\n \n \n {link.name}\n \n \n }\n {\n link.name === 'Contact Us' &&\n toggleContactUsModal(true)}\n >\n \n {link.name}\n \n \n }\n \n ))\n }\n \n\n toggleContactUsModal(false)}\n />\n \n )\n}\n\n\n","import React from \"react\";\nimport {Grid} from \"@material-ui/core\";\n\nimport {navLinks} from \"../../_helpers/consumer-footer-nav-links\";\nimport {NavigationLinks} from \"./NavigationList\";\nimport {INavList} from \"../../_helpers/nav-link.interfaces\";\n\nexport const Navigation: React.FC = () => {\n\n return (\n \n {\n navLinks.map((navLink: INavList) => (\n \n \n \n ))\n }\n \n )\n}\n","import React from \"react\";\nimport moment from \"moment\";\n\nimport { footerStyles } from \"./styles\";\nimport { Paper, Grid, Hidden, Typography, Box } from \"@material-ui/core\";\n\nimport { Logo } from \"../..\";\nimport { Navigation } from \"./components/Navigation\";\n\nexport const ConsumerFooter: React.FC = () => {\n\n const classes = footerStyles();\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n © {moment().format('YYYY')} - Artifact\n \n \n \n )\n}\n\n\n\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAARMAAAC3CAMAAAAGjUrGAAAAQlBMVEVjaWyhqKyjqq5fZWiHjZFscnWSmZ2PlppvdXiXnqKepalyeHuboqZobnFkam2lrLCCiIx8goVcYmWLkpZ3fYCCiYx2THbQAAACXElEQVR4nO3a2W6DMBCFYRhjE7aYre//qvVClqa5gFZRpMz/XTS0UAkfeRlDigIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXs/8xbtv+sVqd1x1fvddv5IZfXmcn959369kKvlDJlJ98uiJmfT1Mb2CTJp98+o8z/mg0ZDJrgu7ylVdioJMssGJlCKuK8hkc27yVCztQCbbVUuIRFwffjaGTJJzCsPEaPxAJska5hIbPs9hGZ7IJJmkjBPJNpWQSWRDP5lMYdYwq3Qq+4mxjy02fVm2k13Dh9e57jifB8qdMa47oUIJuz+V604d228fLhu3+mQpFPaToc6tP91aHR8hmcm1vm2m+FdtmQxtiKQNmbTdpdmDc2koDaet8+jKxNgQhzRDLFv7LRTTizQ/hpKqTEwXpwxXFHMcQLmnpLK+lLuhpCqTayQhlGULxUz52aRfbykoysSMl4Ul/rLkOcXGUZR2gNM1Bj2ZzF+hR/jqeiLNKTZUabKaKpyS8ZKDnkyWrSK7nlnk+jw6jSBfz/mMlkzyE5L1vqlzDqVPM20MRep8Qksm9a9ILjltx3mVTu+6lGTi5GfpuqlE1svxKZcuhZJMzr2UUtonp7vT7Xjo41CySvaAcXFxj1vhJ/rcmzRkkiq1XW/F80SsI5NcvO64OoWi4X1xKF7nvdd/iY536O2yv4X5uxmfn0lzpIHxObWGTI79RyhUFGRyOsSqWHfkGA1jh+9uPbDiD3YTEd8+2wd8kMEet2MfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/9g1TphgDD8TW3wAAAABJRU5ErkJggg==\"","import React from \"react\";\nimport { makeStyles } from \"@material-ui/styles\";\nimport {Box, Theme, Typography} from \"@material-ui/core\";\n\nimport imagePlaceholder from \"assets/placeholders/artifact-placeholder.png\";\n\nimport { getPhotoUrl } from \"core/helpers\";\nimport { FileSize } from \"core/enums\";\n\ntype ArtifactHighlightsProps = {\n photo: string|null;\n title: string;\n description: string;\n}\n\nexport const ObjectHighlights: React.FC = (\n {photo, title, description}\n) => {\n\n const classes = useStyles();\n\n return (\n \n {title\n \n \n {title}\n \n \n {description}\n \n \n \n )\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n marginTop: 15,\n maxHeight: 360,\n overflow: 'auto',\n backgroundColor: theme.rootBackground.secondary,\n border: '1px solid',\n borderColor: theme.rootBackground.secondaryBorder,\n padding: 10,\n },\n photo: {\n width: '50%',\n maxHeight: 200,\n objectFit: 'cover',\n float: 'left',\n paddingRight: 10,\n [\"@media (max-width:960px)\"]: { width: '100%', paddingRight: 0 },\n },\n artifactTitle: {\n fontSize: 16,\n lineHeight: 1.3,\n marginTop: -4,\n },\n artifactDescription: {\n fontSize: 12,\n opacity: 0.7,\n marginTop: 5,\n }\n}))\n","import React, { useContext, useEffect, useState } from \"react\";\nimport {\n Box, Button, Chip, Typography, CircularProgress, InputLabel, TextField,\n ThemeOptions\n} from \"@material-ui/core\";\nimport { makeStyles } from \"@material-ui/styles\";\n\nimport { Autocomplete } from \"@material-ui/lab\";\nimport { validateEmail } from \"core/helpers\";\n\nimport { modalStyles } from \"../../_others/modals/modal-styles\";\nimport { UserContext } from \"core/context/user\";\n\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport ReplyIcon from \"@material-ui/icons/Reply\";\n\ntype FormProps = {\n isLoading: boolean;\n errorMessage: string;\n onShare: (emails: string[], message: string) => void;\n handleClose: () => void;\n}\n\nexport const Form: React.FC = ({isLoading, errorMessage, handleClose, onShare}) => {\n\n const userContext = useContext(UserContext);\n\n const classes = useStyles();\n const modalClasses = modalStyles();\n\n const [emails, setEmails] = useState([]);\n const [currentEmail, setCurrentEmail] = useState('');\n const [message, setMessage] = useState('');\n\n useEffect(() => {\n setEmails([]);\n setMessage('');\n }, [])\n\n const onAddEmail = (values: any): void => {\n const newEmails = values;\n const invalidEmailIndex = newEmails.findIndex((el: string) =>\n !validateEmail(el) || el === userContext.user?.email\n );\n if(invalidEmailIndex > -1) {\n newEmails.splice(invalidEmailIndex, 1);\n }\n setEmails(newEmails.slice());\n setCurrentEmail('');\n }\n\n const handleEmailsBlur = (): void => {\n if(currentEmail && validateEmail(currentEmail) && currentEmail !== userContext.user?.email) {\n const result = emails;\n result.push(currentEmail);\n setEmails(result.slice());\n }\n setCurrentEmail('');\n }\n\n return (\n <>\n
    \n \n Provide one or more email addresses of the people with\n whom you want to share this\n \n onAddEmail(value)}\n onInputChange={(_e, value) => setCurrentEmail(value)}\n onBlur={() => handleEmailsBlur()}\n renderTags={(value, getTagProps) =>\n value.map((option, index) => (\n \n ))\n }\n renderInput={(params) => (\n \n )}\n />\n\n \n Add a short message\n \n setMessage(e.target.value)}\n />\n \n\n {\n errorMessage &&\n \n {errorMessage}\n \n }\n\n \n \n Cancel\n \n\n onShare(emails, message)}\n disabled={!emails.length}\n >\n {\n isLoading && \n }\n {\n !isLoading && \n }\n Share\n \n \n \n )\n}\n\nconst useStyles = makeStyles((theme: ThemeOptions) => ({\n form: {\n marginTop: 20,\n },\n formLabel: {\n fontSize: 13,\n marginBottom: 5,\n color: theme.formLabel.main\n },\n}))\n","import React, {useContext, useEffect, useState} from \"react\";\nimport { modalStyles } from \"components/_others/modals/modal-styles\";\nimport \"assets/styles/chip-autocomplete.less\";\nimport { Backdrop, Fade, Modal } from \"@material-ui/core\";\n\nimport { CollectorApi } from \"core/api/consumer/collector.api\";\n\nimport { ModalHeader } from \"../../../_others/modals/ModalHeader\";\nimport { ObjectHighlights } from \"../../../object/ObjectHighlights\";\nimport { Form } from \"../Form\";\nimport {UtilsContext} from \"../../../../core/context/utils.context\";\n\ntype ShareObjectModalProps = {\n artifactId: number;\n photo: string|null;\n title: string;\n description: string;\n open: boolean;\n handleClose: () => void;\n}\n\nexport const ShareObjectToPersonsModal: React.FC = (\n {open, handleClose, artifactId, photo, title, description}\n) => {\n\n const classes = modalStyles();\n\n const utilsContext = useContext(UtilsContext);\n\n const [isLoading, setIsLoading] = useState(false);\n const [errorMessage, setErrorMessage] = useState('');\n\n useEffect(() => {\n setErrorMessage('');\n }, [])\n\n const onShare = (emails: string[], message: string): void => {\n setIsLoading(true);\n setErrorMessage('');\n\n CollectorApi.shareArtifact(artifactId, emails, message)\n .then(() => {\n setIsLoading(false);\n utilsContext.addSnackbar('success', 'Thank you! This object was shared.');\n handleClose();\n })\n .catch((error: any) => {\n console.error(error.response);\n setIsLoading(false);\n if(error.response.data.message === 'ShareAlreadyExists') {\n setErrorMessage('You already shared this artifact with that person.')\n } else {\n setErrorMessage('Sorry, there was an error. Please try again later.')\n }\n })\n }\n\n return (\n \n \n
    \n\n handleClose()}\n />\n\n \n\n onShare(emails, message)}\n handleClose={() => handleClose()}\n />\n
    \n
    \n \n )\n}\n","import React from \"react\";\nimport { Box, ThemeOptions, Typography } from \"@material-ui/core\";\nimport { makeStyles } from \"@material-ui/styles\";\n\ntype ShareOptionProps = {\n title: string;\n description: string;\n color: string;\n onSelect: () => void;\n}\n\nexport const ShareOption: React.FC = ({title, description, color, onSelect}) => {\n\n const classes = useStyles();\n\n return (\n \n {title}\n {description}\n \n )\n}\n\nconst useStyles = makeStyles((theme: ThemeOptions) => ({\n root: {\n backgroundColor: theme.rootBackground.secondary,\n borderRadius: 2,\n marginBottom: 15,\n cursor: 'pointer',\n borderLeft: '7px solid',\n paddingLeft: 10,\n paddingTop: 10,\n paddingBottom: 10,\n '&:hover': {\n boxShadow: '0px 3px 10px rgba(0, 0, 0, 0.16)'\n }\n },\n title: {\n fontSize: 18,\n lineHeight: 1.3,\n },\n description: {\n fontSize: 14,\n lineHeight: 1.3,\n }\n}))\n","import React, {useContext, useState} from \"react\";\nimport {Backdrop, Box, Button, Fade, Modal, Typography} from \"@material-ui/core\";\n\nimport { modalStyles } from \"../../../_others/modals/modal-styles\";\nimport CloseIcon from \"@material-ui/icons/Close\";\n\nimport { ModalHeader} from \"../../../_others/modals/ModalHeader\";\nimport { ShareOption} from \"./ShareOption\";\n\nimport { ShareArtifactOptions } from \"core/enums\";\nimport {CommunityFeedApi} from \"../../../../core/api/consumer\";\nimport {UtilsContext} from \"../../../../core/context/utils.context\";\n\ntype SelectShareOptionModalProps = {\n artifactId: number;\n canBeSharedToFeed: boolean;\n isSharedToPublicFeed: boolean;\n open: boolean;\n handleClose: () => void;\n onSelect: (type: number) => void;\n onRemove: () => void;\n}\n\nexport const SelectShareOptionModal: React.FC = (\n {artifactId, isSharedToPublicFeed, canBeSharedToFeed, open, handleClose, onSelect, onRemove}\n) => {\n\n const classes = modalStyles();\n\n const utilsContext = useContext(UtilsContext);\n\n const [isLoading, setIsLoading] = useState(false);\n\n const onRemoveShare = (): void => {\n if(!confirm('Are you sure you want to remove this object from the Community Feed?')) {\n return;\n }\n\n if(isLoading) {\n return;\n }\n\n setIsLoading(true);\n CommunityFeedApi.removeObjectFromCommunityFeed(artifactId)\n .then(() => {\n setIsLoading(false);\n utilsContext.addSnackbar('success', 'Success! Your object was removed from the Community Feed.');\n handleClose();\n onRemove();\n })\n .catch((error: any) => {\n console.error(error.response);\n setIsLoading(false);\n utilsContext.addSnackbar('error');\n\n })\n }\n\n return (\n \n \n
    \n\n handleClose()}\n />\n\n \n {\n isSharedToPublicFeed &&\n \n \n Your artifact is shared to the community feed.\n Please{' '}\n onRemoveShare()}\n style={{textDecoration: 'underline', cursor: 'pointer'}}\n >\n click here\n \n {' '}if you want to remove the artifact from the\n Community Feed.\n \n \n }\n {\n !canBeSharedToFeed && !isSharedToPublicFeed &&\n \n \n You can not share this object to the Community Feed, unless you received\n a feedback from one of our experts.\n \n \n }\n {\n !isSharedToPublicFeed && canBeSharedToFeed && onSelect(ShareArtifactOptions.PublicFeed)}\n />\n }\n\n onSelect(ShareArtifactOptions.People)}\n />\n \n\n \n \n Cancel\n \n \n
    \n
    \n \n )\n}\n","import React, {useContext, useState} from \"react\";\nimport {\n Backdrop,\n Box,\n Button,\n Checkbox,\n CircularProgress,\n Fade,\n FormControlLabel,\n Modal,\n Typography\n} from \"@material-ui/core\";\nimport {ModalHeader} from \"../../../_others/modals/ModalHeader\";\nimport {modalStyles} from \"../../../_others/modals/modal-styles\";\nimport {ObjectHighlights} from \"../../../object/ObjectHighlights\";\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport ReplyIcon from \"@material-ui/icons/Reply\";\nimport {CommunityFeedApi} from \"core/api/consumer\";\nimport {UtilsContext} from \"../../../../core/context/utils.context\";\n\ntype ShareObjectToArtifactFeedModalProps = {\n artifactId: number;\n open: boolean;\n handleClose: () => void;\n onShareSuccess: () => void;\n artifact: {\n photo: string|null;\n title: string;\n description: string;\n }\n}\n\nexport const ShareObjectToPublicFeedModal: React.FC = (\n {artifactId, artifact, open, handleClose, onShareSuccess}\n) => {\n\n const classes = modalStyles();\n\n const [enableOffers, setEnableOffers] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n\n const utilsContext = useContext(UtilsContext);\n\n\n const onShare = (): void => {\n setIsLoading(true);\n CommunityFeedApi.shareObjectToCommunityFeed(artifactId, enableOffers)\n .then(() => {\n setIsLoading(false);\n utilsContext.addSnackbar('success', 'Thank you! This object was shared to the Community Feed.');\n handleClose();\n onShareSuccess();\n })\n .catch((error: any) => {\n console.error(error.response);\n setIsLoading(false);\n let message = 'Sorry, there was an error. Please try again later.';\n if(error?.response?.data?.message === 'ShareAlreadyExists') {\n message = 'This object is already shared to the community feed.'\n }\n utilsContext.addSnackbar('error', message);\n })\n }\n\n return (\n \n \n
    \n\n handleClose()}\n />\n\n \n\n setEnableOffers(!enableOffers)}\n />\n }\n label={\n \n Check this if you want to receive offers from buyers.\n \n }\n />\n\n \n \n Cancel\n \n\n onShare()}\n >\n {\n isLoading && \n }\n {\n !isLoading && \n }\n Share\n \n \n
    \n
    \n \n )\n}\n","import React, { useContext, useState } from 'react';\nimport { Link, useHistory } from 'react-router-dom';\nimport { Tooltip, Card, Button, Box } from '@material-ui/core';\n\nimport CardActionArea from '@material-ui/core/CardActionArea';\nimport CardContent from '@material-ui/core/CardContent';\nimport CardMedia from '@material-ui/core/CardMedia';\nimport Typography from '@material-ui/core/Typography';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport EditIcon from '@material-ui/icons/Edit';\nimport ReplyIcon from '@material-ui/icons/Reply';\nimport CheckCircleIcon from '@material-ui/icons/CheckCircle';\nimport imagePlaceholder from 'assets/placeholders/artifact-placeholder.png';\n\nimport { AppRoutes } from 'core/helpers/app-routes';\nimport { getPhotoUrl } from 'core/helpers/file-size.helper';\nimport { FileSize, ShareArtifactOptions, UserRoles } from 'core/enums';\nimport { getEstimatedDisplayValue } from 'core/helpers/artifact-value.helper';\nimport { ShareObjectToPersonsModal } from 'components/_consumer/share-object/ShareObjectToPersonsModal';\nimport { UserContext } from 'core/context/user';\nimport { SelectShareOptionModal } from '../../_consumer/share-object/SelectShareOptionModal';\nimport { ShareObjectToPublicFeedModal } from '../../_consumer/share-object/ShareObjectToPublicFeedModal';\nimport { IObjectCard } from 'types';\n\ntype ObjectCardProps = {\n artifact: IObjectCard;\n onDelete: () => void;\n};\n\nexport const ObjectCard: React.FC = ({ artifact, onDelete }) => {\n const history = useHistory();\n const userContext = useContext(UserContext);\n\n const [displayShareOptionsModal, toggleShareOptionsModal] = useState(false);\n const [displayShareObjectModal, toggleShareObjectModal] = useState(false);\n const [displayShareObjectToFeedModal, toggleShareObjectToFeedModal] = useState(false);\n\n const role = userContext.user?.role;\n const canEdit = role === UserRoles.COLLECTOR || role === UserRoles.CURATOR;\n const canDelete =\n role === UserRoles.COLLECTOR || role === UserRoles.CURATOR ? true : artifact.createdBy === userContext.user?.id;\n\n const goToObjectPage = (): void => {\n history.push({\n pathname: AppRoutes.OBJECT,\n search: `?id=${artifact.id}`,\n });\n };\n\n return (\n
    \n \n \n \n \n \n\n \n {artifact.displayShareButtonOnCard && (\n toggleShareOptionsModal(true)}\n >\n \n \n )}\n {artifact.displayEditButtonOnCard && canEdit && (\n goToObjectPage()}\n >\n \n \n )}\n {artifact.displayDeleteButtonOnCard && canDelete && (\n onDelete()}\n >\n \n \n )}\n \n goToObjectPage()}>\n \n \n {artifact.title}\n \n \n \n Estimated Value:\n \n {getEstimatedDisplayValue(\n artifact.exactValue,\n artifact.minimumValue,\n artifact.maximumValue,\n )}\n {artifact.feedback !== null &&\n artifact.exactValue === artifact.feedback.exactValue &&\n artifact.minimumValue === artifact.feedback.minimumValue &&\n artifact.maximumValue === artifact.feedback.maximumValue && (\n <>\n \n \n \n \n )}\n \n \n \n \n\n {displayShareObjectModal && (\n toggleShareObjectModal(false)}\n />\n )}\n\n {displayShareOptionsModal && (\n toggleShareOptionsModal(false)}\n onSelect={(type: number) => {\n if (type === ShareArtifactOptions.People) {\n toggleShareObjectModal(true);\n }\n if (type === ShareArtifactOptions.PublicFeed) {\n toggleShareObjectToFeedModal(true);\n }\n toggleShareOptionsModal(false);\n }}\n onRemove={() => {\n artifact.isSharedToPublicFeed = false;\n }}\n />\n )}\n\n {displayShareObjectToFeedModal && (\n toggleShareObjectToFeedModal(false)}\n onShareSuccess={() => {\n artifact.isSharedToPublicFeed = true;\n }}\n />\n )}\n \n
    \n );\n};\n","import React from \"react\";\nimport {Box, Theme, Typography} from \"@material-ui/core\";\nimport {getPhotoUrl} from \"../../core/helpers\";\nimport {FileSize} from \"../../core/enums\";\nimport imagePlaceholder from \"../../assets/placeholders/artifact-placeholder.png\";\nimport {makeStyles} from \"@material-ui/styles\";\n\ntype CollectionHighlightsProps = {\n id: number;\n name: string;\n photoUrl: string;\n totalObjects: string;\n}\n\nexport const CollectionHighlights: React.FC = (\n {id, name, photoUrl, totalObjects}\n) => {\n\n const classes = useStyles();\n\n return (\n \n {name\n\n \n \n {name}\n \n \n Total Objects: {totalObjects}\n \n \n\n \n )\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n photo: {\n width: '100%',\n maxHeight: 300,\n objectFit: 'cover',\n [\"@media (max-width:960px)\"]: { width: '100%', paddingRight: 0 },\n },\n detailsBox: {\n backgroundColor: theme.rootBackground.secondary,\n marginTop: -5,\n padding: 15,\n },\n totalObjects: {\n color: theme.palette.secondary.main,\n }\n}))\n","import React, {useContext, useState} from \"react\";\n\nimport {Backdrop, Fade, Modal} from \"@material-ui/core\";\nimport {modalStyles} from \"../../../_others/modals/modal-styles\";\nimport {ModalHeader} from \"../../../_others/modals/ModalHeader\";\nimport { ICollection } from \"types\";\nimport {CollectionHighlights} from \"../../../collection/CollectionHighlights\";\nimport {Form} from \"../Form\";\nimport {CollectorCollectionApi} from \"core/api/consumer\";\nimport {UtilsContext} from \"../../../../core/context/utils.context\";\n\ntype ShareCollectionsToPersonsModalProps = {\n collection: ICollection;\n open: boolean;\n handleClose: () => void;\n}\n\nexport const ShareCollectionsToPersonsModal: React.FC = (\n {collection, open, handleClose}\n) => {\n\n const classes = modalStyles();\n\n const utilsContext = useContext(UtilsContext);\n\n const [isLoading, setIsLoading] = useState(false);\n const [errorMessage, setErrorMessage] = useState('');\n\n const onShare = (emails: string[], message: string): void => {\n setIsLoading(true);\n setErrorMessage('');\n\n CollectorCollectionApi.shareCollection(collection.id, emails, message)\n .then(() => {\n setIsLoading(false);\n utilsContext.addSnackbar('success', 'Thank you! This collection was shared.');\n handleClose();\n })\n .catch((error: any) => {\n console.error(error.response);\n setIsLoading(false);\n if(error.response.data.message === 'ShareAlreadyExists') {\n setErrorMessage('You already shared this collection with that person.')\n } else {\n setErrorMessage('Sorry, there was an error. Please try again later.')\n }\n })\n }\n\n return (\n \n \n
    \n\n handleClose()}\n />\n\n \n\n onShare(emails, message)}\n handleClose={() => handleClose()}\n />\n\n
    \n
    \n \n )\n}\n","import React, { useContext, useState } from 'react';\nimport { Link } from 'react-router-dom';\nimport { Tooltip, Card, Box, Button } from '@material-ui/core';\n\nimport CardActionArea from '@material-ui/core/CardActionArea';\nimport CardContent from '@material-ui/core/CardContent';\nimport CardMedia from '@material-ui/core/CardMedia';\nimport Typography from '@material-ui/core/Typography';\nimport imagePlaceholder from 'assets/placeholders/artifact-placeholder.png';\n\nimport { ICollection } from 'types';\nimport { FileSize } from 'core/enums';\nimport { AppRoutes } from 'core/helpers/app-routes';\nimport { getPhotoUrl } from 'core/helpers/file-size.helper';\nimport { UserContext } from '../../../core/context/user';\nimport ReplyIcon from '@material-ui/icons/Reply';\nimport { ShareCollectionsToPersonsModal } from '../../_consumer/share-object/ShareCollectionsToPersonsModal';\nimport DeleteIcon from '@material-ui/icons/Delete';\n\ntype ObjectCardProps = {\n collection: ICollection;\n isSharedWithMe?: boolean;\n onDelete?: () => void;\n};\n\nexport const CollectionCard: React.FC = ({ collection, isSharedWithMe, onDelete }) => {\n const userContext = useContext(UserContext);\n\n const [displayShareCollectionModal, toggleShareCollectionModal] = useState(false);\n\n const generateObjectsLink = (): string => {\n const params = new URLSearchParams(window.location.search);\n const jobId = params.get('jobId');\n const link = `${AppRoutes.COLLECTION}?id=${collection.id}${jobId ? `&jobId=${jobId}` : ''}${\n isSharedWithMe ? '&sharedWithMe=true' : ''\n }`;\n return link;\n };\n\n return (\n
    \n \n \n \n \n \n\n \n {collection.displayShareButtonOnCard && (\n toggleShareCollectionModal(true)}\n >\n \n \n )}\n {collection.displayDeleteButtonOnCard && (\n (onDelete ? onDelete() : null)}\n >\n \n \n )}\n \n\n \n \n \n {collection.name}\n \n \n \n Total objects:\n {collection.totalObjects}\n \n \n \n\n {displayShareCollectionModal && (\n toggleShareCollectionModal(false)}\n />\n )}\n \n
    \n );\n};\n","import React, {useContext} from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { ISharedArtifact } from \"core/context/consumer/sharedWithMe\";\nimport { Card, CardContent, Tooltip, Typography } from \"@material-ui/core\";\n\nimport \"../styles/shared-with-me-card.less\";\nimport imagePlaceholder from \"assets/placeholders/artifact-placeholder.png\";\nimport CardMedia from \"@material-ui/core/CardMedia\";\nimport CardActionArea from \"@material-ui/core/CardActionArea\";\nimport AccountCircleIcon from \"@material-ui/icons/AccountCircle\";\n\nimport { getPhotoUrl } from \"core/helpers/file-size.helper\";\nimport { FileSize } from \"core/enums\";\nimport { AppRoutes } from \"core/helpers/app-routes\";\nimport {UserContext} from \"../../../core/context/user\";\n\ntype SharedWithMeCardProps = {\n artifact: ISharedArtifact\n}\n\nexport const SharedWithMeCard: React.FC = ({artifact}) => {\n\n const userContext = useContext(UserContext);\n\n return (\n \n \n \n \n {\n !artifact.collectorPhoto &&\n \n }\n {\n artifact.collectorPhoto &&\n \n }\n\n \n {artifact.collectorName}\n \n \n\n \n\n \n \n \n {artifact.title}\n \n \n\n \n {\n artifact.description?.length > 300\n ? `${artifact.description?.substring(0,300)}...`\n : artifact?.description\n }\n \n\n \n \n \n \n )\n}\n","import * as api from '../_utils/api';\n\nexport class ManageUsersApi {\n\n static async editAccess(userId: number, enable: boolean): Promise {\n return api._put(`users/changeUserStatus/${userId}?enable=${enable}`);\n }\n\n static async inviteUsers(payload: unknown): Promise {\n return api._post(`users/invite`, payload);\n }\n\n static async updateUserProfile(userId: number, payload: any|unknown, _role?: string): Promise {\n const data: any = payload;\n\n if(data.currencyId === -1) {\n data.currencyId = null;\n }\n if(data.countryId === -1) {\n data.countryId = null;\n }\n if(data.stateId === -1) {\n data.stateId = null;\n }\n if(data.cityId === -1) {\n data.cityId = null;\n }\n delete data.currency;\n\n return api._put(`users/profile/updateUserProfile?userId=${userId}`, data);\n }\n\n static async changeUserRole(userId: number, role: string): Promise {\n return api._put(`users/${userId}/changeRole/${role}`);\n }\n}\n","import React, { useContext, useState } from 'react';\nimport { modalStyles } from 'components/_others/modals/modal-styles';\nimport { Backdrop, Box, Button, CircularProgress, Fade, Modal, Typography } from '@material-ui/core';\n\nimport CloseIcon from '@material-ui/icons/Close';\nimport SaveIcon from '@material-ui/icons/Save';\n\nimport { ManageUsersApi } from 'core/api/admin/manage-users.api';\nimport { UtilsContext } from '../../../core/context/utils.context';\n\ntype EditUserAccessModalProps = {\n open: boolean;\n userId: number;\n enable: boolean;\n handleClose: () => void;\n onSuccess: () => void;\n hasActiveJobs?: boolean;\n};\n\nexport const EditUserAccessModal: React.FC = ({\n open,\n userId,\n enable,\n handleClose,\n onSuccess,\n hasActiveJobs,\n}) => {\n const classes = modalStyles();\n\n const utilsContext = useContext(UtilsContext);\n\n const [isLoading, setIsLoading] = useState(false);\n\n const onConfirm = (): void => {\n if (hasActiveJobs) {\n if (!confirm('This user has active jobs. If you continue, those will be deactivated.')) {\n return;\n }\n }\n setIsLoading(true);\n\n ManageUsersApi.editAccess(userId, enable)\n .then(() => {\n setIsLoading(false);\n onSuccess();\n handleClose();\n location.reload();\n })\n .catch((error: any) => {\n console.error(error.response);\n setIsLoading(false);\n utilsContext.addSnackbar('error');\n });\n };\n\n return (\n \n \n
    \n \n \n \n\n \n Manage user access\n \n Are you sure you want to {enable ? 'enable ' : 'disable '} this user?\n \n \n\n \n \n Cancel\n \n\n onConfirm()}\n >\n {isLoading && }\n {!isLoading && (\n \n )}\n {enable ? 'Enable' : 'Disable'}\n \n \n
    \n
    \n \n );\n};\n","import * as api from './_utils/api';\nimport { ExpertsSearchType } from '../enums';\n\nexport class AdminUsersApi {\n static async getCollectors(size: number, page: number, searchBy: string): Promise {\n return api._get(`collectors/get?page=${page}&size=${size}&search=${searchBy}`);\n }\n\n static async getExperts(\n size: number,\n page: number,\n searchBy: string,\n searchType = ExpertsSearchType.Type,\n ): Promise {\n return api._get(`experts/get?page=${page}&size=${size}&search=${searchBy}&searchType=${searchType}`);\n }\n\n static async getArchivists(size: number, page: number, searchBy: string): Promise {\n return api._get(`archivists/get?page=${page}&size=${size}&search=${searchBy}`);\n }\n\n static async getCurators(size: number, page: number, searchBy: string): Promise {\n return api._get(`curators/get?page=${page}&size=${size}&search=${searchBy}`);\n }\n\n static async confirmUserEmail(userId: number): Promise {\n return api._put(`Users/ChangeUserConfirmation/${userId}?confirmed=true`);\n }\n}\n","import { Box, Button, CircularProgress, Fade, Modal, Typography } from '@material-ui/core';\nimport { modalStyles } from 'components/_others/modals/modal-styles';\nimport { ModalHeader } from 'components/_others/modals/ModalHeader';\nimport React, { useState } from 'react';\nimport CloseIcon from '@material-ui/icons/Close';\nimport DoneIcon from '@material-ui/icons/Done';\nimport { AdminUsersApi } from 'core/api/admin-users.api';\n\ninterface ConfirmUserEmailModalProps {\n onClose: () => void;\n isOpen: boolean;\n name: string;\n userId: number;\n onSuccess: () => void;\n}\n\nexport const ConfirmUserEmailModal: React.FC = ({\n onClose,\n isOpen,\n name,\n userId,\n onSuccess,\n}) => {\n const classes = modalStyles();\n const [error, setError] = useState('');\n const [loading, setLoading] = useState(false);\n const [success, setSuccess] = useState(false);\n\n const generateErrorText = (message: string): string => {\n return message;\n };\n\n const onFinish = (): void => {\n setLoading(true);\n setError('');\n AdminUsersApi.confirmUserEmail(userId)\n .then(() => {\n setLoading(false);\n setSuccess(true);\n onSuccess();\n })\n .catch((error: any) => {\n setLoading(false);\n console.error(error.response);\n setError(\n error.response?.data?.message\n ? generateErrorText(error.response?.data?.message)\n : 'Sorry, there was an error. Please try again later.',\n );\n });\n };\n\n const handleClose = (): void => {\n onClose();\n };\n\n return (\n \n \n
    \n \n\n {!!error && (\n \n {error}\n \n )}\n\n {success ? (\n \n {name}'s status set to confirmed Email.\n \n ) : (\n \n \n {`Are you sure you want to change ${name}'s email status to confirmed?`}\n \n \n )}\n \n \n {success ? 'Close' : 'Cancel'}\n \n\n \n {loading && }\n {success && }\n Confirm Email\n \n \n
    \n
    \n \n );\n};\n","import React, { useState } from 'react';\nimport { Link } from 'react-router-dom';\nimport { makeStyles } from '@material-ui/styles';\nimport { Box, Button, Card, CardContent, ThemeOptions, Tooltip, Typography } from '@material-ui/core';\n\nimport AccountCircleIcon from '@material-ui/icons/AccountCircle';\nimport CheckCircleIcon from '@material-ui/icons/CheckCircle';\nimport CancelIcon from '@material-ui/icons/Cancel';\n\nimport { EditUserAccessModal } from '../../_dashboard/EditUserAccessModal/EditUserAccessModal';\n\nimport { ICollector } from 'core/context/admin/collector-listing';\nimport { CollectorTypes, FileSize } from 'core/enums';\nimport { AppRoutes, getPhotoUrl } from 'core/helpers';\nimport { ConfirmUserEmailModal } from 'components/_dashboard/ConfirmUserEmailModal/ConfirmUserEmailModal';\n\nconst useStyles = makeStyles((theme: ThemeOptions) => ({\n root: {\n border: '1px solid',\n borderColor: theme.divider.main,\n borderRadius: 2,\n },\n profileIconPlaceholder: {\n width: 40,\n height: 40,\n color: '#FE6502',\n },\n profilePic: {\n width: 40,\n height: 40,\n borderRadius: 40,\n },\n name: {\n fontSize: 16,\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n },\n email: {\n fontSize: 12,\n wordBreak: 'break-all',\n },\n totalObjects: {\n fontSize: 16,\n fontWeight: 'bold',\n marginTop: 7,\n },\n expertReviews: {\n fontSize: 13,\n },\n divider: {\n width: '85%',\n margin: '7px auto',\n borderTop: '1px solid',\n borderColor: theme.divider.main,\n },\n typeLabel: {\n fontSize: 12,\n color: theme.label.text,\n backgroundColor: theme.label.main,\n borderRadius: 2,\n padding: '2px 7px',\n },\n activeIcon: {\n color: '#0F940A',\n width: 22,\n },\n inactiveIcon: {\n color: '#FF0000',\n width: 22,\n },\n activateEmailButton: {\n fontSize: 12,\n },\n}));\n\ntype CollectorCardProps = {\n collector: ICollector;\n};\n\nexport const CollectorCard: React.FC = ({ collector }) => {\n const classes = useStyles();\n\n const [isEnabled, setIsEnabled] = useState(collector.isActive);\n const [displayManageAccessModal, toggleManageAccessModal] = useState({ display: false, enable: false });\n const [displayConfirmEmailModal, setDisplayConfirmEmailModal] = useState(false);\n const [emailConfirmed, setEmailConfirmed] = useState(collector.emailConfirmed);\n\n const handleConfirmEmailClose = (): void => {\n setDisplayConfirmEmailModal(false);\n };\n\n const handleConfirmEmailOpen = (): void => {\n setDisplayConfirmEmailModal(true);\n };\n\n const onConfirmEmailSuccess = (): void => {\n setEmailConfirmed(true);\n };\n\n return (\n \n \n \n \n {collector.type}\n \n\n \n {isEnabled && (\n toggleManageAccessModal({ display: true, enable: false })}\n />\n )}\n {!isEnabled && (\n toggleManageAccessModal({ display: true, enable: true })}\n />\n )}\n \n \n\n \n {!collector.photoUrl && }\n {collector.photoUrl && (\n \n )}\n\n \n \n {collector.firstName} {collector.lastName}\n \n \n\n \n {collector.email}\n \n\n \n {collector.totalObjects} objects\n \n \n {collector.totalReviewedObjects} objects - expert reviews\n \n\n
    \n\n \n \n View Profile\n \n \n\n {!emailConfirmed && (\n \n Email not confirmed\n\n \n Activate Email\n \n \n )}\n \n\n toggleManageAccessModal({ display: false, enable: false })}\n onSuccess={() => setIsEnabled(displayManageAccessModal.enable)}\n />\n\n \n \n \n );\n};\n","export function getCustomerSatisfactionColor(rating: number): string {\n if(rating >= 96) {\n return '#3adc3a';\n }\n if(rating >= 86) {\n return '#158415';\n }\n if(rating >= 70) {\n return '#717171';\n }\n if(rating >= 55) {\n return '#a52a2a';\n }\n return '#ff0000';\n}\n\nexport function getCustomerSatisfactionText(rating: number): string {\n if(rating >= 96) {\n return 'Highest Satisfaction';\n }\n if(rating >= 86) {\n return 'Very Satisfied Customer';\n }\n if(rating >= 70) {\n return 'Ok, could be better';\n }\n if(rating >= 55) {\n return 'Needs improvement';\n }\n return 'There is an issue';\n}\n","export function formatAddress(country: string, state: string, city: string): string {\n const result = [];\n if(country) {\n result.push(country);\n }\n if(state) {\n result.push(state);\n }\n if(city) {\n result.push(city)\n }\n\n return result.length > 0 ? result.join(', ') : 'unknown address';\n}\n","import React, { useState } from 'react';\nimport { Link } from 'react-router-dom';\nimport { makeStyles } from '@material-ui/styles';\nimport { Box, Button, Card, CardContent, ThemeOptions, Tooltip, Typography } from '@material-ui/core';\n\nimport AccountCircleIcon from '@material-ui/icons/AccountCircle';\nimport CheckCircleIcon from '@material-ui/icons/CheckCircle';\nimport CancelIcon from '@material-ui/icons/Cancel';\n\nimport { AppRoutes, getPhotoUrl } from 'core/helpers';\nimport { ICategory, IExpert } from 'core/context/admin/expert-listing';\nimport { FileSize } from 'core/enums';\nimport { EditUserAccessModal } from '../../_dashboard/EditUserAccessModal/EditUserAccessModal';\nimport { getCustomerSatisfactionColor, getCustomerSatisfactionText } from 'core/helpers/customer-satisfaction';\nimport { formatAddress } from 'core/helpers/format-address';\nimport { ConfirmUserEmailModal } from 'components/_dashboard/ConfirmUserEmailModal/ConfirmUserEmailModal';\n\nconst useStyles = makeStyles((theme: ThemeOptions) => ({\n root: {\n border: '1px solid',\n borderColor: theme.divider.main,\n borderRadius: 2,\n },\n profileIconPlaceholder: {\n width: 40,\n height: 40,\n color: '#FE6502',\n },\n profilePic: {\n width: 40,\n height: 40,\n borderRadius: 40,\n },\n name: {\n fontSize: 16,\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n },\n email: {\n fontSize: 12,\n wordBreak: 'break-all',\n },\n address: {\n fontSize: 13,\n marginTop: 7,\n },\n totalFeedbacks: {\n fontSize: 13,\n marginRight: 10,\n },\n type: {\n fontSize: 13,\n marginRight: 10,\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n },\n rating: {\n color: '#0F940A',\n fontSize: 13,\n marginRight: 10,\n },\n activeIcon: {\n color: '#0F940A',\n width: 22,\n },\n inactiveIcon: {\n color: '#FF0000',\n width: 22,\n },\n category: {\n backgroundColor: theme.label.main,\n color: theme.label.text,\n fontSize: 13,\n marginLeft: 7,\n padding: '3px 10px',\n borderRadius: 2,\n display: 'inline-block',\n marginTop: 7,\n },\n divider: {\n width: '85%',\n margin: '7px auto',\n borderTop: '1px solid',\n borderColor: theme.divider.main,\n },\n activateEmailButton: {\n fontSize: 12,\n },\n}));\n\ntype ExpertCardProps = {\n expert: IExpert;\n};\n\nexport const ExpertCard: React.FC = ({ expert }) => {\n const classes = useStyles();\n const [emailConfirmed, setEmailConfirmed] = useState(expert.emailConfirmed);\n const [isEnabled, setIsEnabled] = useState(expert.isActive);\n const [displayManageAccessModal, toggleManageAccessModal] = useState({ display: false, enable: false });\n const [displayConfirmEmailModal, setDisplayConfirmEmailModal] = useState(false);\n\n const handleConfirmEmailClose = (): void => {\n setDisplayConfirmEmailModal(false);\n };\n\n const handleConfirmEmailOpen = (): void => {\n setDisplayConfirmEmailModal(true);\n };\n\n const onConfirmEmailSuccess = (): void => {\n setEmailConfirmed(true);\n };\n\n return (\n \n \n \n \n {!expert.photoUrl && }\n {expert.photoUrl && (\n \n )}\n\n \n \n {expert.firstName} {expert.lastName}\n \n \n\n \n {expert.email}\n \n\n \n {expert.phoneNumber}\n \n \n {formatAddress(\n expert.country?.name || '',\n expert.state?.name || '',\n expert.city?.name || '',\n )}\n \n\n
    \n\n \n View Profile\n \n\n {!emailConfirmed && (\n \n Email not confirmed\n\n \n Activate Email\n \n \n )}\n \n \n \n \n {expert.type}\n \n\n \n \n {expert.rating.toFixed(0)}%\n \n \n\n \n {expert.totalFeedbacks} {expert.totalFeedbacks === 1 ? 'feedback' : 'feedbacks'}\n \n {isEnabled && (\n toggleManageAccessModal({ display: true, enable: false })}\n />\n )}\n {!isEnabled && (\n toggleManageAccessModal({ display: true, enable: true })}\n />\n )}\n \n \n {expert.categories.map((category: ICategory) => (\n \n {category.name}\n \n ))}\n \n \n \n\n toggleManageAccessModal({ display: false, enable: false })}\n onSuccess={() => setIsEnabled(displayManageAccessModal.enable)}\n />\n\n \n \n \n );\n};\n","export enum GalleryTypeEnum {\n Artifacts,\n Collections,\n SharedWithMe,\n Collectors,\n Experts,\n Archivists,\n Curators,\n CollectionsSharedWithMe,\n}\n","import React, { useState } from 'react';\nimport { makeStyles } from '@material-ui/styles';\nimport { Box, Button, Card, CardContent, ThemeOptions, Tooltip, Typography } from '@material-ui/core';\n\nimport AccountCircleIcon from '@material-ui/icons/AccountCircle';\nimport CheckCircleIcon from '@material-ui/icons/CheckCircle';\nimport CancelIcon from '@material-ui/icons/Cancel';\n\nimport { IArchivist } from 'core/context/admin/archivist-listing';\nimport { FileSize } from 'core/enums';\nimport { AppRoutes, getPhotoUrl } from 'core/helpers';\n\nimport { EditUserAccessModal } from '../../_dashboard/EditUserAccessModal/EditUserAccessModal';\nimport { Link } from 'react-router-dom';\nimport { ConfirmUserEmailModal } from 'components/_dashboard/ConfirmUserEmailModal/ConfirmUserEmailModal';\n\nconst useStyles = makeStyles((theme: ThemeOptions) => ({\n root: {\n border: '1px solid',\n borderColor: theme.divider.main,\n borderRadius: 2,\n },\n profileIconPlaceholder: {\n width: 40,\n height: 40,\n color: '#FE6502',\n },\n profilePic: {\n width: 40,\n height: 40,\n borderRadius: 40,\n },\n name: {\n fontSize: 16,\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n },\n email: {\n fontSize: 12,\n wordBreak: 'break-all',\n },\n totalObjects: {\n fontSize: 16,\n fontWeight: 'bold',\n marginTop: 7,\n },\n expertReviews: {\n fontSize: 13,\n },\n divider: {\n width: '85%',\n margin: '7px auto',\n borderTop: '1px solid',\n borderColor: theme.divider.main,\n },\n typeLabel: {\n fontSize: 12,\n color: theme.label.text,\n backgroundColor: theme.label.main,\n borderRadius: 2,\n padding: '2px 7px',\n },\n activeIcon: {\n color: '#0F940A',\n width: 22,\n },\n inactiveIcon: {\n color: '#FF0000',\n width: 22,\n },\n activateEmailButton: {\n fontSize: 12,\n },\n}));\n\ntype ArchivistCardProps = {\n archivist: IArchivist;\n};\n\nexport const ArchivistCard: React.FC = ({ archivist }) => {\n const classes = useStyles();\n\n const [emailConfirmed, setEmailConfirmed] = useState(archivist.emailConfirmed);\n const [isEnabled, setIsEnabled] = useState(archivist.isActive);\n const [displayManageAccessModal, toggleManageAccessModal] = useState({ display: false, enable: false });\n const [displayConfirmEmailModal, setDisplayConfirmEmailModal] = useState(false);\n\n const handleConfirmEmailClose = (): void => {\n setDisplayConfirmEmailModal(false);\n };\n\n const handleConfirmEmailOpen = (): void => {\n setDisplayConfirmEmailModal(true);\n };\n\n const onConfirmEmailSuccess = (): void => {\n setEmailConfirmed(true);\n };\n\n return (\n \n \n \n \n {isEnabled && (\n toggleManageAccessModal({ display: true, enable: false })}\n />\n )}\n {!isEnabled && (\n toggleManageAccessModal({ display: true, enable: true })}\n />\n )}\n \n \n\n \n {!archivist.photoUrl && }\n {archivist.photoUrl && (\n \n )}\n\n \n \n {archivist.firstName} {archivist.lastName}\n \n \n\n \n {archivist.email}\n \n \n {archivist.phoneNumber}\n \n\n \n {archivist.totalActiveJobs} active job{archivist.totalActiveJobs !== 1 ? 's' : ''}\n \n\n
    \n\n \n View Profile\n \n\n {!emailConfirmed && (\n \n Email not confirmed\n\n \n Activate Email\n \n \n )}\n \n\n toggleManageAccessModal({ display: false, enable: false })}\n onSuccess={() => setIsEnabled(displayManageAccessModal.enable)}\n />\n\n \n \n \n );\n};\n","import React, { useState } from 'react';\nimport { makeStyles } from '@material-ui/styles';\nimport { Box, Button, Card, CardContent, ThemeOptions, Tooltip, Typography } from '@material-ui/core';\n\nimport AccountCircleIcon from '@material-ui/icons/AccountCircle';\nimport CheckCircleIcon from '@material-ui/icons/CheckCircle';\nimport CancelIcon from '@material-ui/icons/Cancel';\n\nimport { ICurator } from 'core/context/admin/curator-listing';\nimport { FileSize } from 'core/enums';\nimport { AppRoutes, getPhotoUrl } from 'core/helpers';\nimport { EditUserAccessModal } from '../../_dashboard/EditUserAccessModal/EditUserAccessModal';\nimport { Link } from 'react-router-dom';\nimport { ConfirmUserEmailModal } from 'components/_dashboard/ConfirmUserEmailModal/ConfirmUserEmailModal';\n\nconst useStyles = makeStyles((theme: ThemeOptions) => ({\n root: {\n border: '1px solid',\n borderColor: theme.divider.main,\n borderRadius: 2,\n },\n profileIconPlaceholder: {\n width: 40,\n height: 40,\n color: '#FE6502',\n },\n profilePic: {\n width: 40,\n height: 40,\n borderRadius: 40,\n },\n name: {\n fontSize: 16,\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n },\n email: {\n fontSize: 12,\n wordBreak: 'break-all',\n },\n totalObjects: {\n fontSize: 16,\n fontWeight: 'bold',\n marginTop: 7,\n },\n expertReviews: {\n fontSize: 13,\n },\n divider: {\n width: '85%',\n margin: '7px auto',\n borderTop: '1px solid',\n borderColor: theme.divider.main,\n },\n typeLabel: {\n fontSize: 12,\n color: theme.label.text,\n backgroundColor: theme.label.main,\n borderRadius: 2,\n padding: '2px 7px',\n },\n activeIcon: {\n color: '#0F940A',\n width: 22,\n },\n inactiveIcon: {\n color: '#FF0000',\n width: 22,\n },\n activateEmailButton: {\n fontSize: 12,\n },\n}));\n\ntype CuratorCardProps = {\n curator: ICurator;\n};\n\nexport const CuratorCard: React.FC = ({ curator }) => {\n const classes = useStyles();\n\n const [isEnabled, setIsEnabled] = useState(curator.isActive);\n const [displayManageAccessModal, toggleManageAccessModal] = useState({ display: false, enable: false });\n const [emailConfirmed, setEmailConfirmed] = useState(curator.emailConfirmed);\n const [displayConfirmEmailModal, setDisplayConfirmEmailModal] = useState(false);\n\n const handleConfirmEmailClose = (): void => {\n setDisplayConfirmEmailModal(false);\n };\n\n const handleConfirmEmailOpen = (): void => {\n setDisplayConfirmEmailModal(true);\n };\n\n const onConfirmEmailSuccess = (): void => {\n setEmailConfirmed(true);\n };\n\n return (\n \n \n \n \n {isEnabled && (\n toggleManageAccessModal({ display: true, enable: false })}\n />\n )}\n {!isEnabled && (\n toggleManageAccessModal({ display: true, enable: true })}\n />\n )}\n \n \n\n \n {!curator.photoUrl && }\n {curator.photoUrl && (\n \n )}\n\n \n \n {curator.firstName} {curator.lastName}\n \n \n\n \n {curator.email}\n \n \n {curator.phoneNumber}\n \n\n \n {curator.totalActiveJobs} active job{curator.totalActiveJobs !== 1 ? 's' : ''}\n \n\n
    \n\n \n View Profile\n \n\n {!emailConfirmed && (\n \n Email not confirmed\n\n \n Activate Email\n \n \n )}\n \n\n toggleManageAccessModal({ display: false, enable: false })}\n onSuccess={() => setIsEnabled(displayManageAccessModal.enable)}\n />\n\n \n \n \n );\n};\n","import React from \"react\";\nimport {Box, ClickAwayListener, Hidden, Theme, Tooltip, Zoom} from \"@material-ui/core\";\nimport Pagination from '@material-ui/lab/Pagination';\n\nimport \"./styles/style.less\";\n\nimport { ObjectCard } from \"./components/ObjectCard\"; \nimport { CollectionCard } from \"./components/CollectionCard\";\nimport { SharedWithMeCard} from \"./components/SharedWithMeCard\";\nimport { CollectorCard } from \"./components/CollectorCard\";\nimport { ExpertCard } from \"./components/ExpertCard\";\nimport { ArchivistCard } from \"./components/ArchivistCard\";\nimport { CuratorCard } from \"./components/CuratorCard\";\n\nimport { ICollection } from \"types\";\nimport { ICollector } from \"core/context/admin/collector-listing\";\nimport { IExpert } from \"core/context/admin/expert-listing\";\nimport { ISharedArtifact } from \"core/context/consumer/sharedWithMe\";\nimport { GalleryTypeEnum } from \"./helpers/GalleryTypeEnum\";\nimport { IArchivist } from \"core/context/admin/archivist-listing\";\nimport { ICurator } from \"core/context/admin/curator-listing\";\nimport {makeStyles} from \"@material-ui/styles\";\nimport {IObjectCard} from \"../../types\";\n\nconst useStylesOptionsMenu = makeStyles((theme: Theme) => ({\n option: {\n display: 'flex',\n alignItems: 'center',\n cursor: 'pointer',\n paddingLeft: 14,\n paddingRight: 14,\n marginLeft: -7,\n marginRight: -7,\n height: 30,\n '&:hover': {\n color: theme.palette.secondary.main,\n backgroundColor: '#313131'\n },\n '&.active': {\n color: theme.palette.secondary.main,\n backgroundColor: '#313131'\n },\n '&:last-child': {\n marginBottom: 0\n }\n }\n}))\n\ntype GalleryProps = {\n pagination: {\n numberOfPages: number,\n currentPage: number;\n pageSize?: number;\n },\n galleryType: number;\n data: any[];\n handlePageChange: (page: number) => void;\n onObjectDelete?: (id: number) => void;\n handlePageSizeChange?: (size: number) => void;\n}\n\nexport const Gallery: React.FC = (\n {\n galleryType, data, pagination, handlePageChange,\n onObjectDelete, handlePageSizeChange\n }\n) => {\n\n const [open, setOpen] = React.useState(false);\n\n const classes = useStylesOptionsMenu();\n\n return (\n <>\n \n {\n galleryType === GalleryTypeEnum.Artifacts &&\n data.map((object: IObjectCard) => (\n onObjectDelete ? onObjectDelete(object.id) : null}\n />\n ))\n }\n {\n galleryType === GalleryTypeEnum.Collections &&\n data.map((object: ICollection) => (\n onObjectDelete ? onObjectDelete(object.id) : null}\n />\n ))\n }\n {\n galleryType === GalleryTypeEnum.CollectionsSharedWithMe &&\n data.map((object: ICollection) => (\n \n ))\n }\n {\n galleryType === GalleryTypeEnum.SharedWithMe &&\n data.map((object: ISharedArtifact) => (\n \n ))\n }\n {\n galleryType === GalleryTypeEnum.Collectors &&\n data.map((collector: ICollector) => (\n \n ))\n }\n {\n galleryType === GalleryTypeEnum.Experts &&\n data.map((expert: IExpert) => (\n \n ))\n }\n {\n galleryType === GalleryTypeEnum.Archivists &&\n data.map((archivist: IArchivist) => (\n \n ))\n }\n {\n galleryType === GalleryTypeEnum.Curators &&\n data.map((curator: ICurator) => (\n \n ))\n }\n \n\n\n \n \n <>\n {\n handlePageSizeChange &&\n open ? setOpen(false) : null}>\n \n handlePageSizeChange ? handlePageSizeChange(20) : null\n }\n >\n 20 items/page\n \n handlePageSizeChange ? handlePageSizeChange(50) : null\n }\n >\n 50 items/page\n \n handlePageSizeChange ? handlePageSizeChange(100) : null\n }\n >\n 100 items/page\n \n \n }\n onClose={() => setOpen(false)}\n open={open}\n disableFocusListener\n disableHoverListener\n placement={'bottom-end'}\n id=\"sort-by-tooltip\"\n >\n setOpen(!open)}>\n {pagination.pageSize} items/page\n \n \n \n }\n \n\n \n\n {\n pagination.numberOfPages > 1 &&\n handlePageChange(value)}\n />\n }\n\n \n\n \n )\n}\n","import NumberFormat from 'react-number-format';\nimport React from \"react\";\n\n\nexport const NumberInput: React.FC = (props: any) => {\n const { inputRef, onChange, ...other } = props;\n\n const MAX_VAL = 9999999999;\n\n const withValueCap = (inputObj: any): any => {\n const { value } = inputObj;\n if (value <= MAX_VAL) return inputObj;\n };\n\n return (\n {\n onChange({\n target: {\n name: props.name,\n value: values.value,\n },\n });\n }}\n isAllowed={withValueCap}\n isNumericString\n decimalScale={2}\n />\n );\n}\n\nexport const YearInput: React.FC = (props: any) => {\n const { inputRef, onChange, ...other } = props;\n\n const MAX_VAL = 9999999999;\n\n const withValueCap = (inputObj: any): any => {\n const { value } = inputObj;\n if (value <= MAX_VAL) return inputObj;\n };\n\n return (\n {\n onChange({\n target: {\n name: props.name,\n value: values.value,\n },\n });\n }}\n isAllowed={withValueCap}\n isNumericString\n decimalScale={2}\n />\n );\n}\n","import React, { useCallback, useContext, useState } from 'react';\nimport { useDropzone } from 'react-dropzone';\nimport { Box, Button, LinearProgress, Paper, Typography } from '@material-ui/core';\n\nimport FileCopyIcon from '@material-ui/icons/FileCopy';\n\nimport { TextDivider } from '../../../_others/TextDivider';\nimport { UserContext } from '../../../../core/context/user';\nimport { IDocument } from 'core/context/consumer/objectDetails';\n\ntype UploadDocumentsProps = {\n onUpload: (file: File) => void;\n initialDocuments: IDocument[];\n documents: File[];\n};\n\nexport const UploadDocuments: React.FC = ({ onUpload, initialDocuments, documents }) => {\n const userContext = useContext(UserContext);\n\n const [file, setFile] = useState(null);\n const [uploading, setUploading] = useState(false);\n\n const onDrop = useCallback((acceptedFiles) => {\n handleUpload(acceptedFiles);\n }, []);\n\n const { getRootProps, getInputProps } = useDropzone({ onDrop });\n\n const handleUpload = (files: File[]): void => {\n if (!files?.length) {\n return;\n }\n\n if (files.length + initialDocuments.length + documents.length > 10) {\n alert('We are sorry, but you can upload a maximum of 10 documents to an artifact.');\n return;\n }\n\n const file = files[0];\n if (file.size > 40 * 1000000) {\n alert('We are sorry, but your file size is too large. You can only upload files of up to 40 MB.');\n return;\n }\n\n if (\n file?.name.substr(file.name.length - 4, 4).toLowerCase() === '.exe' ||\n file?.name.substr(file.name.length - 4, 4).toLowerCase() === '.bat'\n ) {\n alert('We are sorry, but we do not accept this file type.');\n return;\n }\n\n setTimeout(() => {\n onUpload(file);\n setUploading(false);\n setFile(null);\n }, 100);\n };\n\n return (\n \n
    \n \n \n {!file && }\n {file && {file.name}}\n \n
    \n\n {uploading && (\n \n Updating...\n \n \n )}\n\n {!file && (\n <>\n Drag & drop your files\n\n \n \n \n\n handleUpload(e.target.files)}\n />\n \n \n )}\n \n );\n};\n","import React from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { Box, Typography } from \"@material-ui/core\";\n\nimport InsertDriveFileIcon from '@material-ui/icons/InsertDriveFile';\nimport CloseIcon from '@material-ui/icons/Close';\n\nimport { IDocument } from \"core/context/consumer/objectDetails\";\n\ntype SelectedDocumentsProps = {\n initialDocuments: IDocument[];\n documents: File[];\n onRemove: (index: number) => void;\n onDelete?: (id: number) => void;\n}\n\nconst useStyles = makeStyles({\n container: {\n display: 'inline-block',\n overflow: 'auto'\n },\n fileContainer: {\n display: 'flex',\n alignItems: 'center',\n marginTop: 15,\n marginRight: 10,\n \"&:last-child\": {\n marginRight: 0\n }\n },\n fileIcon: {\n fontSize: 18,\n },\n fileName: {\n fontSize: 14,\n },\n removeContainer: {\n backgroundColor: '#707070',\n marginLeft: 8,\n display: 'flex',\n alignItems: 'center',\n width: 16,\n height: 16,\n cursor: 'pointer'\n },\n closeIcon: {\n fontSize: 13,\n margin: 'auto'\n }\n})\n\nexport const SelectedDocuments: React.FC = (\n {initialDocuments, documents, onRemove, onDelete}\n) => {\n\n const classes = useStyles();\n\n return (\n \n {\n initialDocuments.filter((document: IDocument) => !document.deleted)\n .map((document: IDocument, index: number) => (\n \n \n {document.fileName}\n onRemove(index)}\n >\n onDelete ? onDelete(document.id) : {}}\n />\n \n \n ))\n }\n {\n documents.map((file: File, index: number) => (\n \n \n {file.name}\n onRemove(index)}\n >\n \n \n \n ))\n }\n \n )\n}\n","import React, { useState } from 'react';\n\nimport { UploadDocuments } from './UploadDocuments';\nimport { SelectedDocuments } from './SelectedDocuments';\nimport { IDocument } from 'core/context/consumer/objectDetails';\nimport { Typography } from '@material-ui/core';\n\ntype DocumentsProps = {\n initialDocuments?: IDocument[];\n setCurrentDocuments: (files: File[]) => void;\n onDelete?: (id: number) => void;\n};\n\nexport const Documents: React.FC = ({ initialDocuments, setCurrentDocuments, onDelete }) => {\n const [documents, setDocuments] = useState([]);\n\n const onAddDocument = (document: File): void => {\n const current = documents;\n current.push(document);\n setDocuments(current.slice());\n setCurrentDocuments(current.slice());\n };\n\n const onRemove = (index: number): void => {\n const current = documents;\n current.splice(index, 1);\n setDocuments(current.slice());\n setCurrentDocuments(current.slice());\n };\n\n return (\n <>\n onRemove(index)}\n onDelete={(id: number) => (onDelete ? onDelete(id) : {})}\n />\n\n {documents.length + (initialDocuments?.filter((d) => !d.deleted).length || 0) < 10 && (\n \n )}\n\n {documents.length + (initialDocuments?.filter((d) => !d.deleted).length || 0) >= 10 && (\n \n You can not upload more than 10 documents.\n \n )}\n \n );\n};\n","import { Box, Button, LinearProgress, Paper, Typography } from '@material-ui/core';\nimport PhotoLibraryIcon from '@material-ui/icons/PhotoLibrary';\nimport { TextDivider } from 'components/_others/TextDivider';\nimport React, { useCallback, useContext, useState } from 'react';\nimport { useDropzone } from 'react-dropzone';\nimport { IPhoto, ObjectDetailsContext } from '../../../../core/context/consumer/objectDetails';\nimport { UserContext } from '../../../../core/context/user';\nimport '../styles/upload-photos.less';\n\ntype UploadPhotoProps = {\n onUpload: (photos: string[]) => void;\n photos: Array;\n};\n\nexport const UploadPhoto: React.FC = ({ onUpload, photos }) => {\n const [uploading, setUploading] = useState(false);\n const userContext = useContext(UserContext);\n const objectDetailsContext = useContext(ObjectDetailsContext);\n\n const onDrop = useCallback(\n (acceptedFiles) => {\n uploadFiles(acceptedFiles);\n },\n [photos],\n );\n\n const { getRootProps, getInputProps } = useDropzone({ onDrop });\n\n const uploadFiles = (files: FileList): void => {\n if (files.length + photos.length > 25) {\n alert('We are sorry, but you can upload a maximum of 25 photos to an artifact.');\n return;\n }\n\n for (const file of Array.from(files)) {\n if (file.size > 40 * 1000000) {\n alert('We are sorry, but your photo size is too large (40MB).');\n return;\n }\n\n if (\n file.name &&\n (file?.name?.substr(file.name?.length - 4, 4).toLowerCase() === '.exe' ||\n file?.name?.substr(file.name?.length - 4, 4).toLowerCase() === '.bat')\n ) {\n alert('We are sorry, but we do not accept this file type.');\n return;\n }\n\n if (\n file.name &&\n file?.name?.substr(file.name?.length - 4, 4).toLowerCase() !== '.jpg' &&\n file?.name?.substr(file.name?.length - 5, 5).toLowerCase() !== '.jpeg' &&\n file?.name?.substr(file.name?.length - 4, 4).toLowerCase() !== '.png'\n ) {\n alert('We are sorry, but we do not accept this file type.');\n return;\n }\n }\n setUploading(true);\n setTimeout(() => {\n const newPhotosArr: string[] = [];\n const maxWidth = 1920;\n\n Array.from(files).forEach((file) => {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => {\n const image = new Image();\n image.src = reader.result as string;\n image.onload = function () {\n //get width and height of the photo\n //@ts-expect-error implicit-type-mismatch-width\n const { width, height } = this;\n\n //calculate the width and height it should crop to\n const ratio = parseFloat((maxWidth / width).toFixed(2));\n const canvasHeight = Math.min(height, Math.floor(height * ratio));\n const canvasWidth = Math.min(maxWidth, width);\n\n //draw and resize the photo\n const canvas = document.createElement('canvas');\n canvas.width = canvasWidth;\n canvas.height = canvasHeight;\n const ctx = canvas.getContext('2d');\n ctx?.drawImage(image, 0, 0, canvasWidth, canvasHeight);\n const dataUrl = canvas.toDataURL('image/png');\n canvas.remove();\n image.remove();\n\n //add photo to the processed photos array\n newPhotosArr.push(dataUrl);\n if (newPhotosArr.length === files.length) {\n onUpload(newPhotosArr);\n setUploading(false);\n }\n };\n };\n });\n }, 100);\n objectDetailsContext.modals.toggleDisplayUnsavedPhotosModal(false);\n };\n\n const handleFileInputChange = (e: React.ChangeEvent): void => {\n const { files } = e.target;\n if (!files?.length) {\n return;\n }\n uploadFiles(files);\n };\n\n return (\n \n
    \n \n \n \n \n
    \n\n {uploading && (\n \n Updating...\n \n \n )}\n\n Drag & drop your photos\n\n \n \n \n\n {\n //@ts-expect-error aaa\n event.target.value = null;\n }}\n />\n \n \n );\n};\n","import React, { useContext } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\n\nimport { Box } from '@material-ui/core';\n\nimport { IPhoto } from 'core/context/consumer/objectDetails';\nimport { getPhotoUrl } from 'core/helpers/file-size.helper';\nimport { FileSize } from 'core/enums';\nimport { UserContext } from '../../../../core/context/user';\n\ntype SelectedPhotosProps = {\n photos: Array;\n onDeleteClick: (photo: IPhoto | string, index: number) => void;\n onCropClick: (photo: IPhoto | string, index?: number) => void;\n};\n\nconst useStyles = makeStyles({\n container: {\n display: 'inline-block',\n overflow: 'auto',\n },\n photoContainer: {\n display: 'inline-block',\n marginTop: 15,\n marginRight: 10,\n backgroundColor: '#383838',\n padding: 10,\n minWidth: 100,\n textAlign: 'center',\n '&:last-child': {\n marginRight: 0,\n },\n },\n photo: {\n maxHeight: 100,\n border: '1px solid #505050',\n },\n remove: {\n width: 15,\n height: 17,\n fontSize: 12,\n cursor: 'pointer',\n marginRight: 25,\n },\n crop: {\n width: 15,\n height: 17,\n fontSize: 12,\n cursor: 'pointer',\n marginRight: 10,\n },\n actionsBox: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n marginTop: 5,\n paddingTop: 5,\n borderTop: '1px solid gray',\n },\n});\n\nexport const SelectedPhotos: React.FC = ({ photos, onDeleteClick, onCropClick }) => {\n const classes = useStyles();\n const userContext = useContext(UserContext);\n\n const hideDeleteButton = (): boolean => {\n return (\n photos.filter((p) => {\n if ((p as IPhoto).deleted) {\n return false;\n }\n return true;\n }).length <= 1\n );\n };\n\n const handleCropClick = (photo: IPhoto | string, index: number): void => {\n if (typeof photo === 'string') {\n onCropClick(photo, index);\n } else {\n onCropClick(photo);\n }\n };\n\n return (\n \n {photos\n .filter((photo) => !(photo as IPhoto).deleted)\n .map((photo, index) => (\n \n \n \n {\n handleCropClick(photo, index)}>\n Crop\n \n }\n {!hideDeleteButton() && (\n onDeleteClick(photo, index)}>\n Remove\n \n )}\n \n \n ))}\n \n );\n};\n","import { Box, Button, makeStyles, Paper } from '@material-ui/core';\nimport CloseIcon from '@material-ui/icons/Close';\nimport DoneIcon from '@material-ui/icons/Done';\nimport RotateLeftIcon from '@material-ui/icons/RotateLeft';\nimport 'cropperjs/dist/cropper.css';\nimport React, { useRef, useState } from 'react';\nimport Cropper from 'react-cropper';\nimport '../styles/cropper.less';\nimport '../styles/upload-photos.less';\n\nexport const useStyles = makeStyles((_theme) => ({\n cropZone: {\n minHeight: '162px',\n padding: 6,\n borderRadius: '2px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexDirection: 'column',\n },\n buttonsZone: {\n display: 'flex',\n justifyContent: 'flex-end',\n width: '100%',\n },\n cropperContainer: {\n marginTop: 30,\n display: 'flex',\n alignItems: 'center',\n flexDirection: 'column',\n marginLeft: 10,\n marginRight: 10,\n },\n}));\n\ntype PhotoCropperProps = {\n src: string;\n onCancelClick: () => void;\n onDoneClick: (res: string) => void;\n hideCancelButton?: boolean;\n};\n\nexport const PhotoCropper: React.FC = ({ src, onCancelClick, onDoneClick, hideCancelButton }) => {\n const [photo, setPhoto] = useState(src);\n const cropperRef = useRef(null);\n const classes = useStyles();\n\n const onCrop = (): void => {\n const imageElement: any = cropperRef?.current;\n const cropper: any = imageElement?.cropper;\n setPhoto(cropper.getCroppedCanvas()?.toDataURL());\n };\n\n const rotate = (angle: number): void => {\n const imageElement: any = cropperRef?.current;\n const cropper: any = imageElement?.cropper;\n cropper.rotate(angle);\n };\n\n const handleDoneClick = (): void => {\n onDoneClick(photo);\n };\n\n const handleCancelClick = (): void => {\n onCancelClick();\n };\n\n return (\n <>\n \n \n onCrop()}\n ref={cropperRef}\n background={false}\n viewMode={2}\n autoCropArea={1}\n autoCrop={true}\n checkOrientation={false}\n checkCrossOrigin={true}\n rotatable={true}\n movable={true}\n />\n \n \n\n \n {/* {file.name} */}\n \n {!hideCancelButton && (\n \n )}\n \n \n \n \n \n );\n};\n","import React, { useEffect, useState } from 'react';\n\nimport { UploadPhoto } from './UploadPhoto';\nimport { SelectedPhotos } from './SelectedPhotos';\nimport { IPhoto } from 'core/context/consumer/objectDetails';\nimport { Typography } from '@material-ui/core';\nimport { PhotoCropper } from './PhotoCropper';\nimport { FileSize, getPhotoUrl } from 'core';\n\nexport interface PhotoOnCrop {\n id: number;\n photo: string | IPhoto | null;\n existing: boolean | null;\n index?: number;\n}\n\ntype PhotosProps = {\n initialPhotos?: IPhoto[];\n hasPendingAssessments?: boolean;\n setCurrentPhotos: (photos: any) => void;\n onDelete?: (id: number) => void;\n onRemovePhoto?: (id: number) => void;\n};\n\nexport const Photos: React.FC = ({ setCurrentPhotos, initialPhotos, onDelete }) => {\n const [photos, setPhotos] = useState>(initialPhotos ?? []);\n const [photoOnCrop, setPhotoOnCrop] = useState({ id: -1, photo: null, existing: null });\n\n const addNewPhotos = (newPhotos: string[]): void => {\n setPhotos([...photos, ...newPhotos]);\n };\n\n useEffect(() => {\n setCurrentPhotos(photos);\n }, [photos]);\n\n const onDeleteClick = (photo: IPhoto | string, photoIndex: number): void => {\n if (typeof photo === 'string') {\n setPhotos(photos.filter((_p, index) => index !== photoIndex));\n } else {\n setPhotos(\n photos.map((p) => {\n if ((p as IPhoto).id === photo.id) {\n return {\n ...photo,\n deleted: true,\n };\n }\n return p;\n }),\n );\n if (onDelete) {\n onDelete(photo.id);\n }\n }\n };\n\n const onCropClick = (photo: IPhoto | string, index?: number): void => {\n if (typeof photo === 'string') {\n setPhotoOnCrop({ id: -1, photo, existing: false, index });\n } else {\n setPhotoOnCrop({\n id: photo.id,\n photo: getPhotoUrl(photo.url, FileSize.SM) ?? '',\n existing: true,\n });\n }\n };\n\n const onCropCancel = (): void => {\n setPhotoOnCrop({\n id: -1,\n photo: null,\n existing: null,\n });\n };\n\n const onCropDone = (res: string): void => {\n if (photoOnCrop.index === 0 || photoOnCrop.index) {\n setPhotos(\n photos.map((photo, index) => {\n if (index === photoOnCrop.index) {\n return res;\n }\n return photo;\n }),\n );\n } else {\n const oldPhoto = photos.filter((photo) => (photo as IPhoto).id === photoOnCrop.id)[0];\n setPhotos([\n ...photos.map((photo) => {\n if ((photo as IPhoto).id === photoOnCrop.id) {\n return res;\n }\n return photo;\n }),\n { ...(oldPhoto as IPhoto), deleted: true },\n ]);\n }\n setPhotoOnCrop({ id: -1, photo: null, existing: null });\n };\n\n return (\n <>\n \n {photos.length < 25 && !photoOnCrop.photo && (\n \n )}\n\n {!!photoOnCrop.photo && (\n \n )}\n\n {photos.length >= 25 && (\n \n You can not upload more than 25 pictures.\n \n )}\n \n );\n};\n","import moment from \"moment\";\n\nexport function manageTitleError(value: string): string {\n return !value || !value.trim() ? 'Please enter a title for this object.' : '';\n}\n\nexport function manageDescriptionError(value: string): string {\n return !value || !value.trim() ? 'Please enter a description for this object.' : '';\n}\n\nexport function managePriceRangesError(min: string, max: string): string {\n if(!min && max) {\n return 'Please enter a minimum price';\n }\n if(min && !max) {\n return 'Please enter a maximum price';\n }\n if(Number(min) >= Number(max)) {\n return 'The maximum price can\\'t be lower or equal than the minimum price.'\n }\n return '';\n}\n\nexport function manageYearRangeError(min: string, max: string): string {\n if(!min && max) {\n return 'Please enter a minimum year';\n }\n if(min && !max) {\n return 'Please enter a maximum year';\n }\n return '';\n}\n\nexport function manageExactProductionYearError(year: string, notation: string, required = true): string {\n if(!year && !required) {\n return '';\n }\n if(!year || isNaN(Number(year)) || Number(year) <= 0) {\n return 'Please enter a valid year';\n }\n if(year.length > 4 && notation === 'AD') {\n return 'Please enter a valid year';\n }\n\n if(Number(year) > moment().year() && notation === 'AD') {\n return \"Year can't be in the future\";\n }\n return '';\n}\n\nexport function manageMinProductionYearError(\n min: string, max: string, minNotation: string, maxNotation: string\n): string {\n if(!min || isNaN(Number(min)) || Number(min) <= 0) {\n return 'Please enter a valid year';\n }\n if(min.length > 5) {\n return 'Please enter a valid year';\n }\n if(Number(min) > moment().year() && minNotation === 'AD') {\n return \"Year can't be in the future\";\n }\n if(!minIsBeforeMax(min, max, minNotation, maxNotation)) {\n return \"Min year can't be after max year\";\n }\n return '';\n}\n\nexport function manageMaxProductionYearError(\n max: string, maxNotation: string\n): string {\n if(!max || isNaN(Number(max)) || Number(max) <= 0) {\n return 'Please enter a valid year';\n }\n if(max.length > 5) {\n return 'Please enter a valid year';\n }\n if(Number(max) > moment().year() && maxNotation === 'AD') {\n return \"Year can't be in the future\";\n }\n return '';\n}\n\nfunction minIsBeforeMax(min: string, max: string, minNotation: string, maxNotation: string): boolean {\n if(minNotation === 'BC' && maxNotation === 'BC') {\n return Number(min) > Number(max);\n }\n if(minNotation === 'AD' && maxNotation === 'AD') {\n return Number(min) < Number(max);\n }\n return !(minNotation === 'AD' && maxNotation === 'BC');\n}\n","import {\n Box,\n FormControlLabel,\n Grid,\n InputAdornment,\n InputLabel,\n MenuItem,\n Radio,\n RadioGroup,\n Select,\n TextField,\n Typography,\n} from '@material-ui/core';\nimport { makeStyles } from '@material-ui/core/styles';\nimport InfoIcon from '@material-ui/icons/Info';\nimport { CollectorCollectionApi } from 'core/api/consumer/collector-collection.api';\nimport { IDocument, IPhoto } from 'core/context/consumer/objectDetails';\nimport React, { useContext, useEffect, useState } from 'react';\nimport { UserContext } from '../../../core/context/user';\nimport { SortCollectionsOptions, UserRoles } from '../../../core/enums';\nimport { NumberInput, YearInput } from '../../_others/NumberInput';\nimport TypeaheadChipMultiselect from '../../_others/TypeaheadChipMultiselect';\nimport { Documents } from './components/Documents';\nimport { Photos } from './components/Photos';\nimport {\n manageDescriptionError,\n manageExactProductionYearError,\n manageMaxProductionYearError,\n manageMinProductionYearError,\n managePriceRangesError,\n manageTitleError,\n manageYearRangeError,\n} from './helpers/errors.manager';\nimport { IObject, IObjectErrors } from './helpers/object.interface';\n\nconst useStyles = makeStyles({\n root: {\n margin: 'auto',\n },\n divider: {\n width: 55,\n height: 1,\n backgroundColor: '#707070',\n marginTop: 15,\n marginBottom: 25,\n },\n labelSm: {\n fontSize: 13,\n },\n labelXs: {\n fontSize: 11,\n },\n focusLabel: {\n color: '#FE6502',\n },\n errorLabel: {\n color: '#B32222',\n },\n inputWrapper: {\n marginTop: '16px',\n marginBottom: '16px',\n },\n input: {\n marginTop: '4px',\n },\n});\n\ntype ObjectFormProps = {\n values: IObject;\n disableEditFields?: boolean;\n displayErrors?: number;\n onAddNew: boolean;\n photos?: Array;\n documents?: IDocument[];\n setValues: (values: IObject) => void;\n setFormErrors: (values: boolean) => void;\n setPhotos: (photos: Array) => void;\n setDocuments: (document: File[]) => void;\n onPhotoDelete?: (id: number) => void;\n onDocumentDelete?: (id: number) => void;\n};\n\nexport const ObjectForm: React.FC = ({\n values,\n disableEditFields,\n setValues,\n setFormErrors,\n displayErrors,\n setPhotos,\n documents,\n setDocuments,\n photos,\n onPhotoDelete,\n onDocumentDelete,\n onAddNew,\n}) => {\n const classes = useStyles();\n const userContext = useContext(UserContext);\n\n const [newPhotosNumber, setNewPhotosNumber] = useState(null);\n const [collections, setCollections] = useState<{ id: number; name: string }[]>([]);\n\n const [onFocus, setOnFocus] = useState('');\n const [errors, setErrors] = useState({\n title: '',\n description: '',\n // photo: '',\n estimatedRanges: '',\n yearRange: '',\n exactProductionYear: '',\n minProductionYear: '',\n maxProductionYear: '',\n });\n\n useEffect(() => {\n if (userContext.user?.role !== UserRoles.ARCHIVIST) {\n getCollections();\n }\n }, []);\n\n useEffect(() => {\n if (!displayErrors) {\n return;\n }\n manageErrors(null);\n }, [displayErrors]);\n\n const getCollections = (): void => {\n CollectorCollectionApi.getCollections(SortCollectionsOptions.Title, true, 1, 500)\n .then((res: any) => {\n setCollections(res.data.data);\n })\n .catch((error: any) => {\n console.error(error.response);\n setCollections([]);\n });\n };\n\n const manageErrors = (field: string | null = null): void => {\n const err: any = {\n title: field === null || field === 'title' || errors.title ? manageTitleError(values.title) : '',\n description:\n field === null || field === 'description' || errors.description\n ? manageDescriptionError(values.description)\n : '',\n estimatedRanges:\n values.estimatedValueOption === 'range'\n ? managePriceRangesError(values.minimumValue, values.maximumValue)\n : '',\n yearRange:\n values.productionYearOption === 'range'\n ? manageYearRangeError(values.lowerProductionYear, values.upperProductionYear)\n : '',\n exactProductionYear:\n values.productionYearOption === 'exact'\n ? manageExactProductionYearError(values.exactProductionYear, values.exactYearNotation, false)\n : '',\n minProductionYear:\n values.productionYearOption === 'range'\n ? manageMinProductionYearError(\n values.lowerProductionYear,\n values.upperProductionYear,\n values.lowerYearNotation,\n values.upperYearNotation,\n )\n : '',\n maxProductionYear:\n values.productionYearOption === 'range'\n ? manageMaxProductionYearError(values.upperProductionYear, values.upperYearNotation)\n : '',\n // photo:\n // onAddNew && (newPhotosNumber === null || newPhotosNumber <= 0)\n // ? 'Please upload at least one photo'\n // : '',\n };\n\n setErrors({ ...err });\n setFormErrors(\n Object.keys(err).findIndex((key: string) => err[key] !== '') > -1 ||\n !values.title ||\n !values.description\n // || (onAddNew && (newPhotosNumber === null || newPhotosNumber <= 0)),\n );\n };\n\n return (\n <>\n {disableEditFields && (\n \n You can only update the photos, documents and collections, as there is an assessment waiting for\n evaluation. Also, your object must have at least one photo.\n \n )}\n
    \n {onAddNew && (\n <>\n Photos\n \n \n \n Add at least one photo to your object board for your records. The more photo details you\n provide, the more accurate the identification.\n \n \n\n {/*{errors.photo && (*/}\n {/* */}\n {/* {errors.photo}*/}\n {/* */}\n {/*)}*/}\n\n {\n setPhotos(photos);\n setNewPhotosNumber(photos.length);\n }}\n onDelete={(id: number) => {\n if (onPhotoDelete) {\n onPhotoDelete(id);\n }\n }}\n onRemovePhoto={(_id: number) => setNewPhotosNumber((newPhotosNumber || 0) - 1)}\n />\n \n )}\n\n \n \n Title of this object *\n \n setValues({ ...values, title: e.target.value })}\n onFocus={() => setOnFocus('title')}\n onBlur={() => {\n setOnFocus('');\n manageErrors('title');\n }}\n />\n \n\n \n \n Description *\n \n setValues({ ...values, description: e.target.value })}\n onFocus={() => setOnFocus('description')}\n onBlur={() => {\n setOnFocus('');\n manageErrors('description');\n }}\n />\n \n\n
    \n\n \n Dimensions\n \n\n \n \n <>\n \n Height (inches)\n \n setValues({ ...values, height: e.target.value })}\n onFocus={() => setOnFocus('height')}\n onBlur={() => setOnFocus('')}\n InputProps={{\n inputComponent: NumberInput,\n }}\n />\n \n \n\n \n <>\n \n Width (inches)\n \n setValues({ ...values, width: e.target.value })}\n onFocus={() => setOnFocus('width')}\n onBlur={() => setOnFocus('')}\n InputProps={{\n inputComponent: NumberInput,\n }}\n />\n \n \n\n \n <>\n \n Depth (inches)\n \n setValues({ ...values, depth: e.target.value })}\n onFocus={() => setOnFocus('depth')}\n onBlur={() => setOnFocus('')}\n InputProps={{\n inputComponent: NumberInput,\n }}\n />\n \n \n\n \n <>\n \n Weight (pounds)\n \n setValues({ ...values, weight: e.target.value })}\n onFocus={() => setOnFocus('weight')}\n onBlur={() => setOnFocus('')}\n InputProps={{\n inputComponent: NumberInput,\n }}\n />\n \n \n \n\n \n \n What is this the approximate age? (years)\n \n setValues({ ...values, productionYearOption: e.target.value })}\n >\n }\n label=\"Exact Year\"\n />\n }\n label=\"Range\"\n />\n \n \n\n {values.productionYearOption === 'exact' && (\n \n \n \n setValues({\n ...values,\n exactProductionYear: e.target.value,\n lowerProductionYear: null,\n upperProductionYear: null,\n })\n }\n onFocus={() => setOnFocus('exactProductionYear')}\n onBlur={() => {\n setOnFocus('');\n manageErrors('exactProductionYear');\n }}\n InputProps={{\n inputComponent: YearInput,\n }}\n />\n \n\n \n {\n setValues({ ...values, exactYearNotation: e.target.value });\n }}\n onBlur={() => {\n setOnFocus('');\n manageErrors('exactYearNotation');\n }}\n >\n AD\n BC\n \n \n \n )}\n\n {values.productionYearOption === 'range' && (\n <>\n \n \n \n setValues({\n ...values,\n lowerProductionYear: e.target.value,\n exactProductionYear: null,\n })\n }\n onFocus={() => setOnFocus('lowerProductionYear')}\n onBlur={() => {\n setOnFocus('');\n manageErrors('lowerProductionYear');\n }}\n InputProps={{\n inputComponent: YearInput,\n }}\n />\n \n\n \n {\n setValues({ ...values, lowerYearNotation: e.target.value });\n }}\n onBlur={() => {\n setOnFocus('');\n manageErrors('minYearNotation');\n }}\n >\n AD\n BC\n \n \n\n \n \n setValues({\n ...values,\n upperProductionYear: e.target.value,\n exactProductionYear: null,\n })\n }\n onFocus={() => setOnFocus('upperProductionYear')}\n onBlur={() => {\n setOnFocus('');\n manageErrors('upperProductionYear');\n }}\n InputProps={{\n inputComponent: YearInput,\n }}\n />\n \n\n \n {\n setValues({ ...values, upperYearNotation: e.target.value });\n }}\n onBlur={() => {\n setOnFocus('');\n manageErrors('maxYearNotation');\n }}\n >\n AD\n BC\n \n \n \n \n )}\n\n \n \n What is the Material?\n \n setValues({ ...values, material: e.target.value })}\n onFocus={() => setOnFocus('material')}\n onBlur={() => setOnFocus('')}\n />\n \n\n \n \n What is the Style?\n \n setValues({ ...values, style: e.target.value })}\n onFocus={() => setOnFocus('style')}\n onBlur={() => setOnFocus('')}\n />\n \n\n \n \n What is the Origin?\n \n setValues({ ...values, origin: e.target.value })}\n onFocus={() => setOnFocus('origin')}\n onBlur={() => setOnFocus('')}\n />\n \n\n \n \n What is the Condition?\n \n setValues({ ...values, condition: e.target.value })}\n onFocus={() => setOnFocus('condition')}\n onBlur={() => setOnFocus('')}\n />\n \n\n \n \n Who is the Artist or Maker?\n \n setValues({ ...values, artist: e.target.value })}\n onFocus={() => setOnFocus('artist')}\n onBlur={() => setOnFocus('')}\n />\n \n\n \n \n Artist Bio\n \n setValues({ ...values, artistBio: e.target.value })}\n onFocus={() => setOnFocus('artistBio')}\n onBlur={() => {\n setOnFocus('');\n }}\n />\n \n\n \n Artist image link:\n\n setOnFocus('condition')}\n onBlur={() => setOnFocus('')}\n value={values.artistImageUrl}\n onChange={(e: React.ChangeEvent) => {\n setValues({ ...values, artistImageUrl: e.target.value });\n }}\n />\n \n\n {collections?.length > 0 && userContext.user?.role !== UserRoles.ARCHIVIST && (\n <>\n
    \n\n \n Add this object to some collections.\n \n \n setValues({ ...values, collections: e })}\n />\n \n \n )}\n\n <>\n
    \n What is the estimated value? ($)\n\n <>\n setValues({ ...values, estimatedValueOption: e.target.value })}\n >\n }\n label=\"Exact Value\"\n />\n }\n label=\"Range\"\n />\n \n \n\n {values.estimatedValueOption === 'exact' && (\n <>\n $,\n inputComponent: NumberInput,\n }}\n value={values.exactValue}\n onChange={(e: any) =>\n setValues({\n ...values,\n minimumValue: '',\n maximumValue: '',\n exactValue: e.target.value,\n })\n }\n onFocus={() => setOnFocus('exactValue')}\n onBlur={() => setOnFocus('')}\n />\n \n )}\n\n {values.estimatedValueOption === 'range' && (\n \n \n \n Min\n \n $,\n inputComponent: NumberInput,\n }}\n value={values.minimumValue}\n onChange={(e: any) =>\n setValues({\n ...values,\n minimumValue: e.target.value,\n exactValue: '',\n })\n }\n onFocus={() => setOnFocus('minimumValue')}\n onBlur={() => {\n setOnFocus('');\n manageErrors('minimumValue');\n }}\n />\n \n \n \n Max\n \n $,\n inputComponent: NumberInput,\n }}\n value={values.maximumValue}\n onChange={(e: any) =>\n setValues({\n ...values,\n maximumValue: e.target.value,\n exactValue: '',\n })\n }\n onFocus={() => setOnFocus('maximumValue')}\n onBlur={() => {\n setOnFocus('');\n manageErrors('maximumValue');\n }}\n />\n \n \n )}\n \n\n {!onAddNew && (\n <>\n
    \n\n Photos\n \n \n \n Add at least one photo to your object board for your records. The more photo details you\n provide, the more accurate the identification.\n \n \n\n {\n setPhotos(photos);\n }}\n onDelete={(id: number) => (onPhotoDelete ? onPhotoDelete(id) : {})}\n />\n \n )}\n\n
    \n\n <>\n Documents\n \n \n \n Add all known documentation you may have for your object.\n Example: Receipts, condition report, catalog raisonne...\n \n \n\n setDocuments(documents)}\n onDelete={(id: number) => (onDocumentDelete ? onDocumentDelete(id) : {})}\n />\n \n \n \n );\n};\n","import {UserRoles} from \"../enums\";\nimport {AppRoutes} from \"./app-routes\";\n\nexport function homepageByUserRole(userRole: string|undefined): string {\n if(userRole === UserRoles.COLLECTOR) {\n return AppRoutes.MY_OBJECTS;\n }\n if (userRole === UserRoles.EXPERT) {\n return AppRoutes.FEEDBACK_REQUESTS;\n }\n if (userRole === UserRoles.ADMIN) {\n return AppRoutes.FEEDBACK_REQUESTS;\n }\n if (userRole === UserRoles.ARCHIVIST || userRole === UserRoles.CURATOR) {\n return AppRoutes.ASSIGNED_COLLECTORS_INDEX;\n }\n return AppRoutes.SIGN_IN;\n}\n","export default __webpack_public_path__ + \"static/media/confirm-email.046b91ad.svg\";","export enum TutorialViews {\n TakePhoto,\n HowToOrganize,\n HowToPhotograph,\n}\n","import React from \"react\";\nimport \"./style.less\";\n\nimport PinInput from \"react-pin-input\";\n\nimport { IConfirmRegistrationEmail, UserApi } from \"core/api/user\";\n\ntype ConfirmationPinProps = {\n email: string;\n setError: (error: string) => void,\n onSuccess: () => void\n}\n\nexport const ConfirmationPin: React.FC = ({email, setError, onSuccess}) => {\n\n\n const onComplete = (value: string): void => {\n\n const payload: IConfirmRegistrationEmail = {\n email,\n code: value,\n }\n\n UserApi.confirmRegistrationEmail(payload)\n .then(() => {\n onSuccess();\n })\n .catch((error: any) => {\n console.error(error.response);\n console.error(error);\n if(error.response.data.message === 'UserNotFound') {\n setError('Sorry, there is no account associated with your email.');\n return;\n }\n if(error.response.data.message === 'InvalidCode') {\n setError('Your confirmation code is invalid.');\n return;\n }\n setError('Sorry, there was an error. Please try again later.');\n })\n }\n\n return (\n onComplete(value)}\n autoSelect={true}\n regexCriteria={/^[0-9]*$/}\n />\n )\n}\n","import React, {useEffect, useState} from \"react\";\nimport { modalStyles } from \"components/_others/modals/modal-styles\";\nimport { Backdrop, Box, Button, CircularProgress, Fade, Modal, Typography } from \"@material-ui/core\";\n\nimport confirmEmailImg from \"assets/images/confirm-email.svg\";\nimport CloseIcon from '@material-ui/icons/Close';\nimport DoneIcon from '@material-ui/icons/Done';\n\nimport { ConfirmationPin } from \"scenes/auth/components/ConfirmationPin/ConfirmationPin\";\n\nimport { UserApi } from \"core/api/user\";\nimport {ModalHeader} from \"../../../../components/_others/modals/ModalHeader\";\n\ntype ConfirmEmailModalProps = {\n credentials: {email: string, password: string};\n message: string;\n open: boolean;\n handleClose: () => void;\n onSuccess: () => void;\n}\n\nexport const ConfirmEmailModal: React.FC = (\n {credentials, message, open, handleClose, onSuccess}\n) => {\n\n const classes = modalStyles();\n\n const [isLoading, setIsLoading] = useState(false);\n const [displaySuccessIcon, setDisplaySuccessIcon] = useState(false);\n const [unknownError, setUnknownError] = useState('');\n\n useEffect(() => {\n setUnknownError('');\n }, [])\n\n const resendConfEmail = (): void => {\n\n setIsLoading(true);\n setDisplaySuccessIcon(false);\n setUnknownError('');\n\n UserApi.resendRegisterConfirmationEmail(credentials.email)\n .then(() => {\n setIsLoading(false);\n setDisplaySuccessIcon(true);\n })\n .catch((error: any) => {\n setIsLoading(false);\n console.error(error);\n setUnknownError('Sorry, there was an error. Please try again later.');\n })\n }\n\n return (\n \n \n
    \n\n handleClose()}\n />\n\n {\n unknownError &&\n \n {unknownError}\n \n }\n\n \n {message}\n \n\n setUnknownError(error)}\n onSuccess={() => onSuccess ? onSuccess() : {}}\n />\n\n \n \"confirm-email\"\n \n\n \n \n Cancel\n \n\n resendConfEmail()}\n >\n {\n isLoading && \n }\n {\n displaySuccessIcon && \n }\n Resend Email\n \n \n\n
    \n
    \n \n )\n}\n","import React from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { Box, ThemeOptions, Typography } from \"@material-ui/core\";\n\ntype PageTitleProps = {\n title: string;\n subtitle?: string;\n}\n\nexport const useStyles = makeStyles((theme: ThemeOptions) => ({\n pageTitleContainer: {\n zIndex: 2,\n position: 'fixed',\n maxWidth: 515,\n width: '100%',\n backgroundColor: theme.rootBackground.main,\n },\n text: {\n fontSize: '2.25rem',\n marginTop: 15,\n },\n}))\n\nexport const PageTitle: React.FC = ({title, subtitle}) => {\n\n const classes = useStyles();\n\n return (\n \n \n {title}\n \n\n {\n subtitle &&\n \n {subtitle}\n \n }\n\n \n )\n}\n","export default __webpack_public_path__ + \"static/media/auth_image.dd9a0fa9.png\";","export default __webpack_public_path__ + \"static/media/add-object.cfc8205a.svg\";","export enum AfterRegisterAction {\n DisplayConfirmEmailModal,\n DisplayWaitForActivationMessage,\n ContinueToLogin,\n}\n\nexport enum AfterLoginAction {\n DisplayBlockedPlatformMessage,\n AskForRegisterReason,\n GoToApp,\n}\n","import {makeStyles} from \"@material-ui/core/styles\";\n\nexport const takePhotoStyles = makeStyles({\n root: {\n textAlign: 'center',\n marginTop: '3%',\n [\"@media (max-width: 1000px) and (orientation: portrait)\"]: { marginTop: '15%'},\n },\n title: {\n fontSize: 22,\n marginBottom: '2%'\n },\n subtitle: {\n color: '#B2B2B2',\n fontSize: 14,\n marginBottom: '2%'\n },\n button: {\n marginBottom: '3%'\n }\n})\n","import React from 'react';\nimport { Box, Button, Typography } from '@material-ui/core';\n\nimport addObjectIcon from 'assets/images/add-object.svg';\nimport { takePhotoStyles } from '../styles/take-photo.style';\n\ntype TakePhotoProps = {\n changeView: () => void;\n};\n\nexport const TakePhoto: React.FC = ({ changeView }) => {\n const classes = takePhotoStyles();\n\n return (\n \n \n Start adding an object\n \n\n \"add-object-icon\"\n\n \n Make sure to get close, find good lightning and focus on your item.\n \n\n changeView()}\n >\n How to take a photo\n \n \n );\n};\n","export default __webpack_public_path__ + \"static/media/tutorial_org.88a7cd29.mp4\";","import {makeStyles} from \"@material-ui/core/styles\";\n\nexport const howToOrganizeStyles = makeStyles({\n root: {\n textAlign: 'center',\n marginTop: '3%',\n },\n videoContainer: {\n height: 300,\n maxWidth: 590,\n margin: 'auto',\n marginBottom: 20\n },\n title: {\n fontSize: 22,\n marginBottom: '2%'\n },\n subtitle: {\n color: '#B2B2B2',\n fontSize: 14,\n marginBottom: '2%',\n maxWidth: 650,\n margin: 'auto'\n },\n navigationContainer: {\n margin: '20px auto',\n maxWidth: 450,\n maxHeight: 40,\n },\n leftCol: {\n textAlign: 'left'\n },\n rightCol: {\n textAlign: 'right',\n }\n})\n","import React from \"react\";\nimport { Box, Button, Grid, Typography } from \"@material-ui/core\";\n\nimport ReactPlayer from \"react-player\";\nimport video from \"assets/videos/tutorial_org.mp4\";\nimport {howToOrganizeStyles} from \"../styles/how-to-organize.style\";\n\ntype HowToOrganizeProps = {\n onSkip: () => void;\n onNext: () => void;\n hideNavigation?: boolean;\n}\n\nexport const HowToOrganize: React.FC = ({onSkip, onNext, hideNavigation}) => {\n\n const classes = howToOrganizeStyles();\n\n return (\n \n
    \n \n
    \n\n \n How to organize, share & connect through our platform?\n \n\n \n The Artifact platform provides a simple, intuitive & reliable tool\n for collectors to manage their content. It’s powerful features allow\n the everyday user to stay organized and up-to-date with their precious valuables.\n \n\n {\n !hideNavigation &&\n \n \n \n onSkip()}\n >\n Skip this\n \n \n \n onNext()}\n >\n Next Step\n \n \n \n \n }\n
    \n )\n}\n\n\n","export default __webpack_public_path__ + \"static/media/tutorial_photo.96db40ba.mp4\";","import {makeStyles} from \"@material-ui/core/styles\";\n\nexport const howToPhotographStyles = makeStyles({\n root: {\n textAlign: 'center',\n marginTop: '3%',\n minHeight: '40px',\n },\n videoContainer: {\n height: 300,\n maxWidth: 590,\n margin: 'auto',\n marginBottom: 20\n },\n title: {\n fontSize: 22,\n marginBottom: '2%'\n },\n subtitle: {\n color: '#B2B2B2',\n fontSize: 14,\n marginBottom: '2%',\n maxWidth: 650,\n margin: 'auto'\n },\n navigationContainer: {\n margin: '20px auto',\n maxWidth: 450,\n maxHeight: 40,\n },\n})\n","import React from \"react\";\nimport { Box, Button, Typography } from \"@material-ui/core\";\n\nimport ReactPlayer from \"react-player\";\nimport video from \"assets/videos/tutorial_photo.mp4\";\nimport {howToPhotographStyles} from \"../styles/how-to-photograph.style\";\n\ntype HowToPhotographProps = {\n onAddObject: () => void;\n hideNavigation?: boolean;\n}\n\nexport const HowToPhotograph: React.FC = ({onAddObject, hideNavigation}) => {\n\n const classes = howToPhotographStyles();\n\n return (\n \n
    \n \n
    \n\n \n How to photograph, archive & catalog all of your collectibles?\n \n\n {\n !hideNavigation &&\n \n onAddObject()}\n >\n Add object\n \n \n }\n\n
    \n )\n}\n\n","import { Box } from \"@material-ui/core\";\nimport React from \"react\";\n\nimport FiberManualRecordIcon from '@material-ui/icons/FiberManualRecord';\nimport {TutorialViews} from \"../views.enum\";\n\ntype StepDotsProps = {\n view: number;\n changeView: (view: number) => void\n}\n\nexport const StepDots: React.FC = ({view, changeView}) => {\n return (\n \n changeView(TutorialViews.HowToOrganize)}\n />\n changeView(TutorialViews.HowToPhotograph)}\n />\n \n )\n}\n","import React, { useContext, useState } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { Container } from '@material-ui/core';\n\nimport { TutorialViews } from './views.enum';\nimport { AppRoutes } from 'core/helpers/app-routes';\n\nimport { TakePhoto } from './components/TakePhoto';\nimport { HowToOrganize } from './components/HowToOrganize';\nimport { HowToPhotograph } from './components/HowToPhotograph';\nimport { StepDots } from './components/StepDots';\nimport { UserContext } from 'core/context/user';\nimport {UserRoles} from \"../../../core\";\n\ntype TutorialProps = {\n activeStep?: number;\n hideNavigation?: boolean;\n};\n\nexport const Tutorial: React.FC = ({ activeStep, hideNavigation }) => {\n const history = useHistory();\n const userContext = useContext(UserContext);\n\n const [currentView, setCurrentView] = useState(activeStep || TutorialViews.TakePhoto);\n\n const goToAddObject = (): void => {\n const currentUserRole = userContext.user?.role;\n if(currentUserRole === UserRoles.ARCHIVIST || currentUserRole === UserRoles.CURATOR) {\n history.push(AppRoutes.ASSIGNED_COLLECTORS_INDEX);\n return;\n }\n history.push(AppRoutes.ADD_OBJECT)\n }\n\n return \n {currentView === TutorialViews.TakePhoto && (\n setCurrentView(TutorialViews.HowToOrganize)} />\n )}\n {currentView === TutorialViews.HowToOrganize && (\n history.push(AppRoutes.ADD_OBJECT)}\n onNext={() => setCurrentView(TutorialViews.HowToPhotograph)}\n />\n )}\n {currentView === TutorialViews.HowToPhotograph && (\n \n )}\n {(currentView === TutorialViews.HowToOrganize || currentView === TutorialViews.HowToPhotograph) && (\n setCurrentView(view)} />\n )}\n \n};\n","import React, {useState} from \"react\";\nimport { Box, Grid, Hidden, Typography } from \"@material-ui/core\";\n\nimport FiberManualRecordIcon from '@material-ui/icons/FiberManualRecord';\n\nimport photo from \"assets/images/auth_image.png\";\nimport photoMD from \"assets/images/auth_image.png\";\n\nimport { TutorialViews } from \"../../consumer/Tutorial/views.enum\";\nimport { Tutorial } from \"../../consumer/Tutorial\";\n\nexport const PhotoArea: React.FC = () => {\n\n const [onVideoMode, setOnVideoMode] = useState(false);\n\n return (\n \n \n \n {\n !onVideoMode && \n }\n \n\n \n {\n !onVideoMode && \n }\n \n\n {\n onVideoMode &&\n \n \n \n }\n\n setOnVideoMode(!onVideoMode)}>\n {onVideoMode ? 'Hide Videos' : 'See our Videos'} \n \n \n \n )\n}\n\n","import { Box, Button, CircularProgress, Fade, Modal, TextField, Typography } from '@material-ui/core';\nimport CloseIcon from '@material-ui/icons/Close';\nimport { modalStyles } from 'components/_others/modals/modal-styles';\nimport { ModalHeader } from 'components/_others/modals/ModalHeader';\nimport { validateEmail } from 'core';\nimport { UserApi } from 'core/api';\nimport React, { useState } from 'react';\nimport { ConfirmationPin } from '../ConfirmationPin/ConfirmationPin';\n\ninterface EnterResendEmailModalProps {\n isOpen: boolean;\n onClose: () => void;\n}\n\nexport const EnterResendEmailModal: React.FC = ({ isOpen, onClose }) => {\n const classes = modalStyles();\n const [email, setEmail] = useState({ text: '', error: '' });\n const [error, setError] = useState('');\n const [loading, setLoading] = useState(false);\n const [validEmail, setValidEmail] = useState(false);\n const [success, setSuccess] = useState(false);\n\n const generateErrorText = (message: string): string => {\n switch (message) {\n case 'UserNotFound':\n return 'The E-mail does not belong to any account.';\n case 'UserAlreadyConfirmed':\n return 'This E-mail is already confirmed.';\n default:\n return 'Sorry, there was an error. Please try again later.';\n }\n };\n\n const onFinish = (): void => {\n setLoading(true);\n setError('');\n UserApi.resendRegisterConfirmationEmail(email.text)\n .then(() => {\n setLoading(false);\n setValidEmail(true);\n })\n .catch((error: any) => {\n setLoading(false);\n console.error(error.response);\n setError(\n error.response?.data?.message\n ? generateErrorText(error.response?.data?.message)\n : 'Sorry, there was an error. Please try again later.',\n );\n });\n };\n\n const computeEmailError = (): void => {\n if (!email?.text.length) {\n setEmail({ ...email, error: 'Please enter your email' });\n } else if (!validateEmail(email.text)) {\n setEmail({ ...email, error: 'Please enter a valid email address' });\n } else {\n setEmail({ ...email, error: '' });\n }\n };\n\n const handleEmailChange = (e: React.ChangeEvent): void => {\n setEmail({ ...email, text: e.target.value });\n };\n\n const handleKeyPress = (e: any): void => {\n if (e.key === 'Enter') {\n onFinish();\n e.preventDefault();\n }\n };\n\n const handleSuccess = (): void => {\n setError('');\n setSuccess(true);\n };\n\n const handleClose = (): void => {\n setEmail({ text: '', error: '' });\n setValidEmail(false);\n setSuccess(false);\n setLoading(false);\n setError('');\n onClose();\n };\n\n return (\n \n \n
    \n \n\n {!!error && (\n \n {error}\n \n )}\n\n {success ? (\n Your E-mail has been confirmed.\n ) : validEmail ? (\n \n \n An E-mail with your confirmation code should arrive shortly. Enter the confirmation code\n here:\n \n \n \n ) : (\n <>\n Enter your E-mail here:\n \n \n )}\n \n \n {success ? 'Close' : 'Cancel'}\n \n\n {!success && (\n \n {loading && }\n Resend Email\n \n )}\n \n
    \n
    \n \n );\n};\n","import { Box, Typography } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/core/styles';\nimport React, { useState } from 'react';\nimport { EnterResendEmailModal } from './EnterResendEmailModal';\n//import { UserApi } from 'core/api/user/user.api';\n\nconst useStyles = makeStyles({\n clickableText: {\n fontSize: '14px',\n display: 'inline',\n\n '&:hover': {\n textDecoration: 'underline',\n cursor: 'pointer',\n },\n },\n text: {\n fontSize: '14px',\n display: 'inline',\n },\n});\n\nexport const ResendEmail: React.FC = () => {\n const classes = useStyles();\n const [isOpen, setIsOpen] = useState(false);\n\n const openModal = (): void => {\n setIsOpen(true);\n };\n\n const handleModalClose = (): void => {\n setIsOpen(false);\n };\n\n return (\n \n \n {' '}\n Your confirmation E-mail was lost and you need to re-send it?
    \n Click{' '}\n
    \n \n {' here '}\n \n \n to resend the confirmation E-mail.\n \n\n \n
    \n );\n};\n","import React from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport { Box, Button, Typography } from \"@material-ui/core\";\n\ntype SwitchViewProps = {\n text: string;\n btnText: string;\n redirectUrl: string;\n}\n\nexport const SwitchAuthView: React.FC = ({text, btnText, redirectUrl}) => {\n\n const history = useHistory();\n\n return (\n \n \n {text}\n \n\n history.push(redirectUrl)}\n >\n {btnText}\n \n \n )\n}\n","export default __webpack_public_path__ + \"static/media/google-icon.8dc759d4.png\";","import React, {useContext} from \"react\";\nimport GoogleLogin from \"react-google-login\";\nimport { Button } from \"@material-ui/core\";\n\nimport googleIcon from \"assets/images/google-icon.png\";\nimport { RegisterTypesEnum } from \"core/enums\";\nimport {UtilsContext} from \"core/context/utils.context\";\n\ntype GoogleAuthProps = {\n acceptTerms?: boolean;\n onSuccess: (data: any) => void;\n}\n\nexport const GoogleAuth: React.FC = ({onSuccess, acceptTerms}) => {\n\n const utilsContext = useContext(UtilsContext);\n\n\n const manageGoogleSuccess = (data: any): void => {\n\n if(acceptTerms === false) {\n utilsContext.addSnackbar('error', 'Please accept the terms and conditions');\n return;\n }\n\n const payload = {\n firstName: data.profileObj.givenName,\n lastName: data.profileObj.familyName,\n email: data.profileObj.email,\n token: data.tokenId,\n termsAccepted: true,\n registerType: RegisterTypesEnum.Google,\n\n }\n onSuccess(payload);\n }\n\n const onError = (error: any): void => {\n console.error(error);\n }\n\n return (\n <>\n manageGoogleSuccess(resp)}\n onFailure={(resp) => onError(resp)}\n onRequest={() => null}\n render={(renderProps: any) => (\n renderProps.onClick()}\n >\n \"google-icon\"\n \n )}\n />\n \n\n )\n}\n","import React, {useContext} from \"react\";\nimport { Button } from \"@material-ui/core\";\nimport FacebookLogin from 'react-facebook-login/dist/facebook-login-render-props';\nimport {RegisterTypesEnum} from \"core/enums\";\nimport {UtilsContext} from \"../../../../core/context/utils.context\";\nimport FacebookIcon from '@material-ui/icons/Facebook';\n\ntype FacebookAuthProps = {\n acceptTerms?: boolean;\n onSuccess: (data: any) => void;\n}\n\nexport const FacebookAuth: React.FC = ({onSuccess, acceptTerms}) => {\n\n const utilsContext = useContext(UtilsContext);\n const onSubmit = (data: any): void => {\n\n if(data?.status === 'unknown') {\n return;\n }\n \n if(acceptTerms === false) {\n utilsContext.addSnackbar('error', 'Please accept the terms and conditions');\n return;\n }\n\n let name = {\n firstName: '',\n lastName: '',\n }\n if(data.name?.indexOf(' ') > -1) {\n name = {\n firstName: data.name.split(' ')[0],\n lastName: data.name.split(' ')[1],\n }\n } else {\n name.firstName = data.name;\n name.lastName = data.name;\n }\n\n const payload = {\n firstName: name.firstName,\n lastName: name.lastName,\n email: data.email,\n token: data.accessToken,\n termsAccepted: true,\n externalId: data.userID,\n registerType: RegisterTypesEnum.Facebook,\n }\n onSuccess(payload);\n }\n\n return (\n <>\n onSubmit(resp)}\n render={(renderProps: any) => (\n renderProps.onClick()}\n >\n \n \n )}\n />\n \n\n )\n}\n","export default __webpack_public_path__ + \"static/media/apple-icon.f25e504c.png\";","import React, {useContext} from \"react\";\nimport AppleSignin from 'react-apple-signin-auth';\nimport {RegisterTypesEnum} from \"core/enums\";\nimport appleIcon from \"assets/images/apple-icon.png\";\nimport {Button} from \"@material-ui/core\";\nimport {UtilsContext} from \"core/context/utils.context\";\n\ntype AppleAuthProps = {\n acceptTerms?: boolean;\n onSuccess: (data: any) => void;\n}\n\nexport const AppleAuth: React.FC = ({onSuccess, acceptTerms}) => {\n\n const utilsContext = useContext(UtilsContext);\n\n const onSubmit = (data: any): void => {\n\n if(acceptTerms === false) {\n utilsContext.addSnackbar('error', 'Please accept the terms and conditions');\n return;\n }\n\n const payload = {\n firstName: data.user?.name.firstName || '',\n lastName: data.user?.name.lastName || '',\n email: data.user?.email || '',\n token: data.authorization.id_token,\n termsAccepted: true,\n registerType: RegisterTypesEnum.Apple,\n\n }\n onSuccess(payload);\n }\n\n const onError = (data: any): void => {\n console.error(data);\n }\n\n return (\n <>\n onSubmit(response)}\n onError={(resp: any) => onError(resp)}\n iconprop={{ style: { marginTop: '10px' } }}\n render={(props: any) => (\n \n \"apple-icon\"\n \n )}\n />\n \n\n )\n}\n","import React from \"react\";\nimport { Box, Typography } from \"@material-ui/core\";\n\nimport { TextDivider } from \"components\";\nimport { GoogleAuth } from \"./GoogleAuth\";\nimport { FacebookAuth } from \"./FacebookAuth\";\nimport { AppleAuth } from \"./AppleAuth\";\n\ntype ExternalAuthProps = {\n acceptTerms: boolean;\n onSuccess: (data: any) => void;\n}\n\nexport const ExternalAuth: React.FC = ({acceptTerms, onSuccess}) => {\n return (\n <>\n \n \n \n\n \n \n Continue with:\n \n\n onSuccess(data)}\n />\n\n onSuccess(data)}\n />\n\n onSuccess(data)}\n />\n \n \n )\n}\n","export default __webpack_public_path__ + \"static/media/register-reason.1bec4ed7.png\";","import React, { useState } from \"react\";\nimport { modalStyles } from \"components/_others/modals/modal-styles\";\nimport {\n Backdrop,\n Box, Button,\n Checkbox, CircularProgress,\n Fade,\n FormControlLabel,\n Modal, TextField,\n Typography\n} from \"@material-ui/core\";\n\nimport registerReasonImg from \"assets/images/register-reason.png\";\nimport {CollectorApi} from \"../../../core/api/consumer\";\nimport {ModalHeader} from \"../../../components/_others/modals/ModalHeader\";\n\ntype RegisterReasonModalProps = {\n open: boolean;\n handleClose: () => void;\n}\n\nexport const RegisterReasonModal: React.FC = ({open, handleClose}) => {\n\n const classes = modalStyles();\n\n const [answer, setAnswer] = useState({\n portfolio: false,\n feedback: false,\n other: false,\n otherText: '',\n });\n const [isLoading, setIsLoading] = useState(false);\n\n const onSubmit = (): void => {\n setIsLoading(true);\n const registerPurpose = [];\n if(answer.portfolio) {\n registerPurpose.push(\"You want to use Artifact portfolio tools to manage your collection\");\n }\n if(answer.feedback) {\n registerPurpose.push(\"Would like expert feedback on your collection\");\n }\n if(answer.other && answer.otherText) {\n registerPurpose.push(\"Other\")\n registerPurpose.push(answer.otherText.replaceAll(\";\",','));\n }\n\n CollectorApi.updateRegisterPurpose(registerPurpose)\n .then(() => {\n setIsLoading(false);\n handleClose();\n })\n .catch((error) => {\n console.error(error.response);\n setIsLoading(false);\n handleClose();\n })\n }\n\n return (\n <>\n \n \n
    \n\n handleClose()}\n />\n\n \n \n \n\n setAnswer({...answer, portfolio: !answer.portfolio})}\n />\n }\n label={\n \n You want to use Artifact portfolio tools to manage your collection\n \n }\n style={{marginBottom: '15px'}}\n />\n
    \n setAnswer({...answer, feedback: !answer.feedback})}\n />\n }\n label={\n \n Would like expert feedback on your collection\n \n }\n style={{marginBottom: '8px'}}\n />\n
    \n setAnswer({...answer, other: !answer.other})}\n />\n }\n label={\n \n Other\n \n }\n />\n\n {\n answer.other &&\n <>\n setAnswer({...answer, otherText: e.target.value})}\n />\n \n }\n\n \n onSubmit()}\n >\n {\n isLoading && \n }\n Save & Continue\n \n \n\n
    \n
    \n \n \n )\n}\n","import {UserRoles} from \"core/enums\";\nimport {AfterLoginAction, AfterRegisterAction} from \"./enums\";\nimport {RegisterTypesEnum} from \"core/enums\";\n\nexport const waitForAccountConfirmationMessage = 'Your account has been created. ' +\n 'Please wait for an admin to confirm your account.';\nexport const confirmEmailModalMessage = 'Please enter the code received on your email here:';\n\nexport const initialRegisterData = {\n acceptTerms: false,\n email: '',\n password: '',\n token: '',\n externalId: '',\n firstName: '',\n lastName: '',\n expertise: '',\n reference: '',\n registerType: RegisterTypesEnum.Web,\n shouldAskForExpertise: false,\n shouldAskForReferral: false,\n shouldAskForRegisterReason: false,\n};\n\n// info: currently the app is not available for archivists and curators\nexport function isBlockedPlatform(userRole: string): boolean {\n return userRole === UserRoles.ARCHIVIST || userRole === UserRoles.CURATOR;\n}\n\n// only the collectors can log in after they create an account\n// the rest of the users must be activated by an admin\nexport function isAllowedToLoginAfterRegister(accountRole: string): boolean {\n return accountRole === UserRoles.COLLECTOR;\n}\n\n// info: if the user is a collector and he logs in for the first time,\n// we display him a modal asking him about the register reason\nexport function askForRegisterReason(isFirstLogin: boolean, userRole: string): boolean {\n return userRole === UserRoles.COLLECTOR && isFirstLogin;\n}\n\n// the experts must provide their expertise\nexport function askForExpertise(isExternalRegister: boolean, accountRole: string): boolean {\n if(!askForExtraRegisterInformation(isExternalRegister, accountRole)) {\n return false;\n }\n\n return accountRole === UserRoles.EXPERT;\n}\n\n// the curators/archivists must provide information about how they heard about artifact\nexport function askForReferral(isExternalRegister: boolean, accountRole: string): boolean {\n if(!askForExtraRegisterInformation(isExternalRegister, accountRole)) {\n return false;\n }\n\n return accountRole === UserRoles.ARCHIVIST || accountRole === UserRoles.CURATOR;\n}\n\nexport function manageRegister(isExternalRegister: boolean, accountRole: string): number {\n if(!isExternalRegister) {\n return AfterRegisterAction.DisplayConfirmEmailModal;\n }\n\n if(!isAllowedToLoginAfterRegister(accountRole)) {\n return AfterRegisterAction.DisplayWaitForActivationMessage;\n }\n\n return AfterRegisterAction.ContinueToLogin;\n}\n\nexport function manageLogin(isFirstLogin: boolean, accountRole: string): any {\n if(askForRegisterReason(isFirstLogin, accountRole)) {\n return AfterLoginAction.AskForRegisterReason;\n }\n\n return AfterLoginAction.GoToApp;\n}\n// for experts, archivists and curators, on register,\n// we ask for some additional information in modals, if external auth\nexport function askForExtraRegisterInformation(isExternalRegister: boolean, accountRole: string): boolean {\n if(!isExternalRegister) {\n return false;\n }\n\n if(accountRole === UserRoles.EXPERT) {\n return true; // we ask for expertise\n }\n\n return accountRole === UserRoles.ARCHIVIST || accountRole === UserRoles.CURATOR;\n}\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function getLoginPayload(data: any): any {\n return {\n token: data.token || undefined,\n email: data.email,\n password: data.password || undefined,\n loginType: data.registerType,\n externalId: data.registerType === RegisterTypesEnum.Facebook ? data.externalId : undefined,\n rememberMe: true,\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function getRegisterPayload(isExternalRegister: boolean, data: any): any {\n if(isExternalRegister) {\n return data;\n }\n return {\n email: data.email,\n password: data.password,\n token: data.token || undefined,\n externalId: data.externalId || undefined,\n firstName: data.firstName,\n lastName: data.lastName,\n termsAccepted: true,\n expertise: data.expertise || undefined,\n reference: data.reference || undefined,\n registerType: data.registerType || RegisterTypesEnum.Web,\n }\n}\n","export function getAuthError(errorType: string|null): string {\n switch(errorType) {\n case 'InvalidCredentials':\n return 'Oops! Looks like your credentials are invalid.';\n case 'UserNotFound':\n return 'Oops! Looks like there is no account associated with your credentials.';\n case 'WrongLoginType':\n return 'Oops! Looks like there is no account associated with your credentials.';\n case 'UserNotActive':\n return 'Your account has been created. We will notify you when the admin approves your registration.';\n case 'DuplicateEmail':\n return 'This email already exists.';\n default:\n return 'Sorry, there was an error. Please try again later.'\n }\n}\n\nexport function getBlockedPlatformMessage(): string {\n return 'Thank you for joining Artifact! For the moment, this platform ' +\n 'is not available for you. We will let you know as soon as you will be able to access ' +\n ' our platform.'\n}\n","import React, { useEffect, useState } from \"react\";\nimport { Backdrop, Fade, Modal } from \"@material-ui/core\";\nimport { modalStyles } from \"components/_others/modals/modal-styles\";\n\n\nimport { EnterEmail } from \"./EnterEmail\";\nimport { EnterNewPassword } from \"./EnterNewPassword\";\nimport { ModalHeader } from \"../../../../components/_others/modals/ModalHeader\";\n\ntype ForgetPasswordModalProps = {\n open: boolean;\n forChangePassword?: boolean;\n userEmail?: string;\n handleClose: () => void;\n}\n\nenum Views {\n EnterEmail,\n EnterCode,\n}\n\nexport const ForgotPasswordModal: React.FC = (\n {open, userEmail, forChangePassword, handleClose}\n) => {\n\n const classes = modalStyles();\n\n const [email, setEmail] = useState('');\n const [view, setView] = useState(Views.EnterEmail);\n\n useEffect(() => {\n setView(Views.EnterEmail);\n }, []);\n\n const onEmailSent = (email: string): void => {\n setEmail(email);\n setView(Views.EnterCode);\n }\n\n return (\n \n \n
    \n handleClose()}\n />\n\n {\n view === Views.EnterEmail &&\n onEmailSent(email)}\n />\n }\n\n {\n view === Views.EnterCode &&\n setView(Views.EnterEmail)}\n />\n }\n\n
    \n
    \n \n )\n}\n","import React, { useState } from \"react\";\nimport { modalStyles } from \"components/_others/modals/modal-styles\";\nimport { Box, Button, CircularProgress, TextField, Typography } from \"@material-ui/core\";\n\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport EmailIcon from \"@material-ui/icons/Email\";\nimport DoneIcon from \"@material-ui/icons/Done\";\n\nimport { validateEmail } from \"core/helpers/validators\";\nimport { UserApi } from \"core/api/user\";\nimport {ConfirmEmailModal} from \"../ConfirmationPin/ConfirmEmailModal\";\n\ntype EnterEmailProps = {\n userEmail?: string|null;\n handleClose: () => void;\n onEmailSent: (email: string) => void;\n}\n\nexport const EnterEmail: React.FC = ({userEmail, handleClose, onEmailSent}) => {\n\n const classes = modalStyles();\n\n const [isLoading, setIsLoading] = useState(false);\n const [reqResult, setReqResult] = useState(false);\n const [errorMessage, setErrorMessage] = useState('');\n const [email, setEmail] = useState({text: '', error: ''});\n\n const [emailNotConfirmed, setEmailNotConfirmed] = useState(false);\n const [displayConfirmEmailModal, toggleDisplayConfirmEmail] = useState(false);\n const [emailHasBeenConfirmed, setEmailHasBeenConfirmed] = useState(false);\n\n const computeEmailError = (): string => {\n\n let error = '';\n\n if(!email?.text.length) {\n error = 'Please enter your email';\n } else if(!validateEmail(email.text)) {\n error = 'Please enter a valid email address';\n }\n\n setEmail({...email, error});\n return error;\n }\n\n const onSave = (): void => {\n\n if(!userEmail) {\n const error = computeEmailError();\n if(error) {\n return;\n }\n }\n\n if(emailNotConfirmed) {\n sendConfirmationEmail();\n return;\n }\n\n setIsLoading(true);\n setReqResult(false);\n setErrorMessage('');\n\n UserApi.sendForgotPasswordEmail(userEmail ? userEmail : email.text)\n .then(() => {\n setIsLoading(false);\n setReqResult(true);\n setEmailNotConfirmed(false);\n setEmailHasBeenConfirmed(false);\n onEmailSent(userEmail ? userEmail : email.text);\n }, (error: any) => {\n console.error(error.response);\n if(error.response.data.message === 'UserNotFound') {\n setErrorMessage('Sorry, there is no user associated with your email address.');\n } else if(error.response.data.message === 'UserNotConfirmed') {\n setErrorMessage('Your account is not confirmed yet.');\n setEmailNotConfirmed(true);\n } else if (error.response.data.message === 'ExternalRegister') {\n setErrorMessage('This email is registered with an external provider.' +\n ' You will not be able to set up a password for this account');\n } else {\n setErrorMessage('Sorry, there was an error. Please try again later.');\n }\n setIsLoading(false);\n setReqResult(false);\n })\n }\n\n const sendConfirmationEmail = (): void => {\n setIsLoading(true);\n setReqResult(false);\n setErrorMessage('');\n\n UserApi.resendRegisterConfirmationEmail(email.text)\n .then(() => {\n setIsLoading(false);\n toggleDisplayConfirmEmail(true);\n })\n .catch((error: any) => {\n setIsLoading(false);\n console.error(error);\n setErrorMessage('Sorry, there was an error. Please try again later.');\n })\n }\n\n const handleKeyPress = (e: any): void => {\n if(e.key === 'Enter') {\n onSave();\n e.preventDefault();\n }\n }\n\n return (\n <>\n \n {\n !userEmail &&\n \n Enter you email associated with your account and\n we will send an email with instructions to reset\n your password.\n \n }\n\n {\n userEmail &&\n \n We will send an email with instructions to reset\n your password, on {userEmail}.\n \n }\n\n \n\n {\n !userEmail &&\n \n setEmail({\n ...email,\n text: e.target.value,\n })}\n onBlur={() => computeEmailError()}\n onKeyPress={(e: any) => handleKeyPress(e)}\n />\n \n }\n\n {\n !reqResult &&\n \n {errorMessage}\n \n }\n\n {\n emailHasBeenConfirmed &&\n \n Your email has been confirmed. You can now request password change.\n \n }\n\n \n \n Cancel\n \n\n onSave()}\n >\n {\n isLoading && \n }\n {\n !isLoading && !reqResult && \n }\n {\n reqResult &&\n <>\n \n \n }\n {emailNotConfirmed ? 'Send confirmation email' : 'Send Email'}\n \n \n\n toggleDisplayConfirmEmail(false)}\n credentials={{email: email.text, password: ''}}\n onSuccess={() => {\n setReqResult(true);\n setEmailNotConfirmed(false);\n toggleDisplayConfirmEmail(false);\n setEmailHasBeenConfirmed(true);\n }}\n message={'Please enter the code received on your email here:'}\n />\n \n )\n}\n","import React, { useState } from \"react\";\nimport { Box, Button, CircularProgress, Typography } from \"@material-ui/core\";\nimport { modalStyles } from \"components/_others/modals/modal-styles\";\n\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport SaveIcon from \"@material-ui/icons/Save\";\nimport DoneIcon from \"@material-ui/icons/Done\";\nimport ArrowBackIosIcon from '@material-ui/icons/ArrowBackIos';\n\n\nimport PinInput from \"react-pin-input\";\nimport { PasswordFormControl } from \"components/_others/PasswordFormControl\";\nimport { passwordStrength } from \"core/helpers/validators\";\nimport { IResetPassword, UserApi } from \"core/api/user\";\n\ntype EnterNewPasswordProps = {\n email: string;\n handleClose: () => void;\n onBack: () => void;\n}\n\nexport const EnterNewPassword: React.FC = ({ email, handleClose, onBack}) => {\n\n const classes = modalStyles();\n\n const [isLoading, setIsLoading] = useState(false);\n const [reqResult, setReqResult] = useState(false);\n const [errorMessage, setErrorMessage] = useState('');\n\n const [values, setValues] = useState({pin: '', password: ''});\n const [onFocus, setOnFocus] = useState({password: false});\n const [errors, setErrors] = useState({password: ''});\n\n const onSave = (): void => {\n setFormErrors();\n if(errors.password) {\n return;\n }\n setIsLoading(true);\n setReqResult(false);\n\n const payload: IResetPassword = {\n email,\n code: values.pin,\n newPassword: values.password\n };\n\n UserApi.resetPassword(payload)\n .then(() => {\n setIsLoading(false);\n setReqResult(true);\n })\n .catch((error: any) => {\n console.error(error.response);\n if(error.response.data.message === 'InvalidCode') {\n setErrorMessage('Your confirmation pin is invalid.');\n } else {\n setErrorMessage('Sorry, there was an error. Please try again later.');\n }\n setIsLoading(false);\n setReqResult(false);\n })\n }\n\n const setFormErrors = (): void => {\n setErrors({\n password: !onFocus.password && !values.password.length\n ? 'Please enter your password.'\n : !passwordStrength(values.password).valid\n ? 'Your password is not strong enough'\n : '',\n });\n }\n\n return (\n <>\n \n \n Please enter below the confirmation pin received on your email, and your new password.\n \n \n\n \n setValues({...values, pin: value})}\n regexCriteria={/^[0-9]*$/}\n />\n \n\n {\n setValues({...values, password: e.target.value});\n setErrors({...errors, password: ''})\n }}\n onFocus={() => setOnFocus({...onFocus, password: true})}\n onBlur={() => setOnFocus({...onFocus, password: false})}\n />\n\n {\n !passwordStrength(values.password).valid &&\n <>\n {\n \n {\n !passwordStrength(values.password).length.valid &&\n <>{passwordStrength(values.password).length.message}
    \n }\n {\n !passwordStrength(values.password).digits.valid &&\n <>{passwordStrength(values.password).digits.message}
    \n }\n {\n !passwordStrength(values.password).uppercase.valid &&\n <>{passwordStrength(values.password).uppercase.message}
    \n }\n {\n !passwordStrength(values.password).lowercase.valid &&\n <>{passwordStrength(values.password).lowercase.message}
    \n }\n {\n !passwordStrength(values.password).specialChars.valid &&\n <>{passwordStrength(values.password).specialChars.message}
    \n }\n
    \n }\n \n }\n\n {\n !reqResult &&\n \n {errorMessage}\n \n }\n\n {\n reqResult &&\n \n Your password was changed. You can close this screen and login with your new password.\n \n }\n\n \n \n Close\n \n\n \n Back\n \n\n onSave()}\n >\n {\n isLoading && \n }\n {\n !isLoading && !reqResult && \n }\n {\n reqResult &&\n <>\n \n \n }\n Save\n \n \n \n )\n}\n","import React, {useState} from \"react\";\nimport { Box, Link } from \"@material-ui/core\";\n\nimport { ForgotPasswordModal } from \"./ForgotPasswordModal\";\n\nexport const ForgotPassword: React.FC = () => {\n\n const [forgetPassModalOpened, toggleForgetPassModal] = useState(false);\n\n return (\n \n {e.preventDefault(); toggleForgetPassModal(true)}}\n >\n Forgot Password?\n \n\n toggleForgetPassModal(false)}\n />\n \n )\n}\n","import React, {useContext, useEffect, useState} from \"react\";\n\nimport { TextField, Button, CircularProgress } from \"@material-ui/core\";\nimport { PasswordFormControl } from \"components/_others/PasswordFormControl\";\nimport { ForgotPassword } from \"scenes/auth/components/ForgotPassword/ForgotPassword\";\nimport { UserContext } from \"core/context/user\";\n\ntype SignInFormProps = {\n isLoading: boolean;\n onLoginUser: (userData: any) => void\n}\n\nexport const SignInForm: React.FC = ({isLoading, onLoginUser}) => {\n\n const userContext = useContext(UserContext);\n\n const [onFocus, setOnFocus] = useState({\n email: false,\n password: false,\n });\n\n const [values, setValues] = useState({\n email: '',\n password: '',\n });\n\n const [errors, setErrors] = useState({\n email: '',\n password: ''\n });\n\n useEffect(() => {\n userContext.setTheme(false, false);\n }, [])\n\n const onSignIn = ():void => {\n setFormErrors();\n if(!isValidForm()) {\n return;\n }\n onLoginUser(values);\n }\n\n const setFormErrors = (): void => {\n setErrors({\n email: !onFocus.email && !values.email.length\n ? 'Please enter your email.'\n : '',\n password: !onFocus.password && !values.password.length\n ? 'Please enter your password.'\n : ''\n });\n }\n\n const isValidForm = (): boolean => {\n return values.email?.length > 0 && values.password?.length > 0;\n }\n\n const handleKeyPress = (e: any): void => {\n if(e.key === 'Enter') {\n onSignIn();\n e.preventDefault();\n }\n }\n\n return (\n
    \n {\n setValues({...values, email: e.target.value});\n setErrors({...errors, email: ''})\n }}\n onFocus={() => setOnFocus({...onFocus, email: true})}\n onBlur={() => setOnFocus({...onFocus, email: false})}\n onKeyPress={(e: any) => handleKeyPress(e)}\n />\n\n {\n setValues({...values, password: e.target.value});\n setErrors({...errors, password: ''})\n }}\n onFocus={() => setOnFocus({...onFocus, password: true})}\n onBlur={() => setOnFocus({...onFocus, password: false})}\n onKeyPress={(key: string) => handleKeyPress(key)}\n />\n\n \n\n onSignIn()}\n onKeyPress={(e: any) => handleKeyPress(e.key)}\n >\n {\n isLoading && \n }\n Sign In\n \n \n )\n}\n","import { Box, Container, Grid, Typography } from '@material-ui/core';\nimport { CustomSnackbar } from 'components';\nimport { UserApi } from 'core/api/user';\nimport { UserContext } from 'core/context/user';\nimport { UtilsContext } from 'core/context/utils.context';\nimport { AppRoutes } from 'core/helpers/app-routes';\nimport { homepageByUserRole } from 'core/helpers/redirect-helper';\nimport React, { useContext, useEffect, useState } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { ConfirmEmailModal } from 'scenes/auth/components/ConfirmationPin/ConfirmEmailModal';\nimport { PageTitle } from 'scenes/auth/components/PageTitle';\nimport { PhotoArea } from 'scenes/auth/components/PhotoArea';\nimport { ResendEmail } from 'scenes/auth/components/ResendEmail/ResendEmail';\nimport { SwitchAuthView } from 'scenes/auth/components/SwitchAuthView';\nimport 'scenes/auth/styles/auth.less';\nimport { ExternalAuth } from '../../components/ExternalAuth';\nimport { RegisterReasonModal } from '../../components/RegisterReasonModal';\nimport { getLoginPayload, manageLogin } from '../../managers/business-rules.manager';\nimport { AfterLoginAction } from '../../managers/enums';\nimport { getAuthError, getBlockedPlatformMessage } from '../../managers/errors.manager';\nimport { getRedirectUrl } from '../../managers/utils.manager';\nimport { SignInForm } from './SignInForm';\n\nexport const SignIn: React.FC = () => {\n const history = useHistory();\n const userContext = useContext(UserContext);\n const utilsContext = useContext(UtilsContext);\n\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState('');\n const [credentials, setCredentials] = useState({ email: '', password: '' });\n const [redirectUrl, setRedirectUrl] = useState('');\n\n const [displayRegisterReasonModal, toggleRegisterReasonModal] = useState(false);\n const [displayCEM, toggleCEM] = useState(false);\n\n useEffect(() => {\n userContext.onLogout();\n setRedirectUrl(getRedirectUrl());\n }, []);\n\n useEffect(() => {\n if (error) {\n utilsContext.addSnackbar('error', error);\n }\n }, [error]);\n\n const onLoginUser = (userData: any = null): void => {\n setIsLoading(false);\n setError('');\n setCredentials(userData);\n\n UserApi.login(getLoginPayload(userData))\n .then((res: any) => {\n setIsLoading(false);\n const afterLoginAction = manageLogin(res.data?.isNewUser, res.data.roles);\n\n if (afterLoginAction === AfterLoginAction.DisplayBlockedPlatformMessage) {\n setError(getBlockedPlatformMessage());\n return;\n }\n\n userContext.setUser(res.data);\n getUserDetails();\n\n if (afterLoginAction === AfterLoginAction.AskForRegisterReason) {\n toggleRegisterReasonModal(true);\n return;\n }\n\n if (afterLoginAction === AfterLoginAction.GoToApp) {\n history.push(redirectUrl ? redirectUrl : homepageByUserRole(res.data.roles));\n }\n })\n .catch((error: any) => {\n manageHttpError(error);\n });\n };\n\n const getUserDetails = (): void => {\n UserApi.getUser()\n .then((res: any) => {\n userContext.setUser(res.data);\n })\n .catch((_error: any) => null)\n }\n\n const manageHttpError = (error: any): void => {\n console.error(error);\n setIsLoading(false);\n\n const errorData = error?.response?.data;\n if (errorData?.message === 'UserNotConfirmed') {\n toggleCEM(true);\n return;\n }\n setError(getAuthError(errorData?.message || null));\n };\n\n return (\n <>\n \n \n\n \n \n \n \n\n \n onLoginUser(userData)}\n />\n\n {error && (\n \n {error}\n \n )}\n\n onLoginUser(data)} />\n\n \n\n \n \n \n \n \n\n toggleCEM(false)}\n onSuccess={() => {\n toggleCEM(false);\n onLoginUser(credentials);\n }}\n />\n\n {\n toggleRegisterReasonModal(false);\n history.push(AppRoutes.TUTORIAL);\n }}\n />\n\n utilsContext.closeSnackbar()}\n severity={utilsContext.snackbar.severity}\n message={utilsContext.snackbar.text}\n />\n \n \n );\n};\n","import { UserRoles } from \"core/enums\";\n\nexport function getAccountRoleFromURLSearchParams(): string|null {\n\n const urlSearchParams = new URLSearchParams(window.location.search);\n const roleQueryParam = urlSearchParams.get('role')?.toLowerCase();\n\n if(!roleQueryParam) {\n return null;\n }\n\n switch(roleQueryParam) {\n case 'Collector':\n return UserRoles.COLLECTOR;\n case 'Archivist':\n return UserRoles.ARCHIVIST;\n case 'Expert':\n return UserRoles.EXPERT;\n case 'Curator':\n return UserRoles.CURATOR;\n default:\n return null;\n }\n}\n\nexport function getRedirectUrl(): string {\n return window.location.search.indexOf('redirectUrl') > -1\n ? window.location.search.replace('?redirectUrl=', '')\n : ''\n}\n","import React from \"react\";\nimport { Box, Checkbox, FormControlLabel, Typography } from \"@material-ui/core\";\nimport {AppRoutes} from \"../../../core/helpers\";\nimport {Link} from \"react-router-dom\";\n\ntype TermsAndConditionsCheckboxProps = {\n error: string;\n checked: boolean;\n handleChange: any;\n}\n\nexport const TermsAndConditionsCheckbox: React.FC = (\n {error, checked, handleChange}\n) => {\n return (\n \n handleChange(!checked)}\n name=\"checkedB\"\n color=\"primary\"\n />\n }\n label={\n \n By signing up, you agree with the{' '}\n \n Terms of Service\n and{' '}\n \n Privacy Policy\n \n \n }\n />\n {\n error &&\n \n {error}\n \n }\n \n )\n}\n","import React, { useState } from 'react';\n\nimport { TextField, Button, Typography, CircularProgress } from '@material-ui/core';\nimport { PasswordFormControl } from 'components/_others/PasswordFormControl';\nimport { TermsAndConditionsCheckbox } from '../../components/TermsAndConditionsCheckbox';\nimport { passwordStrength, validateEmail } from 'core/helpers/validators';\nimport { UserRoles } from '../../../../core/enums';\n\ntype CreateAccountFormProps = {\n role: string;\n isLoading: boolean;\n onRegisterUser: (userData: any) => void;\n toggleAcceptTerms: (value: boolean) => void;\n};\n\nexport const CreateAccountForm: React.FC = ({\n isLoading,\n onRegisterUser,\n toggleAcceptTerms,\n role,\n}) => {\n const [onFocus, setOnFocus] = useState({\n firstName: false,\n lastName: false,\n email: false,\n password: false,\n expertise: false,\n reference: false,\n });\n\n const [values, setValues] = useState({\n firstName: '',\n lastName: '',\n email: '',\n password: '',\n expertise: '',\n reference: '',\n acceptTerms: false,\n });\n\n const [errors, setErrors] = useState({\n firstName: '',\n lastName: '',\n email: '',\n password: '',\n expertise: '',\n reference: '',\n acceptTerms: '',\n });\n\n const onRegister = (): void => {\n if (!isValidForm()) {\n return;\n }\n onRegisterUser(values);\n };\n\n const setFormErrors = (): any => {\n const hasLetterRegExp = /[a-zA-Z]/g;\n const errors = {\n firstName:\n !onFocus.firstName && !values.firstName.trim().length\n ? 'Please enter your first name.'\n : hasLetterRegExp.test(values.firstName)\n ? ''\n : 'Your first name must contain letters.',\n lastName:\n !onFocus.lastName && !values.lastName.trim().length\n ? 'Please enter your last name.'\n : hasLetterRegExp.test(values.lastName)\n ? ''\n : 'Your last name must contain letters.',\n email:\n !onFocus.email && !values.email.length\n ? 'Please enter your email.'\n : !validateEmail(values.email)\n ? 'Please enter a valid email.'\n : '',\n expertise:\n role === UserRoles.EXPERT && !onFocus.expertise && !values.expertise.trim().length\n ? 'Please enter your expertise.'\n : '',\n reference:\n (role === UserRoles.ARCHIVIST || role === UserRoles.CURATOR) &&\n !onFocus.reference &&\n !values.reference.trim().length\n ? 'Please tell us how did you hear about us.'\n : '',\n password:\n !onFocus.password && !values.password.length\n ? 'Please enter your password.'\n : !passwordStrength(values.password).valid\n ? 'Your password is not strong enough'\n : '',\n acceptTerms: !values.acceptTerms ? 'You have to accept the terms and conditions.' : '',\n };\n setErrors(errors);\n return errors;\n };\n\n const isValidForm = (): boolean => {\n const err = setFormErrors();\n return (\n values.acceptTerms &&\n !err.firstName &&\n !err.lastName &&\n !err.email &&\n !err.password &&\n !err.reference &&\n !err.expertise\n );\n };\n\n const handleKeyPress = (e: any): void => {\n if (e.key === 'Enter') {\n onRegisterUser(values);\n e.preventDefault();\n }\n };\n\n return (\n
    \n {\n setValues({ ...values, firstName: e.target.value });\n setErrors({ ...errors, firstName: '' });\n }}\n onFocus={() => setOnFocus({ ...onFocus, firstName: true })}\n onBlur={() => setOnFocus({ ...onFocus, firstName: false })}\n />\n\n {\n setValues({ ...values, lastName: e.target.value });\n setErrors({ ...errors, lastName: '' });\n }}\n onFocus={() => setOnFocus({ ...onFocus, lastName: true })}\n onBlur={() => setOnFocus({ ...onFocus, lastName: false })}\n />\n\n {\n setValues({ ...values, email: e.target.value });\n setErrors({ ...errors, email: '' });\n }}\n onFocus={() => setOnFocus({ ...onFocus, email: true })}\n onBlur={() => setOnFocus({ ...onFocus, email: false })}\n />\n\n {\n setValues({ ...values, password: e.target.value });\n setErrors({ ...errors, password: '' });\n }}\n onFocus={() => setOnFocus({ ...onFocus, password: true })}\n onBlur={() => setOnFocus({ ...onFocus, password: false })}\n onKeyPress={(e: any) => handleKeyPress(e)}\n />\n\n {!passwordStrength(values.password).valid && (\n <>\n {\n \n {!passwordStrength(values.password).length.valid && (\n <>\n {passwordStrength(values.password).length.message}
    \n \n )}\n {!passwordStrength(values.password).digits.valid && (\n <>\n {passwordStrength(values.password).digits.message}
    \n \n )}\n {!passwordStrength(values.password).uppercase.valid && (\n <>\n {passwordStrength(values.password).uppercase.message}
    \n \n )}\n {!passwordStrength(values.password).lowercase.valid && (\n <>\n {passwordStrength(values.password).lowercase.message}
    \n \n )}\n {!passwordStrength(values.password).specialChars.valid && (\n <>\n {passwordStrength(values.password).specialChars.message}
    \n \n )}\n
    \n }\n \n )}\n\n {role === UserRoles.EXPERT && (\n {\n setValues({ ...values, expertise: e.target.value });\n setErrors({ ...errors, expertise: '' });\n }}\n onFocus={() => setOnFocus({ ...onFocus, expertise: true })}\n onBlur={() => setOnFocus({ ...onFocus, expertise: false })}\n />\n )}\n\n {(role === UserRoles.ARCHIVIST || role === UserRoles.CURATOR) && (\n {\n setValues({ ...values, reference: e.target.value });\n setErrors({ ...errors, reference: '' });\n }}\n onFocus={() => setOnFocus({ ...onFocus, reference: true })}\n onBlur={() => setOnFocus({ ...onFocus, reference: false })}\n />\n )}\n\n {\n setValues({ ...values, acceptTerms: value });\n toggleAcceptTerms(value);\n }}\n />\n\n onRegister()}\n >\n {isLoading && }\n Register\n \n \n );\n};\n","import React from \"react\";\nimport { Box, makeStyles, Typography } from \"@material-ui/core\";\nimport ArrowForwardIcon from '@material-ui/icons/ArrowForward';\n\nimport { UserRoles } from \"core/enums\";\nimport {TextDivider} from \"../../../components\";\n\ntype ChooseRoleProps = {\n onSelect: (role: string) => void;\n}\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n marginTop: '15%',\n },\n box: {\n textAlign: 'left',\n marginBottom: 30,\n cursor: 'pointer',\n '&:hover': {\n \"& > p\": {\n color: `${theme.palette.primary.main}!important`,\n \"& > svg\": {\n display: 'block',\n left: 50\n }\n },\n },\n },\n boxTitle: {\n fontSize: 17,\n marginBottom: 5,\n display: 'flex',\n alignItems: 'center',\n },\n boxSubtitle: {\n color: theme.palette.text.secondary,\n fontSize: 13,\n },\n arrowIcon: {\n width: '15px',\n display: 'none',\n position: 'relative',\n left: 0,\n },\n divider: {\n marginBottom: 30,\n width: '50%'\n }\n}))\n\nexport const ChooseRole: React.FC = ({onSelect}) => {\n\n const classes = useStyles();\n\n return (\n \n onSelect(UserRoles.COLLECTOR)}\n className={classes.box}\n >\n \n I want to become a Collector \n \n \n A Collector is someone who wants to document and manage their collection.\n \n \n\n \n \n \n\n onSelect(UserRoles.EXPERT)}\n className={classes.box}\n >\n \n I want to become an Expert \n \n \n An Expert shares their knowledge with collectors\n \n \n\n onSelect(UserRoles.ARCHIVIST)}\n className={classes.box}\n >\n \n I want to become an Archivist \n \n \n An Archivist is someone who helps an avid collector document their collection.\n \n \n\n onSelect(UserRoles.CURATOR)}\n className={classes.box}\n > \n \n I want to become a Curator \n \n \n A Curator is someone who helps the Avid Collector review their collections\n once the avid collector's collection has been uploaded to Artifact.\n \n \n \n )\n}\n","import React, { useState } from \"react\";\nimport { modalStyles } from \"components/_others/modals/modal-styles\";\nimport { Backdrop, Box, Button, Fade, Modal, TextField, Typography } from \"@material-ui/core\";\nimport CloseIcon from \"@material-ui/icons/Close\";\n\ntype ExpertiseModalProps = {\n open: boolean;\n handleClose: () => void;\n onConfirm: (expertise: string) => void\n}\n\nexport const ExpertiseModal: React.FC = ({open, handleClose, onConfirm}) => {\n\n const classes = modalStyles();\n\n const [error, setError] = useState('');\n const [expertise, setExpertise] = useState('');\n\n return (\n \n \n
    \n \n \n Expertise\n \n \n Please say a few words about your expertise\n \n \n\n \n {\n setExpertise(e.target.value);\n setError(expertise !== '' || expertise?.trim().length > 0\n ? '' : 'Please say a few words about your expertise.')\n }}\n />\n \n\n \n \n Cancel Registration\n \n\n onConfirm(expertise)}\n >\n Continue\n \n \n
    \n
    \n\n \n )\n}\n","import React, {useState} from \"react\";\nimport { modalStyles } from \"components/_others/modals/modal-styles\";\n\nimport { Backdrop, Box, Button, Fade, Modal, TextField, Typography } from \"@material-ui/core\";\nimport CloseIcon from \"@material-ui/icons/Close\";\n\ntype ReferralModalProps = {\n open: boolean;\n handleClose: () => void;\n onConfirm: (reference: string) => void\n}\n\nexport const ReferralModal: React.FC = ({open, handleClose, onConfirm}) => {\n\n const classes = modalStyles();\n\n const [answer, setAnswer] = useState('');\n const [error, setError] = useState('');\n\n return (\n \n \n
    \n \n \n How did you hear about us?\n \n \n Please say a few words about how did you hear about us.\n \n \n\n {\n setAnswer(e.target.value);\n setError(answer !== '' || answer?.trim().length > 0\n ? '' : 'Please say a few words about how did you hear about us.')\n }}\n />\n\n \n \n Cancel Registration\n \n\n onConfirm(answer)}\n >\n Continue\n \n \n\n
    \n
    \n \n )\n}\n","import React, { useContext, useEffect, useState } from 'react';\nimport { useHistory } from 'react-router-dom';\n\nimport 'scenes/auth/styles/auth.less';\n\nimport { Box, Container, Grid, Typography } from '@material-ui/core';\nimport { UserContext } from 'core/context/user';\n\nimport { AppRoutes } from 'core/helpers/app-routes';\nimport { RegisterApi, UserApi } from 'core/api/user';\nimport { UserRoles } from 'core/enums';\nimport { AfterRegisterAction } from '../../managers/enums';\n\nimport { PhotoArea } from 'scenes/auth/components/PhotoArea';\nimport { PageTitle } from 'scenes/auth/components/PageTitle';\nimport { SwitchAuthView } from 'scenes/auth/components/SwitchAuthView';\nimport { CreateAccountForm } from './CreateAccountForm';\nimport { ConfirmEmailModal } from 'scenes/auth/components/ConfirmationPin/ConfirmEmailModal';\nimport { ChooseRole } from '../../components/ChooseRole';\nimport { ExpertiseModal } from '../../components/ExpertiseModal';\nimport { ReferralModal } from '../../components/ReferralModal';\nimport { RegisterReasonModal } from '../../components/RegisterReasonModal';\nimport { ExternalAuth } from '../../components/ExternalAuth';\n\nimport { getAccountRoleFromURLSearchParams } from '../../managers/utils.manager';\nimport { getAuthError } from '../../managers/errors.manager';\nimport {\n askForExpertise,\n askForReferral,\n getLoginPayload,\n getRegisterPayload,\n manageRegister,\n confirmEmailModalMessage,\n initialRegisterData,\n waitForAccountConfirmationMessage,\n} from '../../managers/business-rules.manager';\nimport { UtilsContext } from 'core/context/utils.context';\nimport { CustomSnackbar } from 'components';\n\nconst PAGE_TITLE = 'Welcome!';\nconst PAGE_SUBTITLE = 'Catalog, identify, and assess your art and collectibles all in one place.';\n\nexport const CreateAccount: React.FC = () => {\n const history = useHistory();\n const userContext = useContext(UserContext);\n\n const utilsContext = useContext(UtilsContext);\n const [accountRole, setAccountRole] = useState(null);\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState('');\n const [registerData, setRegisterData] = useState(initialRegisterData);\n const [displayCEM, toggleCEM] = useState(false);\n\n useEffect(() => {\n userContext.onLogout();\n setAccountRole(getAccountRoleFromURLSearchParams());\n }, []);\n\n useEffect(() => {\n if (error) {\n utilsContext.addSnackbar('error', error);\n }\n }, [error]);\n\n const manageRegisterIntent = (userData: any, isExternalRegister = false): void => {\n if (!accountRole) {\n return;\n }\n\n setIsLoading(true);\n setError('');\n\n const registerPayload = getRegisterPayload(isExternalRegister, userData);\n setRegisterData({ ...userData, shouldAskForExpertise: false, shouldAskForReferral: false });\n\n if (askForExpertise(isExternalRegister, accountRole)) {\n setRegisterData({ ...userData, shouldAskForExpertise: true, shouldAskForReferral: false });\n return;\n }\n\n if (askForReferral(isExternalRegister, accountRole)) {\n setRegisterData({ ...userData, shouldAskForExpertise: false, shouldAskForReferral: true });\n return;\n }\n\n onRegister(registerPayload, isExternalRegister);\n };\n\n const onRegister = (payload: any, external: boolean): void => {\n if (!accountRole) {\n return;\n }\n\n RegisterApi.register(accountRole || UserRoles.COLLECTOR, payload)\n .then(() => {\n setIsLoading(false);\n const afterRegisterAction = manageRegister(external, accountRole);\n\n if (afterRegisterAction === AfterRegisterAction.DisplayConfirmEmailModal) {\n manageCEM(payload.email, payload.password);\n return;\n }\n\n if (afterRegisterAction === AfterRegisterAction.DisplayWaitForActivationMessage) {\n utilsContext.addSnackbar('success', waitForAccountConfirmationMessage);\n return;\n }\n\n if (afterRegisterAction === AfterRegisterAction.ContinueToLogin) {\n onLogin(getLoginPayload(payload));\n }\n })\n .catch((error: any) => {\n manageHttpError(error, payload.email);\n });\n };\n\n const onLogin = (credentials: any): void => {\n UserApi.login(credentials)\n .then((res: any) => {\n setIsLoading(false);\n userContext.setUser(res.data);\n setRegisterData({ ...registerData, shouldAskForRegisterReason: true });\n })\n .catch((error: any) => {\n manageHttpError(error);\n });\n };\n\n const runAfterEmailConfirmation = (): void => {\n if (!accountRole) {\n return;\n }\n\n onLogin({ email: registerData.email, password: registerData.password });\n\n toggleCEM(false);\n utilsContext.addSnackbar('success', waitForAccountConfirmationMessage);\n };\n\n const manageHttpError = (error: any, email = ''): void => {\n console.error(error);\n setIsLoading(false);\n\n const errorData = error?.response?.data;\n if (errorData?.message === 'UserNotConfirmed') {\n if (email !== '') {\n void UserApi.resendRegisterConfirmationEmail(email).then(() => {\n toggleCEM(true);\n });\n } else {\n toggleCEM(true);\n }\n return;\n }\n setError(getAuthError(errorData?.message || null));\n };\n\n const manageCEM = (email: string, password: string): void => {\n setRegisterData({ ...registerData, email, password });\n toggleCEM(true);\n };\n\n return (\n \n \n\n \n \n \n \n\n {accountRole !== null && (\n \n \n setRegisterData({ ...registerData, acceptTerms: value })\n }\n onRegisterUser={(userData: any) => manageRegisterIntent(userData)}\n />\n\n {error && (\n \n {error}\n \n )}\n\n manageRegisterIntent(data, true)}\n />\n\n \n \n )}\n\n {accountRole === null && (\n \n setAccountRole(role)} />\n \n )}\n \n \n \n\n toggleCEM(false)}\n onSuccess={() => runAfterEmailConfirmation()}\n />\n\n setRegisterData({ ...registerData, shouldAskForExpertise: false })}\n onConfirm={(expertise: string) => {\n const payload = registerData;\n payload['expertise'] = expertise;\n onRegister(payload, true);\n setRegisterData({ ...registerData, shouldAskForExpertise: false });\n }}\n />\n\n setRegisterData({ ...registerData, shouldAskForReferral: false })}\n onConfirm={(reference: string) => {\n const payload = registerData;\n payload['reference'] = reference;\n onRegister(payload, true);\n setRegisterData({ ...registerData, shouldAskForReferral: false });\n }}\n />\n\n {\n setRegisterData({ ...registerData, shouldAskForRegisterReason: false });\n history.push(AppRoutes.TUTORIAL);\n }}\n />\n\n utilsContext.closeSnackbar()}\n severity={utilsContext.snackbar.severity}\n message={utilsContext.snackbar.text}\n />\n \n );\n};\n","import {makeStyles} from \"@material-ui/styles\";\n\nexport const appDrawerStyles = makeStyles(() => ({\n root: {\n width: 220,\n flexShrink: 0,\n },\n paper: {\n width: 220,\n backgroundColor: \"#2B2B33\",\n overflow: 'hidden',\n boxShadow: '0px 3px 10px #00000029',\n },\n logoContainer: {\n textAlign: 'center',\n marginTop: 20,\n marginBottom: '40%'\n },\n themeSwitchContainer: {\n position: 'absolute',\n bottom: 20,\n left: 40\n }\n}));\n\nexport const drawerNavigationStyles = makeStyles({\n listItem: {\n color: '#EFEFEF',\n fontSize: 16,\n fontWeight: 400,\n borderRadius: '2px 0px 0px 2px',\n marginLeft: 10,\n padding: '5px 16px',\n cursor: 'pointer'\n },\n link: {\n color: 'inherit',\n display: 'flex',\n alignItems: 'center'\n },\n icon: {\n minWidth: '40px',\n color: 'inherit !important'\n }\n})\n","import React from \"react\";\n\nimport {AppRoutes} from \"core/helpers/app-routes\";\nimport {UserRoles} from \"core/enums\";\nimport {INavLink} from \"./nav-link.interfaces\";\n\nimport RateReviewIcon from \"@material-ui/icons/RateReview\";\nimport GroupIcon from \"@material-ui/icons/Group\";\nimport LabelIcon from \"@material-ui/icons/Label\";\nimport EqualizerIcon from \"@material-ui/icons/Equalizer\";\n\n\nconst adminLinks: INavLink[] = [\n {\n id: 0,\n name: 'Feedback Request',\n path: AppRoutes.FEEDBACK_REQUESTS,\n icon: \n },\n {\n id: 1,\n name: 'Collectors',\n path: AppRoutes.COLLECTOR_LISTING,\n icon: \n },\n {\n id: 2,\n name: 'Experts',\n path: AppRoutes.EXPERT_LISTING,\n icon: \n },\n {\n id: 3,\n name: 'Archivists',\n path: AppRoutes.ARCHIVIST_LISTING,\n icon: \n },\n {\n id: 4,\n name: 'Curators',\n path: AppRoutes.CURATOR_LISTING,\n icon: \n },\n {\n id: 5,\n name: 'Taxonomy',\n path: AppRoutes.TAXONOMY,\n icon: ,\n },\n {\n id: 6,\n name: 'Statistics',\n path: AppRoutes.ADMIN_STATISTICS,\n icon: \n },\n];\n\nconst expertLinks: INavLink[] = [\n {\n id: 0,\n name: 'Feedback Request',\n path: AppRoutes.FEEDBACK_REQUESTS,\n icon: \n },\n];\n\nexport function getNavLinks(userRole: string): INavLink[] {\n if(userRole === UserRoles.ADMIN) {\n return adminLinks;\n }\n if(userRole === UserRoles.EXPERT) {\n return expertLinks;\n }\n return [];\n}\n","import React from \"react\";\nimport {List, ListItem, ListItemIcon, ListItemText} from \"@material-ui/core\";\nimport {Link, useRouteMatch} from \"react-router-dom\";\n\nimport {drawerNavigationStyles} from \"../styles\";\nimport {INavLink} from \"../../_helpers/nav-link.interfaces\";\n\ntype NavigationProps = {\n navLinks: INavLink[]\n}\n\nexport const Navigation: React.FC = ({navLinks}) => {\n\n const classes = drawerNavigationStyles();\n\n const isRouteMatch = (path: string, exact: boolean): any => {\n return useRouteMatch({\n path, exact\n });\n }\n\n return (\n \n {navLinks.map((navLink: INavLink) => (\n \n \n \n {\n navLink.icon\n }\n \n \n \n \n ))}\n \n )\n}\n","import React, {useContext} from \"react\";\nimport {Box, Drawer} from \"@material-ui/core\";\n\nimport {appDrawerStyles} from \"./styles\";\n\nimport {UserContext} from \"core/context/user\";\nimport {getNavLinks} from \"../_helpers/dashboard-drawer-nav-links\";\n\nimport {Logo} from \"../..\";\nimport {Navigation} from \"./components/Navigation\";\nimport {ThemeSwitch} from \"../_components/ThemeSwitch\";\n\nexport const DashboardDrawer: React.FC = () => {\n\n const userContext = useContext(UserContext);\n\n const classes = appDrawerStyles();\n\n return (\n \n \n \n \n\n \n\n \n \n \n \n )\n}\n","import React, {useContext} from \"react\";\nimport {Link, useHistory} from \"react-router-dom\";\nimport { Box, ClickAwayListener, Tooltip, Typography, Zoom } from \"@material-ui/core\";\nimport \"./styles/user-menu.less\";\n\nimport AccountCircleIcon from '@material-ui/icons/AccountCircle';\nimport PersonIcon from '@material-ui/icons/Person';\nimport ExitToAppIcon from '@material-ui/icons/ExitToApp';\n\nimport { UserContext } from \"core/context/user\";\nimport { clearLocalStorage } from \"core/helpers/storage-helper\";\nimport { getPhotoUrl } from \"core/helpers/file-size.helper\";\nimport { AppRoutes } from \"core/helpers/app-routes\";\nimport { FileSize } from \"core/enums\";\nimport {UserRoles} from \"../../../core/enums\";\n\nexport const UserAvatar: React.FC = () => {\n\n const userContext = useContext(UserContext);\n\n const [open, setOpen] = React.useState(false);\n\n return (\n <>\n
    \n open ? setOpen(false) : null}>\n }\n onClose={() => setOpen(false)}\n open={open}\n disableFocusListener\n disableHoverListener\n placement={'bottom-end'}\n id=\"user-menu-tooltip\"\n >\n {\n !userContext.user?.photoUrl ?\n setOpen(!open)}\n style={{width: 40, height: 40, color: '#FE6502', cursor: 'pointer'}}\n /> : setOpen(!open)}\n src={getPhotoUrl(userContext.user.photoUrl, FileSize.SM) || ''}\n alt=\"avatar\"\n style={{width: 40, height: 40, borderRadius: 150, cursor: 'pointer'}}\n />\n }\n \n \n
    \n \n\n )\n}\n\nconst UserMenu: React.FC = () => {\n\n const userContext = useContext(UserContext);\n const history = useHistory();\n\n const onLogout = (): void => {\n clearLocalStorage();\n userContext.onLogout();\n history.push(AppRoutes.SIGN_IN);\n }\n\n return (\n \n \n {\n !userContext.user?.photoUrl &&\n \n }\n\n {\n userContext.user?.photoUrl &&\n \n }\n \n {userContext.user?.firstName}{' '}{userContext.user?.lastName}\n \n \n\n \n {\n userContext.user?.role !== UserRoles.ADMIN &&\n <>\n \n \n Edit Profile\n \n \n\n
    \n \n }\n\n onLogout()}>\n Log out\n \n \n \n )\n}\n","import {createMuiTheme, ThemeOptions} from \"@material-ui/core\";\nimport {darkTheme} from \"assets/themes/dark-theme\";\n\nexport const mobileDrawerDarkTheme: ThemeOptions = createMuiTheme({\n ...darkTheme,\n overrides: {\n MuiPopover: {\n root: {\n top: 0,\n maxWidth: '100vw',\n maxHeight: '100vh',\n overflow: 'auto!important',\n },\n paper: {\n position: 'absolute',\n maxWidth: '100vw',\n maxHeight: '100vh',\n overflow: 'auto!important',\n top: '0!important',\n left: '0!important',\n bottom: 0,\n right: 0\n }\n }\n },\n});\n","import React, {useContext} from \"react\";\nimport ThemeProvider from \"@material-ui/styles/ThemeProvider\";\nimport {Box, List, Popover} from \"@material-ui/core\";\n\nimport {mobileDrawerDarkTheme} from \"./theme\";\nimport {mobileMenuStyles} from \"../_styles/mobile-menu.styles\";\nimport MenuIcon from \"@material-ui/icons/Menu\";\n\nimport {UserContext} from \"../../../core/context/user\";\nimport {getNavLinks} from \"../_helpers/dashboard-drawer-nav-links\";\n\nimport {Header} from \"../_components/MobileMenuHeader\";\nimport {MobileMenuNavigation} from \"../_components/MobileMenuNavigation\";\nimport {MobileMenuUserActions} from \"../_components/MobileMenuUserActions\";\n\nexport const DashboardMobileDrawer: React.FC = () => {\n\n const userContext = useContext(UserContext);\n\n const classes = mobileMenuStyles();\n\n const [anchorEl, setAnchorEl] = React.useState(null);\n\n const handleClick = (event: any): void => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClose = (): void => {\n setAnchorEl(null);\n };\n\n const open = Boolean(anchorEl);\n const id = open ? 'mobile-menu-popover' : undefined;\n\n return (\n \n \n \n\n \n
    \n\n \n \n \n\n {\n userContext.user !== null &&\n \n }\n\n \n \n \n \n \n )\n}\n","import React, { useContext } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { makeStyles } from \"@material-ui/styles\";\nimport {AppBar, Box, ThemeOptions, Toolbar, Typography} from \"@material-ui/core\";\n\nimport NotificationsIcon from \"@material-ui/icons/Notifications\";\n\nimport { UserContext } from \"core/context/user\";\nimport { AppRoutes } from \"core/helpers\";\nimport { UserAvatar } from \"./UserAvatar\";\nimport { DashboardMobileDrawer } from \"../DashboardMobileDrawer\";\nimport {responsiveStyles} from \"../_styles/responsive-styles\";\n\nconst useStyles = makeStyles((theme: ThemeOptions) => ({\n root: {\n backgroundColor: theme.dashboardHeader.main,\n height: 65,\n boxShadow: '0px 3px 10px #00000014;'\n },\n toolbar: {\n justifyContent: 'flex-end',\n padding: '0 35px'\n },\n notificationIcon: {\n color: \"#707070\",\n marginTop: 7,\n cursor: \"pointer\"\n }\n}))\n\nexport const DashboardToolbar: React.FC = () => {\n\n const classes = useStyles();\n const userContext = useContext(UserContext);\n\n const generalClasses = responsiveStyles();\n\n return (\n \n \n\n \n \n \n\n \n \n \n {\n userContext.newNotifications && \n }\n \n \n\n \n\n \n \n )\n}\n","import * as api from '../_utils/api';\nimport { UserRoles } from '../../enums';\n\nexport class FeedbackRequestsApi {\n static async getListing(\n size: number,\n page: number,\n searchBy: string,\n isCompleted: boolean,\n rating: boolean | null,\n _role?: string,\n ): Promise {\n return api._post(`feedback/getFeedbackRequests?page=${page}&size=${size}`, {\n isCompleted,\n search: searchBy,\n isRated: rating,\n });\n }\n\n static async getFeedbackRequest(id: number, role?: string): Promise {\n if (!role) {\n return null;\n }\n\n switch (role) {\n case UserRoles.ADMIN:\n return api._get(`feedback/getFeedbackRequest/${id}`);\n case UserRoles.EXPERT:\n return api._get(`feedback/getFeedbackRequest/${id}`);\n }\n }\n\n static async requestBetterPhotos(feedbackRequestId: number): Promise {\n return api._put(`feedback/requireMorePhotos/${feedbackRequestId}`, { morePhotosRequired: true });\n }\n\n static async saveFeedbackRequest(id: number, payload: unknown): Promise {\n return api._post(`feedback/create/${id}`, payload);\n }\n\n static async saveFeedbackDraft(id: number, payload: unknown): Promise {\n return api._patch(`feedback/SaveDraft/${id}`, payload);\n }\n\n static async markFeedbackAsRead(id: number): Promise {\n return api._put(`feedback/readFeedback/${id}`);\n }\n\n static async addComment(\n feedbackRequestId: number,\n comment: string,\n isCollector = false,\n _artifactId = -1,\n ): Promise {\n if (isCollector) {\n return api._post(`feedback/createComment/${feedbackRequestId}`, comment, {\n 'Content-Type': 'application/json-patch+json',\n });\n }\n\n return api._post(`feedback/createComment/${feedbackRequestId}`, comment, {\n 'Content-Type': 'application/json-patch+json',\n });\n }\n\n static async deleteComment(\n _feedbackRequestId: number,\n id: number,\n isCollector = false,\n _artifactId = -1,\n ): Promise {\n if (isCollector) {\n // eslint-disable-next-line max-len\n return api._delete(`Feedback/DeleteComment/${id}`);\n }\n return api._delete(`Feedback/DeleteComment/${id}`);\n }\n\n static async deleteFeedbackRequest(id: number): Promise {\n return api._delete(`feedback/deleteRequest/${id}`);\n }\n}\n","import React, {useContext, useState} from \"react\";\nimport moment from \"moment\";\nimport { makeStyles } from '@material-ui/core/styles';\n\nimport {Box, Button, Grid, Tooltip, Typography} from \"@material-ui/core\";\n\nimport AccountCircleIcon from \"@material-ui/icons/AccountCircle\";\nimport StarIcon from '@material-ui/icons/Star';\n\nimport { IFeedbackRequest } from \"core/context/feedback-requests/listing\";\nimport { FileSize, UserRoles } from \"core/enums\";\nimport { AppRoutes, getPhotoUrl } from \"core/helpers\";\nimport { UserContext } from \"core/context/user\";\nimport { Link } from \"react-router-dom\";\nimport {FeedbackRequestsApi} from \"../../../../../../core/api/feedback-requests/feedback-requests.api\";\nimport {UtilsContext} from \"../../../../../../core/context/utils.context\";\n\ntype FeedbackRequestItemProps = {\n item: IFeedbackRequest\n}\n\nconst useStyles = makeStyles(theme => ({\n root: {\n display: 'flex',\n justifyContent: 'space-between'\n },\n collectorBox: {\n textAlign: 'center',\n borderRight: '1px solid',\n borderColor: `${theme.divider.main}!important`,\n },\n actionsBox: {\n position: 'relative',\n height: '100%',\n textAlign: 'right'\n },\n profileIconPlaceholder: {\n width: 40, height: 40, color: '#FE6502',\n },\n profilePic: {\n width: 40, height: 40, borderRadius: 40,\n },\n collectorName: {\n fontSize: 16,\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n },\n feedbackDate: {\n marginTop: 27,\n fontSize: 12,\n },\n artifactPhoto: {\n width: '100%',\n height: '110px',\n objectFit: 'cover',\n },\n artifactName: {\n fontSize: 16,\n fontWeight: 'bold',\n },\n artifactId: {\n fontSize: 12,\n fontWeight: 'normal',\n color: theme.palette?.text?.secondary,\n marginLeft: 5,\n },\n artifactDescription: {\n fontSize: 13,\n marginTop: 7,\n },\n giveFeedbackBtn: {\n fontSize: 13,\n minWidth: 115,\n paddingTop: 2,\n paddingBottom: 2,\n [theme?.breakpoints?.up('md')]: {\n position: 'absolute',\n bottom: 0,\n right: 0,\n },\n },\n deleteFeedbackBtn: {\n fontSize: 13,\n //minWidth: 115,\n paddingTop: 2,\n paddingBottom: 2,\n [theme?.breakpoints?.up('md')]: {\n position: 'absolute',\n top: 0,\n right: 0,\n },\n },\n link: {\n textDecoration: 'none',\n color: \"#029BFE\",\n }\n}))\n\nexport const FeedbackRequestItem: React.FC = ({item}) => {\n\n const classes = useStyles();\n\n const userContext = useContext(UserContext);\n const utilsContext = useContext(UtilsContext);\n\n const { artifact, collector } = item;\n const [isDeleted, setIsDeleted] = useState(false);\n\n const onDelete = (): void => {\n FeedbackRequestsApi.deleteFeedbackRequest(item.id)\n .then(() => {\n setIsDeleted(true);\n utilsContext.addSnackbar('success', 'Deleted!');\n })\n .catch((error) => {\n console.error(error.response);\n utilsContext.addSnackbar('error');\n })\n }\n\n return (\n \n \n \n \n {\n !collector.photoUrl &&\n \n }\n {\n collector.photoUrl &&\n \n }\n\n \n \n {\n userContext.user?.role === UserRoles.ADMIN\n ? \n {collector.firstName}{' '}{collector.lastName}\n \n : <>{collector.firstName}{' '}{collector.lastName}\n }\n \n\n \n\n \n Created on: {moment(item.dateCreated).format('h:mma M/D/YY')}\n \n {\n item.isCompleted &&\n \n Completed on: {moment(item.feedbackDateCreated).format('h:mma M/D/YY')}\n \n }\n\n {\n item.isCompleted &&\n <>\n \n User Rating: {item.rating === null || item.rating === 0 ? 'none' : `${item.rating }/5`}\n \n \n Feedback Read: {item.isRead ? 'YES' : 'NO'}\n \n \n\n }\n \n \n \n \n {\n !artifact.photoUrl &&\n \n

    no photo

    \n
    \n }\n {\n artifact.photoUrl &&\n \n }\n
    \n
    \n \n \n \n {artifact.title}{' '}\n \n #{artifact.id}\n \n \n\n \n {\n artifact.description.length > 500\n ? `${artifact.description.substring(0,500)}...`\n : artifact.description\n }\n \n \n \n \n {\n item.isArtifactUpdated &&\n \n \n \n }\n \n {\n userContext.user?.role === UserRoles.ADMIN && !isDeleted &&\n {\n if(confirm('Are you sure you want to delete this feedback request?')) {\n onDelete();\n }\n }}\n >\n Delete\n \n }\n {\n !isDeleted &&\n \n \n {\n item.isCompleted || userContext.user?.role === UserRoles.ADMIN\n ? 'See Request'\n : 'Give Feedback'\n }\n \n \n }\n \n \n
    \n
    \n )\n}\n","import React from \"react\";\nimport { Fragment } from \"react\";\nimport { makeStyles } from \"@material-ui/styles\";\nimport { Box, ThemeOptions } from \"@material-ui/core\";\nimport Pagination from \"@material-ui/lab/Pagination\";\n\nimport { IFeedbackRequest } from \"core/context/feedback-requests/listing\";\nimport { FeedbackRequestItem } from \"./FeedbackRequestItem\";\n\nconst useStyles = makeStyles((theme: ThemeOptions) => ({\n container: {\n marginTop: 30,\n width: '100%',\n border: '1px solid',\n borderColor: theme.divider.main,\n borderRadius: 1,\n padding: '20px 15px',\n marginBottom: 25,\n },\n divider: {\n borderTop: '1px solid',\n borderColor: theme.divider.main,\n width: '100%',\n marginTop: 20,\n marginBottom: 15,\n },\n}))\n\ntype FeedbackRequestsListProps = {\n data: IFeedbackRequest[],\n pagination: {\n numberOfPages: number,\n currentPage: number;\n },\n handlePageChange: (page: number) => void;\n}\n\nexport const FeedbackRequestsList: React.FC = (\n {data, pagination, handlePageChange}\n) => {\n\n const classes = useStyles();\n\n return (\n <>\n\n \n {\n data.map((feedback, index) => (\n \n \n {\n index !== data.length - 1 &&
    \n }\n \n ))\n }\n \n\n {\n pagination.numberOfPages > 1 &&\n \n handlePageChange(value)}\n />\n \n }\n \n )\n}\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { InputBase } from '@material-ui/core';\n\nimport SearchIcon from '@material-ui/icons/Search';\nimport CloseIcon from '@material-ui/icons/Close';\n\ntype SearchboxProps = {\n searchBy: string;\n setSearchBy: (value: string) => void;\n onSearch: (value: string) => void;\n onClear: () => void;\n};\n\nconst useStyles = makeStyles((theme) => ({\n search: {\n position: 'relative',\n borderRadius: theme.shape.borderRadius,\n height: 35,\n marginLeft: 0,\n width: '100%',\n backgroundColor: theme.rootBackground.secondary,\n borderColor: theme.rootBackground.progressBarBackground,\n border: '1px solid',\n fontSize: 13,\n [theme.breakpoints.up('sm')]: {\n marginLeft: theme.spacing(3),\n width: 'auto',\n },\n [theme.breakpoints.down('md')]: {\n marginLeft: theme.spacing(3),\n maxWidth: 180,\n },\n },\n searchIcon: {\n padding: theme.spacing(0, 2),\n height: '100%',\n position: 'absolute',\n pointerEvents: 'none',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: '#B2B2B2',\n },\n closeIcon: {\n padding: theme.spacing(0, 2),\n height: '100%',\n position: 'absolute',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n cursor: 'pointer',\n color: '#B2B2B2',\n right: 0,\n top: 0,\n },\n inputRoot: {\n color: theme.label.text,\n },\n inputInput: {\n padding: theme.spacing(1, 1, 1, 0),\n paddingLeft: `calc(1em + ${theme.spacing(4)}px)`,\n paddingRight: `calc(1em + ${theme.spacing(4)}px)`,\n transition: theme.transitions.create('width'),\n width: '100%',\n [theme.breakpoints.up('md')]: {\n width: '40ch',\n },\n },\n}));\n\nexport const Searchbox: React.FC = ({ searchBy, setSearchBy, onSearch, onClear }) => {\n const classes = useStyles();\n\n const handleKeyPress = (e: any): void => {\n if (e.key === 'Enter') {\n onSearch(searchBy);\n e.preventDefault();\n }\n };\n\n return (\n
    \n
    \n onSearch(searchBy)} />\n
    \n setSearchBy(e.target.value)}\n onKeyPress={(e: any) => handleKeyPress(e)}\n />\n
    \n onClear()} style={{ visibility: searchBy ? 'visible' : 'hidden' }} />\n
    \n
    \n );\n};\n","import { ObjectApi } from 'core/api';\nimport {PreferencesDictionary, SortObjectsOptions} from 'core/enums';\n\nexport const intersectArrays = (list1: any[], list2: any[], field: string, isUnion = false): any[] =>\n list1.filter((a) => isUnion === list2.some((b) => a[field] === b[field]));\n\nexport function cleanPhoneNumber(value: string): string {\n return value.replaceAll('(', '').replaceAll(')', '').replaceAll('_', '').replaceAll(' ', '').replaceAll('-', '');\n}\n\nexport function getCurrentPageFromUrl(field: string | null = null): number {\n const params = new URLSearchParams(window.location.search);\n const pageParam = params.get(field || 'page');\n let page;\n if (!pageParam || isNaN(Number(pageParam))) {\n page = 1;\n } else {\n page = Number(pageParam);\n }\n\n return page;\n}\n\nexport function getPageSizeFromUrl(defaultSize = 20): number {\n const params = new URLSearchParams(window.location.search);\n const pageParam = params.get('size');\n\n let page = defaultSize;\n if (!(!pageParam || isNaN(Number(pageParam)))) {\n page = Number(pageParam);\n }\n return page;\n}\n\nexport function getSortByFromUrl(): string {\n const params = new URLSearchParams(window.location.search);\n const sortParam = params.get('sortBy');\n return sortParam || '';\n}\n\nexport function getAscFromUrl(): boolean {\n const params = new URLSearchParams(window.location.search);\n const sortParam = params.get('desc');\n return sortParam !== 'true';\n}\n\nexport function getJobIdFromUrl(): number {\n const params = new URLSearchParams(window.location.search);\n const id = params.get('jobId');\n return Number(id) || -1;\n}\n\nexport function splitArrayIntoChunksOfLen(arr: any[], len: number): any[] {\n // eslint-disable-next-line prefer-const\n let chunks = [],\n i = 0;\n const n = arr.length;\n while (i < n) {\n chunks.push(arr.slice(i, (i += len)));\n }\n return chunks;\n}\n\nexport function isMobileBrowser(): boolean {\n let check = false;\n (function (a) {\n if (\n // eslint-disable-next-line max-len\n /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series([46])0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(\n a,\n ) || // eslint-disable-next-line max-len\n /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br([ev])w|bumb|bw-([nu])|c55\\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do([cp])o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly([-_])|g1 u|g560|gene|gf-5|g-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd-([mpt])|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c([- _agpst])|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac([ \\-/])|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja([tv])a|jbro|jemu|jigs|kddi|keji|kgt([ /])|klon|kpt |kwc-|kyo([ck])|le(no|xi)|lg( g|\\/([klu])|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t([- ov])|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30([02])|n50([025])|n7(0([01])|10)|ne(([cm])-|on|tf|wf|wg|wt)|nok([6i])|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan([adt])|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel([im])|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c([- ])|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(\n a.substr(0, 4),\n )\n )\n check = true;\n })(navigator.userAgent || navigator.vendor);\n return check;\n}\n\nexport async function getSortPreference(\n preferenceFor: 'objects' | 'collection',\n id = -1,\n): Promise<{\n sortPreference: string;\n ascPreference: boolean;\n}> {\n const sortFromUrl = getSortByFromUrl();\n const ascFromUrl = getAscFromUrl();\n try {\n const res = await ObjectApi.getObjectPreferences(id);\n const enumValue: 1 | 2 | 3 | 4 | 5 | 6 =\n preferenceFor === 'objects' ? res.data.artifactSortByPreference : res.data.collectionSortByPreference;\n const sortPreference = preferenceFor ? PreferencesDictionary[enumValue] : sortFromUrl;\n\n const ascEnum =\n preferenceFor === 'objects' ? res.data.artifactOrderPreference : res.data.collectionOrderPreference;\n\n const ascPreference = ascEnum === null ? true : ascEnum === 8;\n return {\n sortPreference:sortPreference || SortObjectsOptions.DateCreated,\n ascPreference,\n };\n } catch (error: any) {\n console.error(error);\n console.error(error.response);\n return {\n sortPreference: sortFromUrl,\n ascPreference: ascFromUrl,\n };\n }\n}\n","import React, { useContext, useEffect, useState } from 'react';\nimport { Box, Checkbox, FormControlLabel, Switch, Typography } from '@material-ui/core';\n\nimport { FeedbackRequestsListingContext } from 'core/context/feedback-requests/listing';\nimport { UserContext } from 'core/context/user';\nimport { FeedbackRequestsApi } from 'core/api/feedback-requests/feedback-requests.api';\n\nimport { Loader } from 'components/_others';\nimport { FeedbackRequestsList } from './components/FeedbackRequestsList';\nimport { Searchbox } from 'components/_dashboard/Searchbox/Searchbox';\nimport { useHistory } from 'react-router-dom';\nimport { getCurrentPageFromUrl } from '../../../../../core/helpers/utils';\nimport { AppRoutes } from '../../../../../core/helpers';\nimport { UtilsContext } from '../../../../../core/context/utils.context';\n\nexport const FeedbackRequestsListing: React.FC = () => {\n const history = useHistory();\n\n const feedbackRequestsListingContext = useContext(FeedbackRequestsListingContext);\n const userContext = useContext(UserContext);\n\n const utilsContext = useContext(UtilsContext);\n const [searchBy, setSearchBy] = useState('');\n const [isCompleted, toggleIsCompleted] = useState(\n new URLSearchParams(window.location.search).get('isCompleted') === 'true',\n );\n const [ratingFilter, toggleRatingFilter] = useState(\n new URLSearchParams(window.location.search).get('isRated') === 'true'\n ? true\n : new URLSearchParams(window.location.search).get('isRated') === 'false'\n ? false\n : null,\n );\n\n useEffect(() => {\n const page = getCurrentPageFromUrl();\n\n const params = new URLSearchParams(window.location.search);\n const isCompletedParam = params.get('isCompleted');\n\n if (isCompletedParam === 'true') {\n toggleIsCompleted(true);\n } else {\n toggleIsCompleted(false);\n }\n\n feedbackRequestsListingContext.setCurrentPage(page);\n }, []);\n\n useEffect(() => {\n getListing(0, searchBy, ratingFilter);\n }, [ratingFilter, isCompleted]);\n\n useEffect(() => {\n history.push(\n `${AppRoutes.FEEDBACK_REQUESTS}?page=${feedbackRequestsListingContext.pagination.page}&isCompleted=${isCompleted}&isRated=${ratingFilter}`,\n );\n }, [ratingFilter]);\n\n const handlePageChange = (page: number, searchBy: string): void => {\n history.push(`${AppRoutes.FEEDBACK_REQUESTS}?page=${page}&isCompleted=${isCompleted}&isRated=${ratingFilter}`);\n feedbackRequestsListingContext.setCurrentPage(page);\n getListing(page, searchBy);\n };\n\n const getListing = (page: number, searchBy: string, ratingFilter: boolean | null = null): void => {\n feedbackRequestsListingContext.setLoading(true);\n\n FeedbackRequestsApi.getListing(\n feedbackRequestsListingContext.pagination.size,\n page,\n searchBy ? searchBy : '',\n isCompleted,\n isCompleted ? ratingFilter : null,\n userContext.user?.role,\n )\n .then((res: any) => {\n feedbackRequestsListingContext.setData(res.data);\n window.scrollTo(0, 0);\n })\n .catch((error: any) => {\n console.error(error.response);\n utilsContext.addSnackbar('error');\n });\n };\n\n return (\n \n {!feedbackRequestsListingContext.isLoading && (\n <>\n \n \n \n Feedback Request\n \n \n {feedbackRequestsListingContext.statistics.totalRequests} requests\n \n \n \n {\n // eslint-disable-next-line max-len\n history.push(\n `${AppRoutes.FEEDBACK_REQUESTS}?page=${\n feedbackRequestsListingContext.pagination.page\n }&isCompleted=${!isCompleted}&isRated=${ratingFilter}`,\n );\n toggleIsCompleted(!isCompleted);\n }}\n color={'primary'}\n name=\"change-is-completed\"\n inputProps={{ 'aria-label': 'secondary checkbox' }}\n />\n }\n color={'textPrimary'}\n label={!isCompleted ? 'Incomplete' : 'Completed'}\n />\n setSearchBy(val)}\n onClear={() => {\n setSearchBy('');\n handlePageChange(1, '');\n }}\n onSearch={(val: string) =>\n val && val.length > 3 ? handlePageChange(1, val) : handlePageChange(1, '')\n }\n />\n \n \n\n \n {isCompleted && (\n <>\n \n toggleRatingFilter(\n ratingFilter === null ? false : !ratingFilter ? null : true,\n )\n }\n />\n }\n label={\n \n Show feedback with rating\n \n }\n />\n\n \n toggleRatingFilter(\n ratingFilter === null ? true : !ratingFilter ? true : null,\n )\n }\n />\n }\n label={\n \n Show feedback with NO rating\n \n }\n />\n \n )}\n\n handlePageChange(page, searchBy)}\n />\n \n\n {feedbackRequestsListingContext.displayEmptyPage && (\n \n This list is empty.\n \n )}\n \n )}\n\n {feedbackRequestsListingContext.isLoading && }\n \n );\n};\n","export enum NavigationEnum {\n OBJECTS,\n JOBS,\n DELETED_OBJECTS\n}\n","import * as api from '../_utils/api';\n\nexport class TaxonomyApi {\n\n static async getRootTypes(parentId: number | null = null): Promise {\n return api._get(`label/get${parentId !== null ? `?parentId=${parentId}` : ''}`);\n }\n\n static async deleteLabel(id: number): Promise {\n return api._delete(`label/delete/${id}`);\n }\n\n static async updateLabel(id: number, text: unknown, parentId: number, isActive: boolean): Promise {\n return api._put(`label/update/${id}`, {name: text, parentId, isActive});\n }\n\n static async addLabel(payload: unknown): Promise {\n return api._post('label/create', payload);\n }\n\n static async isLabelInUse(id: number): Promise {\n return api._post(`label/LabelInUse/${id}`);\n }\n}\n","import * as api from '../_utils/api';\n\nexport class CollectorsApi {\n static async getCollectorProfile(collectorId: number): Promise {\n return api._get(`collectors/get/${collectorId}`);\n }\n\n static async getCollectorArtifacts(collectorId: number, size: number, page: number): Promise {\n return api._post(`artifact/get?page=${page}&size=${size}&userId=${collectorId}`, {\n userId: collectorId,\n isDeleted: false,\n });\n }\n\n static async getCollectorDeletedArtifacts(collectorId: number, size: number, page: number): Promise {\n return api._post(`artifact/get?page=${page}&size=${size}&userId=${collectorId}`, {\n userId: collectorId,\n isDeleted: true,\n });\n }\n\n static async changeCollectorType(collectorId: number, type: string): Promise {\n return api._put(`collectors/update/${collectorId}/`, { type });\n }\n\n static async changeUserPaymentFreePass(userId: number, paymentFreePass: boolean): Promise {\n return api._put(`collectors/update/${userId}/`, { paymentFreePass });\n }\n\n static async getCollectorArtifact(userId: number, artifactId: number): Promise {\n return api._get(`artifact/get/${artifactId}?userId=${userId}`);\n }\n\n static async restoreObject(objectId: number): Promise {\n return api._put(`artifact/restore/${objectId}/`);\n }\n}\n","import * as api from '../_utils/api';\n\nexport class ExpertsApi {\n\n static async getExpertProfile(expertId: number): Promise {\n return api._get(`experts/get/${expertId}`);\n }\n\n static async getExpertCompletedFeedbacks(expertId: number, size: number, page: number): Promise {\n return api._post(\n `feedback/getFeedbackRequests?page=${page}&size=${size}`, {\n isCompleted: true,\n userId: expertId,\n }\n );\n }\n\n static async updateExpertType(expertId: number, type: string): Promise {\n return api._put(`experts/update/${expertId}`, {type});\n }\n\n static async assignLabelsToExpert(expertId: number, labels: number[]): Promise {\n return api._post(`label/addLabelToExpert/${expertId}`, labels);\n }\n\n static async deleteExpertLabel(expertId: number, labelId: number): Promise {\n return api._delete(`label/removeLabel/${labelId}/fromExpert/${expertId}`);\n }\n}\n","import * as api from '../_utils/api';\n\nexport class CuratorsApi {\n\n static async getCuratorProfile(curatorId: number): Promise {\n return api._get(`curators/get/${curatorId}`);\n }\n}\n","import * as api from '../_utils/api';\n\nexport class ArchivistsApi {\n\n static async getArchivistProfile(archivistId: number): Promise {\n return api._get(`archivists/get/${archivistId}`);\n }\n}\n","import * as api from '../_utils/api';\n\nexport class StatisticsApi {\n\n static async getStatistics(type: string, numberOfDays: number, showInactiveUsers = false): Promise {\n return api._get(`common/statistics/${type}?days=${numberOfDays}&active=${showInactiveUsers}`);\n }\n}\n","import React from \"react\";\nimport { makeStyles } from \"@material-ui/styles\";\nimport { Box, ThemeOptions } from \"@material-ui/core\";\n\nimport EditIcon from '@material-ui/icons/Edit';\nimport CancelIcon from '@material-ui/icons/Cancel';\nimport DeleteIcon from '@material-ui/icons/Delete';\n\nimport { ITaxonomyLabel } from \"core/context/admin/taxonomy\";\n\ntype LabelProps = {\n label: ITaxonomyLabel,\n isSelected: boolean,\n hasActions: boolean;\n onClick: () => void,\n onDelete?: () => void;\n onEdit?: () => void;\n onActivate?: () => void;\n}\nconst useStyles = makeStyles((theme: ThemeOptions) => ({\n root: {\n backgroundColor: theme.label.main,\n color: theme.label.text,\n fontSize: 13,\n marginRight: 10,\n padding: '3px 10px',\n borderRadius: 2,\n cursor: 'pointer',\n display: 'inline-block',\n marginTop: 7,\n },\n selected: {\n backgroundColor: '#029BFE',\n color: 'white'\n }\n}))\n\nexport const Label: React.FC = (\n {label, isSelected, hasActions, onClick, onDelete, onEdit, onActivate}\n) => {\n\n const classes = useStyles();\n\n return (\n \n \n onClick()} >\n {label.name}\n \n\n {\n hasActions && onEdit ? onEdit() : null}\n />\n }\n {\n hasActions && onDelete ? onDelete() : null}\n />\n }\n {\n !label.isActive && onActivate ? onActivate() : null}\n />\n }\n \n \n )\n}\n","import React, {useContext, useEffect, useState} from \"react\";\nimport { modalStyles } from \"components/_others/modals/modal-styles\";\nimport { Backdrop, Box, Button, CircularProgress, Fade, Modal, TextField, Typography } from \"@material-ui/core\";\n\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport SaveIcon from \"@material-ui/icons/Save\";\n\nimport { TaxonomyApi } from \"core/api/admin\";\nimport {UtilsContext} from \"../../../../../../core/context/utils.context\";\n\ntype AddNewLabelModalProps = {\n open: boolean;\n parentId: number;\n handleClose: () => void;\n onSuccess: () => void;\n}\n\nexport const AddNewLabelModal: React.FC = (\n {open, parentId, handleClose, onSuccess}\n) => {\n\n const classes = modalStyles();\n\n const [isLoading, setIsLoading] = useState(false);\n const [labelName, setLabelName] = useState({text: '', error: ''});\n const utilsContext = useContext(UtilsContext);\n useEffect(() => {\n setLabelName({text: '', error: ''})\n }, [parentId])\n\n const onSave = (): void => {\n if(!labelName.text.length) {\n setLabelName({...labelName, error: 'Please enter a name'});\n return;\n }\n\n TaxonomyApi.addLabel({parentId, name: labelName.text})\n .then(() => {\n setIsLoading(false);\n onSuccess();\n utilsContext.addSnackbar('success', 'The label was saved.')\n handleClose();\n })\n .catch((error: any) => {\n console.error(error.response);\n if(error.response.data.message === 'LabelAlreadyExists') {\n utilsContext.addSnackbar('error', 'There is already a label with this name.')\n } else {\n utilsContext.addSnackbar('error');\n }\n setIsLoading(false);\n })\n\n setIsLoading(true);\n }\n\n return (\n \n \n
    \n \n \n \n\n \n \n Add Subcategory\n \n \n You can type below a subcategory type.\n \n \n\n \n setLabelName({\n text: e.target.value,\n error: e.target.value.length === 0 ? 'Please enter a name' : ''\n })}\n />\n \n\n \n \n Cancel\n \n\n onSave()}\n >\n {\n isLoading && \n }\n {\n !isLoading && \n }\n Save\n \n \n
    \n
    \n \n )\n}\n","import React, {useContext, useEffect, useState} from \"react\";\nimport { modalStyles } from \"components/_others/modals/modal-styles\";\nimport { Backdrop, Box, Button, CircularProgress, Fade, Modal, TextField, Typography } from \"@material-ui/core\";\n\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport SaveIcon from \"@material-ui/icons/Save\";\n\nimport { TaxonomyApi } from \"core/api/admin\";\nimport { ITaxonomyLabel } from \"core/context/admin/taxonomy\";\nimport {UtilsContext} from \"../../../../../../core/context/utils.context\";\n\ntype EditLabelModalProps = {\n open: boolean;\n label: ITaxonomyLabel;\n handleClose: () => void;\n onSuccess: (id: number, name: string) => void;\n}\n\nexport const EditLabelModal: React.FC = (\n {open, label, handleClose, onSuccess}\n) => {\n\n const classes = modalStyles();\n\n const [isLoading, setIsLoading] = useState(false);\n const [labelName, setLabelName] = useState({text: '', error: ''});\n const utilsContext = useContext(UtilsContext);\n useEffect(() => {\n setLabelName({text: label?.name || '', error: ''})\n }, [open])\n\n const onSave = (): void => {\n if(!labelName.text.length) {\n setLabelName({...labelName, error: 'Please enter a name'});\n return;\n }\n\n TaxonomyApi.updateLabel(label.id, labelName.text, label.parentId, label.isActive)\n .then(() => {\n setIsLoading(false);\n onSuccess(label.id, labelName.text);\n utilsContext.addSnackbar('success', 'The label was saved.')\n })\n .catch((error: any) => {\n console.error(error.response);\n if(error.response.data.message === 'LabelAlreadyExists') {\n utilsContext.addSnackbar('error', 'There is already a label with this name.')\n } else {\n utilsContext.addSnackbar('error');\n }\n setIsLoading(false);\n })\n\n setIsLoading(true);\n }\n\n return (\n \n \n
    \n \n \n \n\n \n \n Edit type \"{label.name}\"\n \n \n You can enter below a new name.\n \n \n\n \n setLabelName({\n text: e.target.value,\n error: e.target.value.length === 0 ? 'Please enter a name' : ''\n })}\n />\n \n\n \n \n Cancel\n \n\n onSave()}\n >\n {\n isLoading && \n }\n {\n !isLoading && \n }\n Save\n \n \n
    \n
    \n \n )\n}\n","import React, {useContext, useEffect, useState} from \"react\";\nimport { modalStyles } from \"components/_others/modals/modal-styles\";\nimport { Backdrop, Box, Button, CircularProgress, Fade, Modal, Typography } from \"@material-ui/core\";\n\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport SaveIcon from \"@material-ui/icons/Save\";\n\nimport { TaxonomyApi } from \"core/api/admin\";\nimport { ITaxonomyLabel } from \"core/context/admin/taxonomy\";\nimport {UtilsContext} from \"../../../../../../core/context/utils.context\";\n\ntype EditLabelModalProps = {\n open: boolean;\n label: ITaxonomyLabel;\n handleClose: () => void;\n onSuccess: (id: number, name: string) => void;\n}\n\nexport const ActivateLabelModal: React.FC = (\n {open, label, handleClose, onSuccess}\n) => {\n\n const classes = modalStyles();\n\n const [isLoading, setIsLoading] = useState(false);\n const [labelName, setLabelName] = useState({text: '', error: ''});\n const utilsContext = useContext(UtilsContext);\n useEffect(() => {\n setLabelName({text: label?.name || '', error: ''})\n }, [open])\n\n const onSave = (): void => {\n if(!labelName.text.length) {\n setLabelName({...labelName, error: 'Please enter a name'});\n return;\n }\n\n TaxonomyApi.updateLabel(label.id, labelName.text, label.parentId, true)\n .then(() => {\n setIsLoading(false);\n onSuccess(label.id, labelName.text);\n utilsContext.addSnackbar('success', 'The label was saved.')\n })\n .catch((error: any) => {\n console.error(error.response);\n setIsLoading(false);\n utilsContext.addSnackbar('error');\n })\n\n setIsLoading(true);\n }\n\n return (\n \n \n
    \n \n \n \n\n \n \n Activate type \"{label.name}\"\n \n \n Are you sure you want to activate this label?\n \n \n\n \n \n Cancel\n \n\n onSave()}\n >\n {\n isLoading && \n }\n {\n !isLoading && \n }\n Activate\n \n \n
    \n
    \n \n )\n}\n","import React, {useContext, useEffect, useState} from \"react\";\nimport {Droppable, Draggable, DroppableStateSnapshot} from 'react-beautiful-dnd';\n\nimport { makeStyles } from \"@material-ui/styles\";\nimport { Box, Button, ThemeOptions, Typography } from \"@material-ui/core\";\n\nimport AddIcon from '@material-ui/icons/Add';\n\nimport { ITaxonomyLabel, TaxonomyContext } from \"core/context/admin/taxonomy\";\n\nimport { Label } from \"./Label\";\nimport { AddNewLabelModal } from \"./AddLabelModal\";\nimport { EditLabelModal } from \"./EditLabelModal\";\nimport {ActivateLabelModal} from \"./ActivateLabelModal\";\n\ntype SubTypesProps = {\n id: number;\n parent: ITaxonomyLabel;\n types: ITaxonomyLabel[];\n onRefresh: () => void;\n onTypeClick: (type: ITaxonomyLabel) => void;\n}\n\nconst useStyles = makeStyles((theme: ThemeOptions) => ({\n divider: {\n borderTop: '1px solid',\n borderColor: theme.divider.main,\n width: '100%',\n marginTop: 20,\n marginBottom: 15,\n }\n}))\n\nexport const SubTypes: React.FC = (\n {id,parent, types, onRefresh, onTypeClick}\n) => {\n\n const classes = useStyles();\n const taxonomyContext = useContext(TaxonomyContext);\n\n const [selectedType, setSelectedType] = useState(null);\n const [editLabel, setEditLabel] = useState(null);\n const [activateLabel, setActivateLabel] = useState(null);\n\n useEffect(() => {\n setSelectedType(null);\n }, [parent.id])\n\n return (\n <>\n
    \n \n \n Types of \"{parent.name}\"\n \n\n taxonomyContext.toggleAddLabelModal(parent.id)}\n >\n Add subcategory\n \n \n\n {\n types?.length === 0 &&\n \n There are no subtypes.\n \n }\n\n \n {(provided, snapshot: DroppableStateSnapshot) => (\n
    \n {\n types\n .filter(l =>\n taxonomyContext.deletedLabels.findIndex(id => id === l.id) === -1 &&\n l.parentId === parent.id\n )\n .map((label: ITaxonomyLabel, index: number) => (\n \n {(provided) => (\n \n {onTypeClick(label); setSelectedType(label)}}\n onDelete={\n () => taxonomyContext.setSelectedForDeleteId(label.id)\n }\n onEdit={() => setEditLabel(label)}\n onActivate={() => setActivateLabel(label)}\n />\n
    \n\n )}\n \n ))}\n {provided.placeholder}\n
    \n )}\n \n\n {\n selectedType &&\n taxonomyContext.deletedLabels.findIndex(id => id === selectedType?.id) === -1 &&\n \n l.parentId === selectedType.id)}\n onRefresh={() => onTypeClick(selectedType)}\n onTypeClick={() => onTypeClick(selectedType)}\n />\n \n }\n\n taxonomyContext.toggleAddLabelModal(-1)}\n onSuccess={() => onRefresh()}\n />\n\n setEditLabel(null)}\n onSuccess={(id: number, name: string) => {\n onRefresh();\n if(selectedType?.id === id) {\n selectedType.name = name;\n }\n setEditLabel(null);\n }}\n />\n\n setActivateLabel(null)}\n onSuccess={(id: number) => {\n onRefresh();\n if(selectedType?.id === id) {\n selectedType.isActive = true;\n }\n setActivateLabel(null);\n }}\n />\n \n )\n}\n","import React, {useContext, useState} from \"react\";\nimport { DragDropContext } from 'react-beautiful-dnd';\n\nimport { Box, Typography } from \"@material-ui/core\";\n\nimport InfoIcon from '@material-ui/icons/Info';\n\nimport { ITaxonomyLabel, TaxonomyContext } from \"core/context/admin/taxonomy\";\nimport { TaxonomyApi } from \"core/api/admin\";\n\nimport { Label } from \"./Label\";\nimport { SubTypes } from \"./SubTypes\";\nimport {UtilsContext} from \"../../../../../../core/context/utils.context\";\n\nexport const RootTypes: React.FC = () => {\n\n const taxonomyContext = useContext(TaxonomyContext);\n const [subTypes, setSubtypes] = useState([]);\n const utilsContext = useContext(UtilsContext);\n const onRootTypeClick = (rootType: ITaxonomyLabel|null): void => {\n if(!rootType) {\n return;\n }\n taxonomyContext.selectRootType(rootType);\n getTypes(rootType, true);\n }\n\n const getTypes = (type: ITaxonomyLabel, isRootType = false): void => {\n TaxonomyApi.getRootTypes(type.id)\n .then((res: any) => {\n\n const list = res.data;\n list.forEach((element: any) => {\n element.parentId = type.id;\n })\n\n if(isRootType) {\n setSubtypes(list);\n } else {\n const result = subTypes.filter(l => l.parentId !== type.id) || [];\n setSubtypes(result.concat(list));\n }\n\n })\n .catch((error: any) => {\n console.error(error.response);\n //TODO: manage error\n })\n }\n\n const onDragEnd = (result: any): void => {\n const { destination, source } = result;\n if (!destination) {\n return;\n }\n \n if(source.droppableId !== destination.droppableId) {\n const el = subTypes.filter(s => s.parentId === Number(source.droppableId))[source.index];\n if(el) {\n el.parentId = Number(destination.droppableId);\n setSubtypes(subTypes.slice());\n updateParent(el);\n }\n }\n }\n\n const updateParent = (label: ITaxonomyLabel): void => {\n TaxonomyApi.updateLabel(label.id, label.name, label.parentId, label.isActive)\n .then(() => {\n utilsContext.addSnackbar('success', 'The label was moved.');\n })\n .catch((error: any) => {\n console.error(error.response);\n utilsContext.addSnackbar('error');\n })\n }\n\n return (\n \n \n \n Root Types\n \n \n \n You can select a label to see all taxonomies that in that category.\n \n \n\n \n {\n taxonomyContext.rootTypes.map((label: ITaxonomyLabel) => (\n onRootTypeClick(label)}\n />\n ))}\n \n\n {\n taxonomyContext.selectedRootType && subTypes && subTypes.length > 0 &&\n \n \n onRootTypeClick(taxonomyContext.selectedRootType)}\n onTypeClick={(type) => getTypes(type)}\n />\n \n \n }\n \n )\n}\n","import React, {useContext, useEffect} from \"react\";\nimport { makeStyles } from \"@material-ui/styles\";\nimport { Box, ThemeOptions, Typography } from \"@material-ui/core\";\n\nimport { TaxonomyApi } from \"core/api/admin\";\nimport { TaxonomyContext } from \"core/context/admin/taxonomy\";\n\nimport { RootTypes } from \"./components/RootTypes\";\nimport { ConfirmDeleteModal } from \"components/_others\";\nimport {UtilsContext} from \"../../../../../core/context/utils.context\";\n\nconst useStyles = makeStyles((theme: ThemeOptions) => ({\n labelsContainer: {\n marginTop: 30,\n width: '100%',\n border: '1px solid',\n borderColor: theme.divider.main,\n borderRadius: 1,\n padding: '20px 15px',\n }\n}))\n\nexport const Taxonomy: React.FC = () => {\n\n const classes = useStyles();\n const taxonomyContext = useContext(TaxonomyContext);\n const utilsContext = useContext(UtilsContext);\n\n\n useEffect(() => {\n TaxonomyApi.getRootTypes()\n .then((res: any) => {\n taxonomyContext.setRootTypes(res.data);\n })\n .catch((error: any) => {\n console.error(error.response);\n //TODO: manage error\n })\n }, [])\n\n const onDelete = (id: number): void => {\n TaxonomyApi.deleteLabel(id)\n .then(() => {\n taxonomyContext.pushDeletedLabel(id);\n taxonomyContext.setSelectedForDeleteId(null);\n utilsContext.addSnackbar('success', 'The label was deleted.');\n })\n .catch((error: any) => {\n console.error(error.response);\n utilsContext.addSnackbar('error');\n })\n }\n\n const isLabelInUse = (id: number): void => {\n TaxonomyApi.isLabelInUse(id)\n .then((res: any) => {\n if(res.data.success !== false) {\n const userResponse = confirm('This label is already in use.' +\n ' If you delete it, it will be removed from the feedbacks.');\n if(userResponse) {\n onDelete(id);\n }\n } else {\n onDelete(id);\n }\n })\n .catch((error: any) => {\n console.error(error.response);\n utilsContext.addSnackbar('error');\n })\n }\n\n return (\n \n \n Taxonomy\n \n\n \n \n \n\n taxonomyContext.setSelectedForDeleteId(null)}\n onConfirm={() => isLabelInUse(taxonomyContext.selectedForDeleteId || -1)}\n />\n \n )\n}\n","import React, {useContext, useEffect, useState} from \"react\";\nimport {modalStyles} from \"../../_others/modals/modal-styles\";\nimport {\n Backdrop,\n Box,\n Button,\n Chip,\n CircularProgress,\n Fade,\n InputLabel,\n Modal,\n TextField,\n Typography\n} from \"@material-ui/core\";\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport {Autocomplete} from \"@material-ui/lab\";\nimport {validateEmail} from \"../../../core/helpers\";\nimport ReplyIcon from \"@material-ui/icons/Reply\";\nimport {ManageUsersApi} from \"../../../core/api/admin/manage-users.api\";\nimport {ModalHeader} from \"../../_others/modals/ModalHeader\";\nimport {UtilsContext} from \"../../../core/context/utils.context\";\n\ntype InviteUsersModalProps = {\n open: boolean;\n handleClose: () => void;\n role: string;\n}\n\nexport const InviteUsersModal: React.FC = ({open, handleClose, role}) => {\n\n const classes = modalStyles();\n\n const [isLoading, setIsLoading] = useState(false);\n const [errorMessage, setErrorMessage] = useState('');\n const [emails, setEmails] = useState([]);\n const [currentEmail, setCurrentEmail] = useState('');\n const [message, setMessage] = useState('');\n const utilsContext = useContext(UtilsContext);\n\n const [alreadyInvitedUsers, setAlreadyInvitedUsers] = useState([]);\n\n useEffect(() => {\n setEmails([]);\n setMessage('');\n setErrorMessage('');\n setAlreadyInvitedUsers([]);\n }, [open])\n\n const onAddEmail = (values: any): void => {\n const newEmails = values;\n const invalidEmailIndex = newEmails.findIndex((el: string) => !validateEmail(el));\n if(invalidEmailIndex > -1) {\n newEmails.splice(invalidEmailIndex, 1);\n }\n setEmails(newEmails.slice());\n setCurrentEmail('');\n }\n\n const handleBlur = (): void => {\n if(currentEmail && validateEmail(currentEmail)) {\n const result = emails;\n result.push(currentEmail);\n setEmails(result.slice());\n }\n setCurrentEmail('');\n }\n\n const onInvite = (): void => {\n setIsLoading(true);\n setErrorMessage('');\n\n ManageUsersApi.inviteUsers({emails, role, message})\n .then((res: any) => {\n setIsLoading(false);\n utilsContext.addSnackbar('success', 'Success!');\n setAlreadyInvitedUsers(res.data);\n })\n .catch((error: any) => {\n console.error(error.response);\n setIsLoading(false);\n setErrorMessage('Sorry, there was an error. Please try again later.')\n })\n }\n\n return (\n \n \n
    \n\n handleClose()}\n />\n\n
    \n <>\n \n Provide one or more email addresses of the people with\n whom you want to send an invitation to join Artifact.\n \n onAddEmail(value)}\n onInputChange={(_e, value) => setCurrentEmail(value)}\n onBlur={() => handleBlur()}\n renderTags={(value, getTagProps) =>\n value.map((option, index) => (\n \n ))\n }\n renderInput={(params) => (\n \n )}\n />\n \n\n <>\n \n Add a short message\n \n setMessage(e.target.value)}\n />\n \n \n\n {\n errorMessage &&\n \n {errorMessage}\n \n }\n\n {\n alreadyInvitedUsers.length > 0 &&\n <>\n \n We were unable to send the invitation email to the following account(s),\n because those are already registered in the system:\n \n \n {alreadyInvitedUsers.join(', ')}\n \n \n }\n\n \n \n Cancel\n \n\n onInvite()}\n disabled={!emails.length}\n >\n {\n isLoading && \n }\n {\n !isLoading && \n }\n Invite\n \n \n
    \n
    \n \n )\n}\n","import React, { useContext, useEffect, useState } from \"react\";\nimport { Box, Button, Typography } from \"@material-ui/core\";\n\nimport { CollectorListingContext } from \"core/context/admin/collector-listing\";\nimport { GalleryTypeEnum } from \"components/Gallery/helpers/GalleryTypeEnum\";\nimport { UserRoles } from \"core/enums\";\n\nimport { Loader} from \"components/_others\";\nimport { Gallery } from \"components/Gallery\";\nimport { Searchbox } from \"components/_dashboard/Searchbox/Searchbox\";\nimport { InviteUsersModal } from \"components/_dashboard/InviteUsersModal\";\nimport {useHistory} from \"react-router-dom\";\nimport {getCurrentPageFromUrl} from \"../../../../../core/helpers/utils\";\nimport {AppRoutes} from \"../../../../../core/helpers\";\nimport {UtilsContext} from \"../../../../../core/context/utils.context\";\nimport {AdminUsersApi} from \"../../../../../core/api/admin-users.api\";\n\n\nexport const CollectorListing: React.FC = () => {\n\n const history = useHistory();\n\n const collectorListingContext = useContext(CollectorListingContext);\n\n const [displayInviteModal, toggleInviteModal] = useState(false);\n const utilsContext = useContext(UtilsContext); const [searchBy, setSearchBy] = useState('');\n\n useEffect(() => {\n const page = getCurrentPageFromUrl();\n collectorListingContext.setCurrentPage(page);\n getCollectors(page, '');\n }, [])\n\n const getCollectors = (page: number, searchBy: string): void => {\n collectorListingContext.setLoading(true);\n\n AdminUsersApi.getCollectors(collectorListingContext.pagination.size, page, searchBy)\n .then((res: any) => {\n collectorListingContext.setCollectors(res.data);\n window.scrollTo(0, 0);\n })\n .catch((error: any) => {\n console.error(error.response);\n utilsContext.addSnackbar('error');\n })\n }\n\n const handlePageChange = (page: number, searchBy: string): void => {\n history.push(`${AppRoutes.COLLECTOR_LISTING}?page=${page}`);\n collectorListingContext.setCurrentPage(page);\n getCollectors(page, searchBy);\n }\n\n return (\n \n {\n !collectorListingContext.isLoading &&\n <>\n \n \n \n Collectors\n \n \n {collectorListingContext.statistics.totalUsers}\n \n \n \n toggleInviteModal(true)}\n >\n Invite Collectors\n \n\n setSearchBy(val)}\n onClear={() => {\n setSearchBy('');\n handlePageChange(1, '');\n }}\n onSearch={(val: string) => val && val.length > 3\n ? handlePageChange(1, val)\n : handlePageChange(1, '')\n }\n />\n \n \n\n\n \n handlePageChange(page, searchBy)}\n />\n \n\n {\n collectorListingContext.displayEmptyPage &&\n \n This list is empty.\n \n }\n\n \n }\n\n {\n collectorListingContext.isLoading &&\n \n }\n\n toggleInviteModal(false)}\n />\n \n )\n}\n","import React from \"react\";\nimport {Box, Checkbox, FormControlLabel, Typography} from \"@material-ui/core\";\nimport {ExpertsSearchType} from \"core/enums\";\n\ntype SearchTypeProps = {\n searchType: string;\n onChange: (type: string) => void;\n}\n\nexport const SearchType: React.FC = ({searchType, onChange}) => {\n\n return (\n \n onChange(ExpertsSearchType.Type)}\n />\n }\n label={\n \n Type\n \n }\n />\n onChange(ExpertsSearchType.Location)}\n />\n }\n label={\n \n Location\n \n }\n />\n onChange(ExpertsSearchType.Expertise)}\n />\n }\n label={\n \n Expertise\n \n }\n />\n \n )\n}\n","import React, {useContext, useEffect, useState} from \"react\";\nimport {Box, Button, Typography} from \"@material-ui/core\";\n\nimport {ExpertListingContext} from \"core/context/admin/expert-listing\";\nimport {GalleryTypeEnum} from \"components/Gallery/helpers/GalleryTypeEnum\";\n\nimport {Gallery} from \"components/Gallery\";\nimport {Loader} from \"components/_others\";\nimport {Searchbox} from \"components/_dashboard/Searchbox/Searchbox\";\nimport {ExpertsSearchType, UserRoles} from \"core/enums\";\nimport {InviteUsersModal} from \"components/_dashboard/InviteUsersModal\";\nimport {useHistory} from \"react-router-dom\";\nimport {getCurrentPageFromUrl} from \"core/helpers/utils\";\nimport {AppRoutes} from \"core/helpers\";\nimport {UtilsContext} from \"core/context/utils.context\";\nimport {AdminUsersApi} from \"core/api/admin-users.api\";\nimport {SearchType} from \"./SearchType\";\n\nexport const ExpertListing: React. FC = () => {\n\n const history = useHistory();\n\n const expertListingContext = useContext(ExpertListingContext);\n const utilsContext = useContext(UtilsContext);\n\n const [displayInviteModal, toggleInviteModal] = useState(false);\n const [searchBy, setSearchBy] = useState('');\n const [searchType, setSearchType] = useState(ExpertsSearchType.Default);\n\n useEffect(() => {\n const page = getCurrentPageFromUrl();\n expertListingContext.setCurrentPage(page);\n getExperts(page, '');\n }, [])\n\n useEffect(() => {\n if(searchBy.trim().length < 4) {\n return;\n }\n getExperts(expertListingContext.pagination.page, searchBy);\n }, [searchType])\n\n const getExperts = (page: number, searchBy: string): void => {\n expertListingContext.setLoading(true);\n\n AdminUsersApi.getExperts(expertListingContext.pagination.size, page, searchBy, searchType)\n .then((res: any) => {\n expertListingContext.setExperts(res.data);\n window.scrollTo(0, 0);\n })\n .catch((error: any) => {\n console.error(error.response);\n utilsContext.addSnackbar('error');\n })\n }\n\n const handlePageChange = (page: number, searchBy: string): void => {\n history.push(`${AppRoutes.EXPERT_LISTING}?page=${page}`);\n expertListingContext.setCurrentPage(page);\n getExperts(page, searchBy);\n }\n\n return (\n \n {\n !expertListingContext.isLoading &&\n <>\n \n \n \n Experts\n \n \n {expertListingContext.statistics.totalUsers}\n \n \n\n \n toggleInviteModal(true)}\n >\n Invite Experts\n \n\n \n setSearchBy(val)}\n onClear={() => {\n setSearchBy('');\n handlePageChange(1, '');\n }}\n onSearch={(val: string) => val && val.length > 3\n ? handlePageChange(1, val)\n : handlePageChange(1, '')\n }\n />\n \n setSearchType(type === searchType\n ? ExpertsSearchType.Default\n : type\n )}\n />\n \n \n\n \n \n\n \n handlePageChange(page, searchBy)}\n />\n \n\n {\n expertListingContext.displayEmptyPage &&\n \n This list is empty.\n \n }\n\n \n }\n\n {\n expertListingContext.isLoading &&\n \n }\n\n toggleInviteModal(false)}\n />\n \n )\n}\n","import React, { useContext, useEffect, useState } from \"react\";\nimport {Box, Button, Typography} from \"@material-ui/core\";\n\nimport { ArchivistListingContext } from \"core/context/admin/archivist-listing\";\nimport { GalleryTypeEnum } from \"components/Gallery/helpers/GalleryTypeEnum\";\n\nimport { Loader} from \"components/_others\";\nimport { Gallery } from \"components/Gallery\";\nimport { Searchbox } from \"components/_dashboard/Searchbox/Searchbox\";\nimport { UserRoles } from \"core/enums\";\nimport { InviteUsersModal } from \"components/_dashboard/InviteUsersModal\";\nimport {getCurrentPageFromUrl} from \"../../../../../core/helpers/utils\";\nimport {AppRoutes} from \"../../../../../core/helpers\";\nimport {useHistory} from \"react-router-dom\";\nimport {UtilsContext} from \"../../../../../core/context/utils.context\";\nimport {AdminUsersApi} from \"../../../../../core/api/admin-users.api\";\n\nexport const ArchivistListing: React.FC = () => {\n\n const history = useHistory();\n\n const archivistListingContext = useContext(ArchivistListingContext);\n\n const [displayInviteModal, toggleInviteModal] = useState(false);\n const utilsContext = useContext(UtilsContext);\n const [searchBy, setSearchBy] = useState('');\n\n useEffect(() => {\n const page = getCurrentPageFromUrl();\n archivistListingContext.setCurrentPage(page);\n getArchivists(page, '');\n }, [])\n\n const getArchivists = (page: number, searchBy: string): void => {\n archivistListingContext.setLoading(true);\n\n AdminUsersApi.getArchivists(archivistListingContext.pagination.size, page, searchBy)\n .then((res: any) => {\n archivistListingContext.setArchivists(res.data);\n window.scrollTo(0, 0);\n })\n .catch((error: any) => {\n console.error(error.response);\n utilsContext.addSnackbar('error');\n })\n }\n\n const handlePageChange = (page: number, searchBy: string): void => {\n history.push(`${AppRoutes.ARCHIVIST_LISTING}?page=${page}`);\n archivistListingContext.setCurrentPage(page);\n getArchivists(page, searchBy);\n }\n\n return (\n \n {\n !archivistListingContext.isLoading &&\n <>\n\n \n \n \n Archivists\n \n \n {archivistListingContext.statistics.totalUsers}\n \n \n \n toggleInviteModal(true)}\n >\n Invite Archivists\n \n setSearchBy(val)}\n onClear={() => {\n setSearchBy('');\n handlePageChange(1, '');\n }}\n onSearch={(val: string) => val && val.length > 3\n ? handlePageChange(1, val)\n : handlePageChange(1, '')\n }\n />\n \n \n\n \n handlePageChange(page, searchBy)}\n />\n \n\n {\n archivistListingContext.displayEmptyPage &&\n \n This list is empty.\n \n }\n\n \n }\n\n {\n archivistListingContext.isLoading &&\n \n }\n\n toggleInviteModal(false)}\n />\n \n )\n}\n","import React, { useContext, useEffect, useState } from \"react\";\nimport {Box, Button, Typography} from \"@material-ui/core\";\n\nimport { CuratorListingContext } from \"core/context/admin/curator-listing\";\nimport { GalleryTypeEnum } from \"components/Gallery/helpers/GalleryTypeEnum\";\n\nimport { Loader} from \"components/_others\";\nimport { Gallery } from \"components/Gallery\";\nimport { Searchbox } from \"components/_dashboard/Searchbox/Searchbox\";\nimport { UserRoles } from \"core/enums\";\nimport { InviteUsersModal } from \"components/_dashboard/InviteUsersModal\";\nimport {getCurrentPageFromUrl} from \"../../../../../core/helpers/utils\";\nimport {useHistory} from \"react-router-dom\";\nimport {AppRoutes} from \"../../../../../core/helpers\";\nimport {UtilsContext} from \"../../../../../core/context/utils.context\";\nimport {AdminUsersApi} from \"../../../../../core/api/admin-users.api\";\n\nexport const CuratorListing: React.FC = () => {\n\n const history = useHistory();\n\n const curatorListingContext = useContext(CuratorListingContext);\n\n const [displayInviteModal, toggleInviteModal] = useState(false);\n const utilsContext = useContext(UtilsContext); const [searchBy, setSearchBy] = useState('');\n\n useEffect(() => {\n const page = getCurrentPageFromUrl();\n curatorListingContext.setCurrentPage(page);\n getCurators(page, '');\n }, [])\n\n const getCurators = (page: number, searchBy: string): void => {\n curatorListingContext.setLoading(true);\n\n AdminUsersApi.getCurators(curatorListingContext.pagination.size, page, searchBy)\n .then((res: any) => {\n curatorListingContext.setCurators(res.data);\n window.scrollTo(0, 0);\n })\n .catch((error: any) => {\n console.error(error.response);\n utilsContext.addSnackbar('error');\n })\n }\n\n const handlePageChange = (page: number, searchBy: string): void => {\n history.push(`${AppRoutes.CURATOR_LISTING}?page=${page}`);\n curatorListingContext.setCurrentPage(page);\n getCurators(page, searchBy);\n }\n\n return (\n \n {\n !curatorListingContext.isLoading &&\n <>\n \n \n \n Curators\n \n \n {curatorListingContext.statistics.totalUsers}\n \n \n \n toggleInviteModal(true)}\n >\n Invite Curators\n \n\n setSearchBy(val)}\n onClear={() => {\n setSearchBy('');\n handlePageChange(1, '');\n }}\n onSearch={(val: string) => val && val.length > 3\n ? handlePageChange(1, val)\n : handlePageChange(1, '')\n }\n />\n \n \n\n \n handlePageChange(page, searchBy)}\n />\n \n\n {\n curatorListingContext.displayEmptyPage &&\n \n This list is empty.\n \n }\n\n \n }\n\n {\n curatorListingContext.isLoading &&\n \n }\n\n toggleInviteModal(false)}\n />\n \n )\n}\n","import React, { useState } from \"react\";\nimport { makeStyles} from \"@material-ui/styles\";\n\nimport { EditUserAccessModal } from \"../EditUserAccessModal/EditUserAccessModal\";\n\ntype AccessStatusLabelProps = {\n isActive: boolean;\n userId: number;\n hasActiveJobs?: boolean;\n}\n\nconst useStyles = makeStyles({\n root: {\n fontSize: 14,\n padding: '5px 15px',\n borderRadius: 2,\n cursor: 'pointer',\n }\n})\n\nexport const AccessStatusLabel: React.FC = ({isActive, userId, hasActiveJobs}) => {\n\n const classes = useStyles();\n\n const [isEnabled, setIsEnabled] = useState(isActive);\n\n const [displayEditModal, setDisplayEditModal] = useState(false);\n\n return (\n <>\n setDisplayEditModal(true)}\n className={classes.root}\n style={\n isEnabled\n ? {backgroundColor: 'rgb(200 230 198)', color: 'rgb(9 107 5)'}\n : {backgroundColor: 'rgb(234 184 184)', color: 'rgb(107 5 5)'}\n }\n >\n {isEnabled ? 'Active' : 'Inactive'}\n \n\n setDisplayEditModal(false)}\n onSuccess={() => setIsEnabled(!isEnabled)}\n />\n \n )\n}\n","import React, { useContext, useEffect, useState } from 'react';\nimport InputMask from 'react-input-mask';\nimport { makeStyles } from '@material-ui/styles';\nimport {\n Backdrop,\n Box,\n Button,\n CircularProgress,\n Fade,\n Grid,\n InputLabel,\n MenuItem,\n Modal,\n Select,\n TextField,\n ThemeOptions,\n Typography,\n} from '@material-ui/core';\n\nimport { modalStyles } from 'components/_others/modals/modal-styles';\nimport CloseIcon from '@material-ui/icons/Close';\nimport SaveIcon from '@material-ui/icons/Save';\n\nimport { CommonApi, ICity, ICountry, ICurrency, IState } from 'core/api/shared';\nimport { ManageUsersApi } from 'core/api/admin/manage-users.api';\n\nimport { UserRoles, WEBSITE } from '../../../core';\nimport { cleanPhoneNumber } from '../../../core/helpers/utils';\nimport { UtilsContext } from '../../../core/context/utils.context';\n\ntype EditUserProfileModalProps = {\n open: boolean;\n handleClose: () => void;\n onConfirm: () => void;\n modalTitle: string;\n userId: number;\n data: {\n role: string;\n firstName: string;\n lastName: string;\n title: string;\n phoneNumber: string;\n description: string;\n organization: string;\n expertise?: string;\n website: string;\n address: string;\n currencyId: number;\n countryId: number;\n stateId: number;\n cityId: number;\n };\n};\n\nconst useStyles = makeStyles((theme: ThemeOptions) => ({\n root: {\n marginTop: 20,\n },\n label: {\n color: theme.formLabel.main,\n opacity: 0.9,\n },\n errorLabel: {\n color: '#B32222',\n },\n focusLabel: {\n color: '#FE6502',\n },\n formControl: {\n marginBottom: 15,\n marginTop: 4,\n },\n}));\n\nexport const EditUserProfileModal: React.FC = ({\n open,\n handleClose,\n onConfirm,\n modalTitle,\n userId,\n data,\n}) => {\n const classes = modalStyles();\n const formClasses = useStyles();\n\n const [isLoading, setIsLoading] = useState(false);\n const [onFocus, setOnFocus] = useState('');\n const utilsContext = useContext(UtilsContext);\n\n const [currencies, setCurrencies] = useState([]);\n const [countries, setCountries] = useState([]);\n const [states, setStates] = useState([]);\n const [cities, setCities] = useState([]);\n\n const [values, setValues] = useState({\n role: '',\n firstName: '',\n lastName: '',\n title: '',\n description: '',\n organization: '',\n website: '',\n address: '',\n phoneNumber: '',\n expertise: '',\n currencyId: -1,\n countryId: -1,\n stateId: -1,\n cityId: -1,\n });\n const [errors, setErrors] = useState({\n firstName: '',\n lastName: '',\n website: '',\n expertise: '',\n phoneNumber: '',\n });\n\n useEffect(() => {\n setIsLoading(false);\n setValues({ ...data, expertise: data.expertise || '' });\n getCurrencies();\n getCountries();\n\n if (data.stateId !== undefined) {\n getStates(data.countryId);\n }\n if (data.cityId !== undefined) {\n getCities(data.stateId);\n }\n }, []);\n\n const getCurrencies = (): void => {\n CommonApi.getCurrencies()\n .then((res: any) => {\n setCurrencies(res.data);\n })\n .catch((error: any) => {\n console.error(error.response);\n });\n };\n\n const getCountries = (): void => {\n CommonApi.getCountries()\n .then((res: any) => {\n setCountries(res.data);\n })\n .catch((error: any) => {\n console.error(error.response);\n });\n };\n\n const getStates = (countryId: number): void => {\n CommonApi.getStates(countryId)\n .then((res: any) => {\n setStates(res.data);\n })\n .catch((error: any) => {\n console.error(error.response);\n });\n };\n\n const getCities = (stateId: number): void => {\n CommonApi.getCities(stateId)\n .then((res: any) => {\n setCities(res.data);\n })\n .catch((error: any) => {\n console.error(error.response);\n });\n };\n\n const manageErrors = (): void => {\n const errF = !values.firstName\n ? 'Please enter your first name'\n : values.firstName.replace(/[a-z]/g, '').length === values.firstName.length\n ? 'Please enter a valid first name'\n : '';\n\n const errL = !values.lastName\n ? 'Please enter your last name'\n : values.lastName.replace(/[a-z]/g, '').length === values.lastName.length\n ? 'Please enter a valid last name'\n : '';\n\n const errW =\n values.website && !WEBSITE.test(values.website) ? 'Website format is not valid. Eg. www.artifact.com' : '';\n const errExp = !values.expertise.trim().length ? 'Please enter the expertise.' : '';\n const errP =\n cleanPhoneNumber(values.phoneNumber).length !== 10 && cleanPhoneNumber(values.phoneNumber).length !== 0\n ? 'Invalid phone number'\n : '';\n setErrors({\n firstName: errF,\n lastName: errL,\n expertise: errExp,\n website: errW,\n phoneNumber: errP,\n });\n };\n\n const onSave = (): void => {\n manageErrors();\n if (\n !values.firstName ||\n !values.lastName ||\n (values.website && !WEBSITE.test(values.website)) ||\n (errors.expertise !== '' && data.role === UserRoles.EXPERT) ||\n errors.phoneNumber !== ''\n ) {\n return;\n }\n setIsLoading(true);\n ManageUsersApi.updateUserProfile(userId, values, data.role)\n .then(() => {\n setIsLoading(false);\n onConfirm();\n })\n .catch((error: any) => {\n console.error(error.response);\n setIsLoading(false);\n utilsContext.addSnackbar('error');\n });\n };\n\n return (\n \n \n
    \n \n \n {modalTitle}\n \n \n \n\n
    \n <>\n \n First Name*\n \n setValues({ ...values, firstName: e.target.value })}\n onFocus={() => setOnFocus('firstName')}\n onBlur={() => {\n setOnFocus('');\n manageErrors();\n }}\n />\n \n\n <>\n \n Last Name*\n \n setValues({ ...values, lastName: e.target.value })}\n onFocus={() => setOnFocus('lastName')}\n onBlur={() => {\n setOnFocus('');\n manageErrors();\n }}\n />\n \n\n <>\n \n Title\n \n setValues({ ...values, title: e.target.value })}\n onFocus={() => setOnFocus('title')}\n onBlur={() => {\n setOnFocus('');\n }}\n />\n \n\n <>\n \n Phone Number\n \n setValues({ ...values, phoneNumber: e.target.value })}\n onFocus={() => setOnFocus('phoneNumber')}\n onBlur={() => {\n setOnFocus('');\n manageErrors();\n }}\n disabled={false}\n >\n {(inputProps: any) => (\n \n )}\n \n \n\n <>\n \n Bio\n \n setValues({ ...values, description: e.target.value })}\n onFocus={() => setOnFocus('description')}\n onBlur={() => {\n setOnFocus('');\n }}\n />\n \n\n {data.role === UserRoles.EXPERT && (\n <>\n \n Expertise\n \n setValues({ ...values, expertise: e.target.value })}\n onFocus={() => setOnFocus('expertise')}\n onBlur={() => {\n setOnFocus('');\n manageErrors();\n }}\n />\n \n )}\n\n <>\n \n Address\n \n setValues({ ...values, address: e.target.value })}\n onFocus={() => setOnFocus('address')}\n onBlur={() => {\n setOnFocus('');\n }}\n />\n \n\n \n \n <>\n \n Country\n \n setOnFocus('country')}\n onBlur={() => {\n setOnFocus('');\n manageErrors();\n }}\n onChange={(e) => {\n setValues({\n ...values,\n countryId: Number(e.target.value),\n stateId: -1,\n cityId: -1,\n });\n setCities([]);\n getStates(Number(e.target.value));\n }}\n >\n \n None\n \n {countries.map((c) => (\n \n {c.name}\n \n ))}\n \n \n \n\n \n <>\n \n State\n \n setOnFocus('state')}\n onBlur={() => {\n setOnFocus('');\n }}\n onChange={(e) => {\n setValues({\n ...values,\n stateId: Number(e.target.value),\n cityId: -1,\n });\n getCities(Number(e.target.value));\n }}\n >\n \n None\n \n {states.map((c) => (\n \n {c.name}\n \n ))}\n \n \n \n\n \n <>\n \n City\n \n setOnFocus('city')}\n onBlur={() => {\n setOnFocus('');\n }}\n onChange={(e) => {\n setValues({ ...values, cityId: Number(e.target.value) });\n }}\n >\n \n None\n \n {cities.map((c) => (\n \n {c.name}\n \n ))}\n \n \n \n \n\n <>\n \n Organization\n \n setValues({ ...values, organization: e.target.value })}\n onFocus={() => setOnFocus('organization')}\n onBlur={() => {\n setOnFocus('');\n manageErrors();\n }}\n />\n \n\n <>\n \n Website\n \n setValues({ ...values, website: e.target.value })}\n onFocus={() => setOnFocus('website')}\n onBlur={() => {\n setOnFocus('');\n manageErrors();\n }}\n />\n \n\n <>\n \n Currency\n \n setOnFocus('currency')}\n onBlur={() => {\n setOnFocus('');\n }}\n onChange={(e) => setValues({ ...values, currencyId: Number(e.target.value) })}\n >\n \n None\n \n {currencies.map((c) => (\n \n {c.code} - {c.name}\n \n ))}\n \n \n \n\n \n \n Cancel\n \n\n onSave()}\n >\n {isLoading && }\n {!isLoading && (\n \n )}\n Save\n \n \n
    \n
    \n \n );\n};\n","import React, {useContext, useEffect, useState} from \"react\";\nimport { makeStyles } from \"@material-ui/styles\";\nimport { modalStyles } from \"components/_others/modals/modal-styles\";\nimport { Backdrop, Box, Button, CircularProgress, Fade, Modal, ThemeOptions, Typography } from \"@material-ui/core\";\n\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport SaveIcon from '@material-ui/icons/Save';\n\nimport { CollectorsApi } from \"core/api/admin\";\nimport { CollectorTypes } from \"core/enums\";\n\nimport {UtilsContext} from \"../../../../../../core/context/utils.context\";\n\ntype EditUserAccessModalProps = {\n open: boolean;\n userId: number;\n type: string;\n handleClose: () => void;\n onSuccess: () => void;\n}\n\nconst useStyles = makeStyles((theme: ThemeOptions) => ({\n label: {\n backgroundColor: theme.label.main,\n fontSize: 14,\n padding: '5px 15px',\n borderRadius: 2,\n marginRight: 7,\n cursor: 'pointer',\n }\n}))\n\nexport const ChangeCollectorTypeModal: React.FC = (\n {open, userId, type, handleClose, onSuccess}\n) => {\n\n const classes = modalStyles();\n const labelClasses = useStyles();\n\n const [selectedType, setSelectedType] = useState(type);\n const [isLoading, setIsLoading] = useState(false);\n const utilsContext = useContext(UtilsContext);\n useEffect(() => {\n setSelectedType(type);\n }, [open])\n\n const onConfirm = (): void => {\n setIsLoading(true);\n\n CollectorsApi.changeCollectorType(userId, selectedType)\n .then(() => {\n setIsLoading(false);\n onSuccess();\n handleClose();\n })\n .catch((error: any) => {\n console.error(error.response);\n setIsLoading(false);\n utilsContext.addSnackbar('error');\n })\n }\n\n return (\n \n \n
    \n \n \n \n\n \n \n Change Collector Type\n \n \n\n \n setSelectedType(CollectorTypes.AVID)}\n className={labelClasses.label}\n style={selectedType === CollectorTypes.AVID\n ? {backgroundColor: '#FE6502', color: 'white'}\n : {}}\n >\n {CollectorTypes.AVID}\n \n setSelectedType(CollectorTypes.AVERAGE)}\n className={labelClasses.label}\n style={selectedType === CollectorTypes.AVERAGE\n ? {backgroundColor: '#FE6502', color: 'white'}\n : {}}\n >\n {CollectorTypes.AVERAGE}\n \n \n\n \n \n Cancel\n \n\n onConfirm()}\n >\n {\n isLoading && \n }\n {\n !isLoading && \n }\n Save\n \n \n
    \n
    \n \n )\n}\n","import React, {useState} from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport { makeStyles } from \"@material-ui/styles\";\nimport { Box, ThemeOptions, Typography } from \"@material-ui/core\";\n\nimport AccountCircleIcon from \"@material-ui/icons/AccountCircle\";\nimport EditIcon from '@material-ui/icons/Edit';\n\nimport { ICollectorProfile } from \"core/context/admin/collector-profile\";\nimport {FileSize, UserRoles} from \"core/enums\";\nimport { getPhotoUrl } from \"core/helpers\";\n\nimport { AccessStatusLabel } from \"components/_dashboard/_user-profiles\";\nimport { EditUserProfileModal } from \"components/_dashboard/_user-profiles/EditUserProfileModal\";\nimport { ChangeCollectorTypeModal } from \"./ChangeCollectorTypeModal\";\nimport { formatAddress } from \"core/helpers/format-address\";\n\ntype LightboxProps = {\n user: ICollectorProfile;\n}\n\nconst useStyles = makeStyles((theme: ThemeOptions) => ({\n root: {\n display: 'flex',\n alignItems: 'flex-start',\n },\n detailsBox: {\n marginTop: 10\n },\n actionsBox: {\n marginTop: 10,\n display: 'flex',\n alignItems: 'center'\n },\n avatarPlaceholder: {\n width: 160,\n height: 160,\n color: '#FE6502',\n marginLeft: -10\n },\n userAvatar: {\n width: 160,\n height: 160,\n borderRadius: 150,\n marginRight: 15\n },\n title: {\n fontSize: 12,\n },\n userName: {\n fontSize: 32,\n fontWeight: 'bold',\n lineHeight: 1\n },\n contactDetails: {\n fontSize: 14,\n },\n typeLabel: {\n backgroundColor: theme.label.main,\n fontSize: 14,\n padding: '5px 15px',\n borderRadius: 2,\n marginRight: 7,\n cursor: 'pointer',\n },\n editButton: {\n marginLeft: 15,\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center'\n },\n editIcon: {\n width: 20,\n height: 20,\n marginRight: 2\n }\n}))\n\nexport const Lightbox: React.FC = ({user}) => {\n\n const classes = useStyles();\n const history = useHistory();\n\n const [displayEditProfileModal, toggleDisplayEditProfileModal] = useState(false);\n const [displayEditTypeModal, toggleEditTypeModal] = useState(false);\n\n return (\n \n \n {\n !user.photoUrl &&\n \n }\n {\n user.photoUrl &&\n \n }\n \n\n \n \n {user.title}\n \n \n {user.firstName}{' '}{user.lastName}\n \n \n {user.email}\n \n {\n !user.email &&\n \n Registered with an external provider that does not provide us the e-mail.\n
    \n No email will be sent from us.\n
    \n }\n \n {user.phoneNumber}\n \n \n {\n formatAddress(\n user.country?.name || '',\n user.state?.name || '',\n user.city?.name || ''\n )\n }\n \n\n \n toggleEditTypeModal(true)}>\n {user.type}\n \n \n\n toggleDisplayEditProfileModal(true)}\n >\n Edit\n \n \n\n {\n displayEditProfileModal &&\n toggleDisplayEditProfileModal(false)}\n modalTitle={'Edit collector’s profile'}\n onConfirm={() => history.go(0)}\n userId={user.userId}\n data={{\n role: UserRoles.COLLECTOR,\n firstName: user.firstName || '',\n lastName: user.lastName || '',\n title: user.title || '',\n phoneNumber: user.phoneNumber || '',\n description: user.description || '',\n address: user.address || '',\n organization: user.organization || '',\n website: user.website || '',\n currencyId: user.currency?.id,\n countryId: user.country?.id,\n stateId: user.state?.id,\n cityId: user.city?.id,\n }}\n />\n }\n\n toggleEditTypeModal(false)}\n onSuccess={() => history.go(0)}\n />\n\n
    \n
    \n )\n}\n","import React from \"react\";\nimport { makeStyles } from \"@material-ui/styles\";\nimport { Box, ThemeOptions, Typography } from \"@material-ui/core\";\n\ntype StatsProps = {\n totalObjects: number;\n totalReviewedObjects: number;\n registerPurpose: string[];\n}\n\nconst useStyles = makeStyles((theme: ThemeOptions) => ({\n label: {\n fontSize: 16,\n marginBottom: 7,\n },\n value: {\n color: theme.palette?.text?.primary,\n }\n}))\n\nexport const Stats: React.FC = ({totalObjects, totalReviewedObjects, registerPurpose}) => {\n\n const classes = useStyles();\n\n return (\n \n \n Register Reason:{' '}\n \n {registerPurpose.join(' ') || 'unknown'}\n \n \n \n Total Objects:{' '}\n {totalObjects} objects\n \n\n \n Total Expert Reviews:{' '}\n {totalReviewedObjects} objects\n \n \n )\n}\n","import React from \"react\";\nimport { makeStyles } from \"@material-ui/styles\";\nimport { Box, ThemeOptions, Typography } from \"@material-ui/core\";\n\nimport { ICollectorProfile } from \"core/context/admin/collector-profile\";\n\ntype BioProps = {\n user: ICollectorProfile\n}\n\nconst useStyles = makeStyles((_theme: ThemeOptions) => ({\n label: {\n fontSize: 15,\n },\n value: {\n fontSize: 16,\n marginBottom: 5,\n }\n}))\n\nexport const Bio: React.FC = ({user}) => {\n\n const classes = useStyles();\n\n return (\n \n \n Bio\n \n \n {user.description || 'unknown'}\n \n\n \n Address\n \n \n {user.address || 'unknown'}\n \n\n \n Organization\n \n \n {user.organization || 'unknown'}\n \n\n \n Website\n \n \n {user.website || 'unknown'}\n \n\n \n Currency\n \n \n {user.currency?.code || 'unknown'}\n \n \n )\n}\n","import React from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { makeStyles } from \"@material-ui/styles\";\nimport { Box, ThemeOptions, Typography } from \"@material-ui/core\";\n\nimport { IActiveRequest } from \"core/context/admin/collector-profile\";\nimport { AppRoutes } from \"core/helpers\";\n\ntype ActiveRequestsProps = {\n activeRequests: IActiveRequest[]\n}\n\nconst useStyles = makeStyles((theme: ThemeOptions) => ({\n title: {\n fontSize: 16,\n marginBottom: 7\n },\n emptyText: {\n fontSize: 14,\n },\n requestBox: {\n backgroundColor: theme.label.main,\n borderLeft: '7px solid #FE6502',\n padding: '10px',\n borderRadius: 2,\n marginBottom: 10,\n width: '100%'\n },\n objectTitle: {\n fontSize: 15,\n color: theme.label.text,\n },\n subtitle: {\n fontSize: 14,\n },\n link: {\n color: '#029BFE'\n }\n}))\n\nexport const ActiveRequests: React.FC = ({activeRequests}) => {\n\n const classes = useStyles();\n\n return (\n \n \n Active Requests:\n \n {\n activeRequests.map(object => (\n \n \n {object.artifact.title}\n \n \n This collector requested feedback for{' '}\n this object\n .\n \n \n ))\n }\n {\n !activeRequests.length &&\n \n This collector has no active requests.\n \n }\n \n )\n}\n","import React from \"react\";\nimport {Box, ThemeOptions, Tooltip, Typography} from \"@material-ui/core\";\nimport {IArtifact} from \"../../../../../../core/context/admin/collector-profile\";\nimport {makeStyles} from \"@material-ui/styles\";\nimport {AppRoutes, getPhotoUrl} from \"../../../../../../core/helpers\";\nimport {FileSize} from \"../../../../../../core/enums\";\nimport imagePlaceholder from \"../../../../../../assets/placeholders/artifact-placeholder.png\";\nimport {Link} from \"react-router-dom\";\n\ntype ArtifactCardProps = {\n artifact: IArtifact;\n collectorId: number;\n}\n\nconst useStyles = makeStyles((_theme: ThemeOptions) => ({\n root: {\n width: '32%',\n marginBottom: 10,\n marginRight: '1.3%'\n },\n img: {\n width: '100%',\n height: 180,\n objectFit: 'cover'\n },\n titleBox: {\n marginTop: -6,\n },\n title: {\n fontSize: 16,\n textTransform: 'capitalize',\n backgroundColor: '#2B2B33',\n color: 'white',\n padding: '3px 10px',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n }\n}))\n\nexport const ArtifactCard: React.FC = ({artifact, collectorId}) => {\n\n const classes = useStyles();\n\n return (\n \n \n \n \n \n \n {artifact.title}\n \n \n\n \n \n \n )\n}\n\n","import React, { useContext, useEffect, useState } from \"react\";\nimport { makeStyles } from \"@material-ui/styles\";\nimport {Box, ThemeOptions, Typography} from \"@material-ui/core\";\nimport Pagination from \"@material-ui/lab/Pagination\";\n\nimport { CollectorProfileContext } from \"core/context/admin/collector-profile\";\nimport { CollectorsApi } from \"core/api/admin\";\n\nimport { Loader } from \"components/_others\";\nimport { ArtifactCard } from \"./ArtifactCard\";\nimport {UtilsContext} from \"../../../../../../core/context/utils.context\";\n\ntype ArtifactsListProps = {\n userId: number;\n}\n\nexport const ArtifactsList: React.FC = ({userId}) => {\n\n const classes = useStyles();\n const collectorProfileContext = useContext(CollectorProfileContext);\n\n const [isLoading, setIsLoading] = useState(true);\n const utilsContext = useContext(UtilsContext);\n useEffect(() => {\n collectorProfileContext.setCurrentPage(1);\n getArtifacts(1);\n }, []);\n\n const getArtifacts = (page: number): void => {\n CollectorsApi.getCollectorArtifacts(userId, collectorProfileContext.artifactsPagination.size, page)\n .then((res: any) => {\n collectorProfileContext.setArtifacts(res.data);\n setIsLoading(false);\n window.scrollTo(0, 0);\n })\n .catch((error: any) => {\n console.error(error.response);\n setIsLoading(false);\n utilsContext.addSnackbar('error');\n })\n }\n\n const handlePageChange = (page: number): void => {\n collectorProfileContext.setCurrentPage(page);\n getArtifacts(page);\n }\n\n return (\n \n {\n !isLoading &&\n <>\n {\n collectorProfileContext.artifacts.map(artifact => (\n \n ))\n }\n\n {\n collectorProfileContext.artifactsPagination.numberOfPages > 1 &&\n \n handlePageChange(value)}\n />\n \n }\n\n {\n collectorProfileContext?.artifacts?.length === 0 &&\n \n This collector has no objects.\n \n }\n\n \n }\n {\n isLoading &&\n \n \n \n \n \n }\n \n )\n}\n\nconst useStyles = makeStyles((_theme: ThemeOptions) => ({\n root: {\n fontSize: 16,\n display: 'flex',\n flexWrap: 'wrap',\n flexDirection: 'row',\n },\n}))\n","import React, { useContext, useState } from 'react';\nimport { InputLabel, MenuItem, Select } from '@material-ui/core';\nimport { UserRoles } from '../../../core/enums';\nimport { ManageUsersApi } from '../../../core/api/admin/manage-users.api';\nimport { useHistory } from 'react-router-dom';\nimport { AppRoutes } from '../../../core/helpers';\nimport { UtilsContext } from '../../../core/context/utils.context';\nimport { IArchivistProfile } from 'core/context/admin/archivist-profile';\nimport { IExpertProfile } from 'core/context/admin/expert-profile';\nimport { ICollectorProfile } from 'core/context/admin/collector-profile';\nimport { ICuratorProfile } from 'core/context/admin/curator-profile';\n\ntype ChangeUserRoleProps = {\n user: IArchivistProfile | IExpertProfile | ICollectorProfile | ICuratorProfile;\n currentRole: string;\n};\n\nexport const ChangeUserRole: React.FC = ({ user, currentRole }) => {\n const history = useHistory();\n\n const [role, setRole] = useState(currentRole);\n const utilsContext = useContext(UtilsContext);\n\n const onSelectRole = (role: string): void => {\n const confirmMessage = `Are you sure you want to change the user's role to ${role}?`;\n const answer = confirm(confirmMessage);\n if (answer) {\n setRole(role);\n ManageUsersApi.changeUserRole(user.userId, role)\n .then(() => {\n if (role === UserRoles.COLLECTOR) {\n history.push(`${AppRoutes.ADMIN_COLLECTOR_PROFILE}?id=${user.userId}`);\n }\n\n if (role === UserRoles.EXPERT) {\n history.push(`${AppRoutes.ADMIN_EXPERT_PROFILE}?id=${user.userId}`);\n }\n\n if (role === UserRoles.ARCHIVIST) {\n history.push(`${AppRoutes.ADMIN_ARCHIVIST_PROFILE}?id=${user.userId}`);\n }\n\n if (role === UserRoles.CURATOR) {\n history.push(`${AppRoutes.ADMIN_CURATOR_PROFILE}?id=${user.userId}`);\n }\n utilsContext.addSnackbar('success', 'Success! Please wait...');\n })\n .catch((error: any) => {\n console.error(error?.response);\n utilsContext.addSnackbar('error');\n });\n }\n };\n\n return (\n <>\n \n Change Role\n \n {\n onSelectRole(e.target.value);\n }}\n >\n Expert\n Collector\n Archivist\n Curator\n \n \n );\n};\n","import React, { useContext, useState } from 'react';\n\nimport { Checkbox, FormControlLabel, Typography } from '@material-ui/core';\nimport { CollectorsApi } from 'core/api/admin';\nimport { UtilsContext } from '../../../../../../core/context/utils.context';\n\ntype PaymentFreePasProps = {\n userId: number;\n paymentFreePass: boolean;\n};\n\nexport const PaymentFreePas: React.FC = ({ userId, paymentFreePass }) => {\n const [value, setValue] = useState(paymentFreePass);\n const utilsContext = useContext(UtilsContext);\n const onChange = (val: boolean): void => {\n const answer = confirm('Are you sure you want to change this setting?');\n if (answer) {\n setValue(val);\n CollectorsApi.changeUserPaymentFreePass(userId, val)\n .then(() => {\n utilsContext.addSnackbar('success', 'Success!');\n })\n .catch((error: any) => {\n console.error(error?.response);\n utilsContext.addSnackbar('error');\n });\n }\n };\n\n return (\n <>\n onChange(!value)}\n />\n }\n label={\n \n Allow the user to submit assessments without paying\n \n }\n />\n \n );\n};\n","import {makeStyles} from \"@material-ui/styles\";\nimport {Theme} from \"@material-ui/core\";\n\nexport const navigationStyles = makeStyles((theme: Theme) => ({\n root: {\n display: 'flex',\n alignItems: 'center',\n marginBottom: 7,\n },\n item: {\n width: '50%',\n backgroundColor: theme.rootBackground.cardBackground,\n height: 40,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n cursor: 'pointer',\n fontSize: 13,\n color: theme.palette.text.secondary,\n },\n activeItem: {\n width: '50%',\n backgroundColor: theme.rootBackground.highlightBackground,\n height: 40,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n cursor: 'pointer',\n fontSize: 13,\n color: theme.palette.primary.main,\n fontWeight: 600,\n borderBottom: '2px solid',\n borderColor: theme.palette.primary.main,\n }\n}))\n","import React from \"react\";\nimport {NavigationEnum} from \"../enums\";\nimport {Box} from \"@material-ui/core\";\nimport {navigationStyles} from \"../styles/navigation.style\";\n\nconst navItems = [\n {\n id: NavigationEnum.OBJECTS,\n name: 'Objects'\n },\n {\n id: NavigationEnum.DELETED_OBJECTS,\n name: 'Deleted Objects'\n },\n {\n id: NavigationEnum.JOBS,\n name: 'Archivists/Curator'\n },\n]\n\ntype NavigationProps = {\n activeView: number;\n onChange: (view: number) => void;\n}\n\nexport const Navigation: React.FC = ({activeView, onChange}) => {\n\n const classes = navigationStyles();\n\n return (\n \n {\n navItems.map((n: any) => (\n onChange(n.id)}\n >\n {n.name}\n \n ))\n }\n \n )\n}\n","import {useState} from \"react\";\nimport {IPagination} from \"../context/interfaces\";\nimport {SortObjectsOptions} from \"../enums\";\n\nexport const usePagination = (): any => {\n\n const [pagination, setPagination] = useState({\n page: 1,\n size: 10,\n totalCount: 0,\n numberOfPages: 0,\n sortBy: SortObjectsOptions.DateCreated,\n asc: false,\n })\n\n return {\n pagination,\n setPagination,\n }\n}\n","import * as api from './_utils/api';\nimport { UserRoles } from '../enums';\n\nexport class JobsApi {\n static async assignCollectorToArchivist(collectorId: number, archivistId: number): Promise {\n return api._post(`archivists/assign/${archivistId}/toCollector/${collectorId}`);\n }\n\n static async assignJob(collectorId: number, userId: number, role: string): Promise {\n switch (role) {\n case UserRoles.ARCHIVIST:\n return api._post(`archivists/assign/${userId}/toCollector/${collectorId}`);\n case UserRoles.CURATOR:\n return api._post(`curators/assign/${userId}/toCollector/${collectorId}`);\n }\n }\n\n static async getJobs(size: number, page: number, role: string, body: unknown): Promise {\n switch (role) {\n case UserRoles.ARCHIVIST:\n return api._post(\n //@ts-expect-error unknown-body-1\n `collectors/get/assignedTo/archivist?page=${page}&size=${size}&userId=${body.userId}`,\n body,\n );\n case UserRoles.CURATOR:\n return api._post(\n //@ts-expect-error unknown-body-1\n `collectors/get/assignedTo/curator?page=${page}&size=${size}&userId=${body.userId}`,\n body,\n );\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n static async getAssignedUsers(size: number, page: number, role: string, body: any): Promise {\n switch (role) {\n case UserRoles.ARCHIVIST:\n return api._post(`archivists/get/assignedTo?page=${page}&size=${size}&userId=${body?.userId}`, body);\n case UserRoles.CURATOR:\n return api._post(`curators/get/assignedTo?page=${page}&size=${size}&userId=${body?.userId}`, body);\n }\n }\n\n static async removeJob(userId: number, collectorId: number, role: string): Promise {\n switch (role) {\n case UserRoles.ARCHIVIST:\n return api._delete(`archivists/removeAssign/${userId}/toCollector/${collectorId}`);\n case UserRoles.CURATOR:\n return api._delete(`curators/removeAssign/${userId}/toCollector/${collectorId}`);\n }\n }\n}\n","import {useContext, useState} from \"react\";\nimport {usePagination} from \"core/hooks/use-pagination.hook\";\nimport {UtilsContext} from \"core/context/utils.context\";\nimport {IJob} from \"../../../types\";\nimport {JobsApi} from \"core/api/jobs.api\";\nimport {UserRoles} from \"core/enums\";\n\nexport const useAssignedUsersData = (userId: number): any => {\n\n const utilsContext = useContext(UtilsContext);\n\n const [archivists, setArchivists] = useState([]);\n const [curators, setAssignedCurators] = useState([]);\n const [isLoading, setIsLoading] = useState(false);\n\n const {pagination, setPagination} = usePagination();\n\n const getAssignedArchivists = (page: number, isOld = false): void => {\n setIsLoading(true);\n\n const body = {\n userId,\n old: isOld,\n }\n\n JobsApi.getAssignedUsers(10, page, UserRoles.ARCHIVIST, body)\n .then((res: any) => {\n setArchivists(mapData(res?.data?.data || []));\n setPagination({\n ...pagination,\n page,\n size: 10,\n totalCount: res.data?.totalCount,\n numberOfPages: Math.ceil(res.data?.totalCount/res.data?.size)\n });\n setIsLoading(false);\n })\n .catch((error: any) => {\n console.log(error)\n console.error(error.response);\n setIsLoading(false);\n utilsContext.addSnackbar(\n 'error',\n 'Sorry, there was an error and we were unable to display the assigned users.'\n );\n })\n }\n\n const getAssignedCurators = (page: number, isOld = false): void => {\n const body = {\n userId,\n old: isOld,\n }\n\n JobsApi.getAssignedUsers(10, page, UserRoles.CURATOR, body)\n .then((res: any) => {\n setAssignedCurators(mapData(res?.data?.data || []));\n setPagination({\n ...pagination,\n page,\n size: 10,\n totalCount: res.data?.totalCount,\n numberOfPages: Math.ceil(res.data?.totalCount/res.data?.size)\n });\n setIsLoading(false);\n })\n .catch((error: any) => {\n console.error(error.response);\n setIsLoading(false);\n utilsContext.addSnackbar(\n 'error',\n 'Sorry, there was an error and we were unable to display the assigned users.'\n );\n })\n }\n\n return {\n archivists,\n isLoading,\n curators,\n getAssignedArchivists,\n getAssignedCurators,\n }\n}\n\nconst mapData = (data: any): IJob[] => {\n return data.map((j: any) => {\n return {\n userPhotoUrl: j.photoUrl,\n userName: `${j.firstName || '' } ${ j.lastName || ''}`,\n userEmail: j.email,\n userId: j.userId,\n info: ''\n }\n })\n}\n","import {makeStyles} from \"@material-ui/styles\";\nimport {Theme} from \"@material-ui/core\";\n\nexport const activeJobStyles = makeStyles((theme: Theme) => ({\n root: {\n width: '100%',\n backgroundColor: theme.label.labelBackground,\n borderLeft: '7px solid',\n borderLeftColor: theme.palette.primary.main,\n borderRadius: 2,\n marginBottom: 10,\n padding: '5px 10px',\n },\n flexRow: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n },\n text: {\n fontSize: 14,\n },\n textHighlight: {\n color: theme.palette.secondary.main,\n },\n viewCollectorLink: {\n color: theme.palette.secondary.main,\n fontSize: 12,\n },\n removeJob: {\n color: theme.palette.error.main,\n fontSize: 12,\n marginLeft: 5,\n }\n}))\n","import {Backdrop, Box, Button, CircularProgress, Fade, Modal, Typography} from \"@material-ui/core\";\nimport React from \"react\";\nimport {modalStyles} from \"../../_others/modals/modal-styles\";\nimport {ModalHeader} from \"../../_others/modals/ModalHeader\";\nimport {useRemoveJob} from \"../_hooks/use-remove-job.hook\";\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport DeleteIcon from \"@material-ui/icons/Delete\";\n\ntype RemoveJobModalProps = {\n userId: number;\n collectorId: number;\n role: string;\n open: boolean;\n handleClose: () => void;\n onRemove: () => void;\n}\n\nexport const RemoveJobModal: React.FC = (\n {userId, collectorId, role, onRemove, open, handleClose}\n) => {\n\n const classes = modalStyles();\n\n const {isLoading, removeJob} = useRemoveJob(userId, collectorId, role);\n\n const onConfirm = (): void => {\n removeJob().then((res: boolean) => {\n if(res) {\n onRemove();\n handleClose();\n }\n })\n }\n\n return (\n \n \n
    \n\n \n\n \n Are you sure you want to remove this job?\n \n\n \n \n Cancel\n \n\n onConfirm()}\n >\n {\n isLoading && \n }\n {\n !isLoading && \n }\n Remove Job\n \n \n
    \n
    \n \n )\n}\n","import {JobsApi} from \"core/api/jobs.api\";\nimport {useContext, useState} from \"react\";\nimport {UtilsContext} from \"core/context/utils.context\";\n\nexport const useRemoveJob = (userId: number, collectorId: number, role: string): any => {\n\n const utilsContext = useContext(UtilsContext);\n\n const [isLoading, setIsLoading] = useState(false);\n\n const removeJob = async (): Promise => {\n setIsLoading(true);\n\n return await JobsApi.removeJob(userId, collectorId, role)\n .then(() => {\n setIsLoading(false);\n utilsContext.addSnackbar(\n 'success',\n 'Success!'\n );\n return true;\n })\n .catch((error: any) => {\n console.error(error.response);\n setIsLoading(false);\n utilsContext.addSnackbar(\n 'error',\n 'Sorry, there was an error and we were unable to remove this job.'\n );\n return false;\n })\n }\n\n return {\n removeJob,\n isLoading,\n }\n}\n","import React, {useContext, useState} from \"react\";\nimport {Box, Button, Typography} from \"@material-ui/core\";\nimport {IJob} from \"../../../types\";\nimport {activeJobStyles} from \"./style\";\nimport {Link} from \"react-router-dom\";\nimport {UserContext} from \"core/context/user\";\nimport {UserRoles} from \"core/enums\";\nimport {AppRoutes} from \"core/helpers\";\nimport {RemoveJobModal} from \"../RemoveJobModal\";\n\ntype ActiveJobProps = {\n job: IJob;\n jobOwnerId: number;\n collectorId: number;\n role: string;\n jobRole: string;\n isOld: boolean;\n onRemoveJob: () => void;\n}\n\nexport const ActiveJob: React.FC = (\n {jobRole, job, jobOwnerId, collectorId, role, isOld, onRemoveJob}\n ) => {\n\n const classes = activeJobStyles();\n const userContext = useContext(UserContext);\n\n const [displayRemoveConfirmModal, toggleRemoveConfirmModal] = useState(false);\n\n const getUserProfileUrl = (): string => {\n if(jobRole === UserRoles.COLLECTOR) {\n return `${AppRoutes.ADMIN_COLLECTOR_PROFILE}?id=${job.userId}`;\n }\n if(jobRole === UserRoles.ARCHIVIST) {\n return `${AppRoutes.ADMIN_ARCHIVIST_PROFILE}?id=${job.userId}`;\n }\n if(jobRole === UserRoles.CURATOR) {\n return `${AppRoutes.ADMIN_CURATOR_PROFILE}?id=${job.userId}`;\n }\n return '';\n }\n\n return (\n \n\n \n \n Name: {job.userName}\n \n {\n userContext.user?.role === UserRoles.ADMIN &&\n \n {\n !isOld &&\n toggleRemoveConfirmModal(true)}\n >\n Remove Job\n \n }\n \n \n View User\n \n \n \n }\n \n\n \n {job.info}\n \n\n {\n displayRemoveConfirmModal &&\n toggleRemoveConfirmModal(false)}\n onRemove={() => onRemoveJob()}\n />\n }\n \n )\n}\n","import React, {useEffect} from \"react\";\nimport {useAssignedUsersData} from \"../_hooks/use-assigned-users-data.hook\";\nimport {UserRoles} from \"../../../core/enums\";\nimport {Box, Typography} from \"@material-ui/core\";\nimport {Loader} from \"../..\";\nimport {ActiveJob} from \"../ActiveJob\";\nimport {IJob} from \"../../../types\";\n\ntype AssignedUsersListProps = {\n userId: number;\n}\n\nexport const AssignedUsersList: React.FC = ({userId}) => {\n\n const {\n archivists,\n getAssignedArchivists,\n curators,\n getAssignedCurators,\n isLoading,\n pagination\n } = useAssignedUsersData(userId);\n\n useEffect(() => {\n getAssignedArchivists(1);\n getAssignedCurators(1);\n }, [])\n\n console.log(pagination)\n\n return (\n \n {\n !isLoading &&\n <>\n Archivists\n {\n archivists.map((a: IJob) => (\n {\n getAssignedArchivists(1);\n getAssignedCurators(1);\n }}\n jobRole={UserRoles.ARCHIVIST}\n collectorId={userId}\n />\n ))\n }\n\n {\n archivists.length === 0 &&\n \n There are no assigned archivists.\n \n }\n\n Curator\n {\n curators.map((c: IJob) => (\n null}\n jobRole={UserRoles.CURATOR}\n collectorId={userId}\n />\n ))\n }\n\n {\n curators.length === 0 &&\n \n There is no curator assigned.\n \n }\n \n }\n\n {\n isLoading && \n }\n \n )\n}\n","import React, {useContext, useState} from \"react\";\nimport {Box, Button, ThemeOptions, Tooltip, Typography} from \"@material-ui/core\";\nimport {IArtifact} from \"../../../../../../core/context/admin/collector-profile\";\nimport {makeStyles} from \"@material-ui/styles\";\nimport {getPhotoUrl} from \"../../../../../../core/helpers\";\nimport {FileSize} from \"../../../../../../core/enums\";\nimport imagePlaceholder from \"../../../../../../assets/placeholders/artifact-placeholder.png\";\nimport RefreshIcon from '@material-ui/icons/Refresh';\nimport {CollectorsApi} from \"../../../../../../core/api/admin\";\nimport {UtilsContext} from \"../../../../../../core/context/utils.context\";\n\ntype DeletedObjectCardProps = {\n artifact: IArtifact;\n}\n\nexport const DeletedObjectCard: React.FC = ({artifact}) => {\n\n const classes = useStyles();\n\n const utilsContext = useContext(UtilsContext);\n\n const [isRestored, setIsRestored] = useState(false);\n\n\n const onRecover = (): void => {\n if(!confirm('Are you sure you want to recover this object?')) {\n return;\n }\n\n CollectorsApi.restoreObject(artifact.id)\n .then((_res: any) => {\n utilsContext.addSnackbar('success', 'This object was restored.');\n setIsRestored(true);\n })\n .catch((error: any) => {\n console.log(error);\n utilsContext.addSnackbar('error');\n })\n }\n\n return (\n \n \n \n \n \n {artifact.title}\n \n \n \n onRecover()}\n className={classes.restoreBtn}\n >\n {isRestored ? 'Recovered' : 'Recover'}\n \n \n \n )\n}\n\nconst useStyles = makeStyles((_theme: ThemeOptions) => ({\n root: {\n width: '32%',\n marginBottom: 10,\n marginRight: '1.3%'\n },\n img: {\n width: '100%',\n height: 180,\n objectFit: 'cover'\n },\n titleBox: {\n marginTop: -6,\n backgroundColor: '#2B2B33',\n padding: '3px 10px',\n },\n title: {\n fontSize: 16,\n textTransform: 'capitalize',\n color: 'white',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n marginTop: 5,\n },\n restoreBtn: {\n width: '100%',\n marginTop: 5,\n marginBottom: 5,\n }\n}))\n","import React, {useContext, useEffect, useState} from \"react\";\nimport {makeStyles} from \"@material-ui/styles\";\nimport {Box, ThemeOptions, Typography} from \"@material-ui/core\";\nimport {CollectorProfileContext} from \"../../../../../../core/context/admin/collector-profile\";\nimport {UtilsContext} from \"../../../../../../core/context/utils.context\";\nimport {CollectorsApi} from \"../../../../../../core/api/admin\";\nimport Pagination from \"@material-ui/lab/Pagination\";\nimport {Loader} from \"../../../../../../components\";\nimport {DeletedObjectCard} from \"./DeletedObjectCard\";\n\ntype DeletedObjectsListProps = {\n userId: number;\n}\n\nexport const DeletedObjectsList: React.FC = ({userId}) => {\n\n const classes = useStyles();\n const collectorProfileContext = useContext(CollectorProfileContext);\n\n const [isLoading, setIsLoading] = useState(true);\n const utilsContext = useContext(UtilsContext);\n useEffect(() => {\n collectorProfileContext.setCurrentPage(1);\n getArtifacts(1);\n }, []);\n\n const getArtifacts = (page: number): void => {\n CollectorsApi.getCollectorDeletedArtifacts(userId, collectorProfileContext.artifactsPagination.size, page)\n .then((res: any) => {\n collectorProfileContext.setArtifacts(res.data);\n setIsLoading(false);\n window.scrollTo(0, 0);\n })\n .catch((error: any) => {\n console.error(error.response);\n setIsLoading(false);\n utilsContext.addSnackbar('error');\n })\n }\n\n const handlePageChange = (page: number): void => {\n collectorProfileContext.setCurrentPage(page);\n getArtifacts(page);\n }\n\n return (\n \n {\n !isLoading &&\n <>\n {\n collectorProfileContext.artifacts.map(artifact => (\n \n ))\n }\n\n {\n collectorProfileContext.artifactsPagination.numberOfPages > 1 &&\n \n handlePageChange(value)}\n />\n \n }\n\n {\n collectorProfileContext?.artifacts?.length === 0 &&\n \n This collector has no objects.\n \n }\n\n \n }\n {\n isLoading &&\n \n \n \n \n \n }\n \n )\n}\n\nconst useStyles = makeStyles((_theme: ThemeOptions) => ({\n root: {\n fontSize: 16,\n display: 'flex',\n flexWrap: 'wrap',\n flexDirection: 'row',\n },\n}))\n","import React, { useContext, useEffect, useState } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { makeStyles } from '@material-ui/styles';\nimport { Box, ThemeOptions } from '@material-ui/core';\n\nimport { AppRoutes } from 'core/helpers';\nimport { CollectorsApi } from 'core/api/admin';\nimport { CollectorProfileContext } from 'core/context/admin/collector-profile';\n\nimport { BackNavigation, Loader } from 'components/_others';\nimport { Lightbox } from './components/Lightbox';\nimport { Stats } from './components/Stats';\nimport { Bio } from './components/Bio';\nimport { ActiveRequests } from './components/ActiveRequests';\nimport { ArtifactsList } from './components/ArtifactsList';\nimport { ChangeUserRole } from '../../../../../components/_dashboard/_user-profiles/ChangeUserRole';\nimport { UserRoles } from '../../../../../core/enums';\nimport { PaymentFreePas } from './components/PaymentFreePass';\nimport { UtilsContext } from '../../../../../core/context/utils.context';\nimport { Navigation } from './components/Navigation';\nimport { NavigationEnum } from './enums';\nimport { AssignedUsersList } from '../../../../../components/jobs/AssignedUsersList';\nimport { DeletedObjectsList } from './components/DeletedObjectsList';\n\nconst useStyles = makeStyles((theme: ThemeOptions) => ({\n root: {\n border: '1px solid',\n borderColor: theme.divider.main,\n marginTop: 20,\n display: 'flex',\n justifyContent: 'space-between',\n padding: '20px',\n },\n profileBox: {\n width: '46%',\n },\n artifactsBox: {\n width: '49%',\n },\n divider: {\n width: '40%',\n borderTop: '1px solid',\n borderColor: theme.divider.main,\n margin: '20px 0',\n },\n stats: {},\n}));\n\nexport const CollectorProfile: React.FC = () => {\n const classes = useStyles();\n const history = useHistory();\n const collectorProfileContext = useContext(CollectorProfileContext);\n\n const [isLoading, setIsLoading] = useState(true);\n const utilsContext = useContext(UtilsContext);\n\n const [activeView, setActiveView] = useState(NavigationEnum.OBJECTS);\n\n useEffect(() => {\n const params = new URLSearchParams(window.location.search);\n const id = params.get('id');\n\n if (!id) {\n history.push(AppRoutes.COLLECTOR_LISTING);\n }\n\n CollectorsApi.getCollectorProfile(Number(id))\n .then((res: any) => {\n collectorProfileContext.setData(res.data);\n window.scrollTo(0, 0);\n setIsLoading(false);\n })\n .catch((error: any) => {\n console.error(error.response);\n history.push(AppRoutes.COLLECTOR_LISTING);\n utilsContext.addSnackbar('error');\n });\n }, []);\n\n return (\n \n {!isLoading && (\n <>\n \n\n \n \n \n \n\n
    \n\n \n\n \n \n \n\n
    \n\n \n\n
    \n\n \n\n
    \n\n \n \n \n\n \n setActiveView(view)} />\n {activeView === NavigationEnum.OBJECTS && (\n \n )}\n {activeView === NavigationEnum.DELETED_OBJECTS && (\n \n )}\n {activeView === NavigationEnum.JOBS && (\n \n )}\n \n \n \n )}\n\n {isLoading && }\n \n );\n};\n","import React, { useEffect, useState } from \"react\";\nimport { IPhoto } from \"core/context/consumer/objectDetails\";\n\nimport Lightbox from 'react-image-lightbox';\nimport 'react-image-lightbox/style.css';\n\nimport { getPhotoUrl } from \"core/helpers\";\nimport { FileSize } from \"core/enums\";\n\ntype PhotoLightboxProps = {\n open: boolean;\n index: number;\n handleClose: () => void;\n photos: IPhoto[]|string[];\n}\n\nexport const PhotoLightbox: React.FC = (\n {photos, open, index, handleClose}\n) => {\n\n const [photoIndex, setPhotoIndex] = useState(index);\n\n useEffect(() => {\n setPhotoIndex(index);\n }, [index])\n\n const photoUrl = (photo: string|IPhoto): string => {\n if(typeof photo === 'string') {\n return photo;\n }\n return photo?.url || '';\n }\n\n return (\n <>\n {\n open &&\n setPhotoIndex((photoIndex + photos.length - 1) % photos.length)}\n onMoveNextRequest={() => setPhotoIndex((photoIndex + 1) % photos.length)}\n />\n }\n \n )\n}\n","import { Backdrop, Box, Button, CircularProgress, Fade, Modal, Typography } from '@material-ui/core';\nimport CloseIcon from '@material-ui/icons/Close';\nimport { PhotoCropper } from 'components/_consumer/ObjectForm/components/PhotoCropper';\nimport { FileSize, getPhotoUrl } from 'core';\nimport { ObjectApi } from 'core/api';\nimport { GlobalContext } from 'core/context/global';\nimport React, { useContext, useState } from 'react';\nimport { modalStyles } from '../../../../../components/_others/modals/modal-styles';\nimport { IPhoto } from '../../../../../core/context/consumer/objectDetails';\n\ntype CropPhotoModalProps = {\n artifactId: number;\n photo: IPhoto;\n open: boolean;\n handleClose: () => void;\n};\n\nexport const CropPhotoModal: React.FC = ({ open, handleClose, artifactId, photo }) => {\n const classes = modalStyles();\n const globalContext = useContext(GlobalContext);\n\n const [loading, setIsLoading] = useState(false);\n\n const onUpload = (photo: string): void => {\n setIsLoading(true);\n ObjectApi.addPhoto(artifactId, [photo], 0)\n .then(() => {\n onDelete();\n globalContext.setUploadPhotosBatch1(false);\n })\n .catch((error: any) => {\n console.error(error);\n });\n };\n\n const onDelete = (): void => {\n ObjectApi.deletePhoto([photo.id])\n .then(() => {\n handleClose();\n history.go(0);\n })\n .catch((error: any) => {\n console.error(error.response);\n });\n };\n\n return (\n \n \n
    \n \n \n \n\n \n Crop Photo\n \n\n {!loading && (\n <>\n \n \n \n Cancel\n \n \n \n )}\n\n {loading && (\n \n \n Please Wait...\n \n )}\n
    \n
    \n \n );\n};\n","import React, { useContext, useEffect, useState } from 'react';\nimport { Box, Typography } from '@material-ui/core';\nimport './gallery.less';\n\nimport { IPhoto } from 'core/context/consumer/objectDetails';\nimport { getPhotoUrl } from 'core/helpers/file-size.helper';\nimport { FileSize } from 'core/enums';\n\nimport NavigateBeforeIcon from '@material-ui/icons/NavigateBefore';\nimport NavigateNextIcon from '@material-ui/icons/NavigateNext';\n\nimport { PhotoLightbox } from './PhotoLightbox';\nimport { UserContext } from '../../../../core/context/user';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { ConfirmDeleteModal } from '../../../_others';\nimport { ObjectApi } from '../../../../core/api/consumer';\nimport { CropPhotoModal } from '../../../../scenes/consumer/objectDetails/components/CropPhotoModal';\nimport { UtilsContext } from '../../../../core/context/utils.context';\n\ntype GalleryProps = {\n photos: IPhoto[];\n isMyObject?: boolean;\n displayDeleteButton?: boolean;\n artifactId?: number;\n maxHeight?: number;\n onPhotoDeleteSuccess?: (id: number) => void;\n};\n\nconst useStyles = makeStyles({\n remove: {\n width: 15,\n height: 17,\n fontSize: 12,\n cursor: 'pointer',\n marginRight: 25,\n },\n crop: {\n width: 15,\n height: 17,\n fontSize: 12,\n cursor: 'pointer',\n marginRight: 10,\n },\n actionsBox: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n },\n});\n\nexport const Gallery: React.FC = ({\n photos,\n isMyObject,\n displayDeleteButton,\n artifactId,\n maxHeight,\n onPhotoDeleteSuccess,\n}) => {\n const classes = useStyles();\n\n const primaryPhoto = photos?.length ? photos.find((p: IPhoto) => p.isPrimary) : null;\n const userContext = useContext(UserContext);\n const utilsContext = useContext(UtilsContext);\n\n const [currentPhoto, setCurrentPhoto] = useState(primaryPhoto || null);\n const [carouselWidth, setCarouselWidth] = useState(0);\n const [lightbox, setLightbox] = useState(-1);\n const [displayConfirmDeleteModal, toggleConfirmDeleteModal] = useState(-1);\n const [photoOnCrop, setPhotoOnCrop] = useState(null);\n\n useEffect(() => {\n const currentPhotoContainer = document.getElementById('current-photo-container');\n setCarouselWidth(currentPhotoContainer?.clientWidth || 0);\n function handleWindowResize(): void {\n const currentPhotoContainer = document.getElementById('current-photo-container');\n setCarouselWidth(currentPhotoContainer?.clientWidth || 0);\n }\n window.addEventListener('resize', handleWindowResize);\n }, []);\n\n useEffect(() => {\n let primaryPhoto = photos?.length\n ? photos.filter((p) => p.deleted !== true).find((p: IPhoto) => p.isPrimary)\n : null;\n if (!primaryPhoto && photos?.length > 0) {\n // eslint-disable-next-line prefer-destructuring\n primaryPhoto = photos.filter((p) => p.deleted !== true)[0];\n }\n setCurrentPhoto(primaryPhoto || null);\n }, [photos]);\n\n const prevPhoto = (photo: IPhoto | null): void => {\n const currentPhotoIndex = photos.findIndex((p: IPhoto) => p.id === photo?.id);\n if (currentPhotoIndex === 0) {\n return;\n }\n\n setCurrentPhoto(photos[currentPhotoIndex - 1]);\n scrollCarousel(-50);\n };\n\n const nextPhoto = (photo: IPhoto | null): void => {\n const currentPhotoIndex = photos.findIndex((p: IPhoto) => p.id === photo?.id);\n if (currentPhotoIndex === photos.length - 1) {\n return;\n }\n setCurrentPhoto(photos[currentPhotoIndex + 1]);\n scrollCarousel(50);\n };\n\n const scrollCarousel = (x: number): void => {\n const carousel = document.getElementById('carousel');\n if (!carousel) {\n return;\n }\n carousel.scrollBy(x, 0);\n };\n\n const selectCurrentPhoto = (photo: IPhoto): void => {\n setCurrentPhoto(photo);\n const currentPhotoIndex = photos.findIndex((p: IPhoto) => p.id === photo.id);\n\n if (currentPhotoIndex === photos.length - 1) {\n scrollCarousel(100);\n return;\n }\n\n if (currentPhotoIndex === 0) {\n scrollCarousel(-100);\n return;\n }\n if (currentPhotoIndex < photos.length / 2) {\n scrollCarousel(-50);\n return;\n }\n scrollCarousel(50);\n };\n\n const onRemove = (photoId: number): void => {\n if (!artifactId) {\n return;\n }\n toggleConfirmDeleteModal(photoId);\n };\n\n const onCrop = (photo: IPhoto): void => {\n setPhotoOnCrop(photo);\n };\n\n const onPhotoDelete = (photoId: number): void => {\n if (!artifactId) {\n return;\n }\n\n ObjectApi.deletePhoto([photoId])\n .then(() => {\n const photo = photos.find((p) => p.id === photoId);\n if (photo) {\n photo.wasDeleted = true;\n }\n toggleConfirmDeleteModal(-1);\n setPhotoOnCrop(null);\n if (onPhotoDeleteSuccess) {\n onPhotoDeleteSuccess(photoId);\n }\n })\n .catch((error: any) => {\n console.error(error.response);\n toggleConfirmDeleteModal(-1);\n utilsContext.addSnackbar('error');\n });\n };\n\n return (\n \n \n {currentPhoto && (\n <>\n setLightbox(photos.findIndex((p: IPhoto) => p.id === currentPhoto?.id))}\n style={maxHeight ? { cursor: 'move', maxHeight } : { cursor: 'move' }}\n />\n \n )}\n {!currentPhoto && There are no photos}\n \n {photos?.length > 0 && (\n \n {photos.length > 1 && (\n prevPhoto(currentPhoto)}>\n \n \n )}\n {photos\n .filter((p: IPhoto) => !p.deleted && !p.wasDeleted)\n .map((photo: IPhoto) => (\n \n selectCurrentPhoto(photo)}\n style={\n photo?.isPrimary\n ? { border: '2px solid #d04c19', cursor: 'pointer' }\n : { cursor: 'pointer' }\n }\n className={`${currentPhoto?.id === photo.id && isMyObject ? 'selected-photo' : ''}`}\n />\n {isMyObject && (\n \n {\n onCrop(photo)}>\n Edit\n \n }\n {displayDeleteButton && (\n onRemove(photo.id)}>\n Remove\n \n )}\n \n )}\n \n ))}\n {photos.length > 1 && (\n nextPhoto(currentPhoto)}\n >\n \n \n )}\n \n )}\n\n toggleConfirmDeleteModal(-1)}\n onConfirm={() => onPhotoDelete(displayConfirmDeleteModal)}\n />\n\n {photoOnCrop && artifactId && (\n setPhotoOnCrop(null)}\n photo={photoOnCrop}\n />\n )}\n\n setLightbox(-1)}\n />\n \n );\n};\n","import * as api from './_utils/api';\n\n\nexport class ObjectCommentsApi {\n\n static async getObjectComments(objectId: number, page: number|null = null, size: number|null = null): Promise {\n if(page !== null && size !== null) {\n return api._get(`comment/${objectId}/get?page=${page}&size=${size}`);\n }\n return api._get(`comment/${objectId}/get`);\n }\n\n static async addComment(objectId: number, comment: string): Promise {\n return api._post(\n `comment/${objectId}/create`,\n JSON.stringify(comment),\n {'Content-Type': \"application/json-patch+json\"}\n );\n }\n\n static async editComment(commentId: number, comment: string): Promise {\n return api._put(\n `comment/${commentId}/update`,\n JSON.stringify(comment),\n {'Content-Type': \"application/json-patch+json\"}\n )\n }\n\n static async deleteComment(commentId: number): Promise {\n return api._delete(`comment/${commentId}/delete`)\n }\n}\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAADc2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDAgNzkuMTYwNDUxLCAyMDE3LzA1LzA2LTAxOjA4OjIxICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOmJmN2MyZTU3LTZmZjUtNDVmMC1hYjUyLWQxZDY5N2MwYmVhZCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBNkEyRjY3OTAxMTQxMUU4QjU0OEFGMDhFQ0ZDMUI4RSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBNkEyRjY3ODAxMTQxMUU4QjU0OEFGMDhFQ0ZDMUI4RSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDplODc3MzAyOS0yZWM1LTQ0YTgtYWYzMy00N2Q4OTBmMDYxNTMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6YmY3YzJlNTctNmZmNS00NWYwLWFiNTItZDFkNjk3YzBiZWFkIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Rn+46AAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAB7UExURczMzPHx8c3Nze/v7+np6eDg4N3d3fT09Ojo6Orq6uLi4tXV1fLy8t7e3s7OztfX19TU1M/Pz/Pz8+zs7Ofn59nZ2dvb29zc3Ovr6+Tk5NbW1uXl5eHh4ePj49HR0fDw8O3t7e7u7tLS0tra2ubm5tjY2NPT09DQ0N/f3zKWVfwAAAQ/SURBVHja7d2JVuIwFIDh24Zi6U7ZF9lR3/8JR0dn1zMNBJo0//8Cer7TcjQkNxJT4ySOB9SoN6zeAzWqBxZYYIEFFlhggQUWWGCBBRZYYIEFFlhggQUWWGCBBRZYYIEFFlhggQUWWGCBBRZYYIEFFlhggQUWWGCBBRZYYIEFFlhggQUWWGCBBRZYYIEFFlhggQUWWGCBBRZYYIEFln1YarBKoteS1UCB9XXZOE8L+a0izccZWP8WLJahfFK4XARg/dFo+qnUh9d0BNbP5qX8p3IO1vtH+kQaNFFgPTwkoTQqTLzHUqk0LlV+Y/WGotGw5zPWo2j26C9WLtrlvmLN5IJmfmLlclG5j1iPcmGP/mH15OJ6vmGp4eVYQ+UZVipXlPqFlchVJT5hqfA6rFB5hDWRK5v4gzWXq5t7g1Vej1X6gjUSA408wZqawJr6gRWEJrDCwAushRhp4QXW0gzW0gesLDSDFWYeYI3FUGMPsHJTWLkHWKkprNQDrMIUVtF9LCXGUp3HGpjDGnQea2UOa9V5rMQcVtJ5rMgcVgQWWL/qgwUWWGCBBRZYYIEFFlhggQUWWGCBBRZYYIEFFlhggQUWWGCB1Ty+kQbrNrGLRiP2Z2nEzj+N2FOqE7uVNWIfvEacsNCIszsacSpMJ84basRJVo04I60Tp+81Yq6DTkwM0YhZNDox5Uhn6YH5WfdbL/VqMhsz//ReRKZJ6vzoy7G8m1PKBNy7rAJ6OVuZqd03f7a8nQfPTQOavwB3WOj8vcXtKFr/+XDvjs7DxY1OWutb3BWmE7fQacX9hnpxc6b2xz13snYhsMACCyywwCKwwAILLLAuqw6+qAbrY6FhNE7652rznwM9xaY695PxKPMVaxtHk4PuV2GHSRRvPcPaL6abyzeGbKaLvSdYwen4fP2e0ufjKeg61m5t7ASdSLredRdr93IQwx1edl3E2kdPcpOeon23sOrVUm7YclV3BmvUL+TGFf1RF7DqUyV3qTrVjmNlyUbu1ibJHMZSt3///n4blaNYahbK3QtnykGsbRtU71xbx7CCfktU37n6gUNY9bqQVivWtStY44203mbsBJYqxYpKZT1WvQ7FkkLD76JxrF0lFlXtbMay57H68XBZi7UtxbrKrZ1Yg6FY2HBgI1YilpZYh1XPxNpmtV1YWSkWV2Y2YQWVWF0V2IOVWW71qpXZgmW/lREtM1hncaCzHVi5OFFuA1YsjhS3jxUMXcEaBq1jHcWZjm1jzcWh5i1jlS5hle1i7cWp9q1iRW5hrVvF6ruFFYEFFlhggQUWWGCBBRZYYIF1h/1ZHQ4ssMACCyywCCywwAILLLAILLDAAgsssAgssMACCyywCCywwAILLLAILLDAAgsssAgssMACCyywCCywwAILLLAILLDAAgsssAgssMACCyywCCywwAILrA5jxQNqVPyGRU37BoGgRlvGaaOmAAAAAElFTkSuQmCC\"","import React, {useState} from \"react\";\nimport moment from \"moment\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { Box, TextField, Typography } from \"@material-ui/core\";\n\nimport avatarPlaceholder from \"assets/placeholders/avatar-placeholder.png\";\nimport DeleteForeverIcon from '@material-ui/icons/DeleteForever';\nimport EditIcon from '@material-ui/icons/Edit';\nimport SaveIcon from '@material-ui/icons/Save';\nimport ClearIcon from '@material-ui/icons/Clear';\n\nimport {FileSize} from \"core/enums\";\nimport {IObjectComment} from \"types\";\nimport {getPhotoUrl} from \"core/helpers\";\n\ntype CommentProps = {\n canDelete: boolean;\n canEdit: boolean;\n comment: IObjectComment;\n onDelete: () => void;\n onEdit: (comment: string) => void;\n}\n\nexport const CommentDetails: React.FC = (\n {comment, canDelete, canEdit, onDelete, onEdit}\n) => {\n\n const classes = useStyles();\n\n const [editMode, setEditMode] = useState(false);\n const [commentText, setCommentText] = useState(comment.text);\n\n return (\n \n \n
    \n {\n !editMode &&\n \n {commentText}\n \n }\n {\n editMode &&\n setCommentText(e.target.value)}\n rows={2}\n rowsMax={5}\n inputProps={{ maxLength: 500 }}\n variant=\"outlined\"\n />\n }\n\n \n {comment.authorFirstName} {comment.authorLastName} on{' '}\n {moment(comment.dateCreated).format('MM/DD/YY')}\n {\n editMode &&\n {onEdit(commentText); setEditMode(false)}}\n />\n }\n {\n editMode &&\n {setCommentText(comment.text); setEditMode(false)}}\n />\n }\n {\n canEdit && !editMode &&\n setEditMode(true)}\n />\n }\n {\n canDelete && !editMode &&\n onDelete()}\n />\n }\n \n
    \n
    \n )\n}\n\nconst useStyles = makeStyles(theme => ({\n root: {\n display: 'flex',\n alignItems: 'flex-start',\n marginBottom: 12,\n },\n avatar: {\n width: 40,\n height: 40,\n borderRadius: 40,\n marginRight: 12,\n },\n text: {\n color: theme.palette.text.primary,\n fontSize: 13,\n },\n date: {\n color: '#707070',\n fontSize: 12,\n display: 'flex',\n alignItems: 'center'\n },\n deleteIcon: {\n marginLeft: 10,\n width: 18,\n cursor: 'pointer',\n },\n editIcon: {\n marginLeft: 10,\n width: 18,\n cursor: 'pointer',\n },\n saveIcon: {\n marginLeft: 10,\n width: 18,\n cursor: 'pointer',\n color: '#FE6502'\n },\n textarea: {\n marginTop: 5\n }\n}))\n","import React, { useState } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Button, InputLabel, TextField } from '@material-ui/core';\n\ntype AddCommentProps = {\n onAddComment: (comment: string) => any;\n};\n\nexport const AddComment: React.FC = ({ onAddComment }) => {\n const classes = useStyles();\n\n const [comment, setComment] = useState('');\n\n const onAddCommentBtnClick = (): void => {\n if (!comment?.trim().length) {\n return;\n }\n onAddComment(comment);\n setComment('');\n };\n\n return (\n
    \n \n Add a comment\n \n setComment(e.target.value)}\n rows={2}\n rowsMax={5}\n inputProps={{ maxLength: 2000 }}\n variant=\"outlined\"\n />\n onAddCommentBtnClick()}\n >\n Add Comment\n \n \n );\n};\n\nconst useStyles = makeStyles({\n root: {\n marginTop: 15,\n },\n label: {\n marginBottom: 15,\n fontSize: 14,\n },\n button: {\n float: 'right',\n marginTop: 10,\n padding: '0px 15px',\n fontWeight: 300,\n fontSize: 16,\n },\n});\n","import React, { useContext, useEffect, useState } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Box, Typography } from '@material-ui/core';\n\nimport { UserContext } from 'core/context/user';\nimport { IObjectComment } from 'types';\nimport { ObjectCommentsApi } from 'core/api/object-comments.api';\n\nimport { SectionHeader } from 'components/_consumer/ObjectDetails';\nimport { ConfirmDeleteModal } from 'components/_others/ConfirmDeleteModal';\nimport { CommentDetails } from './CommentDetails';\nimport { AddComment } from './AddComment';\n\ntype CommentsProps = {\n objectId: number;\n userIsObjectOwner: boolean;\n};\n\nexport const ObjectComments: React.FC = ({ objectId, userIsObjectOwner }) => {\n const classes = useStyles();\n const userContext = useContext(UserContext);\n\n const [comments, setComments] = useState([]);\n\n const [commentIdToBeDeleted, setCommentIdToBeDeleted] = useState(-1);\n const [isLoadingDelete, setIsLoadingDelete] = useState(false);\n\n useEffect(() => {\n getObjectComments();\n }, []);\n\n const getObjectComments = (): void => {\n ObjectCommentsApi.getObjectComments(objectId)\n .then((res: any) => {\n setComments(res?.data?.data || []);\n })\n .catch((error: any) => {\n console.error(error);\n });\n };\n\n const addComment = (comment: string): void => {\n ObjectCommentsApi.addComment(objectId, comment)\n .then((res: any) => {\n const result = comments.slice();\n result.unshift(res?.data || {});\n setComments(result);\n })\n .catch((error: any) => {\n console.error(error);\n //TODO: snackbar\n });\n };\n\n const editComment = (commentId: number, comment: string): void => {\n const commentIndex = comments.findIndex((c) => c.id === commentId);\n const initialText = comments[commentIndex].text;\n\n ObjectCommentsApi.editComment(commentId, comment)\n .then(() => {\n const result = comments;\n result[commentIndex].text = comment;\n setComments(result.slice());\n })\n .catch((error: any) => {\n console.error(error);\n const result = comments;\n result[commentIndex].text = initialText;\n setComments(result.slice());\n //TODO: snackbar\n });\n };\n\n const deleteComment = (): void => {\n setIsLoadingDelete(true);\n\n ObjectCommentsApi.deleteComment(commentIdToBeDeleted)\n .then(() => {\n const commentIndex = comments.findIndex((c) => c.id === commentIdToBeDeleted);\n const result = comments;\n result.splice(commentIndex, 1);\n setComments(result.slice());\n setIsLoadingDelete(false);\n setCommentIdToBeDeleted(-1);\n })\n .catch((error: any) => {\n console.error(error);\n //TODO: snackbar\n });\n };\n\n return (\n \n \n\n \n {comments?.map((comment: IObjectComment) => (\n setCommentIdToBeDeleted(comment.id)}\n onEdit={(text: string) => editComment(comment.id, text)}\n />\n ))}\n \n\n {comments?.length === 0 && There are no comments.}\n\n \n\n {commentIdToBeDeleted !== -1 && (\n setCommentIdToBeDeleted(-1)}\n onConfirm={() => deleteComment()}\n />\n )}\n \n );\n};\n\nconst useStyles = makeStyles({\n root: {\n marginBottom: 10,\n },\n emptyMessage: {\n fontSize: 13,\n marginBottom: 10,\n },\n commentsContainer: {\n marginTop: 15,\n overflow: 'auto',\n ['@media (max-height:1366px)']: { maxHeight: 250 },\n ['@media (max-height:800px)']: { maxHeight: 107 },\n },\n});\n","import React from \"react\";\nimport { Typography } from \"@material-ui/core\";\nimport { makeStyles } from \"@material-ui/core/styles\";\n\nconst useStyles = makeStyles({\n label: {\n color: '#B2B2B2',\n fontSize: 13,\n marginTop: 10,\n },\n value: {\n fontSize: 13,\n marginBottom: 10,\n }\n})\n\ntype DimensionsProps = {\n height: number|null;\n width: number|null;\n depth: number|null;\n}\n\nexport const Dimensions: React.FC = ({height, width, depth}) => {\n\n const classes = useStyles();\n\n return (\n <>\n \n Dimensions\n \n \n {height ? `${height}''` : 'unknown'} H\n   \n x\n   \n {width ? `${width}''` : 'unknown'}  W\n   \n x  \n {depth ? `${depth}''` : 'unknown'}  D\n \n \n )\n}\n","import React from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { Typography } from \"@material-ui/core\";\n\ntype SectionHeaderProps = {\n title: string;\n}\n\nconst useStyles = makeStyles({\n root: {\n fontSize: 23,\n fontWeight: 'bold',\n },\n divider: {\n maxWidth: 55,\n height: 0,\n marginTop: 0,\n borderRadius: 2,\n marginBottom: 15,\n marginLeft: 0,\n borderTop: '1px solid #029BFE',\n }\n});\n\n\nexport const SectionHeader: React.FC = ({title}) => {\n\n const classes = useStyles();\n\n return (\n <>\n \n {title}\n \n
    \n \n\n )\n}\n","import React from \"react\";\nimport { Typography } from \"@material-ui/core\";\nimport InsertDriveFileIcon from '@material-ui/icons/InsertDriveFile';\n\nimport { SectionHeader } from \"./SectionHeader\";\nimport { IDocument } from \"core/context/consumer/objectDetails\";\n\ntype DocumentsProps = {\n documents: IDocument[],\n hideSectionHeader?: boolean;\n}\n\nexport const Documents: React.FC = ({documents, hideSectionHeader}) => {\n return (\n <>\n {\n hideSectionHeader !== true &&\n \n }\n\n {\n documents?.length > 0 &&\n <>\n {\n documents.map((document: IDocument) => (\n \n \n \n {document.fileName}\n \n \n ))\n }\n \n }\n {\n documents?.length === 0 &&\n \n No documents\n \n }\n \n )\n}\n","import React, { useState } from 'react';\nimport { Button, Grid, InputLabel, TextField } from '@material-ui/core';\nimport ChatBubbleIcon from '@material-ui/icons/ChatBubble';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { FeedbackRequestsApi } from 'core/api/feedback-requests/feedback-requests.api';\nimport { IFeedbackComment } from 'core/context/feedback-requests/feedback';\n\ntype AddCommentProps = {\n artifactId: number;\n feedbackRequestId: number;\n pushComment: (comment: IFeedbackComment) => void;\n};\n\nexport const AddComment: React.FC = ({ feedbackRequestId, pushComment, artifactId }) => {\n const classes = useStyles();\n\n const [comment, setComment] = useState('');\n\n const addComment = (): void => {\n if (!comment?.trim().length) {\n return;\n }\n\n onAddComment();\n setComment('');\n };\n\n const onAddComment = (): void => {\n FeedbackRequestsApi.addComment(feedbackRequestId, JSON.stringify(comment), true, artifactId)\n .then((res: any) => {\n pushComment(res.data);\n setComment('');\n })\n .catch((error: any) => {\n console.error(error.response);\n });\n };\n\n // const handleKeyPress = (key: string): void => {\n // if(key === 'Enter') {\n // addComment();\n // }\n // }\n\n return (\n
    \n \n Add a comment\n \n\n \n \n setComment(e.target.value)}\n rows={2}\n rowsMax={5}\n inputProps={{ maxLength: 1000 }}\n variant=\"outlined\"\n className={classes.textarea}\n />\n \n \n addComment()}\n >\n \n \n \n \n
    \n );\n};\n\nconst useStyles = makeStyles({\n root: {\n marginTop: 15,\n },\n label: {\n marginBottom: 15,\n fontSize: 14,\n },\n textarea: {\n width: '96%',\n ['@media (max-width:960px)']: { width: '100%' },\n },\n button: {\n float: 'right',\n height: 55,\n padding: '0px 10px',\n fontWeight: 300,\n fontSize: 15,\n ['@media (max-width:960px)']: { height: 35, width: 100 },\n },\n});\n","import React from \"react\";\nimport {IFeedbackComment} from \"core/context/feedback-requests/feedback\";\nimport {Box, Theme} from \"@material-ui/core\";\nimport {makeStyles} from \"@material-ui/styles\";\n\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport moment from \"moment\";\nimport {FeedbackRequestsApi} from \"core/api/feedback-requests/feedback-requests.api\";\n\ntype CommentsProps = {\n artifactId: number;\n feedbackRequestId: number;\n isFeedbackCompleted: boolean;\n comments: IFeedbackComment[];\n onDeleteComment: (id: number) => void;\n}\n\nexport const Comments: React.FC = (\n {feedbackRequestId, comments, isFeedbackCompleted, onDeleteComment, artifactId}\n) => {\n\n const classes = useStyles();\n\n const deleteComment = (id: number): void => {\n\n if(!confirm('Are you sure you want to delete this comment?')) {\n return;\n }\n\n FeedbackRequestsApi.deleteComment(feedbackRequestId, id, true, artifactId)\n .then(() => {\n onDeleteComment(id);\n })\n .catch((error: any) => {\n console.error(error.response);\n })\n }\n\n return (\n \n {\n comments.map(comment => (\n \n {\n !comment.isExpert &&\n \n {\n !isFeedbackCompleted &&\n <>\n deleteComment(comment.id)}\n />\n \n {moment(comment.dateCreated).format('MM/DD/YY HH:mm')}\n \n \n }\n \n {comment.text}\n \n \n }\n\n {\n comment.isExpert &&\n \n \n {comment.text}\n \n \n {moment(comment.dateCreated).format('MM/DD/YY HH:mm')}\n \n \n\n }\n \n ))\n }\n \n )\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n myBubbleContainer: {\n display: 'flex',\n justifyContent: 'flex-end',\n alignItems: 'flex-end',\n \"&:hover\": {\n '& $deleteIcon': {\n visibility: 'visible',\n }\n }\n },\n deleteIcon: {\n color: '#d0d0d0',\n cursor: 'pointer',\n width: 25,\n height: 20,\n marginBottom: 7,\n visibility: 'hidden',\n },\n myBubble: {\n backgroundColor: theme.palette.primary.main,\n color: 'white',\n borderRadius: 20,\n textAlign: 'right',\n margin: '4px 0',\n padding: '5px 15px',\n width: 'fit-content',\n maxWidth: '80%',\n lineHeight: 1.3,\n },\n otherBubble: {\n backgroundColor: theme.label.main,\n color: theme.label.text,\n borderRadius: 20,\n textAlign: 'right',\n margin: '4px 0',\n padding: '5px 15px',\n width: 'fit-content',\n maxWidth: '80%',\n lineHeight: 1.3\n },\n date: {\n fontSize: 11,\n marginBottom: 9,\n marginRight: 5,\n }\n}))\n","import React, {useState} from \"react\";\nimport {Box, Theme, Typography} from \"@material-ui/core\";\nimport {makeStyles} from \"@material-ui/styles\";\nimport {AddComment} from \"./AddComment\";\nimport {IFeedbackComment} from \"core/context/feedback-requests/feedback\";\nimport {Comments} from \"./Comments\";\n\ntype ChatProps = {\n artifactId: number;\n feedbackRequestId: number;\n isFeedbackCompleted: boolean,\n comments: IFeedbackComment[],\n}\n\nexport const Chat: React.FC = (\n {feedbackRequestId, isFeedbackCompleted, comments, artifactId}\n) => {\n\n const classes = useStyles();\n\n const [currentComments, setComments] = useState(comments);\n\n const pushComment = (comment: IFeedbackComment): void => {\n const newComments = comments;\n newComments.push(comment);\n setComments(newComments.slice());\n }\n\n const onDeleteComment = (id: number): void => {\n const newComments = comments;\n const index = newComments.findIndex(e => e.id === id);\n if(index > -1) {\n newComments.splice(index, 1);\n }\n setComments(newComments.slice());\n }\n\n return (\n <>\n {\n !isFeedbackCompleted &&\n \n You have a pending assessment, so you can chat with the expert below.\n \n }\n {\n isFeedbackCompleted &&\n \n This feedback is completed. You can not chat with the expert anymore.\n \n }\n\n \n\n {\n currentComments &&\n \n onDeleteComment(id)}\n />\n \n }\n\n {\n !isFeedbackCompleted &&\n pushComment(comment)}\n />\n }\n\n \n \n )\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n title: {\n fontSize: 18,\n color: theme.palette.secondary.main,\n },\n divider: {\n width: '100%',\n borderTop: '1px solid',\n borderColor: theme.divider.main,\n margin: '0'\n },\n infoText: {\n fontSize: 13\n },\n commentsBox: {\n maxHeight: 250,\n overflow: 'auto',\n paddingRight: 10,\n marginTop: 10,\n display: 'flex',\n flexDirection: 'column-reverse',\n }\n}))\n","import React from \"react\";\nimport { Typography } from \"@material-ui/core\";\nimport FileCopyIcon from '@material-ui/icons/FileCopy';\n\nimport { SectionHeader } from \"./SectionHeader\";\nimport {IFeedbackComment, IFeedbackResult} from \"core/context/feedback-requests/feedback\";\nimport {Chat} from \"../../../scenes/consumer/objectDetails/components/Chat\";\n\ntype FeedbacksProps = {\n artifactId?: number;\n activeFeedbackRequestId?: number;\n hideSectionHeader?: boolean;\n feedbacks: IFeedbackResult[];\n displayFeedbackRequestMessage?: string;\n onSelect: (feedback: IFeedbackResult) => void;\n activeFeedbacksComments: IFeedbackComment[];\n}\n\nexport const Feedbacks: React.FC = (\n {hideSectionHeader, feedbacks, displayFeedbackRequestMessage,\n onSelect, activeFeedbacksComments, artifactId, activeFeedbackRequestId}\n) => {\n return (\n <>\n {\n hideSectionHeader !== true && \n }\n\n {\n displayFeedbackRequestMessage &&\n \n {displayFeedbackRequestMessage}\n \n }\n\n {\n feedbacks.map(f => (\n onSelect(f)}\n className=\"document-icon\"\n style={!f.isRead ? {color: '#FE6502'} : {}}\n />\n ))\n }\n\n {\n feedbacks?.length === 0 &&\n \n No feedback\n \n }\n\n {\n activeFeedbacksComments?.length > 0 &&\n <>\n \n \n \n }\n\n \n )\n}\n","import React, {useContext, useState} from \"react\";\nimport { ICategory } from \"core/context/consumer/objectDetails\";\nimport { Box, Typography } from \"@material-ui/core\";\n\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport \"./styles/object-labels.less\";\n\nimport { ConfirmDeleteModal } from \"components/_others/ConfirmDeleteModal\";\nimport {UtilsContext} from \"../../../core/context/utils.context\";\nimport {ObjectApi} from \"../../../core/api\";\n\ntype ObjectLabelsProps = {\n canDeleteLabels: boolean;\n artifactId: number;\n categories: ICategory[];\n materials: ICategory[];\n styles: ICategory[];\n origins: ICategory[];\n conditions: ICategory[];\n eras: ICategory[];\n setNewCategories: (categories: ICategory[]) => void;\n}\n\nexport const ObjectLabels: React.FC = (\n {\n canDeleteLabels, categories, materials, styles,\n origins, conditions, eras, artifactId, setNewCategories\n }\n) => {\n\n const utilsContext = useContext(UtilsContext);\n\n const [deletedLabelId, setDeletedLabelId] = useState(-1);\n const [isLoading, setIsLoading] = useState(false);\n\n const openConfirmDelete = (categoryId: number): void => {\n setDeletedLabelId(categoryId);\n }\n\n const onDelete = (): void => {\n const labelIndex = categories.findIndex((c: ICategory) => c.id === deletedLabelId);\n if(!labelIndex) {\n return;\n }\n\n setIsLoading(true);\n categories.splice(labelIndex, 1);\n\n ObjectApi.updateArtifactCategories(categories.map((c: ICategory) => c.id), artifactId)\n .then(() => {\n setNewCategories(categories);\n setDeletedLabelId(-1);\n setIsLoading(false);\n })\n .catch((error: any) => {\n console.error(error.response);\n utilsContext.addSnackbar('error');\n\n })\n }\n\n return (\n \n {\n categories.length > 0 &&\n <>\n \n Category\n \n {\n categories.map((category: ICategory) => (\n
    \n {category.name}\n {\n canDeleteLabels &&\n openConfirmDelete(category.id)}\n />\n }\n
    \n ))\n }\n \n }\n\n {\n materials.length > 0 &&\n <>\n \n Material\n \n {\n materials.map((category: ICategory) => (\n
    \n {category.name}\n {\n canDeleteLabels &&\n openConfirmDelete(category.id)}\n />\n }\n
    \n ))\n }\n \n }\n\n {\n styles.length > 0 &&\n <>\n \n Style\n \n {\n styles.map((category: ICategory) => (\n
    \n {category.name}\n {\n canDeleteLabels &&\n openConfirmDelete(category.id)}\n />\n }\n
    \n ))\n }\n \n }\n\n {\n origins.length > 0 &&\n <>\n \n Origin\n \n {\n origins.map((category: ICategory) => (\n
    \n {category.name}\n {\n canDeleteLabels &&\n openConfirmDelete(category.id)}\n />\n }\n
    \n ))\n }\n \n }\n\n {\n conditions.length > 0 &&\n <>\n \n Condition\n \n {\n conditions.map((category: ICategory) => (\n
    \n {category.name}\n {\n canDeleteLabels &&\n openConfirmDelete(category.id)}\n />\n }\n
    \n ))\n }\n \n }\n\n {\n eras.length > 0 &&\n <>\n \n Era\n \n {\n eras.map((category: ICategory) => (\n
    \n {category.name}\n {\n canDeleteLabels &&\n openConfirmDelete(category.id)}\n />\n }\n
    \n ))\n }\n \n }\n\n setDeletedLabelId(-1)}\n onConfirm={() => onDelete()}\n />\n
    \n )\n}\n","import React from 'react';\nimport { Box, Tooltip, Typography } from '@material-ui/core';\n\ntype TitleProps = {\n name: string;\n};\n\nexport const Title: React.FC = ({ name }) => {\n return (\n \n \n \n {name}\n \n \n \n );\n};\n","import { Box, Grid, ThemeOptions, Typography } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/styles';\nimport { Dimensions } from 'components/_consumer/ObjectDetails';\nimport { IArtifact } from 'core/context/consumer/objectDetails';\nimport React from 'react';\n\ntype AboutObjectProps = {\n object: IArtifact;\n ownerMessage: string;\n onGiveFeedback: boolean;\n};\n\nconst useStyles = makeStyles((_theme: ThemeOptions) => ({\n titleBox: {\n display: 'flex',\n alignItems: 'flex-end',\n marginBottom: 10,\n },\n title: {\n fontSize: 20,\n fontWeight: 'bold',\n },\n id: {\n fontSize: 13,\n marginLeft: 7,\n },\n value: {\n fontSize: 14,\n },\n label: {\n color: '#B2B2B2',\n fontSize: 13,\n marginTop: 5,\n },\n}));\n\nexport const AboutObject: React.FC = ({ object, ownerMessage, onGiveFeedback }) => {\n const classes = useStyles();\n\n return (\n \n {!onGiveFeedback && (\n <>\n \n \n {object.title}\n \n \n #{object.id}\n \n \n\n \n {object.description}\n \n \n )}\n\n {onGiveFeedback && (\n <>\n \n Owners statement:\n \n {ownerMessage || 'no message'}\n \n )}\n\n \n \n \n \n \n \n Weight\n \n \n {object.weight ? `${object.weight} lb.` : 'unknown'}\n \n \n \n\n Approximate age\n \n {object.exactProductionYear !== null && (\n <>\n {object.exactProductionYear < 0\n ? `${object.exactProductionYear * -1} BC`\n : object.exactProductionYear}\n \n )}\n {object.lowerProductionYear !== null && object.upperProductionYear !== null && (\n <>\n {object.lowerProductionYear < 0\n ? `${object.lowerProductionYear * -1} BC`\n : object.lowerProductionYear}\n {' - '}\n {object.upperProductionYear < 0\n ? `${object.upperProductionYear * -1} BC`\n : object.upperProductionYear}\n \n )}\n {object.lowerProductionYear === null && object.exactProductionYear === null && <>{' unknown '}}\n \n\n \n \n Material\n {object.material || 'unknown'}\n \n \n Style\n {object.style || 'unknown'}\n \n \n\n \n \n Origin\n {object.origin || 'unknown'}\n \n \n Condition\n {object.condition || 'unknown'}\n \n \n\n Artist or Maker\n {object.artist || 'unknown'}\n\n {object.artistImageUrl && (\n
    \n \n
    \n )}\n\n Artist Bio\n \n {object.artistBio || '-'}\n \n\n Scanned Documents\n {object.fileOcrContent || '-'}\n
    \n );\n};\n","import React from \"react\";\nimport {Box, ThemeOptions, Typography} from \"@material-ui/core\";\nimport {makeStyles} from \"@material-ui/styles\";\nimport AccountCircleIcon from \"@material-ui/icons/AccountCircle\";\nimport {AppRoutes, getPhotoUrl} from \"../../../../../../core/helpers\";\nimport {FileSize} from \"../../../../../../core/enums\";\nimport moment from \"moment\";\nimport {Link} from \"react-router-dom\";\n\ntype AboutCollectorProps = {\n id?: number|null;\n firstName: string;\n lastName: string;\n requestedDate: string;\n photoUrl: string|null;\n}\n\nconst useStyles = makeStyles((_theme: ThemeOptions) => ({\n label: {\n color: '#B2B2B2',\n fontSize: 13,\n marginTop: 5,\n },\n}))\n\nexport const AboutCollector: React.FC = (\n {id, firstName, lastName, requestedDate, photoUrl}\n) => {\n\n const classes = useStyles();\n\n return (\n \n Feedback requested by\n \n {\n !photoUrl &&\n \n }\n {\n photoUrl &&\n \n } \n\n \n {\n id &&\n \n \n {firstName}{' '}{lastName}\n \n \n }\n\n {\n !id &&\n \n {firstName}{' '}{lastName}\n \n }\n\n \n {moment(requestedDate).format('h:mma MM/DD/YYYY')}\n \n \n \n \n )\n}\n","import React, {useContext, useState} from \"react\";\nimport { Backdrop, Box, Button, CircularProgress, Fade, Modal, Typography } from \"@material-ui/core\";\n\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport { modalStyles } from \"components/_others/modals/modal-styles\";\n\nimport { FeedbackRequestsApi } from \"core/api/feedback-requests/feedback-requests.api\";\nimport {UtilsContext} from \"../../../../../../core/context/utils.context\";\n\ntype RequestBetterPhotosProps = {\n feedbackRequestId: number;\n onSuccess: () => void;\n}\n\nexport const RequestBetterPhotos: React.FC = ({feedbackRequestId, onSuccess}) => {\n\n const classes = modalStyles();\n\n const [displayConfirmModal, toggleConfirmModal] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n const utilsContext = useContext(UtilsContext);\n const onConfirm = (): void => {\n setIsLoading(true)\n\n FeedbackRequestsApi.requestBetterPhotos(feedbackRequestId)\n .then(() => {\n setIsLoading(false);\n utilsContext.addSnackbar('success', 'Success!');\n onSuccess();\n toggleConfirmModal(false);\n })\n .catch((error: any) => {\n console.error(error.response);\n setIsLoading(false);\n utilsContext.addSnackbar('error');\n })\n }\n\n return (\n <>\n toggleConfirmModal(true)}\n >\n Request better photos\n \n\n toggleConfirmModal(false)}\n closeAfterTransition\n BackdropComponent={Backdrop}\n BackdropProps={{\n timeout: 500,\n }}\n >\n \n
    \n \n toggleConfirmModal(false)} />\n \n\n \n \n Request better photos\n \n \n The collector will receive a notification, asking him to upload better photos.\n Are you sure you want to continue?\n \n \n\n \n toggleConfirmModal(false)}\n >\n Cancel\n \n\n onConfirm()}\n >\n {\n isLoading && \n }\n Request better photos\n \n \n
    \n
    \n \n \n\n )\n}\n","import {Box, Typography} from \"@material-ui/core\";\nimport React from \"react\";\n\ntype AboutObjectShortProps = {\n title: string;\n description: string;\n id: number;\n}\n\nexport const AboutObjectShort: React.FC = (\n {title, description, id}\n) => {\n return (\n \n \n {title}\n \n #{id}\n \n \n\n \n {description}\n \n \n )\n}\n","import React from \"react\";\nimport { ThemeOptions, Typography } from \"@material-ui/core\";\nimport { makeStyles } from \"@material-ui/styles\";\n\ntype SectionTitleProps = {\n title: string;\n}\n\nconst useStyles = makeStyles((theme: ThemeOptions) => ({\n root: {\n fontSize: 18,\n fontWeight: 'bold',\n borderBottom: '1px solid',\n borderColor: `${theme.divider.main}!important`,\n maxWidth: '30%'\n }\n}))\n\nexport const SectionTitle: React.FC = ({title}) => {\n\n const classes = useStyles();\n\n return (\n \n {title}\n \n )\n}\n","import React from \"react\";\nimport { Box, ThemeOptions, Typography } from \"@material-ui/core\";\nimport { makeStyles } from \"@material-ui/styles\";\n\nimport InfoIcon from \"@material-ui/icons/Info\";\n\ntype InfoTextProps = {\n text: string;\n fontSize?: number;\n}\n\nconst useStyles = makeStyles((theme: ThemeOptions) => ({\n root: {\n display: 'flex',\n alignItems: 'center',\n },\n icon: {\n width: 15,\n height: 15,\n color: theme.palette?.text?.secondary\n },\n text: {\n fontSize: 14,\n marginLeft: 5,\n color: theme.palette?.text?.secondary,\n lineHeight: 1.2\n }\n}))\n\nexport const InfoText: React.FC = ({text, fontSize}) => {\n\n const classes = useStyles();\n\n return (\n \n \n \n {text}\n \n \n )\n}\n","import React, { useState } from \"react\";\nimport {Box, Checkbox, FormControlLabel, InputLabel, TextField, ThemeOptions, Typography} from \"@material-ui/core\";\nimport { makeStyles } from \"@material-ui/core/styles\";\n\ntype EntryFieldProps = {\n id: string;\n label: string;\n collectorInput: string|null;\n error: string;\n setError: () => void;\n value: string;\n disabled: boolean;\n setValue: (v: string) => void;\n onBlur: (byCollectorInput: boolean) => void;\n}\n\nconst useStyles = makeStyles((theme: ThemeOptions) => ({\n root: {\n marginBottom: 20\n },\n labelSm: {\n fontSize: 14,\n marginBottom: 5,\n color: theme.palette?.text?.primary,\n },\n focusLabel: {\n fontSize: 14,\n color: \"#FE6502\",\n marginBottom: 5,\n },\n errorLabel: {\n fontSize: 14,\n color: \"#B32222\",\n marginBottom: 5,\n },\n collectorInputLabel: {\n color: theme.palette?.text?.secondary,\n fontSize: 14,\n marginBottom: 5,\n },\n collectorInput: {\n color: theme.palette?.text?.primary,\n }\n}));\n\nexport const EntryField: React.FC = (\n {id, label, collectorInput, error, setError, value, setValue, onBlur, disabled}\n) => {\n\n const classes = useStyles();\n\n const [onFocus, setOnFocus] = useState(false);\n const [accurateStatement, setAccurateStatement] = useState(false);\n\n return (\n \n \n {label}\n \n\n {\n collectorInput != null && !disabled &&\n \n \n Collector's input: {collectorInput}\n \n\n {\n collectorInput !== 'no information provided' &&\n {\n if(!accurateStatement) {\n setValue(collectorInput);\n }\n setAccurateStatement(!accurateStatement);\n }}\n onBlur={() => {setError(); onBlur(accurateStatement)}}\n />\n }\n label={\n \n This statement is accurate.\n \n }\n />\n }\n \n }\n\n setValue(e.target.value)}\n onFocus={() => setOnFocus(true)}\n onBlur={() => {setOnFocus(false); setError(); onBlur(false)}}\n />\n \n )\n}\n","import React from \"react\";\nimport {Box, Button, CircularProgress} from \"@material-ui/core\";\n\ntype GiveFeedbackActionsProps = {\n onCancel: () => void;\n onSaveFeedback: () => void;\n onSaveDraft: () => void;\n isSaveDraftLoading: boolean;\n isLoading: boolean;\n}\n\nexport const GiveFeedbackActions: React.FC = (\n {onCancel, onSaveFeedback,onSaveDraft, isLoading, isSaveDraftLoading}\n) => {\n return (\n \n onCancel()}\n style={{marginRight: 10}}\n disabled={isLoading || isSaveDraftLoading}\n >\n Cancel\n \n onSaveDraft()}\n style={{marginRight: 10}}\n disabled={isLoading || isSaveDraftLoading}\n >\n {\n isSaveDraftLoading && \n }\n Save Draft\n \n onSaveFeedback()}\n disabled={isLoading || isSaveDraftLoading}\n >\n Submit Feedback\n \n \n )\n}\n","import React, { useEffect, useState } from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport {\n Box, Checkbox,\n FormControlLabel,\n Grid,\n InputLabel, MenuItem,\n Radio,\n RadioGroup,\n Select,\n TextField,\n ThemeOptions, Typography\n} from \"@material-ui/core\";\n\nimport {\n manageExactProductionYearError,\n manageMaxProductionYearError,\n manageMinProductionYearError,\n manageYearRangeError\n} from \"components/_consumer/ObjectForm/helpers/errors.manager\";\nimport {YearInput} from \"../../../../../../../components/_others/NumberInput\";\n\ntype ApproximateAgeProps = {\n id: string;\n label: string;\n disabled: boolean;\n setError: (hasError: boolean) => void;\n data: {\n productionYear: number|null;\n lowerProductionYear: number|null;\n upperProductionYear: number|null;\n };\n draftData: {\n productionYear: number|null;\n lowerProductionYear: number|null;\n upperProductionYear: number|null;\n }|null;\n setValue: (v: any) => void;\n}\n\nconst useStyles = makeStyles((theme: ThemeOptions) => ({\n root: {\n marginBottom: 20\n },\n labelSm: {\n fontSize: 14,\n marginBottom: 5,\n color: theme.palette?.text?.primary,\n },\n focusLabel: {\n fontSize: 14,\n color: \"#FE6502\",\n marginBottom: 5,\n },\n errorLabel: {\n fontSize: 14,\n color: \"#B32222\",\n marginBottom: 5,\n },\n collectorInputLabel: {\n color: theme.palette?.text?.secondary,\n fontSize: 14,\n marginBottom: 5,\n },\n collectorInput: {\n color: theme.palette?.text?.primary,\n marginLeft: 4\n }\n}));\n\nexport const ApproximateAge: React.FC = (\n {id, label, data, setValue, setError, disabled, draftData}\n) => {\n\n const classes = useStyles();\n\n const [onFocus, setOnFocus] = useState('');\n const [productionYearOption, setProductionYearOption] = useState('');\n const [accurateStatement, setAccurateStatement] = useState(false);\n\n const [errors, setErrors] = useState({\n yearRange: '',\n exactProductionYear: '',\n lowerProductionYear: '',\n upperProductionYear: '',\n });\n\n const [values, setValues] = useState({\n exactProductionYear: '',\n lowerProductionYear: '',\n upperProductionYear: '',\n exactYearNotation: 'AD',\n lowerYearNotation: 'AD',\n upperYearNotation: 'AD',\n })\n\n useEffect(() => {\n if(disabled) {\n setValuesByCollectorInput();\n }\n\n if(draftData && !disabled) {\n const option = draftData.lowerProductionYear !== null ? 'range' : 'exact';\n setProductionYearOption(option);\n\n setValues({\n exactProductionYear: draftData.productionYear ? (draftData.productionYear).toString() : '',\n lowerProductionYear: draftData.lowerProductionYear ? (draftData.lowerProductionYear).toString() : '',\n upperProductionYear: draftData.upperProductionYear ? (draftData.upperProductionYear).toString() : '',\n exactYearNotation: draftData.productionYear ? draftData.productionYear < 0 ? 'BC':'AD' : 'AD',\n lowerYearNotation: draftData.lowerProductionYear ? draftData.lowerProductionYear < 0 ? 'BC':'AD' : 'AD',\n upperYearNotation: draftData.upperProductionYear ? draftData.upperProductionYear < 0 ? 'BC':'AD' : 'AD',\n })\n }\n }, [])\n\n useEffect(() => {\n setValue({\n exactProductionYear: values.exactYearNotation === 'AD'\n ? values.exactProductionYear\n : Number(values.exactProductionYear) * -1,\n lowerProductionYear: values.lowerYearNotation === 'AD'\n ? values.lowerProductionYear\n : Number(values.lowerProductionYear) * -1,\n upperProductionYear: values.upperYearNotation === 'AD'\n ? values.upperProductionYear\n : Number(values.upperProductionYear) * -1,\n })\n }, [values])\n\n const setValuesByCollectorInput = (): void => {\n const option = data.lowerProductionYear !== null ? 'range' : 'exact';\n setProductionYearOption(option);\n\n setValues({\n exactProductionYear: data.productionYear ? (data.productionYear).toString() : '',\n lowerProductionYear: data.lowerProductionYear ? (data.lowerProductionYear).toString() : '',\n upperProductionYear: data.upperProductionYear ? (data.upperProductionYear).toString() : '',\n exactYearNotation: data.productionYear ? data.productionYear < 0 ? 'BC':'AD' : 'AD',\n lowerYearNotation: data.lowerProductionYear ? data.lowerProductionYear < 0 ? 'BC':'AD' : 'AD',\n upperYearNotation: data.upperProductionYear ? data.upperProductionYear < 0 ? 'BC':'AD' : 'AD',\n })\n setError(false);\n }\n const manageErrors = (): void => {\n const errors: any = {\n yearRange: productionYearOption === 'range'\n ? manageYearRangeError(values.lowerProductionYear, values.upperProductionYear)\n : '',\n exactProductionYear: productionYearOption === 'exact'\n ? manageExactProductionYearError(\n values.exactProductionYear,\n values.exactYearNotation\n ) : '',\n lowerProductionYear: productionYearOption === 'range'\n ? manageMinProductionYearError(\n values.lowerProductionYear,\n values.upperProductionYear,\n values.lowerYearNotation,\n values.upperYearNotation\n ) : '',\n upperProductionYear: productionYearOption === 'range'\n ? manageMaxProductionYearError(\n values.lowerProductionYear,\n values.upperProductionYear,\n ) : '',\n }\n\n const err = Object.keys(errors).map((k: string) => errors[k]);\n const hasErrors = err.findIndex(el => el !== '') > -1;\n\n setErrors({...errors});\n setError(hasErrors);\n setValue(values);\n }\n\n return (\n \n \n {label}\n \n\n {\n !disabled &&\n \n \n Collector's input:\n \n {\n data.productionYear !== null &&\n <>\n {\n data.productionYear < 0\n ? ` ${data.productionYear * -1} BC`\n : data.productionYear\n }\n \n }\n {\n data.lowerProductionYear !== null && data.upperProductionYear !== null &&\n <>\n {\n data.lowerProductionYear < 0\n ? `${data.lowerProductionYear * -1} BC`\n : data.lowerProductionYear\n }{' - '}\n {\n data.upperProductionYear < 0\n ? `${data.upperProductionYear * -1} BC`\n : data.upperProductionYear\n }\n \n }\n {\n data.lowerProductionYear === null && data.productionYear === null &&\n <>\n {' no information provided '}\n \n }\n \n \n\n {\n (data.lowerProductionYear !== null || data.productionYear !== null) &&\n {\n if(!accurateStatement) {\n setValuesByCollectorInput();\n }\n setAccurateStatement(!accurateStatement);\n }}\n />\n }\n label={\n \n This statement is accurate.\n \n }\n />\n }\n\n \n }\n\n {\n setProductionYearOption(e.target.value)\n if(e.target.value === 'exact') {\n setValues({\n ...values,\n lowerProductionYear: '',\n upperProductionYear: '',\n })\n } else {\n setValues({\n ...values,\n exactProductionYear: '',\n })\n }\n }}\n >\n \n } label=\"Exact Year\" />\n \n } label=\"Range\" />\n \n\n {\n productionYearOption === 'exact' &&\n \n \n setValues({\n ...values,\n exactProductionYear: e.target.value,\n lowerProductionYear: '',\n upperProductionYear: '',\n })}\n onFocus={() => setOnFocus('exactProductionYear')}\n onBlur={() => {setOnFocus(''); manageErrors()}}\n InputProps={{\n inputComponent: YearInput,\n }}\n />\n \n\n \n \n \n \n }\n\n {\n productionYearOption === 'range' &&\n <>\n \n \n setValues({\n ...values,\n lowerProductionYear: e.target.value,\n exactProductionYear: ''\n })}\n onFocus={() => setOnFocus('lowerProductionYear')}\n onBlur={() => {setOnFocus(''); manageErrors()}}\n InputProps={{\n inputComponent: YearInput,\n }}\n />\n \n\n \n \n \n\n \n setValues({\n ...values,\n upperProductionYear: e.target.value,\n exactProductionYear: ''\n })}\n onFocus={() => setOnFocus('upperProductionYear')}\n onBlur={() => {setOnFocus(''); manageErrors()}}\n InputProps={{\n inputComponent: YearInput,\n }}\n />\n \n\n \n \n \n\n \n \n }\n \n )\n}\n","import React, {useEffect, useState} from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport {\n Box,\n Checkbox,\n FormControlLabel, Grid, InputAdornment,\n InputLabel,\n Radio,\n RadioGroup, TextField,\n ThemeOptions,\n Typography\n} from \"@material-ui/core\";\n\nimport { getEstimatedDisplayValue } from \"core/helpers\";\nimport { managePriceRangesError } from \"components/_consumer/ObjectForm/helpers/errors.manager\";\nimport {NumberInput} from \"../../../../../../../components/_others/NumberInput\";\n\ntype ApproximateValueProps = {\n id: string;\n label: string;\n disabled: boolean;\n setError: (hasError: boolean) => void;\n data: {\n exactValue: number|null;\n minimumValue: number|null;\n maximumValue: number|null;\n };\n draftData: {\n exactValue: number|null;\n minimumValue: number|null;\n maximumValue: number|null;\n } | null\n setValue: (v: any) => void;\n}\n\nconst useStyles = makeStyles((theme: ThemeOptions) => ({\n root: {\n marginBottom: 20\n },\n labelSm: {\n fontSize: 14,\n marginBottom: 5,\n color: theme.palette?.text?.primary,\n },\n focusLabel: {\n fontSize: 14,\n color: \"#FE6502\",\n marginBottom: 5,\n },\n errorLabel: {\n fontSize: 14,\n color: \"#B32222\",\n marginBottom: 5,\n },\n collectorInputLabel: {\n color: theme.palette?.text?.secondary,\n fontSize: 14,\n marginBottom: 5,\n },\n collectorInput: {\n color: theme.palette?.text?.primary,\n marginLeft: 4\n }\n}));\n\nexport const ApproximateValue: React.FC = (\n {id, label, setError, data, setValue, disabled, draftData}\n) => {\n\n const classes = useStyles();\n\n const collectorInput = getEstimatedDisplayValue(\n data.exactValue,\n data.minimumValue,\n data.maximumValue\n );\n\n const [onFocus, setOnFocus] = useState('');\n const [estimatedValueOption, setEstimatedValueOption] = useState('');\n const [accurateStatement, setAccurateStatement] = useState(false);\n\n const [values, setValues] = useState({\n exactValue: '',\n minimumValue: '',\n maximumValue: '',\n })\n\n const [errors, setErrors] = useState({\n estimatedRanges: '',\n })\n\n useEffect(() => {\n if(disabled) {\n setValuesByCollectorInput();\n }\n\n if(draftData && !disabled) {\n setEstimatedValueOption(draftData.exactValue !== null ? 'exact':'range');\n\n setValues({\n exactValue: draftData.exactValue?.toString() || '0',\n minimumValue: draftData.minimumValue?.toString() || '0',\n maximumValue: draftData.maximumValue?.toString() || '0',\n })\n }\n }, [])\n\n useEffect(() => {\n setValue({\n exactValue: data.exactValue?.toString() || '0',\n minimumValue: data.minimumValue?.toString() || '0',\n maximumValue: data.maximumValue?.toString() || '0',\n })\n }, [values])\n\n const setValuesByCollectorInput = (): void => {\n setEstimatedValueOption(data.exactValue !== null ? 'exact':'range');\n\n setValues({\n exactValue: data.exactValue?.toString() || '0',\n minimumValue: data.minimumValue?.toString() || '0',\n maximumValue: data.maximumValue?.toString() || '0',\n })\n setError(false);\n }\n\n const manageErrors = (): void => {\n const errors: any = {\n estimatedRanges: estimatedValueOption === 'range'\n ? managePriceRangesError(values.minimumValue, values.maximumValue)\n : '',\n }\n\n const hasErrors = errors.estimatedRanges !== '';\n\n setErrors({...errors});\n setError(hasErrors);\n setValue(values);\n }\n\n return (\n \n \n {label}\n \n\n {\n !disabled &&\n \n \n Collector's input:\n \n {\n collectorInput === 'unknown' ? 'no collector input' : collectorInput\n }\n \n \n\n {\n collectorInput !== 'unknown' &&\n {\n if(!accurateStatement) {\n setValuesByCollectorInput();\n }\n setAccurateStatement(!accurateStatement);\n }}\n />\n }\n label={\n \n This statement is accurate.\n \n }\n />\n }\n \n }\n\n {\n setEstimatedValueOption(e.target.value);\n if(e.target.value === 'exact') {\n setValues({\n ...values,\n minimumValue: '',\n maximumValue: '',\n })\n } else {\n setValues({\n ...values,\n exactValue: '',\n })\n }\n }}\n >\n \n } label=\"Exact Value\" />\n \n } label=\"Range\" />\n \n\n {\n estimatedValueOption === 'exact' &&\n <>\n $,\n inputComponent: NumberInput,\n }}\n value={values.exactValue}\n onChange={(e: any) => setValues({\n ...values,\n minimumValue: '',\n maximumValue: '',\n exactValue: e.target.value\n })}\n onFocus={() => setOnFocus('exactValue')}\n onBlur={() => {setOnFocus(''); manageErrors()}}\n />\n \n }\n\n {\n estimatedValueOption === 'range' &&\n \n \n \n Min\n \n $,\n inputComponent: NumberInput,\n }}\n value={values.minimumValue}\n onChange={(e: any) => setValues({\n ...values,\n minimumValue: e.target.value,\n exactValue: ''\n })}\n onFocus={() => setOnFocus('minimumValue')}\n onBlur={() => {setOnFocus(''); manageErrors()}}\n />\n \n \n \n Max\n \n $,\n inputComponent: NumberInput,\n }}\n value={values.maximumValue}\n onChange={(e: any) => setValues({\n ...values,\n maximumValue: e.target.value,\n exactValue: ''\n })}\n onFocus={() => setOnFocus('maximumValue')}\n onBlur={() => {setOnFocus(''); manageErrors()}}\n />\n \n \n }\n \n )\n}\n","import React, { useState } from \"react\";\nimport { Box, Button } from \"@material-ui/core\";\nimport { makeStyles } from \"@material-ui/styles\";\nimport { ThemeProvider } from \"@material-ui/core/styles\";\n\nimport { lightTheme } from \"assets/themes/light-theme\";\n\nimport AsyncCreatableSelect from 'react-select/async-creatable';\n\nimport { CommonApi } from \"core/api/shared\";\nimport { ICategory } from \"core/context/consumer/objectDetails\";\n\ntype AddNewLabelProps = {\n type: string;\n onSave: (labels: ICategory[]) => void;\n disableCreate?: boolean;\n isMulti: boolean;\n}\n\nconst useStyles = makeStyles({\n button: {\n fontSize: 12,\n padding: '0 6px',\n },\n selectBox: {\n\n marginLeft: 15,\n marginBottom: 10,\n display: 'flex',\n alignItems: 'center'\n },\n select: {\n width: '250px',\n },\n actionBtn: {\n fontSize: 13,\n paddingLeft: 0,\n paddingRight: 0,\n maxWidth: 30\n }\n})\n\nconst customStyles = {\n menu: (provided: any, _state: any) => ({\n ...provided,\n color: 'black',\n backgroundColor: '#F7F7F7',\n }),\n multiValueRemove: (provided: any, _state: any) => ({\n ...provided,\n color: 'black',\n }),\n}\n\nexport const AddNewLabel: React.FC = ({onSave, disableCreate, type, isMulti}) => {\n\n const classes = useStyles();\n\n const [onAddLabel, setOnAddLabel] = useState(false);\n const [selectedLabels, setSelectedLabels] = useState([]);\n\n const promiseOptions = (inputValue: string): any => {\n return CommonApi.searchTaxonomy(JSON.stringify(inputValue), type)\n .then((res: any) => {\n return res.data.map((el: any) => {\n return {\n value: el.id,\n label: el.name,\n }\n })\n });\n }\n\n const handleCancel = (): void => {\n setOnAddLabel(false);\n setSelectedLabels([]);\n }\n\n const handleSave = (): void => {\n onSave((Array.isArray(selectedLabels) ? selectedLabels : [selectedLabels]).map((l: any) => {\n return {\n id: l.value,\n name: l.label\n }\n }));\n setOnAddLabel(false);\n }\n\n return (\n <>\n {\n !onAddLabel &&\n setOnAddLabel(true)}\n >\n Add new label\n \n }\n\n {\n onAddLabel &&\n \n \n \n !disableCreate}\n allowCreateWhileLoading={false}\n placeholder={'Search...'}\n loadOptions={promiseOptions}\n onChange={(e) => setSelectedLabels(e)}\n styles={customStyles}\n />\n \n \n\n handleSave()}\n >\n Save\n \n\n handleCancel()}\n >\n Cancel\n \n \n }\n \n )\n}\n","import React from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { Box, ThemeOptions, Typography } from \"@material-ui/core\";\n\nimport { ICategory } from \"core/context/consumer/objectDetails\";\nimport { AddNewLabel } from \"./AddNewLabel\";\n\nimport CloseIcon from \"@material-ui/icons/Close\";\n\ntype LabelsProps = {\n disabled: boolean;\n categories: ICategory[];\n materials: ICategory[];\n styles: ICategory[];\n origins: ICategory[];\n conditions: ICategory[];\n setNewCategories: (c: ICategory[]) => void;\n setNewMaterials: (c: ICategory[]) => void;\n setNewStyles: (c: ICategory[]) => void;\n setNewOrigins: (c: ICategory[]) => void;\n setNewConditions: (c: ICategory[]) => void;\n}\n\nconst useStyles = makeStyles((theme: ThemeOptions) => ({\n subtitle: {\n fontSize: 14,\n marginBottom: 10,\n },\n labelSectionName: {\n fontSize: 14,\n marginRight: 10,\n },\n noLabelsText: {\n fontSize: 13,\n },\n labelsContainer: {\n display: 'flex',\n flexWrap: 'wrap',\n marginBottom: 10,\n },\n label: {\n fontSize: 13,\n backgroundColor: theme.label.main,\n color: theme.label.text,\n padding: '3px 7px',\n marginRight: 7,\n borderRadius: 2,\n marginTop: 5,\n display: 'flex',\n alignItems: 'center'\n },\n closeIcon: {\n color: theme.label.text,\n width: 14,\n height: 14,\n marginLeft: 7,\n marginTop: 2,\n cursor: 'pointer'\n }\n}));\n\nexport const Labels: React.FC = (\n {\n disabled, categories, materials, styles, origins, conditions,\n setNewCategories, setNewMaterials, setNewStyles, setNewOrigins, setNewConditions\n }\n) => {\n\n const classes = useStyles();\n\n const handleNewLabels = (labels: ICategory[]|ICategory, type: string): void => {\n if(type === 'Category') {\n let newCategories = categories;\n newCategories = newCategories.concat(labels);\n setNewCategories(newCategories.filter((thing, index, self) =>\n index === self.findIndex((t) => (\n t.name === thing.name && t.name === thing.name\n ))\n ).slice());\n return;\n }\n\n if(type === 'Material') {\n let newCategories = materials;\n newCategories = newCategories.concat(labels);\n setNewMaterials(newCategories.filter((thing, index, self) =>\n index === self.findIndex((t) => (\n t.name === thing.name && t.name === thing.name\n ))\n ).slice());\n return;\n }\n\n if(type === 'Style') {\n let newCategories = styles;\n newCategories = newCategories.concat(labels);\n setNewStyles(newCategories.filter((thing, index, self) =>\n index === self.findIndex((t) => (\n t.name === thing.name && t.name === thing.name\n ))\n ).slice());\n return;\n }\n\n if(type === 'Origin') {\n let newCategories = origins;\n newCategories = newCategories.concat(labels);\n setNewOrigins(newCategories.filter((thing, index, self) =>\n index === self.findIndex((t) => (\n t.name === thing.name && t.name === thing.name\n ))\n ).slice());\n return;\n }\n\n if(type === 'Condition') {\n let newCategories = conditions;\n newCategories = newCategories.concat(labels);\n setNewConditions(newCategories.filter((thing, index, self) =>\n index === self.findIndex((t) => (\n t.name === thing.name && t.name === thing.name\n ))\n ).slice());\n }\n }\n\n const handleDeleteLabel = (name: string, type: string): void => {\n if(type === 'Category') {\n const newCategories = categories;\n const index = newCategories.findIndex(el => el.name === name);\n newCategories.splice(index, 1);\n setNewCategories(newCategories.filter((thing, index, self) =>\n index === self.findIndex((t) => (\n t.name === thing.name && t.name === thing.name\n ))\n ).slice());\n return;\n }\n\n if(type === 'Material') {\n const newCategories = materials;\n const index = newCategories.findIndex(el => el.name === name);\n newCategories.splice(index, 1);\n setNewMaterials(newCategories.filter((thing, index, self) =>\n index === self.findIndex((t) => (\n t.name === thing.name && t.name === thing.name\n ))\n ).slice());\n return;\n }\n\n if(type === 'Style') {\n const newCategories = styles;\n const index = newCategories.findIndex(el => el.name === name);\n newCategories.splice(index, 1);\n setNewStyles(newCategories.filter((thing, index, self) =>\n index === self.findIndex((t) => (\n t.name === thing.name && t.name === thing.name\n ))\n ).slice());\n return;\n }\n\n if(type === 'Origin') {\n const newCategories = origins;\n const index = newCategories.findIndex(el => el.name === name);\n newCategories.splice(index, 1);\n setNewOrigins(newCategories.filter((thing, index, self) =>\n index === self.findIndex((t) => (\n t.name === thing.name && t.name === thing.name\n ))\n ).slice());\n return;\n }\n\n if(type === 'Condition') {\n const newCategories = conditions;\n const index = newCategories.findIndex(el => el.name === name);\n newCategories.splice(index, 1);\n setNewConditions(newCategories.filter((thing, index, self) =>\n index === self.findIndex((t) => (\n t.name === thing.name && t.name === thing.name\n ))\n ).slice());\n }\n }\n\n return (\n \n \n The following labels were generated based on your feedback.\n \n\n <>\n \n \n Category\n \n {\n !disabled && handleNewLabels(labels, 'Category')}\n />\n }\n \n\n {\n categories.length === 0 &&\n \n No labels found\n \n }\n\n \n {\n categories.map(c => (\n \n {c.name}\n {\n !disabled && handleDeleteLabel(c.name, 'Category')}\n />\n }\n \n ))\n }\n \n \n\n <>\n \n \n Material\n \n {\n !disabled && handleNewLabels(labels, 'Material')}\n />\n }\n \n {\n materials.length === 0 &&\n \n No labels found\n \n }\n \n {\n materials.map(c => (\n \n {c.name}\n {\n !disabled && handleDeleteLabel(c.name, 'Material')}\n />\n }\n \n ))\n }\n \n \n\n <>\n \n \n Style\n \n {\n !disabled && handleNewLabels(labels, 'Style')}\n />\n }\n \n {\n styles.length === 0 &&\n \n No labels found\n \n }\n \n {\n styles.map(c => (\n \n {c.name}\n {\n !disabled && handleDeleteLabel(c.name, 'Style')}\n />\n }\n \n ))\n }\n \n \n\n <>\n \n \n Origin\n \n {\n !disabled && handleNewLabels(labels, 'Origin')}\n />\n }\n \n {\n origins.length === 0 &&\n \n No labels found\n \n }\n \n {\n origins.map(c => (\n \n {c.name}\n {\n !disabled && handleDeleteLabel(c.name, 'Origin')}\n />\n }\n \n ))\n }\n \n \n\n <>\n \n \n Condition\n \n {\n !disabled && handleNewLabels(labels, 'Condition')}\n />\n }\n \n {\n conditions.length === 0 &&\n \n No labels found\n \n }\n \n {\n conditions.map(c => (\n \n {c.name}\n {\n !disabled && handleDeleteLabel(c.name, 'Condition')}\n />\n }\n \n ))\n }\n \n \n \n )\n}\n","import React, {useContext, useEffect, useState} from \"react\";\nimport { Box, InputLabel, TextField, ThemeOptions, Typography } from \"@material-ui/core\";\nimport { makeStyles } from \"@material-ui/core/styles\";\n\nimport { IArtifact, ICategory } from \"core/context/consumer/objectDetails\";\nimport { CommonApi } from \"core/api/shared\";\nimport { FeedbackRequestsApi } from \"core/api/feedback-requests/feedback-requests.api\";\nimport {FeedbackDraft, IFeedbackResult} from \"core/context/feedback-requests/feedback\";\n\nimport { SectionTitle } from \"./SectionTitle\";\nimport { InfoText } from \"components/_others/InfoText\";\nimport { EntryField } from \"./EntryField\";\nimport { GiveFeedbackActions } from \"../GiveFeedbackActions\";\nimport { ApproximateAge } from \"./ApproximateAge\";\nimport { ApproximateValue } from \"./ApproximateValue\";\nimport { Labels } from \"./Labels\";\nimport {useInterval} from \"../../../../../../../core/hooks/use-interval.hook\";\nimport {UserContext} from \"../../../../../../../core/context/user\";\nimport {UserRoles} from \"../../../../../../../core/enums\";\n\ntype FeedbackFormProps = {\n id: number;\n artifact: IArtifact;\n feedbackResult: IFeedbackResult|null;\n feedbackDraft: FeedbackDraft|null;\n onCancel: () => void;\n onSuccess: () => void;\n onError: () => void;\n isCompleted: boolean;\n}\n\nconst useStyles = makeStyles((theme: ThemeOptions) => ({\n root: {\n margin: 'auto'\n },\n divider: {\n width: 55,\n height: 1,\n backgroundColor: \"#707070\",\n marginTop: 15,\n marginBottom: 25,\n },\n labelSm: {\n fontSize: 14,\n marginBottom: 5,\n },\n labelXs: {\n fontSize: 11\n },\n focusLabel: {\n fontSize: 14,\n color: \"#FE6502\",\n marginBottom: 5,\n },\n errorLabel: {\n fontSize: 14,\n color: \"#B32222\",\n marginBottom: 5,\n },\n actionsBox: {\n position: 'sticky',\n top: 65,\n paddingTop: 3,\n paddingBottom: 3,\n zIndex: 1,\n backgroundColor: theme.rootBackground.main\n }\n}));\n\nexport const FeedbackForm: React.FC = (\n {id, artifact, feedbackResult,feedbackDraft, onCancel, onSuccess, onError, isCompleted}\n) => {\n\n const classes = useStyles();\n const userContext = useContext(UserContext)\n\n const [onFocus, setOnFocus] = useState('');\n const [saveAttempt, setSaveAttempt] = useState(false);\n\n const [errors, setErrors] = useState({\n expertStatement: '',\n comments: '',\n category: '',\n material: '',\n style: '',\n origin: '',\n condition: '',\n artist: '',\n ageInvalid: true,\n valueInvalid: true,\n });\n const [values, setValues] = useState({\n expertStatement: '',\n comments: '',\n category: '',\n material: '',\n style: '',\n origin: '',\n condition: '',\n artist: '',\n artistBio: '',\n exactProductionYear: '',\n lowerProductionYear: '',\n upperProductionYear: '',\n exactValue: '',\n minimumValue: '',\n maximumValue: '',\n });\n\n const [categories, setCategories] = useState([]);\n const [materials, setMaterials] = useState([]);\n const [styles, setStyles] = useState([]);\n const [origins, setOrigins] = useState([]);\n const [conditions, setConditions] = useState([]);\n\n const [isLoading, setIsLoading] = useState(false);\n const [isSaveDraftLoading, setSaveDraftLoading] = useState(false);\n\n useInterval(() => {\n if(feedbackDraft !== null && !isCompleted) {\n console.log(\"Saving draft...\")\n onSaveDraft();\n }\n }, 120000);\n\n useEffect(() => {\n if(feedbackDraft !== null && !isCompleted && userContext.user?.role === UserRoles.EXPERT) {\n initDraft();\n return;\n }\n\n if(!feedbackResult) {\n return;\n }\n\n setValues({\n expertStatement: feedbackResult.statement,\n comments: feedbackResult.comment,\n category: feedbackResult.category,\n material: feedbackResult.material,\n style: feedbackResult.style,\n origin: feedbackResult.origin,\n condition: feedbackResult.condition,\n artist: feedbackResult.artist,\n artistBio: feedbackResult.artistBio,\n exactProductionYear: feedbackResult.exactProductionYear !== null\n ? feedbackResult.exactProductionYear.toString()\n : '',\n lowerProductionYear: feedbackResult.lowerProductionYear !== null\n ? feedbackResult.lowerProductionYear.toString()\n : '',\n upperProductionYear: feedbackResult.upperProductionYear !== null\n ? feedbackResult.upperProductionYear.toString()\n : '',\n exactValue: feedbackResult.exactValue !== null\n ? feedbackResult.exactValue.toString()\n : '',\n minimumValue: feedbackResult.minimumValue !== null\n ? feedbackResult.minimumValue.toString()\n : '',\n maximumValue: feedbackResult.maximumValue !== null\n ? feedbackResult.maximumValue.toString()\n : '',\n });\n\n setCategories(feedbackResult.categories);\n setMaterials(feedbackResult.materials);\n setStyles(feedbackResult.styles);\n setOrigins(feedbackResult.origins);\n setConditions(feedbackResult.conditions);\n\n\n }, [])\n\n const initDraft = (): void => {\n\n if(!feedbackDraft) {\n return;\n }\n\n setValues({\n expertStatement: feedbackDraft.statement,\n comments: feedbackDraft.comment,\n category: feedbackDraft.category,\n material: feedbackDraft.material,\n style: feedbackDraft.style,\n origin: feedbackDraft.origin,\n condition: feedbackDraft.condition,\n artist: feedbackDraft.artist,\n artistBio: feedbackDraft.artistBio,\n exactProductionYear: feedbackDraft.exactProductionYear !== null\n ? feedbackDraft.exactProductionYear.toString()\n : '',\n lowerProductionYear: feedbackDraft.lowerProductionYear !== null\n ? feedbackDraft.lowerProductionYear.toString()\n : '',\n upperProductionYear: feedbackDraft.upperProductionYear !== null\n ? feedbackDraft.upperProductionYear.toString()\n : '',\n exactValue: feedbackDraft.exactValue !== null\n ? feedbackDraft.exactValue.toString()\n : '',\n minimumValue: feedbackDraft.minimumValue !== null\n ? feedbackDraft.minimumValue.toString()\n : '',\n maximumValue: feedbackDraft.maximumValue !== null\n ? feedbackDraft.maximumValue.toString()\n : '',\n });\n\n setErrors({...errors,\n ageInvalid: feedbackDraft.exactProductionYear === null && feedbackDraft.lowerProductionYear === null,\n valueInvalid: feedbackDraft.exactValue === null && feedbackDraft.minimumValue === null,\n });\n\n if(feedbackDraft.category) {\n searchForLabels('Category', feedbackDraft.category)\n }\n\n if(feedbackDraft.material) {\n searchForLabels('Material', feedbackDraft.material)\n }\n\n if(feedbackDraft.style) {\n searchForLabels('Style', feedbackDraft.style)\n }\n\n if(feedbackDraft.origin) {\n searchForLabels('Origin', feedbackDraft.origin)\n }\n\n if(feedbackDraft.condition) {\n searchForLabels('Condition', feedbackDraft.condition)\n }\n }\n\n const manageErrors = (field: null|string = null): any => {\n const err = {\n ...errors,\n expertStatement: (field === null || field === 'expertStatement') && !values.expertStatement.trim().length\n ? 'This field is required.' : '',\n comments: (field === null || field === 'comments') && !values.comments.trim().length\n ? 'This field is required.' : '',\n category: (field === null || field === 'category') && !values.category.trim().length\n ? 'This field is required.' : '',\n material: (field === null || field === 'material') && !values.material.trim().length\n ? 'This field is required.' : '',\n style: (field === null || field === 'style') && !values.style.trim().length\n ? 'This field is required.' : '',\n origin: (field === null || field === 'origin') && !values.origin.trim().length\n ? 'This field is required.' : '',\n condition: (field === null || field === 'condition') && !values.condition.trim().length\n ? 'This field is required.' : '',\n artist: (field === null || field === 'artist') && !values.artist.trim().length\n ? 'This field is required.' : '',\n }\n setErrors(err);\n return err;\n }\n\n const onSaveFeedback = (): void => {\n setSaveAttempt(true);\n\n const err = manageErrors();\n const hasErrors = Object.keys(err).map(k => err[k]).findIndex(el => el !== '' && el !== false) > -1;\n\n if(hasErrors) {\n return;\n }\n\n setIsLoading(true);\n\n const payload = {\n statement: values.expertStatement,\n comment: values.comments,\n category: values.category,\n origin: values.origin,\n material: values.material,\n style: values.style,\n condition: values.condition,\n artist: values.artist,\n artistBio: values.artistBio,\n lowerProductionYear: values.lowerProductionYear,\n upperProductionYear: values.upperProductionYear,\n exactProductionYear: values.exactProductionYear,\n minimumValue: values.minimumValue,\n maximumValue: values.maximumValue,\n exactValue: values.exactValue,\n categories: categories.map(c => c.name),\n conditions: conditions.map(c => c.name),\n origins: origins.map(c => c.name),\n materials: materials.map(c => c.name),\n styles: styles.map(c => c.name),\n }\n\n FeedbackRequestsApi.saveFeedbackRequest(id, payload)\n .then(() => {\n onSuccess();\n setIsLoading(false);\n })\n .catch((error: any) => {\n console.error(error.response);\n setIsLoading(false);\n onError();\n })\n }\n\n const onSaveDraft = (): void => {\n setSaveDraftLoading(true);\n const payload = {\n statement: values.expertStatement,\n comment: values.comments,\n category: values.category,\n origin: values.origin,\n material: values.material,\n style: values.style,\n condition: values.condition,\n artist: values.artist,\n artistBio: values.artistBio,\n lowerProductionYear: values.lowerProductionYear,\n upperProductionYear: values.upperProductionYear,\n exactProductionYear: values.exactProductionYear,\n minimumValue: values.minimumValue,\n maximumValue: values.maximumValue,\n exactValue: values.exactValue,\n }\n\n FeedbackRequestsApi.saveFeedbackDraft(id, payload)\n .then(() => {\n setSaveDraftLoading(false);\n })\n .catch((_error: any) => {\n setSaveDraftLoading(false);\n })\n }\n\n const searchForLabels = (type: string, value: string): void => {\n CommonApi.searchTaxonomy(JSON.stringify(value), type)\n .then((res: any) => {\n if(type === 'Category') {\n setCategories(res.data);\n return;\n }\n if(type === 'Material') {\n setMaterials(res.data);\n return;\n }\n if(type === 'Style') {\n setStyles(res.data);\n return;\n }\n if(type === 'Origin') {\n setOrigins(res.data);\n return;\n }\n if(type === 'Condition') {\n setConditions(res.data);\n }\n })\n .catch((error: any) => {\n console.error(error.response);\n })\n }\n\n return (\n
    \n\n {\n !feedbackResult &&\n \n onCancel()}\n onSaveFeedback={() => onSaveFeedback()}\n onSaveDraft={() => onSaveDraft()}\n isSaveDraftLoading={isSaveDraftLoading}\n isLoading={isLoading}\n />\n \n }\n\n <>\n \n Statement from Expert:\n \n setValues({...values, expertStatement: e.target.value})}\n onFocus={() => setOnFocus('expertStatement')}\n onBlur={() => {setOnFocus(''); manageErrors('expertStatement')}}\n />\n \n\n \n \n \n \n \n \n\n manageErrors('category')}\n value={values.category}\n setValue={(v: string) => setValues({...values, category: v})}\n onBlur={(byCollectorInput) => {\n if(byCollectorInput) {\n setCategories(artifact.categories);\n return;\n }\n searchForLabels('Category', values.category)\n }}\n />\n\n setErrors({...errors, ageInvalid: hasError})}\n setValue={(v: any) => setValues({\n ...values,\n exactProductionYear: v.exactProductionYear,\n lowerProductionYear: v.lowerProductionYear,\n upperProductionYear: v.upperProductionYear,\n })}\n />\n\n {\n (!values.exactProductionYear && !values.lowerProductionYear) && saveAttempt &&\n \n The approximate age field is required.\n \n }\n\n manageErrors('material')}\n value={values.material}\n setValue={(v: string) => setValues({...values, material: v})}\n onBlur={(byCollectorInput) => {\n if(byCollectorInput) {\n setMaterials(artifact.materials);\n return;\n }\n searchForLabels('Material', values.material)\n }}\n />\n\n manageErrors('style')}\n value={values.style}\n setValue={(v: string) => setValues({...values, style: v})}\n onBlur={(byCollectorInput) => {\n if(byCollectorInput) {\n setStyles(artifact.styles);\n return;\n }\n searchForLabels('Style', values.style)\n }}\n />\n\n manageErrors('origin')}\n value={values.origin}\n setValue={(v: string) => setValues({...values, origin: v})}\n onBlur={(byCollectorInput) => {\n if(byCollectorInput) {\n setOrigins(artifact.origins);\n return;\n }\n searchForLabels('Origin', values.origin)\n }}\n />\n\n manageErrors('condition')}\n value={values.condition}\n setValue={(v: string) => setValues({...values, condition: v})}\n onBlur={(byCollectorInput) => {\n if(byCollectorInput) {\n setConditions(artifact.conditions);\n return;\n }\n searchForLabels('Condition', values.condition)\n }}\n />\n\n manageErrors('artist')}\n value={values.artist}\n setValue={(v: string) => setValues({...values, artist: v})}\n onBlur={() => null}\n />\n\n <>\n \n Artist Bio (optional)\n \n setValues({...values, artistBio: e.target.value})}\n onFocus={() => setOnFocus('artistBio')}\n onBlur={() => {setOnFocus('')}}\n />\n \n\n \n \n \n\n setErrors({...errors, valueInvalid: hasError})}\n setValue={(v: any) => setValues({\n ...values,\n exactValue: v.exactValue,\n minimumValue: v.minimumValue,\n maximumValue: v.maximumValue,\n })}\n />\n\n {\n ((!values.exactValue && !values.minimumValue) && saveAttempt) || (errors.valueInvalid && saveAttempt) &&\n \n The estimated value field is required.\n \n }\n\n \n \n \n\n setCategories(c)}\n setNewMaterials={(c) => setMaterials(c)}\n setNewStyles={(c) => setStyles(c)}\n setNewOrigins={(c) => setOrigins(c)}\n setNewConditions={(c) => setConditions(c)}\n />\n\n \n \n \n\n <>\n \n Personal comments and recommendations:\n \n setValues({...values, comments: e.target.value})}\n onFocus={() => setOnFocus('comments')}\n onBlur={() => {setOnFocus(''); manageErrors('comments')}}\n />\n \n\n \n )\n}\n","import { useEffect, useRef } from 'react';\n\n// eslint-disable-next-line max-len\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types,@typescript-eslint/explicit-function-return-type\nexport function useInterval(callback: any, delay: any) {\n const savedCallback = useRef();\n\n // Remember the latest callback.\n useEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n\n // Set up the interval.\n useEffect(() => {\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n function tick() {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n savedCallback?.current();\n }\n if (delay !== null) {\n const id = setInterval(tick, delay);\n return () => clearInterval(id);\n }\n }, [delay]);\n}\n","import React, {useState} from \"react\";\nimport {Button, Grid, InputLabel, TextField} from \"@material-ui/core\";\nimport ChatBubbleIcon from \"@material-ui/icons/ChatBubble\";\nimport {makeStyles} from \"@material-ui/core/styles\";\nimport {FeedbackRequestsApi} from \"core/api/feedback-requests/feedback-requests.api\";\nimport {IFeedbackComment} from \"core/context/feedback-requests/feedback\";\n\ntype AddCommentProps = {\n feedbackRequestId: number;\n isFirstMessage: boolean;\n pushComment: (comment: IFeedbackComment) => void\n}\n\nexport const AddComment: React.FC = ({feedbackRequestId, pushComment, isFirstMessage}) => {\n\n const classes = useStyles();\n\n const [comment, setComment] = useState(isFirstMessage\n ? 'Thank you for ordering an assessment from Artifact.\\nBefore our expert can provide your assessment they need' +\n ' you to provide more details on the following:\\n' +\n '\\n- Dimensions' +\n '\\n- Weight' +\n '\\n- Material' +\n '\\n- Style' +\n '\\n- Origin' +\n '\\n- Condition' +\n '\\n- Approximate age' +\n '\\n- Artist or Maker'\n : ''\n );\n\n const addComment = (): void => {\n\n if(!comment?.trim().length) {\n return;\n }\n\n onAddComment();\n setComment('');\n }\n\n const onAddComment = (): void => {\n FeedbackRequestsApi.addComment(feedbackRequestId, JSON.stringify(comment))\n .then((res: any) => {\n pushComment(res.data);\n setComment('');\n })\n .catch((error: any) => {\n console.error(error.response);\n })\n }\n\n const handleKeyPress = (key: string): void => {\n if(key === 'Enter') {\n addComment();\n }\n }\n\n return (\n
    \n \n Add a comment\n \n\n \n \n setComment(e.target.value)}\n onKeyPress={(e: any) => handleKeyPress(e.key)}\n rows={2}\n rowsMax={5}\n inputProps={{ maxLength: 1000 }}\n variant=\"outlined\"\n className={classes.textarea}\n />\n \n \n addComment()}\n >\n \n \n \n \n
    \n )\n}\n\nconst useStyles = makeStyles({\n root: {\n marginTop: 15,\n },\n label: {\n marginBottom: 15,\n fontSize: 14,\n },\n textarea: {\n width: '96%',\n [\"@media (max-width:960px)\"]: { width: '100%' },\n },\n button: {\n float: 'right',\n height: 55,\n padding: '0px 10px',\n fontWeight: 300,\n fontSize: 15,\n [\"@media (max-width:960px)\"]: { height: 35, width: 100 },\n },\n});\n","import React from \"react\";\nimport {IFeedbackComment} from \"core/context/feedback-requests/feedback\";\nimport {Box, Theme} from \"@material-ui/core\";\nimport {makeStyles} from \"@material-ui/styles\";\n\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport moment from \"moment\";\nimport {FeedbackRequestsApi} from \"../../../../../../../core/api/feedback-requests/feedback-requests.api\";\n\n\ntype CommentsProps = {\n isAdmin: boolean;\n feedbackRequestId: number;\n isFeedbackCompleted: boolean;\n comments: IFeedbackComment[];\n onDeleteComment: (id: number) => void;\n}\n\nexport const Comments: React.FC = (\n {feedbackRequestId, comments, isFeedbackCompleted, onDeleteComment, isAdmin}\n) => {\n\n const classes = useStyles();\n\n const deleteComment = (id: number): void => {\n\n if(!confirm('Are you sure you want to delete this comment?')) {\n return;\n }\n\n FeedbackRequestsApi.deleteComment(feedbackRequestId, id)\n .then(() => {\n onDeleteComment(id);\n })\n .catch((error: any) => {\n console.error(error.response);\n })\n }\n\n return (\n \n {\n comments.map(comment => (\n \n {\n (comment.isExpert || (isAdmin && comment.isExpert)) &&\n \n {\n !isFeedbackCompleted &&\n <>\n {\n comment.isExpert &&\n deleteComment(comment.id)}\n />\n }\n\n \n {moment(comment.dateCreated).format('MM/DD/YY HH:mm')}\n \n \n }\n \n
    {comment.text}
    \n
    \n
    \n }\n\n {\n !comment.isExpert &&\n \n \n {comment.text}\n \n \n {moment(comment.dateCreated).format('MM/DD/YY HH:mm')}\n \n \n\n }\n
    \n ))\n }\n
    \n )\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n expertBubbleContainer: {\n display: 'flex',\n justifyContent: 'flex-end',\n alignItems: 'flex-end',\n \"&:hover\": {\n '& $deleteIcon': {\n visibility: 'visible',\n }\n }\n },\n deleteIcon: {\n color: '#d0d0d0',\n cursor: 'pointer',\n width: 25,\n height: 20,\n marginBottom: 7,\n visibility: 'hidden',\n },\n expertBubble: {\n backgroundColor: theme.palette.primary.main,\n color: 'white',\n borderRadius: 20,\n textAlign: 'left',\n margin: '4px 0',\n padding: '5px 15px',\n width: 'fit-content',\n maxWidth: '80%',\n lineHeight: 1.3,\n },\n collectorBubble: {\n backgroundColor: theme.label.main,\n color: theme.label.text,\n borderRadius: 20,\n textAlign: 'right',\n margin: '4px 0',\n padding: '5px 15px',\n width: 'fit-content',\n maxWidth: '80%',\n lineHeight: 1.3\n },\n date: {\n fontSize: 11,\n marginBottom: 9,\n marginRight: 5,\n },\n pre: {\n fontFamily: 'inherit',\n whiteSpace: 'break-spaces',\n }\n}))\n","import React, {useState} from \"react\";\nimport {Box, Theme, Typography} from \"@material-ui/core\";\nimport {makeStyles} from \"@material-ui/styles\";\nimport {AddComment} from \"./AddComment\";\nimport {IFeedbackComment} from \"core/context/feedback-requests/feedback\";\nimport {Comments} from \"./Comments\";\n\ntype ChatProps = {\n feedbackRequestId: number;\n isFeedbackCompleted: boolean,\n isExpert: boolean;\n isAdmin: boolean;\n comments: IFeedbackComment[]\n}\n\nexport const Chat: React.FC = (\n {feedbackRequestId, isFeedbackCompleted, isExpert, isAdmin, comments}\n) => {\n\n const classes = useStyles();\n\n const [currentComments, setComments] = useState(comments);\n\n const pushComment = (comment: IFeedbackComment): void => {\n const newComments = comments;\n newComments.push(comment);\n setComments(newComments.slice());\n }\n\n const onDeleteComment = (id: number): void => {\n const newComments = comments;\n const index = newComments.findIndex(e => e.id === id);\n if(index > -1) {\n newComments.splice(index, 1);\n }\n setComments(newComments.slice());\n }\n\n return (\n <>\n \n Chat with Collector\n \n
    \n {\n !isFeedbackCompleted && isExpert &&\n \n You can ask fore more information about the object below.\n \n }\n {\n isFeedbackCompleted && isExpert &&\n \n This feedback is completed. You can not chat with the collector anymore.\n \n }\n {\n !isExpert && comments.length === 0 &&\n \n There are no messages.\n \n }\n\n \n\n {\n currentComments &&\n \n onDeleteComment(id)}\n />\n \n }\n\n {\n !isFeedbackCompleted && isExpert &&\n pushComment(comment)}\n />\n }\n\n \n \n )\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n title: {\n fontSize: 18,\n color: theme.palette.secondary.main,\n },\n divider: {\n width: '100%',\n borderTop: '1px solid',\n borderColor: theme.divider.main,\n margin: '0'\n },\n infoText: {\n fontSize: 13\n },\n commentsBox: {\n maxHeight: 250,\n overflow: 'auto',\n paddingRight: 10,\n marginTop: 10,\n display: 'flex',\n flexDirection: 'column-reverse',\n }\n}))\n","import React from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { Box, ThemeOptions, Typography } from \"@material-ui/core\";\n\nimport { ICategory } from \"core/context/consumer/objectDetails\";\nimport { AddNewLabel } from \"./AddNewLabel\";\n\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport {ObjectApi} from \"../../../../../../../core/api\";\n\ntype LabelsProps = {\n disabled: boolean;\n forAdmins: boolean;\n artifactId: number;\n categories: ICategory[];\n materials: ICategory[];\n styles: ICategory[];\n origins: ICategory[];\n conditions: ICategory[];\n setNewCategories: (c: ICategory[]) => void;\n setNewMaterials: (c: ICategory[]) => void;\n setNewStyles: (c: ICategory[]) => void;\n setNewOrigins: (c: ICategory[]) => void;\n setNewConditions: (c: ICategory[]) => void;\n}\n\nconst useStyles = makeStyles((theme: ThemeOptions) => ({\n subtitle: {\n fontSize: 14,\n marginBottom: 10,\n },\n labelSectionName: {\n fontSize: 14,\n marginRight: 10,\n },\n noLabelsText: {\n fontSize: 13,\n },\n labelsContainer: {\n display: 'flex',\n flexWrap: 'wrap',\n marginBottom: 10,\n },\n label: {\n fontSize: 13,\n backgroundColor: theme.label.main,\n color: theme.label.text,\n padding: '3px 7px',\n marginRight: 7,\n borderRadius: 2,\n marginTop: 5,\n display: 'flex',\n alignItems: 'center'\n },\n closeIcon: {\n color: theme.label.text,\n width: 14,\n height: 14,\n marginLeft: 7,\n marginTop: 2,\n cursor: 'pointer'\n }\n}));\n\nexport const AdminAssignLabels: React.FC = (\n {\n disabled, forAdmins, artifactId, categories, materials, styles, origins, conditions,\n setNewCategories, setNewMaterials, setNewStyles, setNewOrigins, setNewConditions\n }\n) => {\n\n const classes = useStyles();\n\n const handleNewLabels = (labels: ICategory[], type: string): void => {\n\n if(forAdmins) {\n ObjectApi.updateArtifactLabel(artifactId, labels[0].id)\n .then(() => {\n console.log('res');\n })\n .catch((error: any) => {\n console.error(error);\n })\n }\n\n if(type === 'Category') {\n let newCategories = categories;\n newCategories = newCategories.concat(labels);\n setNewCategories(newCategories.filter((thing, index, self) =>\n index === self.findIndex((t) => (\n t.name === thing.name && t.name === thing.name\n ))\n ).slice());\n return;\n }\n\n if(type === 'Material') {\n let newCategories = materials;\n newCategories = newCategories.concat(labels);\n setNewMaterials(newCategories.filter((thing, index, self) =>\n index === self.findIndex((t) => (\n t.name === thing.name && t.name === thing.name\n ))\n ).slice());\n return;\n }\n\n if(type === 'Style') {\n let newCategories = styles;\n newCategories = newCategories.concat(labels);\n setNewStyles(newCategories.filter((thing, index, self) =>\n index === self.findIndex((t) => (\n t.name === thing.name && t.name === thing.name\n ))\n ).slice());\n return;\n }\n\n if(type === 'Origin') {\n let newCategories = origins;\n newCategories = newCategories.concat(labels);\n setNewOrigins(newCategories.filter((thing, index, self) =>\n index === self.findIndex((t) => (\n t.name === thing.name && t.name === thing.name\n ))\n ).slice());\n return;\n }\n\n if(type === 'Condition') {\n let newCategories = conditions;\n newCategories = newCategories.concat(labels);\n setNewConditions(newCategories.filter((thing, index, self) =>\n index === self.findIndex((t) => (\n t.name === thing.name && t.name === thing.name\n ))\n ).slice());\n }\n }\n\n const handleDeleteLabel = (name: string, id: number, type: string): void => {\n\n if(forAdmins) {\n if(forAdmins) {\n ObjectApi.updateArtifactLabel(artifactId, id)\n .then(() => {\n console.log('res');\n })\n .catch((error: any) => {\n console.error(error);\n })\n }\n }\n\n if(type === 'Category') {\n const newCategories = categories;\n const index = newCategories.findIndex(el => el.name === name);\n newCategories.splice(index, 1);\n setNewCategories(newCategories.filter((thing, index, self) =>\n index === self.findIndex((t) => (\n t.name === thing.name && t.name === thing.name\n ))\n ).slice());\n return;\n }\n\n if(type === 'Material') {\n const newCategories = materials;\n const index = newCategories.findIndex(el => el.name === name);\n newCategories.splice(index, 1);\n setNewMaterials(newCategories.filter((thing, index, self) =>\n index === self.findIndex((t) => (\n t.name === thing.name && t.name === thing.name\n ))\n ).slice());\n return;\n }\n\n if(type === 'Style') {\n const newCategories = styles;\n const index = newCategories.findIndex(el => el.name === name);\n newCategories.splice(index, 1);\n setNewStyles(newCategories.filter((thing, index, self) =>\n index === self.findIndex((t) => (\n t.name === thing.name && t.name === thing.name\n ))\n ).slice());\n return;\n }\n\n if(type === 'Origin') {\n const newCategories = origins;\n const index = newCategories.findIndex(el => el.name === name);\n newCategories.splice(index, 1);\n setNewOrigins(newCategories.filter((thing, index, self) =>\n index === self.findIndex((t) => (\n t.name === thing.name && t.name === thing.name\n ))\n ).slice());\n return;\n }\n\n if(type === 'Condition') {\n const newCategories = conditions;\n const index = newCategories.findIndex(el => el.name === name);\n newCategories.splice(index, 1);\n setNewConditions(newCategories.filter((thing, index, self) =>\n index === self.findIndex((t) => (\n t.name === thing.name && t.name === thing.name\n ))\n ).slice());\n }\n }\n\n return (\n \n {\n !forAdmins &&\n \n The following labels were generated based on your feedback.\n \n }\n\n <>\n \n \n Category\n \n {\n !disabled && handleNewLabels(labels, 'Category')}\n />\n }\n \n\n {\n categories.length === 0 &&\n \n No labels found\n \n }\n\n \n {\n categories.map(c => (\n \n {c.name}\n {\n !disabled && handleDeleteLabel(c.name, c.id, 'Category')}\n />\n }\n \n ))\n }\n \n \n\n <>\n \n \n Material\n \n {\n !disabled && handleNewLabels(labels, 'Material')}\n />\n }\n \n {\n materials.length === 0 &&\n \n No labels found\n \n }\n \n {\n materials.map(c => (\n \n {c.name}\n {\n !disabled && handleDeleteLabel(c.name,c.id, 'Material')}\n />\n }\n \n ))\n }\n \n \n\n <>\n \n \n Style\n \n {\n !disabled && handleNewLabels(labels, 'Style')}\n />\n }\n \n {\n styles.length === 0 &&\n \n No labels found\n \n }\n \n {\n styles.map(c => (\n \n {c.name}\n {\n !disabled && handleDeleteLabel(c.name, c.id,'Style')}\n />\n }\n \n ))\n }\n \n \n\n <>\n \n \n Origin\n \n {\n !disabled && handleNewLabels(labels, 'Origin')}\n />\n }\n \n {\n origins.length === 0 &&\n \n No labels found\n \n }\n \n {\n origins.map(c => (\n \n {c.name}\n {\n !disabled && handleDeleteLabel(c.name, c.id,'Origin')}\n />\n }\n \n ))\n }\n \n \n\n <>\n \n \n Condition\n \n {\n !disabled && handleNewLabels(labels, 'Condition')}\n />\n }\n \n {\n conditions.length === 0 &&\n \n No labels found\n \n }\n \n {\n conditions.map(c => (\n \n {c.name}\n {\n !disabled && handleDeleteLabel(c.name, c.id, 'Condition')}\n />\n }\n \n ))\n }\n \n \n \n )\n}\n","import React, { useContext, useEffect, useState } from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport {Box, Button, Grid, Typography} from \"@material-ui/core\";\n\nimport { UserRoles } from \"core/enums\";\nimport { AppRoutes } from \"core/helpers\";\nimport { FeedbackRequestsApi } from \"core/api/feedback-requests/feedback-requests.api\";\nimport { UserContext } from \"core/context/user\";\nimport { FeedbackRequestContext } from \"core/context/feedback-requests/feedback\";\n\nimport { BackNavigation, Loader } from \"components/_others\";\nimport { Gallery } from \"components/_consumer/ObjectDetails/Gallery\";\nimport { AboutObject } from \"./components/AboutObject\";\nimport { Documents } from \"components/_consumer/ObjectDetails\";\nimport { AboutCollector } from \"./components/AboutCollector\";\nimport { RequestBetterPhotos } from \"./components/RequestBetterPhotos\";\nimport { AboutObjectShort } from \"./components/AboutObjectShort\";\nimport { FeedbackForm } from \"./components/FeedbackForm\";\nimport {Chat} from \"./components/Chat\";\nimport {UtilsContext} from \"../../../../../core/context/utils.context\";\nimport {AdminAssignLabels} from \"./components/FeedbackForm/AdminAssignLabels\";\nimport {ICategory} from \"../../../../../core/context/consumer/objectDetails\";\n\nexport const FeedbackRequest: React.FC = () => {\n\n const history = useHistory();\n const userContext = useContext(UserContext);\n const feedbackRequestContext = useContext(FeedbackRequestContext);\n\n const [morePhotosRequired, setMorePhotosRequired] = useState(false);\n const [onGiveFeedback, setGiveFeedback] = useState(false);\n const utilsContext = useContext(UtilsContext);\n\n const [categories, setCategories] = useState([]);\n const [materials, setMaterials] = useState([]);\n const [styles, setStyles] = useState([]);\n const [origins, setOrigins] = useState([]);\n const [conditions, setConditions] = useState([]);\n\n useEffect(() => {\n feedbackRequestContext.setLoading(true);\n\n const params = new URLSearchParams(window.location.search);\n const id = params.get('id');\n\n if(!id) {\n history.push(AppRoutes.FEEDBACK_REQUESTS);\n }\n\n getFeedbackRequest(Number(id));\n\n }, [])\n\n const getFeedbackRequest = (id: number): void => {\n FeedbackRequestsApi.getFeedbackRequest(id, userContext.user?.role)\n .then((res: any) => {\n feedbackRequestContext.setData(res.data, id);\n setMorePhotosRequired(res.data.morePhotosRequired);\n if(res.data.feedbackDraft !== null && userContext.user?.role === UserRoles.EXPERT) {\n setGiveFeedback(true);\n return;\n }\n if(res.data.feedback !== null) {\n setGiveFeedback(true);\n }\n setCategories(res.data.artifact.categories);\n setMaterials(res.data.artifact.materials);\n setStyles(res.data.artifact.styles);\n setOrigins(res.data.artifact.origins);\n setConditions(res.data.artifact.conditions);\n })\n .catch((error: any) => {\n console.error(error.response);\n history.push(AppRoutes.FEEDBACK_REQUESTS);\n utilsContext.addSnackbar('error', 'Sorry, there was an error and we were unable to display' +\n ' the request. Please try again later.');\n })\n }\n\n return (\n \n {\n !feedbackRequestContext.isLoading && feedbackRequestContext.data?.artifact &&\n <>\n \n \n \n\n \n {\n onGiveFeedback &&\n \n setGiveFeedback(false)}\n feedbackResult={feedbackRequestContext.data.feedback}\n feedbackDraft={feedbackRequestContext.data.feedbackDraft}\n onSuccess={() => {\n utilsContext.addSnackbar('success', 'Thank you for your feedback!');\n setTimeout(() => {\n history.push(AppRoutes.FEEDBACK_REQUESTS);\n }, 1500)\n }}\n onError={() => {\n utilsContext.addSnackbar('error');\n }}\n />\n \n }\n\n \n \n \n {\n onGiveFeedback &&\n \n }\n\n \n \n \n\n {\n userContext.user?.role === UserRoles.EXPERT &&\n !morePhotosRequired && feedbackRequestContext.data.feedback === null &&\n \n setMorePhotosRequired(true)}\n />\n \n }\n\n {\n morePhotosRequired && feedbackRequestContext.data.feedback === null &&\n \n \n Better photos requested\n \n \n }\n\n \n \n \n \n \n \n Documents & Receipts\n \n \n \n \n\n \n \n \n\n {\n userContext.user?.role === UserRoles.ADMIN &&\n \n \n Object Labels\n \n setCategories(c)}\n setNewMaterials={(c) => setMaterials(c)}\n setNewStyles={(c) => setStyles(c)}\n setNewOrigins={(c) => setOrigins(c)}\n setNewConditions={(c) => setConditions(c)}\n />\n \n\n }\n\n {\n userContext.user?.role === UserRoles.EXPERT &&\n !onGiveFeedback &&\n feedbackRequestContext.data.feedback === null &&\n \n setGiveFeedback(true)}\n >\n Give Feedback\n \n \n }\n\n {\n !onGiveFeedback &&\n \n \n \n }\n\n \n\n {\n onGiveFeedback &&\n \n \n \n }\n \n \n\n \n \n }\n {\n feedbackRequestContext.isLoading && \n }\n \n )\n}\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"undraw_Post_online_re_1b82\",\n transform: \"translate(0.5 -221.282)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_2110\",\n \"data-name\": \"Path 2110\",\n d: \"M561.675,356.2H390.027a9.193,9.193,0,0,1-9.176-9.19V291.871a9.193,9.193,0,0,1,9.176-9.19H561.675a9.193,9.193,0,0,1,9.176,9.19v55.139A9.193,9.193,0,0,1,561.675,356.2Z\",\n transform: \"translate(-380.851 -60.899)\",\n fill: \"#707070\",\n stroke: \"#707070\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_2112\",\n \"data-name\": \"Path 2112\",\n d: \"M567.818,349.108h-60a4.325,4.325,0,1,1,0-8.649h60a4.325,4.325,0,1,1,0,8.649Z\",\n transform: \"translate(-450.258 -93.539)\",\n fill: \"#fe6502\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_2113\",\n \"data-name\": \"Path 2113\",\n d: \"M623.5,382.656H507.814a4.325,4.325,0,1,1,0-8.649H623.5a4.325,4.325,0,0,1,0,8.649Z\",\n transform: \"translate(-450.417 -112.647)\",\n fill: \"#b2b2b2\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Ellipse_200\",\n \"data-name\": \"Ellipse 200\",\n cx: 16.217,\n cy: 16.217,\n r: 16.217,\n transform: \"translate(12.595 242.324)\",\n fill: \"#fe6502\",\n opacity: 0\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_2121\",\n \"data-name\": \"Path 2121\",\n d: \"M588.618,523.067H492.965a5.119,5.119,0,0,1-5.114-5.114V487.272a5.119,5.119,0,0,1,5.114-5.114h95.653a5.119,5.119,0,0,1,5.114,5.114v30.681A5.119,5.119,0,0,1,588.618,523.067ZM492.965,482.76a4.517,4.517,0,0,0-4.512,4.512v30.681a4.517,4.517,0,0,0,4.512,4.512h95.653a4.517,4.517,0,0,0,4.512-4.512V487.272a4.517,4.517,0,0,0-4.512-4.512Z\",\n transform: \"translate(-441.455 -174.005)\",\n fill: \"#707070\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_2122\",\n \"data-name\": \"Path 2122\",\n d: \"M591.887,519.121H558.5a2.406,2.406,0,1,1,0-4.813h33.388a2.406,2.406,0,0,1,0,4.813Z\",\n transform: \"translate(-479.993 -192.138)\",\n fill: \"#707070\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_2123\",\n \"data-name\": \"Path 2123\",\n d: \"M622.869,537.788H558.5a2.406,2.406,0,1,1,0-4.813h64.37a2.406,2.406,0,0,1,0,4.813Z\",\n transform: \"translate(-480.029 -202.715)\",\n fill: \"#383838\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_2126\",\n \"data-name\": \"Path 2126\",\n d: \"M588.618,654.067H492.965a5.119,5.119,0,0,1-5.114-5.114V618.272a5.119,5.119,0,0,1,5.114-5.114h95.653a5.119,5.119,0,0,1,5.114,5.114v30.681A5.119,5.119,0,0,1,588.618,654.067ZM492.965,613.76a4.517,4.517,0,0,0-4.512,4.512v30.681a4.517,4.517,0,0,0,4.512,4.512h95.653a4.517,4.517,0,0,0,4.512-4.512V618.272a4.517,4.517,0,0,0-4.512-4.512Z\",\n transform: \"translate(-441.455 -248.284)\",\n fill: \"#707070\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_2127\",\n \"data-name\": \"Path 2127\",\n d: \"M591.887,650.121H558.5a2.406,2.406,0,1,1,0-4.813h33.388a2.406,2.406,0,0,1,0,4.813Z\",\n transform: \"translate(-479.993 -266.447)\",\n fill: \"#707070\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_2128\",\n \"data-name\": \"Path 2128\",\n d: \"M622.869,668.788H558.5a2.406,2.406,0,1,1,0-4.813h64.37a2.406,2.406,0,0,1,0,4.813Z\",\n transform: \"translate(-480.029 -276.993)\",\n fill: \"#383838\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_4066\",\n \"data-name\": \"Group 4066\",\n transform: \"translate(9.982 242.493)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"notifications-24px\",\n d: \"M14.164,27.274A2.548,2.548,0,0,0,16.7,24.733H11.623A2.54,2.54,0,0,0,14.164,27.274Zm7.623-7.623V13.3c0-3.9-2.084-7.165-5.717-8.029V4.406a1.906,1.906,0,0,0-3.811,0V5.27C8.612,6.133,6.541,9.386,6.541,13.3v6.352L4,22.192v1.27H24.327v-1.27Z\",\n transform: \"translate(1.524 0.057)\",\n fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle_2440\",\n \"data-name\": \"Rectangle 2440\",\n width: 31,\n height: 30,\n fill: \"none\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Ellipse_45\",\n \"data-name\": \"Ellipse 45\",\n transform: \"translate(18 3)\",\n fill: \"#fe6502\",\n stroke: \"#707070\",\n strokeWidth: 1\n}, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 4.5,\n cy: 4.5,\n r: 4.5,\n stroke: \"none\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 4.5,\n cy: 4.5,\n r: 4,\n fill: \"none\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_4067\",\n \"data-name\": \"Group 4067\",\n transform: \"translate(52.981 320.493)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"notifications-24px-2\",\n \"data-name\": \"notifications-24px\",\n d: \"M9.818,16.682a1.459,1.459,0,0,0,1.455-1.455H8.364A1.454,1.454,0,0,0,9.818,16.682Zm4.364-4.364V8.682a4.431,4.431,0,0,0-3.273-4.6V3.591a1.091,1.091,0,0,0-2.182,0v.495a4.418,4.418,0,0,0-3.273,4.6v3.636L4,13.773V14.5H15.636v-.727Z\",\n transform: \"translate(-0.838 -1.036)\",\n fill: \"#707070\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle_2440-2\",\n \"data-name\": \"Rectangle 2440\",\n width: 17.746,\n height: 17.173,\n fill: \"none\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Ellipse_45-2\",\n \"data-name\": \"Ellipse 45\",\n transform: \"translate(10.304 1.717)\",\n fill: \"#a04306\",\n stroke: \"#23232b\",\n strokeWidth: 0.7\n}, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 2.576,\n cy: 2.576,\n r: 2.576,\n stroke: \"none\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 2.576,\n cy: 2.576,\n r: 2.226,\n fill: \"none\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_4068\",\n \"data-name\": \"Group 4068\",\n transform: \"translate(52.981 376.493)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"notifications-24px-3\",\n \"data-name\": \"notifications-24px\",\n d: \"M9.818,16.682a1.459,1.459,0,0,0,1.455-1.455H8.364A1.454,1.454,0,0,0,9.818,16.682Zm4.364-4.364V8.682a4.431,4.431,0,0,0-3.273-4.6V3.591a1.091,1.091,0,0,0-2.182,0v.495a4.418,4.418,0,0,0-3.273,4.6v3.636L4,13.773V14.5H15.636v-.727Z\",\n transform: \"translate(-0.838 -1.036)\",\n fill: \"#707070\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle_2440-3\",\n \"data-name\": \"Rectangle 2440\",\n width: 17.746,\n height: 17.173,\n fill: \"none\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Ellipse_45-3\",\n \"data-name\": \"Ellipse 45\",\n transform: \"translate(10.304 1.717)\",\n fill: \"#a04306\",\n stroke: \"#23232b\",\n strokeWidth: 0.7\n}, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 2.576,\n cy: 2.576,\n r: 2.576,\n stroke: \"none\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 2.576,\n cy: 2.576,\n r: 2.226,\n fill: \"none\"\n}))));\n\nfunction SvgEmptyNotifications(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 191,\n height: 184.5,\n viewBox: \"0 0 191 184.5\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEmptyNotifications);\nexport default __webpack_public_path__ + \"static/media/empty-notifications.d658b4f8.svg\";\nexport { ForwardRef as ReactComponent };","import { createMuiTheme, ThemeOptions } from \"@material-ui/core\";\nimport { darkTheme } from \"assets/themes/dark-theme\";\n\n//TODO: rename\nexport const emptyTheme: ThemeOptions = createMuiTheme({\n ...darkTheme,\n palette: {\n ...darkTheme.palette,\n text: {\n primary: \"#707070\",\n },\n }\n})\n","import React from \"react\";\nimport { makeStyles, ThemeProvider } from '@material-ui/core/styles'\nimport { Box, Button, Typography } from \"@material-ui/core\";\n\nimport { ReactComponent as EmptyPageIcon } from \"assets/images/empty-notifications.svg\";\nimport { emptyTheme } from \"assets/themes/components/empty-theme\";\nimport { AppRoutes } from \"core/helpers\";\nimport { useHistory } from \"react-router-dom\";\n\nconst useStyles = makeStyles({\n root: {\n display: 'flex',\n alignItems: 'center',\n },\n content: {\n margin: 'auto',\n textAlign: 'center',\n },\n icon: {\n marginBottom: 30,\n },\n typography: {\n marginBottom: 50,\n fontSize: 20,\n maxWidth: 525,\n lineHeight: 1,\n },\n button: {\n width: 335,\n fontSize: 18,\n }\n});\n\nexport const Empty: React.FC = () => {\n\n const classes = useStyles();\n const history = useHistory();\n\n return (\n \n \n
    \n \n\n \n Opps! It appears that you don’t have any notifications\n \n\n {\n history.push(AppRoutes.BASE)\n }}\n >\n Back to Homepage\n \n
    \n
    \n
    \n )\n}\n","import {INotification} from \"core/context/user\";\nimport React from 'react';\nimport {Typography} from \"@material-ui/core\";\nimport {Link} from \"react-router-dom\";\nimport {AppRoutes} from \"../../../../../core/helpers\";\n\nexport function computeDescription(notification: INotification): any {\n if(notification.type === 'AdminFeedbackRequestHasNoFeedback') {\n const id = notification.values?.length > 0 ? notification.values[0] : '';\n return (\n \n \n Feedback request\n \n {\n notification.description.replace('[[feedbackRequestId]]', '')\n }\n \n )\n }\n\n if(notification.type === 'AdminCollectorPurchaseFeedbackRequest') {\n const id = notification.values?.length > 0 ? notification.values[0] : '';\n return (\n \n A new{' '}\n \n feedback request\n \n {' '} was purchased.\n \n )\n }\n\n if(notification.type === 'AdminExpertRegister') {\n const id = notification.values?.length > 0 ? notification.values[0] : '';\n return (\n \n {\n notification.description.replace('[[userId]].', '')\n }\n \n expert.\n \n \n )\n }\n\n if(notification.type === 'AdminCollectorRegister') {\n const id = notification.values?.length > 0 ? notification.values[0] : '';\n return (\n \n {\n notification.description.replace('[[userId]].', '')\n }\n \n collector.\n \n \n )\n }\n\n if(notification.type === 'AdminArchivistRegister') {\n const id = notification.values?.length > 0 ? notification.values[0] : '';\n return (\n \n {\n notification.description.replace('[[userId]].', '')\n }\n \n archivist.\n \n \n )\n }\n\n if(notification.type === 'AdminCuratorRegister') {\n const id = notification.values?.length > 0 ? notification.values[0] : '';\n return (\n \n {\n notification.description.replace('[[userId]].', '')\n }\n \n curator.\n \n \n )\n }\n\n if(notification.type === 'ExpertBadRating') {\n const id = notification.values?.length > 0 ? notification.values[0] : '';\n return (\n \n \n This expert's\n \n {\n notification.description.replace('[[userId]]', '')\n }\n \n )\n }\n\n if(notification.type === 'CollectorAssessmentReceived') {\n const id = notification.values?.length > 0 ? notification.values[0] : '';\n return (\n \n {\n notification.description.replace('[[artifactId]].', '')\n }\n \n this object\n .\n\n \n )\n }\n\n if(notification.type === 'CollectorShare') {\n const id = notification.values?.length > 0 ? notification.values[0] : '';\n return (\n \n {\n notification.description.replace('[[shareId]] with you.', '')\n }\n \n this object\n \n {' '}with you.\n\n \n )\n }\n\n if(notification.type === 'CollectorShareComment') {\n const id = notification.values?.length > 0 ? notification.values[0] : '';\n return (\n \n {\n notification.description.replace('[[artifactId]].', '')\n }\n \n this object.\n \n \n )\n }\n\n if(notification.type === 'CollectorPublicFeedComment') {\n const id = notification.values?.length > 0 ? notification.values[0] : '';\n return (\n \n {\n notification.description.replace('[[artifactId]].', '')\n }\n \n this object.\n \n \n )\n }\n\n if(notification.type === 'CollectorExpertRequiredMorePhotos') {\n const id = notification.values?.length > 0 ? notification.values[0] : '';\n return (\n \n {\n notification.description.replace('[[artifactId]].', '')\n }\n \n this object.\n \n \n )\n }\n\n if(notification.type === 'CollectorRegister') {\n return (\n \n {\n notification.description\n }\n \n )\n } \n\n if(notification.type === 'ExpertCollectorAddedMorePhotos') {\n const id = notification.values?.length > 0 ? notification.values[0] : '';\n return (\n \n {\n notification.description.replace('[[feedbackRequestId]].', '')\n }\n \n this object.\n \n \n )\n }\n\n if(notification.type === 'CollectorFeedbackRequestComment') {\n const id = notification.values?.length > 0 ? notification.values[0] : '';\n return (\n \n {\n notification.description.replace('[[artifactId]].', '')\n }\n \n this object.\n \n \n )\n }\n\n if(notification.type === 'ExpertFeedbackRequestComment') {\n const id = notification.values?.length > 0 ? notification.values[0] : '';\n return (\n \n {\n notification.description.replace('[[feedbackRequestId]].', '')\n }\n \n this object.\n \n \n )\n }\n\n if(notification.type === 'CollectorCollectionShare') {\n const id = notification.values?.length > 0 ? notification.values[0] : '';\n return (\n \n {\n notification.description.replace('[[shareId]] with you.', '')\n }\n \n this collection.\n \n \n )\n }\n}\n","import React, {useContext} from \"react\";\nimport { makeStyles } from \"@material-ui/styles\";\nimport { Box, Paper, Typography } from \"@material-ui/core\";\n\nimport CloseIcon from '@material-ui/icons/Close';\nimport {INotification, UserContext} from \"core/context/user\";\nimport {computeDescription} from \"./helpers/compute-description\";\n\nconst useStyles = makeStyles(() => ({\n root: {\n backgroundColor: '#383838',\n borderRadius: 2,\n borderLeft: '7px solid #FE6502',\n padding: 5,\n paddingLeft: 10,\n marginTop: 15,\n marginBottom: 15,\n },\n titleContainer: {\n display: 'flex',\n justifyContent: 'space-between',\n },\n title: {\n fontSize: 17,\n fontWeight: 400,\n },\n subtitle: {\n fontSize: 12,\n fontWeight: 400,\n color: '#B2B2B2'\n },\n closeIcon: {\n width: 15,\n cursor: 'pointer',\n color: 'gray'\n }\n}))\n\ntype NotificationItemProps = {\n notification: INotification;\n onClick: () => void;\n}\n\nexport const NotificationItem: React.FC = ({notification, onClick}) => {\n\n const classes = useStyles();\n const userContext = useContext(UserContext);\n\n return (\n \n \n {notification.title}\n {\n !notification.isRead && \n }\n \n \n {computeDescription(notification)}\n \n \n )\n}\n","import React, {useContext, useEffect, useState} from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport { makeStyles } from \"@material-ui/styles\";\nimport { Box, Container, Typography } from \"@material-ui/core\";\n\nimport { AppRoutes } from \"core/helpers\";\nimport { NotificationsApi } from \"core/api/user\";\nimport {INotification, UserContext} from \"core/context/user\";\n\nimport { Empty } from \"./Empty\";\nimport { NotificationItem } from \"./NotificationItem\";\nimport { Loader } from \"components/_others\";\nimport {UtilsContext} from \"../../../../core/context/utils.context\";\n\nconst useStyles = makeStyles(() => ({\n root: {\n padding: '0 30px 15px'\n },\n pageTitle: {\n fontSize: 26,\n fontWeight: 400,\n opacity: 0.8\n },\n itemsContainer: {\n maxWidth: 500\n },\n sectionTitle: {\n fontSize: 18,\n fontWeight: 400,\n borderBottom: '1px solid',\n width: 150,\n },\n emptySectionText: {\n fontSize: 14,\n marginTop: 10,\n },\n newNotificationsBox: {\n display: 'flex',\n justifyContent: 'space-between',\n },\n readAllText: {\n fontSize: 13,\n cursor: 'pointer',\n opacity: 0.8\n }\n}))\n\nexport const Notifications: React.FC = () => {\n\n const classes = useStyles();\n const history = useHistory();\n const userContext = useContext(UserContext);\n\n const [notifications, setNotifications] = useState({new: [], old: []});\n const [isLoading, setIsLoading] = useState(true);\n const utilsContext = useContext(UtilsContext);\n useEffect(() => {\n getNotifications();\n window.scrollTo(0, 0);\n }, [])\n\n const getNotifications = (): void => {\n NotificationsApi.getNotifications()\n .then((res: any) => {\n setNotifications({\n new: res.data.newNotifications || [],\n old: res.data.oldNotifications || []\n });\n if(res.data.newNotifications?.length > 0) {\n userContext.setHasNewNotifications(true);\n } else {\n userContext.setHasNewNotifications(false);\n }\n setIsLoading(false);\n })\n .catch((error: any) => {\n console.error(error.response);\n setIsLoading(false);\n utilsContext.addSnackbar('error');\n history.push(AppRoutes.MY_OBJECTS);\n })\n }\n\n const markAsRead = (notificationIds: number[]): void => {\n NotificationsApi.markAsRead(notificationIds)\n .then(() => {\n getNotifications();\n })\n .catch((error: any) => {\n console.error(error.response);\n utilsContext.addSnackbar('error');\n })\n }\n\n return (\n \n {\n !isLoading &&\n <>\n \n \n Notifications\n \n \n\n {\n (notifications.new.length > 0 || notifications.old.length > 0) &&\n \n\n \n \n New\n \n {\n notifications.new.length > 0 &&\n markAsRead(\n notifications.new.map((n: INotification) => n.id)\n )}\n >\n Read all\n \n }\n \n\n\n {\n notifications.new.length === 0 &&\n \n You are up to date!\n \n }\n\n {\n notifications.new.map((notification: INotification) => (\n markAsRead([notification.id])}\n />\n ))\n }\n\n \n Older\n \n\n {\n notifications.old.map((notification: INotification) => (\n null}\n />\n ))\n }\n\n {\n notifications.old.length === 0 &&\n \n You are up to date!\n \n }\n \n }\n\n {\n notifications.new.length === 0 && notifications.old.length === 0 &&\n \n }\n \n }\n\n {\n isLoading &&\n \n }\n \n )\n}\n","import React, {useState} from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport { makeStyles } from \"@material-ui/styles\";\nimport { Box, ThemeOptions, Typography } from \"@material-ui/core\";\n\nimport AccountCircleIcon from \"@material-ui/icons/AccountCircle\";\nimport EditIcon from '@material-ui/icons/Edit';\n\nimport { IArchivistProfile } from \"core/context/admin/archivist-profile\";\nimport {FileSize, UserRoles} from \"core/enums\";\nimport { getPhotoUrl } from \"core/helpers\";\n\nimport { AccessStatusLabel } from \"components/_dashboard/_user-profiles\";\nimport { EditUserProfileModal } from \"components/_dashboard/_user-profiles/EditUserProfileModal\";\nimport { formatAddress } from \"core/helpers/format-address\";\n\ntype LightboxProps = {\n user: IArchivistProfile;\n hasActiveJobs: boolean;\n}\n\nconst useStyles = makeStyles((theme: ThemeOptions) => ({\n root: {\n display: 'flex',\n alignItems: 'flex-start',\n },\n detailsBox: {\n marginTop: 10\n },\n actionsBox: {\n marginTop: 10,\n display: 'flex',\n alignItems: 'center'\n },\n avatarPlaceholder: {\n width: 160,\n height: 160,\n color: '#FE6502',\n marginLeft: -10\n },\n userAvatar: {\n width: 160,\n height: 160,\n borderRadius: 150,\n marginRight: 15\n },\n title: {\n fontSize: 12,\n },\n userName: {\n fontSize: 32,\n fontWeight: 'bold',\n lineHeight: 1\n },\n contactDetails: {\n fontSize: 14,\n },\n typeLabel: {\n backgroundColor: theme.label.main,\n fontSize: 14,\n padding: '5px 15px',\n borderRadius: 2,\n marginRight: 7,\n cursor: 'default',\n },\n editButton: {\n marginLeft: 15,\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center'\n },\n editIcon: {\n width: 20,\n height: 20,\n marginRight: 2\n }\n}))\n\nexport const Lightbox: React.FC = ({user, hasActiveJobs}) => {\n\n const classes = useStyles();\n const history = useHistory();\n\n const [displayEditProfileModal, toggleDisplayEditProfileModal] = useState(false);\n\n return (\n \n \n {\n !user.photoUrl &&\n \n }\n {\n user.photoUrl &&\n \n }\n \n\n \n \n {user.title}\n \n \n {user.firstName}{' '}{user.lastName}\n \n \n {user.email}\n \n {\n !user.email &&\n \n Registered with an external provider that does not provide us the e-mail.\n
    \n No email will be sent from us.\n
    \n }\n \n {user.phoneNumber}\n \n \n {\n formatAddress(\n user.country?.name || '',\n user.state?.name || '',\n user.city?.name || ''\n )\n }\n \n\n \n \n\n toggleDisplayEditProfileModal(true)}\n >\n Edit\n \n \n\n {\n displayEditProfileModal &&\n toggleDisplayEditProfileModal(false)}\n modalTitle={'Edit archivist’s profile'}\n onConfirm={() => history.go(0)}\n userId={user.userId}\n data={{\n role: UserRoles.ARCHIVIST,\n firstName: user.firstName || '',\n lastName: user.lastName || '',\n title: user.title || '',\n phoneNumber: user.phoneNumber || '',\n description: user.description || '',\n address: user.address || '',\n organization: user.organization || '',\n website: user.website || '',\n currencyId: user.currency?.id,\n countryId: user.country?.id,\n stateId: user.state?.id,\n cityId: user.city?.id,\n }}\n />\n }\n\n
    \n
    \n )\n}\n","import React from \"react\";\nimport { makeStyles } from \"@material-ui/styles\";\nimport { Box, ThemeOptions, Typography } from \"@material-ui/core\";\n\ntype StatsProps = {\n totalJobs: number;\n totalActiveJobs: number;\n}\n\nconst useStyles = makeStyles((theme: ThemeOptions) => ({\n label: {\n fontSize: 16,\n marginBottom: 0,\n },\n value: {\n color: theme.palette?.text?.primary,\n }\n}))\n\nexport const Stats: React.FC = ({totalJobs, totalActiveJobs}) => {\n\n const classes = useStyles();\n\n return (\n \n \n Total Jobs:{' '}\n {totalJobs}\n \n\n \n Total Active Jobs:{' '}\n {totalActiveJobs}\n \n \n )\n}\n","import React from \"react\";\nimport { makeStyles } from \"@material-ui/styles\";\nimport { Box, ThemeOptions, Typography } from \"@material-ui/core\";\n\nimport { IArchivistProfile } from \"core/context/admin/archivist-profile\";\n\ntype BioProps = {\n user: IArchivistProfile\n}\n\nconst useStyles = makeStyles((_theme: ThemeOptions) => ({\n label: {\n fontSize: 15,\n },\n value: {\n fontSize: 16,\n marginBottom: 5,\n }\n}))\n\nexport const Bio: React.FC = ({user}) => {\n\n const classes = useStyles();\n\n return (\n \n \n How did you hear about us?\n \n \n {user.reference || 'unknown'}\n \n \n \n Bio\n \n \n {user.description || 'unknown'}\n \n\n \n Address\n \n \n {user.address || 'unknown'}\n \n\n \n Organization\n \n \n {user.organization || 'unknown'}\n \n\n \n Website\n \n \n {user.website || 'unknown'}\n \n\n \n Currency\n \n \n {user.currency?.code || 'unknown'}\n \n \n )\n}\n","import React from \"react\";\nimport {Button} from \"@material-ui/core\";\n\ntype AssignJobBtnProps = {\n text: string;\n onClick: () => void;\n}\n\nexport const AssignJobBtn: React.FC = ({text, onClick}) => {\n return (\n \n {text}\n \n )\n}\n","import {makeStyles} from \"@material-ui/styles\";\nimport {Theme} from \"@material-ui/core\";\n\nexport const assignJobModalStyles = makeStyles((theme: Theme) => ({\n root: {\n width: '90%',\n maxWidth: 'unset',\n height: '80%',\n backgroundColor: theme.rootBackground.modalBackground,\n },\n searchBox: {\n marginLeft: -24,\n maxWidth: 400,\n },\n jobsContainer: {\n display: 'flex',\n flexWrap: 'wrap',\n flexDirection: 'row',\n marginLeft: '-1%',\n marginRight: '-1%',\n marginTop: 15,\n maxHeight: '75%',\n overflow: 'auto',\n }\n}))\n","import {makeStyles} from \"@material-ui/styles\";\nimport {Theme} from \"@material-ui/core\";\n\nexport const jobCardStyles = makeStyles((theme: Theme) => ({\n root: {\n width: '18%',\n backgroundColor: theme.rootBackground.cardBackground,\n border: '1px solid',\n borderColor: theme.rootBackground.secondaryBorder,\n marginLeft: '1%',\n marginRight: '1%',\n marginBottom: 15,\n textAlign: 'center',\n padding: 20,\n },\n photo: {\n width: 40,\n height: 40,\n borderRadius: 40,\n },\n name: {\n fontSize: 16,\n },\n email: {\n fontSize: 13,\n color: theme.formLabel.main,\n opacity: 0.8,\n },\n info: {\n fontSize: 16,\n fontFamily: 'Myriad Pro Bold',\n marginTop: 7\n },\n divider: {\n width: '85%',\n borderTop: '1px solid',\n borderColor: theme.divider.main,\n margin: '10px auto',\n },\n actionBtn: {\n fontSize: 16\n }\n}))\n","import React from \"react\";\nimport {Box, Button, Typography} from \"@material-ui/core\";\nimport {jobCardStyles} from \"./style\";\nimport {getPhotoUrl} from \"../../../core/helpers\";\nimport {FileSize} from \"../../../core/enums\";\nimport avatarPlaceholder from \"../../../assets/placeholders/avatar-placeholder.png\";\n\ntype JobCardProps = {\n photoUrl: string;\n name: string;\n email: string;\n info: string;\n actionText: string;\n onAssign: () => void;\n}\n\nexport const JobCard: React.FC = (\n {photoUrl, name, email, info, actionText, onAssign}\n) => {\n\n const classes = jobCardStyles();\n\n return (\n \n {'photo'}\n\n \n {name}\n \n \n {email}\n \n \n {info}\n \n\n
    \n\n \n {actionText}\n \n\n \n )\n}\n","import { useContext, useState } from 'react';\nimport { usePagination } from 'core/hooks/use-pagination.hook';\nimport { UtilsContext } from 'core/context/utils.context';\nimport { IJob } from '../../../types';\nimport { JobsApi } from 'core/api/jobs.api';\nimport { UserRoles } from 'core/enums';\n\nexport const useAvailableJobsData = (userId: number, jobRole: string, userRole: string, notAssigned: boolean): any => {\n const utilsContext = useContext(UtilsContext);\n\n const [jobs, setJobs] = useState([]);\n const [isLoading, setIsLoading] = useState(false);\n const [isEmptyList, setIsEmptyList] = useState(false);\n\n const { pagination, setPagination } = usePagination();\n\n const getAvailableJobs = (page: number, searchBy: string, size = 10): void => {\n setIsLoading(true);\n setIsEmptyList(false);\n\n const body = {\n userId,\n old: false,\n notAssigned,\n search: searchBy !== '' ? searchBy : null,\n };\n\n JobsApi.getJobs(10, page, userRole, body)\n .then((res: any) => {\n setJobs(mapData(res?.data?.data || [], jobRole));\n setPagination({\n ...pagination,\n page,\n size,\n totalCount: res.data?.totalCount,\n numberOfPages: Math.ceil(res.data?.totalCount / res.data?.size),\n });\n setIsLoading(false);\n setIsEmptyList(res.data.totalCount === 0);\n })\n .catch((error: any) => {\n console.error(error.response);\n setIsLoading(false);\n utilsContext.addSnackbar(\n 'error',\n 'Sorry, there was an error and we were unable to display the active jobs.',\n );\n });\n };\n\n return {\n jobs,\n getAvailableJobs,\n isLoading,\n isEmptyList,\n pagination,\n };\n};\n\nconst mapData = (data: any, role: string): IJob[] => {\n return data.map((j: any) => {\n return {\n userPhotoUrl: j.photoUrl,\n userName: `${j.firstName || ''} ${j.lastName || ''}`,\n userEmail: j.email,\n userId: j.userId,\n info: getInfoText(j, role),\n };\n });\n};\n\nconst getInfoText = (job: any, role: string): string => {\n switch (role) {\n case UserRoles.COLLECTOR:\n return `${job.totalObjects} ${job.totalObjects === 1 ? 'object' : 'objects'}`;\n default:\n return '';\n }\n};\n","import React, { useEffect, useState } from 'react';\nimport { Backdrop, Box, Fade, Modal, Typography } from '@material-ui/core';\nimport { modalStyles } from '../../_others/modals/modal-styles';\nimport { ModalHeader } from '../../_others/modals/ModalHeader';\nimport { assignJobModalStyles } from './style';\nimport { Searchbox } from '../../_dashboard/Searchbox/Searchbox';\nimport { JobCard } from '../JobCard';\nimport { useAvailableJobsData } from '../_hooks/use-available-jobs-data.hook';\nimport { IJob } from '../../../types';\nimport { Loader } from '../..';\nimport Pagination from '@material-ui/lab/Pagination';\nimport { useAssignJob } from '../_hooks/use-assign-job.hook';\n\ntype AssignJobModalProps = {\n open: boolean;\n handleClose: () => void;\n title: string;\n jobRole: string;\n userId: number;\n userRole: string;\n notAssigned?: boolean;\n onJobSelect?: (userId: number) => void;\n};\n\nexport const AssignJobModal: React.FC = ({\n open,\n handleClose,\n title,\n jobRole,\n userId,\n userRole,\n notAssigned = true,\n onJobSelect,\n}) => {\n const classes = modalStyles();\n const assignJobModalClasses = assignJobModalStyles();\n\n const [searchBy, setSearchBy] = useState('');\n\n const { jobs, getAvailableJobs, isLoading, isEmptyList, pagination } = useAvailableJobsData(\n userId,\n jobRole,\n userRole,\n notAssigned,\n );\n const { assignJob } = useAssignJob(userId, userRole);\n\n useEffect(() => {\n if (!notAssigned) {\n getAvailableJobs(1, null);\n }\n }, [open]);\n\n return (\n \n \n
    \n handleClose()} />\n\n \n \n setSearchBy(val)}\n onClear={() => {\n if (searchBy.trim().length) {\n setSearchBy('');\n getAvailableJobs(1, '');\n }\n }}\n onSearch={(val: string) =>\n val && (val.length > 3 || val === '')\n ? getAvailableJobs(1, val)\n : getAvailableJobs(1, '')\n }\n />\n \n\n {pagination.numberOfPages > 1 && !isLoading && (\n getAvailableJobs(value, searchBy)}\n />\n )}\n \n\n {!isLoading && (\n \n {jobs.map((job: IJob) => (\n {\n if (notAssigned) {\n if (confirm('Are you sure you want to assign this job?')) {\n assignJob(job.userId);\n }\n } else {\n if (onJobSelect) {\n onJobSelect(job.userId);\n }\n }\n }}\n />\n ))}\n \n )}\n\n {isEmptyList && There are no available jobs based on your search.}\n\n {isLoading && }\n
    \n
    \n \n );\n};\n","import {JobsApi} from \"core/api/jobs.api\";\nimport {useContext} from \"react\";\nimport {UtilsContext} from \"core/context/utils.context\";\n\nexport const useAssignJob = (userId: number, role: string): any => {\n\n const utilsContext = useContext(UtilsContext);\n\n const assignJob = (collectorId: number): void => {\n JobsApi.assignJob(collectorId, userId, role)\n .then(() => {\n utilsContext.addSnackbar(\n 'success',\n 'Success! This job was assigned.'\n );\n })\n .catch((error: any) => {\n console.error(error.response);\n let errorMessage = 'Sorry, there was an error. Please try again later.'\n if(error.response.data.message === 'AlreadyExists') {\n errorMessage = 'This job is already assigned.';\n }\n utilsContext.addSnackbar(\n 'error',\n errorMessage\n );\n })\n }\n\n return {\n assignJob,\n }\n}\n","import {useContext, useState} from \"react\";\nimport {usePagination} from \"core/hooks/use-pagination.hook\";\nimport {UtilsContext} from \"core/context/utils.context\";\nimport {IJob} from \"../../../types\";\nimport {JobsApi} from \"core/api/jobs.api\";\nimport {UserRoles} from \"core/enums\";\n\nexport const useJobsData = (role: string, userId: number): any => {\n\n const utilsContext = useContext(UtilsContext);\n\n const [jobs, setJobs] = useState([]);\n const [totalJobs, setTotalJobs] = useState({totalJobs: 0, totalActiveJobs: 0});\n const [isLoading, setIsLoading] = useState(false);\n const [isEmptyList, setIsEmptyList] = useState(false);\n\n const {pagination, setPagination} = usePagination();\n\n const getActiveJobs = (page: number, history = false): void => {\n setIsLoading(true);\n setIsEmptyList(false);\n\n const body = {\n userId,\n old: history,\n notAssigned: false,\n }\n\n JobsApi.getJobs(10, page, role, body)\n .then((res: any) => {\n setTotalJobs({totalJobs: res?.data?.totalJobs, totalActiveJobs: res?.data.totalActiveJobs})\n setJobs(mapData(res?.data?.data || [], UserRoles.COLLECTOR, history));\n setPagination({\n ...pagination,\n page,\n size: 10,\n totalCount: res.data.totalCount,\n numberOfPages: Math.ceil(res.data.totalCount/res.data.size)\n });\n setIsLoading(false);\n setIsEmptyList(res?.data?.totalJob === 0 && res?.data.totalActiveJobs === 0);\n })\n .catch((error: any) => {\n console.error(error.response);\n setIsLoading(false);\n utilsContext.addSnackbar(\n 'error',\n 'Sorry, there was an error and we were unable to display the available jobs based on your search.'\n );\n })\n }\n\n return {\n jobs,\n totalJobs,\n getActiveJobs,\n isLoading,\n isEmptyList,\n pagination\n }\n}\n\nconst mapData = (data: any, role: string, isOld: boolean): IJob[] => {\n return data.map((j: any) => {\n return {\n userPhotoUrl: j.photoUrl,\n userName: `${j.firstName || '' } ${ j.lastName || ''}`,\n userEmail: j.email,\n userId: j.userId,\n info: getInfoText(j, role, isOld)\n }\n })\n}\n\nconst getInfoText = (job: any, role: string, isOld: boolean): string => {\n switch(role) {\n case UserRoles.COLLECTOR:\n return isOld\n ? `Assigned ${job.totalAssigned} times`\n : `${job.totalObjects} ${job.totalObjects === 1 ? 'collector object':'collector objects'}`\n default:\n return '';\n }\n}\n","import React, {useEffect, useState} from \"react\";\nimport {useJobsData} from \"../_hooks/use-jobs-data.hook\";\nimport {Loader} from \"../..\";\nimport {Box, Typography} from \"@material-ui/core\";\nimport {IJob} from \"../../../types\";\nimport {ActiveJob} from \"../ActiveJob\";\nimport Pagination from \"@material-ui/lab/Pagination\";\nimport {UserRoles} from \"../../../core/enums\";\n\ntype ActiveJobsListProps = {\n userId: number;\n role: string;\n refresh: number;\n hasHistory: boolean;\n onJobStatistics: (totalJobs: any) => void;\n}\n\nexport const ActiveJobsList: React.FC = (\n {userId, role, refresh, hasHistory, onJobStatistics}\n) => {\n\n const [displayHistory, setDisplayHistory] = useState(false);\n\n const {jobs, totalJobs, getActiveJobs, isLoading, isEmptyList, pagination} = useJobsData(role, userId);\n\n useEffect(() => {\n getActiveJobs(1);\n }, [refresh])\n\n useEffect(() => {\n onJobStatistics(totalJobs);\n }, [totalJobs.totalJobs, totalJobs.totalActiveJobs])\n\n return (\n \n {\n !isLoading && !isEmptyList &&\n <>\n \n {\n setDisplayHistory(false);\n getActiveJobs(1);\n }}\n >\n Active Jobs\n \n\n {\n hasHistory &&\n {\n setDisplayHistory(true);\n getActiveJobs(1, true);\n }}\n >\n Past Jobs\n \n }\n \n\n {\n jobs.map((job: IJob) => (\n getActiveJobs(1, displayHistory)}\n />\n ))\n }\n\n {\n pagination.numberOfPages > 1 && !isLoading &&\n getActiveJobs(value)}\n />\n }\n \n }\n\n {\n totalJobs.totalJobs === 0 && displayHistory && !isLoading &&\n \n There are no jobs for this user.\n \n }\n\n {\n totalJobs.totalActiveJobs === 0 && !displayHistory && !isLoading &&\n \n There are no active jobs for this user.\n \n }\n\n {\n isLoading && \n }\n \n )\n}\n","import React, { useContext, useEffect, useState } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { makeStyles } from '@material-ui/styles';\nimport { Box, ThemeOptions } from '@material-ui/core';\n\nimport { ArchivistProfileContext } from 'core/context/admin/archivist-profile';\nimport { AppRoutes } from 'core/helpers';\nimport { ArchivistsApi } from 'core/api/admin';\n\nimport { BackNavigation, Loader } from 'components/_others';\n\nimport { Lightbox } from './components/Lightbox';\nimport { Stats } from './components/Stats';\nimport { Bio } from './components/Bio';\nimport { UserRoles } from '../../../../../core/enums';\nimport { ChangeUserRole } from '../../../../../components/_dashboard/_user-profiles/ChangeUserRole';\nimport { UtilsContext } from '../../../../../core/context/utils.context';\nimport { AssignJobBtn } from '../../../../../components/jobs/AssignJobBtn';\nimport { AssignJobModal } from '../../../../../components/jobs/AssignJobModal';\nimport { ActiveJobsList } from '../../../../../components/jobs/ActiveJobsList';\n\nconst useStyles = makeStyles((theme: ThemeOptions) => ({\n root: {\n border: '1px solid',\n borderColor: theme.divider.main,\n marginTop: 20,\n display: 'flex',\n justifyContent: 'space-between',\n padding: '20px',\n },\n profileBox: {\n width: '46%',\n },\n artifactsBox: {\n width: '49%',\n },\n divider: {\n width: '40%',\n borderTop: '1px solid',\n borderColor: theme.divider.main,\n margin: '20px 0',\n },\n jobsBox: {\n width: '49%',\n borderLeft: '1px solid',\n borderColor: theme.divider.main,\n paddingLeft: 15,\n },\n}));\n\nexport const ArchivistProfile: React.FC = () => {\n const classes = useStyles();\n const history = useHistory();\n const archivistProfileContext = useContext(ArchivistProfileContext);\n\n const [isLoading, setIsLoading] = useState(true);\n const [refreshJobs, setRefreshJobs] = useState(0);\n const [totalJobs, setTotalJobs] = useState({ totalJobs: 0, totalActiveJobs: 0 });\n const [displayJobsModal, toggleJobsModal] = useState(false);\n\n const utilsContext = useContext(UtilsContext);\n\n useEffect(() => {\n const params = new URLSearchParams(window.location.search);\n const id = params.get('id');\n\n if (!id) {\n history.push(AppRoutes.ARCHIVIST_LISTING);\n }\n\n ArchivistsApi.getArchivistProfile(Number(id))\n .then((res: any) => {\n archivistProfileContext.setData(res.data);\n setTotalJobs({ totalJobs: res.data.totalJobs, totalActiveJobs: res.data.totalActiveJobs });\n window.scrollTo(0, 0);\n setIsLoading(false);\n })\n .catch((error: any) => {\n console.error(error.response);\n history.push(AppRoutes.ARCHIVIST_LISTING);\n utilsContext.addSnackbar('error');\n });\n }, []);\n\n return (\n \n {!isLoading && (\n <>\n \n\n \n \n \n 0}\n />\n\n
    \n\n \n\n
    \n\n \n \n \n\n \n \n \n\n {archivistProfileContext.data.isActive && (\n toggleJobsModal(true)} />\n )}\n\n {displayJobsModal && (\n {\n toggleJobsModal(false);\n setRefreshJobs(refreshJobs + 1);\n }}\n title={'Assign Collector'}\n jobRole={UserRoles.COLLECTOR}\n userId={archivistProfileContext.data.userId}\n userRole={UserRoles.ARCHIVIST}\n />\n )}\n \n\n {archivistProfileContext.data.isActive && (\n <>\n
    \n totalJobs.totalActiveJobs}\n onJobStatistics={(jobs: any) => setTotalJobs(jobs)}\n />\n \n )}\n \n \n \n )}\n\n {isLoading && }\n \n );\n};\n","import React, {useState} from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport { makeStyles } from \"@material-ui/styles\";\nimport { Box, ThemeOptions, Typography } from \"@material-ui/core\";\n\nimport AccountCircleIcon from \"@material-ui/icons/AccountCircle\";\nimport EditIcon from '@material-ui/icons/Edit';\n\nimport { ICuratorProfile } from \"core/context/admin/curator-profile\";\nimport {FileSize, UserRoles} from \"core/enums\";\nimport { getPhotoUrl } from \"core/helpers\";\n\nimport { AccessStatusLabel } from \"components/_dashboard/_user-profiles\";\nimport { EditUserProfileModal } from \"components/_dashboard/_user-profiles/EditUserProfileModal\";\nimport { formatAddress } from \"core/helpers/format-address\";\n\n\ntype LightboxProps = {\n user: ICuratorProfile;\n hasActiveJobs?: boolean;\n}\n\nconst useStyles = makeStyles((_theme: ThemeOptions) => ({\n root: {\n display: 'flex',\n alignItems: 'flex-start',\n },\n detailsBox: {\n marginTop: 10\n },\n actionsBox: {\n marginTop: 10,\n display: 'flex',\n alignItems: 'center'\n },\n avatarPlaceholder: {\n width: 160,\n height: 160,\n color: '#FE6502',\n marginLeft: -10\n },\n userAvatar: {\n width: 160,\n height: 160,\n borderRadius: 150,\n marginRight: 15\n },\n title: {\n fontSize: 12,\n },\n userName: {\n fontSize: 32,\n fontWeight: 'bold',\n lineHeight: 1\n },\n contactDetails: {\n fontSize: 14,\n },\n editButton: {\n marginLeft: 15,\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center'\n },\n editIcon: {\n width: 20,\n height: 20,\n marginRight: 2\n }\n}))\n\nexport const Lightbox: React.FC = ({user, hasActiveJobs}) => {\n\n const classes = useStyles();\n const history = useHistory();\n\n const [displayEditProfileModal, toggleDisplayEditProfileModal] = useState(false);\n\n return (\n \n \n {\n !user.photoUrl &&\n \n }\n {\n user.photoUrl &&\n \n }\n \n\n \n \n {user.title}\n \n \n {user.firstName}{' '}{user.lastName}\n \n \n {user.email}\n \n {\n !user.email &&\n \n Registered with an external provider that does not provide us the e-mail.\n
    \n No email will be sent from us.\n
    \n }\n \n {user.phoneNumber}\n \n \n {\n formatAddress(\n user.country?.name || '',\n user.state?.name || '',\n user.city?.name || ''\n )\n }\n \n\n \n \n\n toggleDisplayEditProfileModal(true)}\n >\n Edit\n \n \n\n {\n displayEditProfileModal &&\n toggleDisplayEditProfileModal(false)}\n modalTitle={'Edit curator’s profile'}\n onConfirm={() => history.go(0)}\n userId={user.userId}\n data={{\n role: UserRoles.CURATOR,\n firstName: user.firstName || '',\n lastName: user.lastName || '',\n title: user.title || '',\n phoneNumber: user.phoneNumber || '',\n description: user.description || '',\n address: user.address || '',\n organization: user.organization || '',\n website: user.website || '',\n currencyId: user.currency?.id,\n countryId: user.country?.id,\n stateId: user.state?.id,\n cityId: user.city?.id,\n }}\n />\n }\n\n
    \n
    \n )\n}\n","import React from \"react\";\nimport { makeStyles } from \"@material-ui/styles\";\nimport { Box, ThemeOptions, Typography } from \"@material-ui/core\";\n\ntype StatsProps = {\n totalJobs: number;\n totalActiveJobs: number;\n}\n\nconst useStyles = makeStyles((theme: ThemeOptions) => ({\n label: {\n fontSize: 16,\n marginBottom: 7,\n },\n value: {\n color: theme.palette?.text?.primary,\n }\n}))\n\nexport const Stats: React.FC = ({totalJobs, totalActiveJobs}) => {\n\n const classes = useStyles();\n\n return (\n \n \n Total Jobs:{' '}\n {totalJobs}\n \n\n \n Total Active Jobs:{' '}\n {totalActiveJobs}\n \n \n )\n}\n","import React from \"react\";\nimport { makeStyles } from \"@material-ui/styles\";\nimport { Box, ThemeOptions, Typography } from \"@material-ui/core\";\n\nimport { ICuratorProfile } from \"core/context/admin/curator-profile\";\n\ntype BioProps = {\n user: ICuratorProfile\n}\n\nconst useStyles = makeStyles((_theme: ThemeOptions) => ({\n label: {\n fontSize: 15,\n },\n value: {\n fontSize: 16,\n marginBottom: 5,\n }\n}))\n\nexport const Bio: React.FC = ({user}) => {\n\n const classes = useStyles();\n\n return (\n \n \n How did you hear about us?\n \n \n {user.reference || 'unknown'}\n \n\n \n Bio\n \n \n {user.description || 'unknown'}\n \n\n \n Address\n \n \n {user.address || 'unknown'}\n \n\n \n Organization\n \n \n {user.organization || 'unknown'}\n \n\n \n Website\n \n \n {user.website || 'unknown'}\n \n\n \n Currency\n \n \n {user.currency?.code || 'unknown'}\n \n \n )\n}\n","import React, { useContext, useEffect, useState } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { makeStyles } from '@material-ui/styles';\nimport { Box, ThemeOptions } from '@material-ui/core';\n\nimport { CuratorProfileContext } from 'core/context/admin/curator-profile';\nimport { AppRoutes } from 'core/helpers';\nimport { CuratorsApi } from 'core/api/admin';\n\nimport { BackNavigation, Loader } from 'components/_others';\nimport { Lightbox } from './components/Lightbox';\nimport { Stats } from './components/Stats';\nimport { Bio } from './components/Bio';\nimport { ChangeUserRole } from '../../../../../components/_dashboard/_user-profiles/ChangeUserRole';\nimport { UserRoles } from '../../../../../core/enums';\nimport { UtilsContext } from '../../../../../core/context/utils.context';\nimport { AssignJobBtn } from '../../../../../components/jobs/AssignJobBtn';\nimport { AssignJobModal } from '../../../../../components/jobs/AssignJobModal';\nimport { ActiveJobsList } from '../../../../../components/jobs/ActiveJobsList';\n\nconst useStyles = makeStyles((theme: ThemeOptions) => ({\n root: {\n border: '1px solid',\n borderColor: theme.divider.main,\n marginTop: 20,\n display: 'flex',\n justifyContent: 'space-between',\n padding: '20px',\n },\n profileBox: {\n width: '46%',\n },\n artifactsBox: {\n width: '49%',\n },\n divider: {\n width: '40%',\n borderTop: '1px solid',\n borderColor: theme.divider.main,\n margin: '20px 0',\n },\n jobsBox: {\n width: '49%',\n borderLeft: '1px solid',\n borderColor: theme.divider.main,\n paddingLeft: 15,\n },\n}));\n\nexport const CuratorProfile: React.FC = () => {\n const classes = useStyles();\n const history = useHistory();\n const curatorProfileContext = useContext(CuratorProfileContext);\n\n const [isLoading, setIsLoading] = useState(true);\n const utilsContext = useContext(UtilsContext);\n\n const [totalJobs, setTotalJobs] = useState({ totalJobs: 0, totalActiveJobs: 0 });\n const [refreshJobs, setRefreshJobs] = useState(0);\n const [displayJobsModal, toggleJobsModal] = useState(false);\n\n useEffect(() => {\n const params = new URLSearchParams(window.location.search);\n const id = params.get('id');\n\n if (!id) {\n history.push(AppRoutes.CURATOR_LISTING);\n }\n\n CuratorsApi.getCuratorProfile(Number(id))\n .then((res: any) => {\n curatorProfileContext.setData(res.data);\n setTotalJobs({ totalJobs: res.data.totalJobs, totalActiveJobs: res.data.totalActiveJobs });\n window.scrollTo(0, 0);\n setIsLoading(false);\n })\n .catch((error: any) => {\n console.error(error.response);\n history.push(AppRoutes.CURATOR_LISTING);\n utilsContext.addSnackbar('error');\n });\n }, []);\n\n return (\n \n {!isLoading && (\n <>\n \n\n \n \n 0} />\n\n
    \n\n \n\n
    \n\n \n \n\n \n \n \n\n {curatorProfileContext.data.isActive && (\n toggleJobsModal(true)} />\n )}\n\n {displayJobsModal && (\n {\n toggleJobsModal(false);\n setRefreshJobs(refreshJobs + 1);\n }}\n title={'Assign Collector'}\n jobRole={UserRoles.COLLECTOR}\n userId={curatorProfileContext.data.userId}\n userRole={UserRoles.CURATOR}\n />\n )}\n \n\n {curatorProfileContext.data.isActive && (\n <>\n
    \n totalJobs.totalActiveJobs}\n onJobStatistics={(jobs: any) => setTotalJobs(jobs)}\n />\n \n )}\n \n \n \n )}\n\n {isLoading && }\n \n );\n};\n","import React, { useContext, useEffect, useState } from 'react';\nimport { modalStyles } from 'components/_others/modals/modal-styles';\nimport { Backdrop, Box, Button, CircularProgress, Fade, Modal, Typography } from '@material-ui/core';\nimport AvatarEditor from 'react-avatar-editor';\n\nimport CloseIcon from '@material-ui/icons/Close';\nimport SaveIcon from '@material-ui/icons/Save';\n\nimport { UserApi } from 'core/api/user';\nimport { UserContext } from 'core/context/user';\n\ntype AvatarEditorModalProps = {\n open: boolean;\n handleClose: () => void;\n};\n\nexport const AvatarEditorModal: React.FC = ({ open, handleClose }) => {\n const classes = modalStyles();\n\n const userContext = useContext(UserContext);\n\n const [file, setFile] = useState(null);\n const [editorRef, setEditorRef] = useState(null);\n\n const [isLoading, setIsLoading] = useState(false);\n const [errorMessage, setErrorMessage] = useState('');\n\n useEffect(() => {\n setFile(null);\n setIsLoading(false);\n setErrorMessage('');\n }, [open]);\n\n const handleUpload = (event: any): void => {\n if (!event.target.files?.length) {\n return;\n }\n\n const avatar = event.target.files[0];\n\n if (avatar.size > 10 * 1000000) {\n alert('We are sorry, but your photo size is too large.');\n return;\n }\n\n if (\n avatar.name &&\n avatar?.name?.substr(avatar.name?.length - 4, 4).toLowerCase() !== '.jpg' &&\n avatar?.name?.substr(avatar.name?.length - 5, 5).toLowerCase() !== '.jpeg' &&\n avatar?.name?.substr(avatar.name?.length - 4, 4).toLowerCase() !== '.png'\n ) {\n alert('We are sorry, but we do not accept this file type.');\n return;\n }\n\n setFile(avatar);\n };\n\n const onSave = (): void => {\n setIsLoading(true);\n setErrorMessage('');\n\n if (editorRef) {\n const canvas = editorRef.getImageScaledToCanvas().toDataURL();\n\n UserApi.changeAvatar(canvas)\n .then((res: any) => {\n userContext.setProfilePic(res.data.url);\n setIsLoading(false);\n handleClose();\n })\n .catch((error: any) => {\n console.error(error.response);\n setIsLoading(false);\n setErrorMessage('Sorry, there was an error. Please try again later.');\n });\n } else {\n setIsLoading(false);\n setErrorMessage('Sorry, there was an error. Please try again later.');\n }\n };\n\n return (\n \n \n
    \n \n \n \n\n \n Edit profile picture\n \n\n \n \n \n \n\n {file && (\n \n setEditorRef(ref)}\n image={file}\n width={250}\n height={250}\n border={30}\n borderRadius={150}\n color={[56, 56, 56, 0.8]} // RGBA\n scale={1}\n rotate={0}\n />\n \n )}\n\n {errorMessage && (\n \n {errorMessage}\n \n )}\n\n {file && (\n \n onSave()}\n >\n {isLoading && }\n {!isLoading && (\n \n )}\n Save\n \n \n )}\n
    \n
    \n \n );\n};\n","import React, { useContext, useEffect, useState } from 'react';\nimport { Backdrop, Box, Button, CircularProgress, Fade, Modal, TextField, Typography } from '@material-ui/core';\nimport { modalStyles } from 'components/_others/modals/modal-styles';\nimport { ModalHeader } from '../../../../../components/_others/modals/ModalHeader';\nimport CloseIcon from '@material-ui/icons/Close';\nimport EmailIcon from '@material-ui/icons/Email';\nimport { UserApi } from '../../../../../core/api/user';\nimport PinInput from 'react-pin-input';\nimport { validateEmail } from '../../../../../core/helpers';\nimport { UserContext } from '../../../../../core/context/user';\nimport { UtilsContext } from '../../../../../core/context/utils.context';\n\ntype ForgetPasswordModalProps = {\n open: boolean;\n userEmail?: string;\n handleClose: () => void;\n};\n\nexport const ConfirmEmailChangeModal: React.FC = ({ open, userEmail, handleClose }) => {\n const classes = modalStyles();\n const userContext = useContext(UserContext);\n\n const [view, setView] = useState('send-confirm-current-email');\n const [isLoading, setIsLoading] = useState(false);\n const utilsContext = useContext(UtilsContext);\n const [values, setValues] = useState({ pin: '', email: '' });\n const [errors, setErrors] = useState({ email: '' });\n\n useEffect(() => {\n if (!userEmail) {\n setView('setup-new-email');\n } else {\n setView('send-confirm-current-email');\n }\n setValues({ pin: '', email: '' });\n }, [open]);\n\n const confirmCurrentEmail = (): void => {\n if (!userEmail) {\n return;\n }\n\n setIsLoading(true);\n\n UserApi.sendConfirmChangeEmail(userEmail, true)\n .then(() => {\n setIsLoading(false);\n setView('confirm-current-email');\n })\n .catch((error: any) => {\n setIsLoading(false);\n console.error(error.response);\n const errorMessage = 'Sorry, there was an error and we were unable to send the confirmation email.';\n utilsContext.addSnackbar('error', errorMessage);\n });\n };\n\n const confirmNewEmail = (): void => {\n if (!validateEmail(values.email)) {\n return;\n }\n\n setIsLoading(true);\n\n UserApi.setNewEmail({ email: values.email, code: values.pin })\n .then(() => {\n setIsLoading(false);\n setView('finish');\n setTimeout(() => {\n userContext.onLogout();\n location.reload();\n }, 5000);\n })\n .catch((error: any) => {\n setIsLoading(false);\n console.error(error.response);\n let errorMessage = 'Sorry, there was an error and we were unable to send the confirmation email.';\n if (error.response?.data?.message === 'InvalidCode') {\n errorMessage = 'Looks like the confirmation code is invalid.';\n }\n if (error.response?.data?.message === 'AlreadyExists') {\n errorMessage = 'This email already exists.';\n }\n utilsContext.addSnackbar('error', errorMessage);\n });\n };\n\n const changeEmail = (): void => {\n if (values.pin?.length !== 6 || !validateEmail(values.email)) {\n return;\n }\n setIsLoading(true);\n\n UserApi.changeEmail({ email: values.email, code: values.pin })\n .then(() => {\n setValues({ ...values, pin: '' });\n setIsLoading(false);\n setView('confirm-new-email');\n })\n .catch((error: any) => {\n setIsLoading(false);\n console.error(error);\n let errorMessage = 'Sorry, there was an error and we were unable to send the confirmation email.';\n if (error.response?.data?.message === 'InvalidCode') {\n errorMessage = 'Looks like the confirmation code is invalid.';\n }\n if (error.response?.data?.message === 'AlreadyExists') {\n errorMessage = 'This email already exists.';\n }\n utilsContext.addSnackbar('error', errorMessage);\n });\n };\n\n const sendConfirmationOnNewEmail = (): void => {\n if (!validateEmail(values.email)) {\n return;\n }\n\n UserApi.sendConfirmChangeEmail(values.email, false)\n .then(() => {\n setIsLoading(false);\n setView('confirm-new-email');\n })\n .catch((error: any) => {\n setIsLoading(false);\n console.error(error.response);\n const errorMessage = 'Sorry, there was an error and we were unable to send the confirmation email.';\n utilsContext.addSnackbar('error', errorMessage);\n });\n };\n\n return (\n \n \n
    \n handleClose()} />\n\n {view === 'send-confirm-current-email' && (\n \n If you wish to change your email, please confirm your current address.
    \n
    \n We will send you an email at {userEmail}, with instructions about the next steps.\n
    \n )}\n\n {view === 'setup-new-email' && (\n <>\n \n Please enter your new email below.\n \n\n {\n setValues({ ...values, email: e.target.value });\n setErrors({ ...errors, email: '' });\n }}\n />\n \n )}\n\n {view === 'confirm-current-email' && (\n <>\n \n Please enter the confirmation code received, and your new email address.\n \n\n \n setValues({ ...values, pin: value })}\n regexCriteria={/^[0-9]*$/}\n />\n \n\n {\n setValues({ ...values, email: e.target.value });\n setErrors({ ...errors, email: '' });\n }}\n />\n \n )}\n\n {view === 'confirm-new-email' && (\n <>\n \n Please confirm your new email, by entering below the code you just received:\n \n\n \n setValues({ ...values, pin: value })}\n regexCriteria={/^[0-9]*$/}\n />\n \n
    \n
    \n
    \n \n )}\n\n {view === 'finish' && (\n \n Success! Your email was changed. Please log in again.\n \n )}\n\n {view !== 'finish' && (\n <>\n \n \n Cancel\n \n\n {\n if (view === 'send-confirm-current-email') {\n confirmCurrentEmail();\n }\n if (view === 'confirm-current-email') {\n changeEmail();\n }\n if (view === 'confirm-new-email') {\n confirmNewEmail();\n }\n if (view === 'setup-new-email') {\n sendConfirmationOnNewEmail();\n }\n }}\n >\n {isLoading && }\n {!isLoading && (\n \n )}\n {view === 'send-confirm-current-email' && 'Send confirmation email'}\n {(view === 'confirm-current-email' || view === 'setup-new-email') && 'Change Email'}\n {view === 'confirm-new-email' && 'Confirm Email'}\n \n \n \n )}\n
    \n
    \n \n );\n};\n","import React, { useContext, useState } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { makeStyles } from '@material-ui/styles';\nimport { Box, Theme, Typography } from '@material-ui/core';\n\nimport AccountCircleIcon from '@material-ui/icons/AccountCircle';\nimport EditIcon from '@material-ui/icons/Edit';\n\nimport { UserContext } from 'core/context/user';\nimport { IExpertProfile } from 'core/context/admin/expert-profile';\nimport { FileSize, UserRoles, RegisterTypesEnum } from 'core/enums';\nimport { getPhotoUrl } from 'core/helpers';\n\nimport { AccessStatusLabel } from 'components/_dashboard/_user-profiles';\nimport { EditUserProfileModal } from 'components/_dashboard/_user-profiles/EditUserProfileModal';\nimport { formatAddress } from 'core/helpers/format-address';\nimport { AvatarEditorModal } from '../../../../../auth/scenes/UserProfile/AvatarEditorModal';\nimport { ForgotPasswordModal } from '../../../../../auth/components/ForgotPassword/ForgotPasswordModal';\nimport { ConfirmEmailChangeModal } from '../../../../../auth/scenes/UserProfile/components/ConfirmEmailChangeModal';\n\ntype LightboxProps = {\n user: IExpertProfile;\n isMyProfile: boolean;\n};\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n display: 'flex',\n alignItems: 'flex-start',\n },\n detailsBox: {\n marginTop: 10,\n },\n actionsBox: {\n marginTop: 10,\n display: 'flex',\n alignItems: 'center',\n },\n avatarPlaceholder: {\n width: 160,\n height: 160,\n color: '#FE6502',\n marginLeft: -10,\n cursor: 'pointer',\n },\n userAvatar: {\n width: 160,\n height: 160,\n borderRadius: 150,\n marginRight: 15,\n cursor: 'pointer',\n },\n title: {\n fontSize: 12,\n },\n userName: {\n fontSize: 32,\n fontWeight: 'bold',\n lineHeight: 1,\n },\n contactDetails: {\n fontSize: 14,\n },\n typeLabel: {\n backgroundColor: theme.label.main,\n fontSize: 14,\n padding: '5px 15px',\n borderRadius: 2,\n marginRight: 7,\n cursor: 'default',\n },\n editButton: {\n marginLeft: 15,\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center',\n },\n editIcon: {\n width: 20,\n height: 20,\n marginRight: 2,\n },\n changeEmail: {\n color: theme.palette?.primary.main,\n fontSize: 13,\n cursor: 'pointer',\n },\n}));\n\nexport const Lightbox: React.FC = ({ user, isMyProfile }) => {\n const userContext = useContext(UserContext);\n const classes = useStyles();\n const history = useHistory();\n\n const [openAvatarEditor, toggleAvatarEditor] = useState(false);\n const [displayEditProfileModal, toggleDisplayEditProfileModal] = useState(false);\n const [openChangePasswordModal, toggleChangePasswordModal] = useState(false);\n const [openChangeEmailModal, toggleChangeEmailModal] = useState(false);\n\n return (\n \n \n {((isMyProfile && !userContext.user?.photoUrl) || (!isMyProfile && !user.photoUrl)) && (\n (isMyProfile ? toggleAvatarEditor(true) : null)}\n style={!isMyProfile ? { cursor: 'default' } : {}}\n />\n )}\n {((isMyProfile && userContext.user?.photoUrl) || (!isMyProfile && user.photoUrl)) && (\n (isMyProfile ? toggleAvatarEditor(true) : null)}\n style={!isMyProfile ? { cursor: 'default' } : {}}\n />\n )}\n \n\n \n \n {user.title}\n \n \n {user.firstName} {user.lastName}\n \n \n {user.email}\n {((isMyProfile && userContext.user?.registerType === RegisterTypesEnum.Web) ||\n userContext.user?.registerType === RegisterTypesEnum.Mobile ||\n userContext.user?.registerType === RegisterTypesEnum.System ||\n !userContext.user?.email) && (\n <>\n toggleChangeEmailModal(true)}\n >\n {userContext.user?.email ? 'Change Email' : 'Set Email'}\n \n \n )}\n \n {!user.email && (\n \n Registered with an external provider that does not provide us the e-mail.\n
    \n No email will be sent from us.\n
    \n )}\n \n {user.phoneNumber}\n \n \n {formatAddress(user.country?.name || '', user.state?.name || '', user.city?.name || '')}\n \n\n \n {userContext.user?.role === UserRoles.ADMIN && (\n \n )}\n\n toggleDisplayEditProfileModal(true)}\n >\n Edit\n \n\n {isMyProfile &&\n (userContext.user?.registerType === RegisterTypesEnum.Web ||\n userContext.user?.registerType === RegisterTypesEnum.Mobile) && (\n toggleChangePasswordModal(true)}\n >\n Change Password\n \n )}\n \n\n {displayEditProfileModal && (\n toggleDisplayEditProfileModal(false)}\n modalTitle={isMyProfile ? 'Edit your profile' : 'Edit expert’s profile'}\n onConfirm={() => history.go(0)}\n userId={user.id ?? user.userId}\n data={{\n role: UserRoles.EXPERT,\n firstName: user.firstName || '',\n lastName: user.lastName || '',\n title: user.title || '',\n phoneNumber: user.phoneNumber || '',\n description: user.description || '',\n address: user.address || '',\n organization: user.organization || '',\n expertise: user.expertise || '',\n website: user.website || '',\n currencyId: user.currency?.id,\n countryId: user.country?.id,\n stateId: user.state?.id,\n cityId: user.city?.id,\n }}\n />\n )}\n\n toggleAvatarEditor(false)} />\n\n toggleChangePasswordModal(false)}\n userEmail={userContext.user?.email}\n forChangePassword={true}\n />\n\n toggleChangeEmailModal(false)}\n userEmail={userContext.user?.email}\n />\n
    \n
    \n );\n};\n","import React, {useContext, useState} from \"react\";\nimport { makeStyles } from \"@material-ui/styles\";\nimport { Box, TextField, ThemeOptions, Tooltip, Typography } from \"@material-ui/core\";\n\nimport EditIcon from \"@material-ui/icons/Edit\";\nimport SaveIcon from \"@material-ui/icons/Save\";\n\nimport { getCustomerSatisfactionColor, getCustomerSatisfactionText } from \"core/helpers/customer-satisfaction\";\nimport {UserContext} from \"../../../../../../core/context/user\";\nimport {UserRoles} from \"../../../../../../core/enums\";\n\ntype StatsProps = {\n totalFeedbacks: number;\n totalDeletedFeedbacksCount: number;\n customerSatisfaction: number;\n type: string;\n saveExpertType: (type: string) => void;\n}\n\nconst useStyles = makeStyles((theme: ThemeOptions) => ({\n label: {\n fontSize: 16,\n marginBottom: 7,\n width: 'fit-content'\n },\n value: {\n color: theme.palette?.text?.primary,\n },\n editIcon: {\n marginLeft: 7, width: 15, marginBottom: 6, cursor: 'pointer'\n }\n}))\n\nexport const Stats: React.FC = (\n {totalFeedbacks, totalDeletedFeedbacksCount, customerSatisfaction, type, saveExpertType}\n) => {\n\n const classes = useStyles();\n\n const [isEditingType, setIsEditingType] = useState(false);\n const [currentType, setCurrentType] = useState(type);\n\n const userContext = useContext(UserContext);\n\n return (\n \n \n {\n !isEditingType &&\n <>\n \n Type:{' '}\n {currentType}\n \n setIsEditingType(true)}\n />\n \n }\n {\n isEditingType &&\n <>\n setCurrentType(e.target.value)}\n />\n {saveExpertType(currentType); setIsEditingType(false)}} />\n {setIsEditingType(false); setCurrentType(type)}}\n >\n Cancel\n \n \n }\n\n \n\n \n <>\n {\n userContext.user?.role === UserRoles.ADMIN &&\n \n Customer Satisfaction:{' '}\n \n {customerSatisfaction.toFixed(0)}%\n \n \n }\n \n \n\n\n \n Number of feedbacks:{' '}\n \n {totalFeedbacks}\n {\n totalDeletedFeedbacksCount > 0 &&\n \n (+ {totalDeletedFeedbacksCount} deleted)\n \n }\n \n \n \n )\n}\n","import React from \"react\";\nimport { makeStyles } from \"@material-ui/styles\";\nimport { Box, ThemeOptions, Typography } from \"@material-ui/core\";\n\nimport { IExpertProfile } from \"core/context/admin/expert-profile\";\n\ntype BioProps = {\n user: IExpertProfile\n}\n\nconst useStyles = makeStyles((_theme: ThemeOptions) => ({\n label: {\n fontSize: 15,\n },\n value: {\n fontSize: 16,\n marginBottom: 5,\n }\n}))\n\nexport const Bio: React.FC = ({user}) => {\n\n const classes = useStyles();\n\n return (\n \n \n Expertise\n \n \n {user.expertise || 'unknown'}\n \n\n \n Bio\n \n \n {user.description || 'unknown'}\n \n\n \n Address\n \n \n {user.address || 'unknown'}\n \n\n \n Organization\n \n \n {user.organization || 'unknown'}\n \n\n \n Website\n \n \n {user.website || 'unknown'}\n \n\n \n Currency\n \n \n {user.currency?.code || 'unknown'}\n \n \n )\n}\n","import React, {useContext, useEffect, useState} from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport { makeStyles } from \"@material-ui/styles\";\nimport { modalStyles } from \"components/_others/modals/modal-styles\";\nimport {\n Backdrop,\n Box,\n Button,\n CircularProgress,\n Fade,\n Modal,\n TextField,\n ThemeOptions,\n Typography\n} from \"@material-ui/core\";\n\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport SaveIcon from \"@material-ui/icons/Save\";\n\nimport { CommonApi } from \"core/api/shared\";\nimport { ExpertsApi } from \"core/api/admin\";\nimport { ITaxonomyLabel } from \"core/context/admin/taxonomy\";\n\nimport {UtilsContext} from \"../../../../../../core/context/utils.context\";\n\ntype AddNewLabelsModalProps = {\n expertId: number;\n open: boolean;\n handleClose: () => void;\n}\n\nconst useStyles = makeStyles((theme: ThemeOptions) => ({\n label: {\n backgroundColor: theme.label.main,\n color: theme.label.text,\n fontSize: 13,\n marginRight: 7,\n padding: '3px 10px',\n borderRadius: 2,\n display: 'inline-block',\n marginTop: 7,\n cursor: 'pointer'\n },\n labelContent: {\n display: 'flex',\n alignItems: 'center',\n },\n divider: {\n width: '85%',\n margin: '7px auto',\n borderTop: '1px solid',\n borderColor: theme.divider.main\n },\n closeIcon: {\n color: theme.label.text,\n cursor: 'pointer',\n width: 15,\n marginLeft: 5\n },\n}))\n\nexport const AddNewLabelsModal: React.FC = ({expertId, open, handleClose}) => {\n\n const history = useHistory();\n\n const classes = modalStyles();\n const labelStyles = useStyles();\n\n const [searchBy, setSearchBy] = useState('');\n const [isLoading, setIsLoading] = useState(false);\n\n const [categories, setCategories] = useState([]);\n\n const [selectedLabels, setSelectedLabels] = useState([]);\n const utilsContext = useContext(UtilsContext);\n useEffect(() => {\n setSearchBy('');\n setCategories([]);\n setSelectedLabels([]);\n }, [open])\n\n const handleKeyPress = (e: any): void => {\n if(searchBy.length === 0) {\n setCategories([]);\n }\n if(e.key === 'Enter' && searchBy.length > 3) {\n onSearch();\n e.preventDefault();\n }\n }\n\n const onSearch = (): void => {\n CommonApi.searchTaxonomy(JSON.stringify(searchBy), 'Category')\n .then((res: any) => {\n setCategories(res.data.filter((l: ITaxonomyLabel) => l.isActive && !l.isDeleted));\n })\n .catch((error: any) => {\n console.error(error.response);\n })\n }\n\n const onSave = (): void => {\n setIsLoading(true);\n\n ExpertsApi.assignLabelsToExpert(expertId, selectedLabels.map(l => l.id))\n .then(() => {\n history.go(0);\n })\n .catch((error: any) => {\n console.error(error.response);\n utilsContext.addSnackbar('error');\n })\n }\n\n const onLabelSelect = (label: ITaxonomyLabel): void => {\n if(selectedLabels.findIndex(l => l.id === label.id) === -1) {\n const result = selectedLabels;\n result.push(label);\n setSelectedLabels(result.slice());\n }\n }\n\n const onLabelDelete = (id: number): void => {\n const index = selectedLabels.findIndex(l => l.id === id);\n if(index !== -1) {\n const result = selectedLabels;\n result.splice(index, 1);\n setSelectedLabels(result.slice());\n }\n }\n\n return (\n \n \n
    \n \n \n \n\n \n \n Add new labels\n \n \n In the field below type your area fields and choose from the results.\n \n \n\n \n setSearchBy(e.target.value)}\n onKeyPress={(e: any) => handleKeyPress(e)}\n />\n \n\n \n {\n categories.length > 0 &&\n <>\n \n Categories:\n \n {\n categories.map((category: any) => (\n onLabelSelect(category)}\n >\n \n {category.name}\n \n \n ))\n }\n \n }\n \n\n \n {\n selectedLabels.length > 0 &&\n <>\n
    \n \n New selected labels:\n \n {\n selectedLabels.map((label: any) => (\n \n \n {label.name}\n onLabelDelete(label.id)}\n />\n \n \n ))\n }\n \n }\n \n\n \n \n Cancel\n \n\n onSave()}\n >\n {\n isLoading && \n }\n {\n !isLoading && \n }\n Save\n \n \n
    \n \n \n )\n}\n","import React, {useContext, useState} from \"react\";\nimport { Box, Button, ThemeOptions, Typography } from \"@material-ui/core\";\nimport { makeStyles } from \"@material-ui/styles\";\n\nimport CloseIcon from \"@material-ui/icons/Close\";\n\nimport { ICategory } from \"core/context/admin/expert-profile\";\nimport { ExpertsApi } from \"core/api/admin\";\n\nimport { AddNewLabelsModal } from \"./AddNewLabelsModal\";\nimport { ConfirmDeleteModal } from \"components/_others\";\nimport {UtilsContext} from \"../../../../../../core/context/utils.context\";\n\ntype ExpertLabelsProps = {\n expertId: number;\n labels: ICategory[]\n}\n\nconst useStyles = makeStyles((theme: ThemeOptions) => ({\n label: {\n backgroundColor: theme.label.main,\n color: theme.label.text,\n fontSize: 13,\n marginRight: 7,\n padding: '3px 10px',\n borderRadius: 2,\n display: 'inline-block',\n marginTop: 7,\n },\n closeIcon: {\n color: theme.label.text,\n cursor: 'pointer',\n width: 15,\n marginLeft: 5\n },\n labelContent: {\n display: 'flex',\n alignItems: 'center',\n },\n addNewBtn: {\n padding: '4px 7px',\n fontSize: 13,\n marginRight: 7,\n }\n}))\n\nexport const ExpertLabels: React.FC = ({expertId, labels}) => {\n\n const classes = useStyles();\n\n const [currentLabels, setCurrentLabels] = useState(labels);\n\n const [displayAddLabelsModal, toggleAddLabelsModal] = useState(false);\n const [displayConfirmDeleteModal, toggleConfirmDeleteModal] = useState(-1);\n const utilsContext = useContext(UtilsContext);\n const onLabelDelete = (id: number): void => {\n ExpertsApi.deleteExpertLabel(expertId, id)\n .then(() => {\n const index = currentLabels.findIndex(l => l.id === id);\n if(index !== -1) {\n const result = currentLabels;\n result.splice(index, 1);\n setCurrentLabels(result.slice());\n }\n toggleConfirmDeleteModal(-1);\n utilsContext.addSnackbar('success', 'Label deleted.');\n })\n .catch((error: any) => {\n console.error(error.response);\n utilsContext.addSnackbar('error');\n })\n }\n\n return (\n \n \n Expert fields:\n \n\n {\n currentLabels.length === 0 &&\n \n There are no labels associated with this expert.\n \n }\n\n \n toggleAddLabelsModal(true)}\n >\n Add new labels\n \n {\n currentLabels.map((category: ICategory) => (\n \n \n {category.name}\n toggleConfirmDeleteModal(category.id)}\n />\n \n \n ))\n }\n \n\n toggleAddLabelsModal(false)}\n />\n\n toggleConfirmDeleteModal(-1)}\n onConfirm={() => onLabelDelete(displayConfirmDeleteModal)}\n />\n \n )\n}\n","import React from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { makeStyles } from \"@material-ui/styles\";\nimport { Box, ThemeOptions, Typography } from \"@material-ui/core\";\n\nimport { ICompletedFeedback } from \"core/context/admin/expert-profile\";\nimport { AppRoutes } from \"core/helpers\";\n\ntype CompletedFeedbackProps = {\n feedback: ICompletedFeedback;\n}\n\nconst useStyles = makeStyles((theme: ThemeOptions) => ({\n root: {\n backgroundColor: theme.label.main,\n borderLeft: '7px solid #FE6502',\n padding: '10px',\n borderRadius: 2,\n marginBottom: 10,\n width: '100%'\n },\n objectTitle: {\n fontSize: 15,\n color: theme.label.text,\n },\n subtitle: {\n fontSize: 14,\n },\n link: {\n color: '#029BFE'\n }\n}))\n\nexport const CompletedFeedback: React.FC = ({feedback}) => {\n\n const classes = useStyles();\n\n\n return (\n \n \n {feedback.artifact.title}\n \n \n From: {feedback.collector.firstName}{' '}{feedback.collector.lastName}\n \n \n This collector requested feedback for{' '}\n this object\n .\n \n \n )\n}\n","import React, { useContext, useEffect, useState } from \"react\";\nimport Pagination from \"@material-ui/lab/Pagination\";\nimport { makeStyles } from \"@material-ui/styles\";\nimport { Box, ThemeOptions, Typography } from \"@material-ui/core\";\n\nimport { ExpertProfileContext } from \"core/context/admin/expert-profile\";\nimport { ExpertsApi } from \"core/api/admin\";\nimport { Loader } from \"components/_others\";\nimport { CompletedFeedback } from \"./CompletedFeedback\";\nimport {UtilsContext} from \"../../../../../../core/context/utils.context\";\n\ntype CompletedFeedbacksListProps = {\n userId: number;\n}\n\nconst useStyles = makeStyles((_theme: ThemeOptions) => ({\n root: {\n fontSize: 16,\n },\n}))\n\nexport const CompletedFeedbacksList: React.FC = ({userId}) => {\n\n const classes = useStyles();\n const expertProfileContext = useContext(ExpertProfileContext);\n\n const [isLoading, setIsLoading] = useState(true);\n const utilsContext = useContext(UtilsContext);\n useEffect(() => {\n expertProfileContext.setCurrentPage(1);\n getFeedbacks(1);\n }, []);\n\n const getFeedbacks = (page: number): void => {\n ExpertsApi.getExpertCompletedFeedbacks(userId, expertProfileContext.feedbacksPagination.size, page)\n .then((res: any) => {\n expertProfileContext.setCompletedFeedbacks(res.data);\n setIsLoading(false);\n window.scrollTo(0, 0);\n })\n .catch((error: any) => {\n console.error(error.response);\n setIsLoading(false);\n utilsContext.addSnackbar('error');\n })\n }\n\n const handlePageChange = (page: number): void => {\n expertProfileContext.setCurrentPage(page);\n getFeedbacks(page);\n }\n\n return (\n \n {\n !isLoading &&\n <>\n \n Completed feedback:\n \n\n {\n expertProfileContext.completedFeedbacks.length === 0 &&\n \n There are no completed feedback.\n \n }\n\n {\n expertProfileContext.completedFeedbacks.map(feedback => (\n \n ))\n }\n\n {\n expertProfileContext.feedbacksPagination.numberOfPages > 1 &&\n \n handlePageChange(value)}\n />\n \n }\n \n }\n\n {\n isLoading && \n }\n \n )\n}\n","import { Backdrop, Box, CircularProgress, Fade, Modal, Typography } from '@material-ui/core';\nimport { modalStyles } from 'components/_others/modals/modal-styles';\nimport { AppRoutes, clearLocalStorage } from 'core';\nimport { UserApi } from 'core/api';\nimport { UserContext } from 'core/context/user';\nimport { UtilsContext } from 'core/context/utils.context';\nimport React, { useContext, useEffect, useState } from 'react';\nimport PinInput from 'react-pin-input';\nimport { useHistory } from 'react-router-dom';\nimport { ModalHeader } from '../../../../../components/_others/modals/ModalHeader';\n\ntype ForgetPasswordModalProps = {\n open: boolean;\n handleClose: () => void;\n deleteCode: string;\n};\n\nexport const DeleteEmailSentModal: React.FC = ({ open, handleClose, deleteCode }) => {\n const classes = modalStyles();\n const history = useHistory();\n const userContext = useContext(UserContext);\n const utilsContext = useContext(UtilsContext);\n const [loading, setLoading] = useState(false);\n\n const onLogout = (): void => {\n clearLocalStorage();\n userContext.onLogout();\n history.push(AppRoutes.SIGN_IN);\n };\n\n const onPinInputComplete = (value: string): void => {\n setLoading(true);\n UserApi.deleteAccount(value)\n .then((_res) => {\n onLogout();\n })\n .catch((err) => {\n console.error(err);\n utilsContext.addSnackbar('error');\n setLoading(false);\n });\n };\n\n useEffect(() => {\n if (deleteCode) {\n onPinInputComplete(deleteCode);\n }\n }, [deleteCode]);\n\n return (\n \n \n
    \n handleClose()} />\n\n \n An E-mail with a confirmation code has been sent to you.
    \n Enter the confirmation code below in order to permanently delete your account.\n
    \n\n \n \n\n {\n \n }\n \n
    \n
    \n \n );\n};\n","import { Box, Button, CircularProgress, makeStyles, Paper, Typography } from '@material-ui/core';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport { UserApi } from 'core/api';\nimport React, { useEffect, useState } from 'react';\nimport { DeleteEmailSentModal } from './DeleteEmailSentModal';\n\nexport const useStyles = makeStyles((theme) => ({\n deleteAccountPaper: {\n padding: 20,\n boxShadow: 'none',\n marginTop: 10,\n marginBottom: 10,\n },\n deleteAccountButton: {\n backgroundColor: theme.palette.error.main,\n color: 'white',\n '&:hover': {\n backgroundColor: theme.palette.error.main,\n },\n },\n}));\n\nexport const DeleteAccountSegment: React.FC = () => {\n const classes = useStyles();\n const [openDeleteAccountModal, setOpenDeleteAccountModal] = useState(false);\n const [deleteAccountEmailLoading, setDeleteAccountEmailLoading] = useState(false);\n const [code, setCode] = useState('');\n\n const sendDeleteAccountEmail = (): void => {\n setDeleteAccountEmailLoading(true);\n\n UserApi.sendDeleteAccountEmail()\n .then((_res) => {\n setOpenDeleteAccountModal(true);\n })\n .catch((error) => {\n console.error(error.response);\n })\n .finally(() => {\n setDeleteAccountEmailLoading(false);\n });\n };\n\n useEffect(() => {\n const urlSearchParams = new URLSearchParams(window.location.search);\n const deleteCode = urlSearchParams.get('data');\n if (deleteCode) {\n setCode(deleteCode);\n setOpenDeleteAccountModal(true);\n }\n }, []);\n\n return (\n <>\n \n \n \n Delete My Account\n \n\n \n You will recieve an E-Mail to confirm your decision.
    \n Please note, that all your account information will permanently be erased.\n
    \n\n \n \n {deleteAccountEmailLoading ? (\n \n ) : (\n \n )}\n Delete my account\n \n \n
    \n\n {\n setOpenDeleteAccountModal(false);\n }}\n deleteCode={code}\n />\n \n );\n};\n","import React, { useContext, useEffect, useState } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { makeStyles } from '@material-ui/styles';\nimport { Box, ThemeOptions } from '@material-ui/core';\n\nimport { ExpertProfileContext } from 'core/context/admin/expert-profile';\nimport { AppRoutes } from 'core/helpers';\nimport { ExpertsApi } from 'core/api/admin';\n\nimport { BackNavigation, Loader } from 'components/_others';\n\nimport { Lightbox } from './components/Lightbox';\nimport { Stats } from './components/Stats';\nimport { Bio } from './components/Bio';\nimport { ExpertLabels } from './components/ExpertLabels';\nimport { CompletedFeedbacksList } from './components/CompletedFeedbacksList';\nimport { UserApi } from '../../../../../core/api/user';\nimport { UserRoles } from '../../../../../core/enums';\nimport { UserContext } from '../../../../../core/context/user';\nimport { ChangeUserRole } from '../../../../../components/_dashboard/_user-profiles/ChangeUserRole';\nimport { UtilsContext } from '../../../../../core/context/utils.context';\nimport { DeleteAccountSegment } from 'scenes/auth/scenes/UserProfile/components/DeleteAccountSegment';\n\nconst useStyles = makeStyles((theme: ThemeOptions) => ({\n root: {\n border: '1px solid',\n borderColor: theme.divider.main,\n marginTop: 20,\n display: 'flex',\n justifyContent: 'space-between',\n padding: '20px',\n },\n profileBox: {\n width: '46%',\n },\n labelsBox: {\n width: '49%',\n },\n divider: {\n width: '40%',\n borderTop: '1px solid',\n borderColor: theme.divider.main,\n margin: '20px 0',\n },\n stats: {},\n pageContainer: {\n display: 'flex',\n flexDirection: 'column',\n },\n}));\n\nexport const ExpertProfile: React.FC = () => {\n const classes = useStyles();\n const history = useHistory();\n const expertProfileContext = useContext(ExpertProfileContext);\n\n const [isLoading, setIsLoading] = useState(true);\n const utilsContext = useContext(UtilsContext);\n const [isMyProfile, setIsMyProfile] = useState(false);\n\n const userContext = useContext(UserContext);\n\n useEffect(() => {\n const params = new URLSearchParams(window.location.search);\n const id = params.get('id');\n\n if (!id) {\n history.push(AppRoutes.EXPERT_LISTING);\n }\n\n if (id === 'my-profile') {\n setIsMyProfile(true);\n UserApi.getUser()\n .then((res: any) => {\n expertProfileContext.setData(res.data);\n window.scrollTo(0, 0);\n setIsLoading(false);\n })\n .catch((error: any) => {\n console.error(error.response);\n history.push(AppRoutes.EXPERT_LISTING);\n utilsContext.addSnackbar('error');\n });\n return;\n }\n\n ExpertsApi.getExpertProfile(Number(id))\n .then((res: any) => {\n expertProfileContext.setData(res.data);\n window.scrollTo(0, 0);\n setIsLoading(false);\n })\n .catch((error: any) => {\n console.error(error.response);\n history.push(AppRoutes.EXPERT_LISTING);\n utilsContext.addSnackbar('error');\n });\n }, []);\n\n const saveExpertType = (type: string): void => {\n ExpertsApi.updateExpertType(expertProfileContext.data.userId, type)\n .then(() => {\n expertProfileContext.setExpertType(type);\n })\n .catch((error: any) => {\n console.error(error.response);\n utilsContext.addSnackbar('error');\n });\n };\n\n return (\n \n {!isLoading && (\n <>\n \n \n \n \n \n \n\n {userContext.user?.role === UserRoles.ADMIN && (\n <>\n
    \n\n \n\n
    \n\n saveExpertType(type)}\n />\n\n
    \n \n )}\n \n \n \n \n {userContext.user?.role === UserRoles.ADMIN && (\n \n \n\n
    \n\n \n \n \n \n )}\n \n \n\n {userContext.user?.role === UserRoles.EXPERT && (\n \n \n \n )}\n \n \n )}\n\n {isLoading && }\n \n );\n};\n","import { ICollectorArtifactState } from './collector-artifact.interfaces';\nimport { IAction } from 'core/context/interfaces';\n\nexport default (state: ICollectorArtifactState, action: IAction): ICollectorArtifactState => {\n switch (action.type) {\n case 'SET_ARTIFACT':\n return {\n ...state,\n artifact: {\n id: action.payload.artifact.id,\n title: action.payload.artifact.title,\n description: action.payload.artifact.description,\n exactValue: action.payload.artifact.exactValue,\n minimumValue: action.payload.artifact.minimumValue,\n maximumValue: action.payload.artifact.maximumValue,\n width: action.payload.artifact.width,\n height: action.payload.artifact.height,\n depth: action.payload.artifact.depth,\n weight: action.payload.artifact.weight,\n exactProductionYear: action.payload.artifact.exactProductionYear,\n lowerProductionYear: action.payload.artifact.lowerProductionYear,\n upperProductionYear: action.payload.artifact.upperProductionYear,\n origin: action.payload.artifact.origin,\n material: action.payload.artifact.material,\n style: action.payload.artifact.style,\n artist: action.payload.artifact.artist,\n artistBio: action.payload.artifact.artistBio,\n condition: action.payload.artifact.condition,\n createdDate: action.payload.artifact.dateCreated,\n paymentFreePass: action.payload.artifact.paymentFreePass || false,\n isFeedbackImported: action.payload.artifact.isFeedbackImported,\n isSharedToPublicFeed: action.payload.artifact.isSharedToPublicFeed,\n documents: action.payload.artifact.documents || [],\n feedbackRequests: action.payload.artifact.feedbackRequests || [],\n experts: action.payload.artifact.experts || [],\n photos: action.payload.artifact.photos || [],\n categories: action.payload.artifact.categories || [],\n materials: action.payload.artifact.materials || [],\n conditions: action.payload.artifact.conditions || [],\n eras: action.payload.artifact.eras || [],\n origins: action.payload.artifact.origins || [],\n styles: action.payload.artifact.styles || [],\n collections: action.payload.artifact.collections || [],\n feedbacks: action.payload.artifact.feedbacks || [],\n artistImageUrl: action.payload.artifact.artistImageUrl,\n },\n };\n case 'SET_LOADING_STATE':\n return {\n ...state,\n isLoading: action.payload,\n };\n default:\n return state;\n }\n};\n","import React, { createContext, useReducer } from 'react';\nimport CollectorArtifactReducer from './collector-artifact.reducer';\nimport { ICollectorArtifactState } from './collector-artifact.interfaces';\n\nconst initialState: ICollectorArtifactState = {\n artifact: {\n id: 0,\n title: '',\n description: '',\n exactValue: null,\n minimumValue: null,\n maximumValue: null,\n width: null,\n height: null,\n depth: null,\n weight: null,\n exactProductionYear: null,\n lowerProductionYear: null,\n upperProductionYear: null,\n isFeedbackImported: false,\n isSharedToPublicFeed: false,\n paymentFreePass: false,\n origin: '',\n material: '',\n style: '',\n artist: '',\n artistBio: '',\n condition: '',\n createdDate: '',\n documents: [],\n feedbackRequests: [],\n experts: [],\n photos: [],\n collections: [],\n categories: [],\n materials: [],\n conditions: [],\n eras: [],\n origins: [],\n styles: [],\n feedbacks: [],\n artistImageUrl: null,\n },\n isLoading: true,\n setArtifact: () => null,\n setLoadingState: () => null,\n};\n\nexport const CollectorArtifactContext = createContext(initialState);\n\nexport const CollectorArtifactProvider: any = ({ children }: any) => {\n const [state, dispatch] = useReducer(CollectorArtifactReducer, initialState);\n\n const setArtifact = (artifact: unknown): void => {\n dispatch({\n type: 'SET_ARTIFACT',\n payload: { artifact },\n });\n };\n\n const setLoadingState = (isLoading: boolean): void => {\n dispatch({\n type: 'SET_LOADING_STATE',\n payload: isLoading,\n });\n };\n\n return (\n \n {children}\n \n );\n};\n","import React, { useContext, useEffect, useState } from 'react';\nimport { makeStyles } from '@material-ui/styles';\nimport {\n Backdrop,\n Box,\n Button,\n Checkbox,\n CircularProgress,\n Divider,\n Fade,\n FormControlLabel,\n Modal,\n ThemeOptions,\n Typography,\n} from '@material-ui/core';\nimport ReactStars from 'react-rating-stars-component';\nimport { modalStyles } from 'components/_others/modals/modal-styles';\nimport CloseIcon from '@material-ui/icons/Close';\nimport SaveIcon from '@material-ui/icons/Save';\nimport imagePlaceholder from 'assets/placeholders/artifact-placeholder.png';\nimport { IFeedbackResult } from 'core/context/feedback-requests/feedback';\nimport { FileSize, UserRoles } from 'core/enums';\nimport { InfoText } from '../../_others/InfoText';\nimport { getEstimatedDisplayValue, getPhotoUrl } from 'core/helpers';\nimport moment from 'moment';\nimport { CollectorApi } from '../../../core/api/consumer';\nimport { Chat } from '../../../scenes/consumer/objectDetails/components/Chat';\nimport { UtilsContext } from '../../../core/context/utils.context';\nimport { FeedbackRequestsApi } from '../../../core/api/feedback-requests/feedback-requests.api';\nimport { UserContext } from '../../../core/context/user';\n\ntype FeedbackResultModalProps = {\n open: boolean;\n photo: string;\n artifactId: number;\n feedback: IFeedbackResult;\n handleClose: () => void;\n isOwnArtifact?: boolean;\n};\n\nconst useStyles = makeStyles((theme: ThemeOptions) => ({\n lightbox: {\n display: 'flow-root',\n marginBottom: 10,\n },\n photo: {\n width: '50%',\n float: 'left',\n paddingRight: 10,\n paddingBottom: 5,\n },\n label: {\n color: '#B2B2B2',\n fontSize: 13,\n },\n value: {\n fontSize: 13,\n },\n sectionTitle: {\n fontSize: 17,\n fontWeight: 'bold',\n borderBottom: '2px solid',\n maxWidth: '50%',\n borderColor: `${theme.divider.main}!important`,\n marginBottom: 10,\n },\n taxonomy: {\n backgroundColor: theme.label.main,\n color: theme.label.text,\n fontSize: 13,\n marginRight: 5,\n padding: '2px 7px',\n borderRadius: 2,\n marginBottom: 5,\n },\n taxonomyContainer: {\n display: 'flex',\n flexWrap: 'wrap',\n marginTop: 5,\n marginBottom: 10,\n },\n}));\n\nexport const FeedbackResultModal: React.FC = ({\n open,\n handleClose,\n isOwnArtifact,\n photo,\n artifactId,\n feedback,\n}) => {\n const classes = modalStyles();\n const styles = useStyles();\n\n const utilsContext = useContext(UtilsContext);\n const userContext = useContext(UserContext);\n\n const [importFeedback, setImportFeedback] = useState(feedback.isImported);\n const [infoUsage, setInfoUsage] = useState({\n insurance: feedback.usagePurpose.findIndex((el) => el === 'Insurance') > -1,\n estate: feedback.usagePurpose.findIndex((el) => el === 'Estate Planning') > -1,\n sale: feedback.usagePurpose.findIndex((el) => el === 'Object Sale') > -1,\n });\n const [rating, setRating] = useState(feedback.rating || 0);\n\n const [isLoading, setIsLoading] = useState(false);\n\n useEffect(() => {\n if (userContext.user?.role !== UserRoles.COLLECTOR) {\n return;\n }\n\n FeedbackRequestsApi.markFeedbackAsRead(feedback.id)\n .then(() => {\n feedback.isRead = true;\n })\n .catch((error: any) => {\n console.error(error.data);\n });\n }, []);\n\n const onSave = (): void => {\n setIsLoading(true);\n\n const usagePurpose = [];\n if (infoUsage.insurance) {\n usagePurpose.push('Insurance');\n }\n if (infoUsage.estate) {\n usagePurpose.push('Estate Planning');\n }\n if (infoUsage.sale) {\n usagePurpose.push('Object Sale');\n }\n\n const payload = {\n isImported: importFeedback,\n rating,\n usagePurpose,\n };\n\n CollectorApi.updateFeedbackResult(feedback.id, payload)\n .then(() => {\n setIsLoading(true);\n utilsContext.addSnackbar('success', 'Thank you!');\n history.go(0);\n })\n .catch((error: any) => {\n console.error(error.response);\n setIsLoading(true);\n utilsContext.addSnackbar('error');\n });\n };\n\n return (\n \n \n
    \n \n
    \n Feedback from expert\n \n
    \n \n \n\n {isOwnArtifact && (\n \n You have requested feedback from our experts for this object, bellow you will see the\n feedback.\n \n )}\n\n \n \n \n\n \n \n
    \n Statement from Expert\n \n {feedback.statement}\n \n
    \n
    \n\n <>\n \n About the object\n \n\n What is this Object?\n \n {feedback.category}\n \n\n What is the approximate age?\n \n {feedback.exactProductionYear !== null && (\n <>\n {feedback.exactProductionYear < 0\n ? `${feedback.exactProductionYear * -1} BC`\n : feedback.exactProductionYear}\n \n )}\n {feedback.lowerProductionYear !== null && feedback.upperProductionYear !== null && (\n <>\n {feedback.lowerProductionYear < 0\n ? `${feedback.lowerProductionYear * -1} BC`\n : feedback.lowerProductionYear}\n {' - '}\n {feedback.upperProductionYear < 0\n ? `${feedback.upperProductionYear * -1} BC`\n : feedback.upperProductionYear}\n \n )}\n \n\n What is the Material?\n \n {feedback.material}\n \n\n What is the Style?\n \n {feedback.style}\n \n\n What is the Origin?\n \n {feedback.origin}\n \n\n What is the Condition?\n \n {feedback.condition}\n \n\n Who is the Artist or Maker?\n \n {feedback.artist}\n \n\n Artist Bio\n \n {feedback.artistBio}\n \n \n\n <>\n \n Value\n \n Approximate value?\n \n {getEstimatedDisplayValue(\n feedback.exactValue,\n feedback.minimumValue,\n feedback.maximumValue,\n )}\n \n \n\n <>\n \n Labels\n \n \n These labels are based on the feedback provided by\n \n {' '}\n {feedback.expert.firstName} {feedback.expert.lastName}{' '}\n \n on {moment(feedback.dateCreated).format('MM/DD/YYYY')}.\n \n\n \n Category {feedback.categories.length === 0 ? ': none' : ''}\n \n \n {feedback.categories.map((c) => (\n \n {c.name}\n \n ))}\n \n\n \n Material {feedback.materials.length === 0 ? ': none' : ''}\n \n \n {feedback.materials.map((c) => (\n \n {c.name}\n \n ))}\n \n\n \n Style {feedback.styles.length === 0 ? ': none' : ''}\n \n \n {feedback.styles.map((c) => (\n \n {c.name}\n \n ))}\n \n\n \n Origin {feedback.origins.length === 0 ? ': none' : ''}\n \n \n {feedback.origins.map((c) => (\n \n {c.name}\n \n ))}\n \n\n \n Condition {feedback.conditions.length === 0 ? ': none' : ''}\n \n \n {feedback.conditions.map((c) => (\n \n {c.name}\n \n ))}\n \n\n \n Era {feedback.eras.length === 0 ? ': none' : ''}\n \n \n {feedback.eras.map((c) => (\n \n {c.name}\n \n ))}\n \n \n\n <>\n \n Others\n \n Personal comments and recommendations:\n \n {feedback.comment}\n \n \n\n {(isOwnArtifact || userContext.user?.role === UserRoles.ADMIN) && (\n <>\n \n Do you want to import this feedback?\n \n \n \n \n\n setImportFeedback(true)}\n />\n }\n label={\n \n Yes\n \n }\n />\n setImportFeedback(false)}\n />\n }\n label={\n \n No\n \n }\n />\n \n )}\n\n {(isOwnArtifact || userContext.user?.role === UserRoles.ADMIN) && (\n <>\n \n How are you going to use this information?\n \n\n setInfoUsage({ ...infoUsage, insurance: !infoUsage.insurance })}\n />\n }\n label={\n \n Insurance\n \n }\n />\n
    \n setInfoUsage({ ...infoUsage, estate: !infoUsage.estate })}\n />\n }\n label={\n \n Estate Planning\n \n }\n />\n
    \n setInfoUsage({ ...infoUsage, sale: !infoUsage.sale })}\n />\n }\n label={\n \n Object Sale\n \n }\n />\n \n )}\n\n {(isOwnArtifact || userContext.user?.role === UserRoles.ADMIN) && (\n <>\n \n Rate this feedback\n \n\n {isOwnArtifact && (\n setRating(newRating)}\n size={24}\n disabled={!isOwnArtifact}\n activeColor=\"#FE6502\"\n style={{ outline: 'none' }}\n />\n )}\n\n {userContext.user?.role === UserRoles.ADMIN && {rating}/5}\n\n {feedback.comments && (\n \n \n Chat History\n \n\n \n \n )}\n \n )}\n\n \n \n Close\n \n\n {isOwnArtifact && (\n onSave()}\n >\n {isLoading && }\n {!isLoading && (\n \n )}\n Save\n \n )}\n \n
    \n
    \n \n );\n};\n","import React, { useContext, useEffect, useState } from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport { makeStyles } from \"@material-ui/styles\";\nimport { Box, Grid, ThemeOptions, Typography } from \"@material-ui/core\";\n\nimport { AppRoutes } from \"core/helpers\";\nimport { CollectorsApi } from \"core/api/admin\";\nimport { IFeedbackResult } from \"core/context/feedback-requests/feedback\";\nimport { CollectorArtifactContext } from \"./context/collector-artifact.context\";\nimport { getCollectorAndArtifactIdFromURLSearchParams, isInvalidURLSearchParams } from \"./managers/utils.manager\";\n\nimport { BackNavigation, Loader } from \"components/_others\";\nimport { Gallery } from \"components/_consumer/ObjectDetails/Gallery\";\nimport { AboutObject } from \"../../../feedbackRequests/scenes/FeedbackRequest/components/AboutObject\";\nimport { Documents, Feedbacks, ObjectLabels } from \"components/_consumer/ObjectDetails\";\nimport { FeedbackResultModal } from \"components/_consumer/ObjectDetails/FeedbackResultModal\";\nimport {UtilsContext} from \"../../../../../core/context/utils.context\";\nimport {AdminAssignLabels} from \"../../../feedbackRequests/scenes/FeedbackRequest/components/FeedbackForm/AdminAssignLabels\";\nimport {ICategory} from \"../../../../../core/context/consumer/objectDetails\";\n\nconst useStyles = makeStyles((_theme: ThemeOptions) => ({\n label: {\n color: '#B2B2B2',\n fontSize: 13,\n marginTop: 5,\n },\n}))\n\nexport const CollectorArtifact: React.FC = () => {\n\n const classes = useStyles();\n\n const collectorArtifactContext = useContext(CollectorArtifactContext);\n const history = useHistory();\n\n const utilsContext = useContext(UtilsContext);\n const [displayFeedbackResultModal, toggleFeedbackResultModal] = useState(null);\n\n const [categories, setCategories] = useState([]);\n const [materials, setMaterials] = useState([]);\n const [styles, setStyles] = useState([]);\n const [origins, setOrigins] = useState([]);\n const [conditions, setConditions] = useState([]);\n\n useEffect(() => {\n const {collectorId, artifactId} = getCollectorAndArtifactIdFromURLSearchParams();\n if(isInvalidURLSearchParams(collectorId, artifactId)) {\n history.push(AppRoutes.COLLECTOR_LISTING);\n }\n\n getArtifact(Number(collectorId), Number(artifactId))\n\n }, [])\n\n const getArtifact = (collectorId: number, artifactId: number): void => {\n CollectorsApi.getCollectorArtifact(collectorId, artifactId)\n .then((res: any) => {\n collectorArtifactContext.setArtifact(res.data);\n collectorArtifactContext.setLoadingState(false);\n\n setCategories(res.data.categories);\n setMaterials(res.data.materials);\n setStyles(res.data.styles);\n setOrigins(res.data.origins);\n setConditions(res.data.conditions);\n })\n .catch((error: any) => {\n console.error(error);\n history.push(AppRoutes.COLLECTOR_LISTING);\n utilsContext.addSnackbar('error', 'Sorry, there was an error and we were unable to display ' +\n 'the request. Please try again later.');\n\n })\n }\n\n return (\n \n {\n !collectorArtifactContext.isLoading &&\n <>\n \n \n \n\n \n\n \n \n {\n collectorArtifactContext.artifact.isFeedbackImported && null}\n />\n }\n\n \n\n \n \n\n \n\n \n \n Object Feedback\n toggleFeedbackResultModal(feedback)}\n activeFeedbacksComments={[]}\n />\n \n \n Documents & Receipts\n \n \n \n \n\n \n \n Object Labels\n \n setCategories(c)}\n setNewMaterials={(c) => setMaterials(c)}\n setNewStyles={(c) => setStyles(c)}\n setNewOrigins={(c) => setOrigins(c)}\n setNewConditions={(c) => setConditions(c)}\n />\n \n \n \n \n }\n\n {\n collectorArtifactContext.isLoading && \n }\n\n {\n displayFeedbackResultModal !== null &&\n toggleFeedbackResultModal(null)}\n isOwnArtifact={false}\n photo={collectorArtifactContext.artifact.photos?.find(p => p.isPrimary)?.url || ''}\n feedback={displayFeedbackResultModal}\n artifactId={collectorArtifactContext.artifact.id}\n />\n }\n \n )\n}\n","export function getCollectorAndArtifactIdFromURLSearchParams(): {collectorId: string, artifactId: string} {\n\n const urlSearchParams = new URLSearchParams(window.location.search);\n const collectorId = urlSearchParams.get('collectorId');\n const artifactId = urlSearchParams.get('artifactId');\n\n return {\n collectorId: collectorId || '',\n artifactId: artifactId || ''\n }\n}\n\nexport function isInvalidURLSearchParams(collectorId: string, artifactId: string): boolean {\n return !collectorId || !artifactId || isNaN(Number(collectorId)) || isNaN(Number(artifactId));\n}\n","import React, {useState} from \"react\";\nimport {\n Box,\n Button,\n Checkbox,\n FormControlLabel,\n InputAdornment,\n TextField,\n ThemeOptions,\n Typography\n} from \"@material-ui/core\";\nimport {makeStyles} from \"@material-ui/styles\";\n\nimport {StatisticsApi} from \"core/api/admin\";\nimport {AdminStatistics} from \"core/enums\";\nimport {NumberInput} from \"../../../../../components/_others/NumberInput\";\n\n\nexport const Statistics: React.FC = () => {\n\n const classes = useStyles();\n\n const [numberOfDays, setNumberOfDays] = useState(90);\n const [showInactiveUsers, setShowInactiveUsers] = useState(false);\n\n const downloadStatistics = (type: string): void => {\n StatisticsApi.getStatistics(type, numberOfDays, showInactiveUsers)\n .then((res: any) => {\n window.open(res.data, '_blank')?.focus();\n })\n .catch((error: any) => {\n console.error(error.response);\n })\n }\n\n return (\n \n \n Statistics\n \n\n \n \n Download statistics by...\n \n\n \n downloadStatistics(AdminStatistics.Date)}\n >\n Date\n \n\n downloadStatistics(AdminStatistics.User)}\n >\n User\n \n\n downloadStatistics(AdminStatistics.UserByDay)}\n >\n UserID By Day\n \n\n downloadStatistics(AdminStatistics.TotalUsersStats)}\n >\n UserID (Total Stats)\n \n\n downloadStatistics(AdminStatistics.TotalUsersByDate)}\n >\n Total Users By Date\n \n \n\n \n \n For the last...\n \n\n days,\n inputComponent: NumberInput,\n }}\n value={numberOfDays}\n onChange={(e: any) => setNumberOfDays(e.target.value)}\n />\n \n\n \n setShowInactiveUsers(!showInactiveUsers)}\n />\n }\n label={\n \n Show Inactive Users (used by Total Users By Date only)\n \n }\n />\n \n \n\n\n \n )\n}\n\nconst useStyles = makeStyles((_theme: ThemeOptions) => ({\n container: {\n marginTop: 30,\n width: '100%',\n border: '1px solid',\n borderRadius: 1,\n padding: '20px 15px',\n },\n infoText: {\n fontSize: 15,\n }\n}))\n","import React, {useContext, useEffect, useState} from \"react\";\nimport {Box, Container} from \"@material-ui/core\";\n\nimport {AppRoutes, getToken} from \"core/helpers\";\nimport {UserRoles} from \"core/enums\";\nimport {PrivateRoute} from \"components/_others/PrivateRoute\";\nimport {DashboardDrawer} from \"components/layout/DashboardDrawer\";\n\nimport {DashboardToolbar} from \"components/layout/DashboardToolbar\";\nimport {FeedbackRequestsListing} from \"./feedbackRequests/scenes/FeedbackRequestsListing\";\nimport {Taxonomy} from \"./admin-settings/scenes/Taxonomy\";\nimport {CollectorListing} from \"./collectors/scenes/CollectorListing\";\nimport {ExpertListing} from \"./experts/scenes/ExpertListing\";\nimport {ArchivistListing} from \"./archivists/scenes/ArchivistListing\";\nimport {CuratorListing} from \"./curators/scenes/CuratorListing\";\n\nimport {TaxonomyProvider} from \"core/context/admin/taxonomy\";\nimport {CollectorListingProvider} from \"core/context/admin/collector-listing\";\nimport {ExpertListingProvider} from \"core/context/admin/expert-listing\";\nimport {ArchivistListingProvider} from \"../../core/context/admin/archivist-listing\";\nimport {CuratorListingProvider} from \"../../core/context/admin/curator-listing\";\nimport {UserContext} from \"../../core/context/user\";\nimport {FeedbackRequestsListingProvider} from \"../../core/context/feedback-requests/listing\";\nimport {CollectorProfileProvider} from \"../../core/context/admin/collector-profile\";\nimport {CollectorProfile} from \"./collectors/scenes/CollectorProfile\";\nimport {FeedbackRequest} from \"./feedbackRequests/scenes/FeedbackRequest\";\nimport {Notifications} from \"../auth/scenes/Notifications\";\nimport {ArchivistProfileProvider} from \"../../core/context/admin/archivist-profile\";\nimport {ArchivistProfile} from \"./archivists/scenes/ArchivistProfile\";\nimport { CuratorProfileProvider } from \"core/context/admin/curator-profile\";\nimport {CuratorProfile} from \"./curators/scenes/CuratorProfile\";\nimport { ExpertProfileProvider } from \"core/context/admin/expert-profile\";\nimport {ExpertProfile} from \"./experts/scenes/ExpertProfile\";\nimport { FeedbackRequestProvider } from \"core/context/feedback-requests/feedback\";\nimport { useHistory } from \"react-router-dom\";\nimport {homepageByUserRole} from \"../../core/helpers/redirect-helper\";\nimport {CollectorArtifact} from \"./collectors/scenes/CollectorArtifact\";\nimport {CollectorArtifactProvider} from \"./collectors/scenes/CollectorArtifact/context/collector-artifact.context\";\nimport {Statistics} from \"./admin-settings/scenes/Statistics\";\nimport {responsiveStyles} from \"../../components/layout/_styles/responsive-styles\";\nimport {CustomSnackbar} from \"../../components/_others/CustomSnackbar\";\nimport {UtilsContext} from \"../../core/context/utils.context\";\n\nexport const DashboardApp: React.FC = () => {\n\n const userContext = useContext(UserContext);\n const history = useHistory();\n const [displayPage, setDisplayPage] = useState(false);\n\n const generalClasses = responsiveStyles();\n\n const utilsContext = useContext(UtilsContext);\n\n useEffect(() => {\n if(!userContext.user || userContext.user.role === UserRoles.COLLECTOR) {\n history.push({pathname: homepageByUserRole(userContext.user?.role), search: !getToken()\n ? `redirectUrl=${window.location.pathname}${window.location.search}`\n : ''})\n return;\n }\n setDisplayPage(true);\n }, [])\n\n return (\n \n\n {\n displayPage &&\n <>\n \n \n \n\n \n \n\n \n\n {\n userContext.user?.role === UserRoles.EXPERT &&\n <>\n \n \n \n \n \n \n \n \n \n \n \n }\n\n {\n userContext.user?.role === UserRoles.ADMIN &&\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n }\n \n \n \n }\n\n utilsContext.closeSnackbar()}\n severity={utilsContext.snackbar.severity}\n message={utilsContext.snackbar.text}\n />\n\n \n )\n}\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"undraw_Image__folder_re_hgp7\",\n transform: \"translate(-190.187 -0.002)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_1419\",\n \"data-name\": \"Path 1419\",\n d: \"M522.828,172.5l-3.542-13.93L514.3,138.988l-.282-1.106v0l-1.969-7.745a4.942,4.942,0,0,0-6-3.567L492.963,129.9l-81.776,20.8a4.942,4.942,0,0,0-3.567,6l2.822,11.1,7.171,28.194,2.7,10.608.138.543h.6l-.139-.543-2.578-10.143v0l-7.481-29.408-2.668-10.488a4.363,4.363,0,0,1,3.148-5.3l81.6-20.756,13.256-3.371a4.363,4.363,0,0,1,5.3,3.148l2.092,8.22.282,1.116,4.841,19.034,3.523,13.854.147.581h.6Z\",\n transform: \"translate(-217.281 -126.414)\",\n fill: \"#ccc\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Ellipse_40\",\n \"data-name\": \"Ellipse 40\",\n cx: 14.005,\n cy: 14.005,\n r: 14.005,\n transform: \"translate(203.534 37.224)\",\n fill: \"#fe6502\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_1420\",\n \"data-name\": \"Path 1420\",\n d: \"M509.82,246.458l.671.581H499.826a4.362,4.362,0,0,0-4.357,4.357v33.238l-.155,7.87-6.816-6.1-.638.163-5.053-4.458a4.065,4.065,0,0,0-2.695-1.019H466.819l.2-.543,2.657-7.1,15.063-40.271,1.548-4.137a1.683,1.683,0,0,1,2.678-.682l10.135,8.793,5.965,5.178Z\",\n transform: \"translate(-260.51 -200.567)\",\n fill: \"#b2b2b2\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_1421\",\n \"data-name\": \"Path 1421\",\n d: \"M702.66,243.954l.674.581H670.7l.22-.581,6.951-18.35a1.683,1.683,0,0,1,2.673-.682l13.818,11.893.8.682Z\",\n transform: \"translate(-409.159 -198.001)\",\n fill: \"#b2b2b2\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_1422\",\n \"data-name\": \"Path 1422\",\n d: \"M797.057,317.066a8.225,8.225,0,0,0-6.568,3.266,5.416,5.416,0,0,0-7.557,4.974H805.3A8.24,8.24,0,0,0,797.057,317.066Z\",\n transform: \"translate(-490.953 -265.522)\",\n fill: \"#e6e6e6\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_1423\",\n \"data-name\": \"Path 1423\",\n d: \"M672.969,296.076H575.087a4.95,4.95,0,0,0-4.792,3.743v0a4.927,4.927,0,0,0-.147,1.193v41.371l.318.28.263.234V301.015a4.362,4.362,0,0,1,4.357-4.357h97.882a4.36,4.36,0,0,1,4.357,4.357v50.344h.277a2.823,2.823,0,0,1,.3.014V301.015A4.946,4.946,0,0,0,672.969,296.076Z\",\n transform: \"translate(-336.035 -250.293)\",\n fill: \"#efefef\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Ellipse_41\",\n \"data-name\": \"Ellipse 41\",\n cx: 13.269,\n cy: 13.269,\n r: 13.269,\n transform: \"translate(243.931 57.197)\",\n fill: \"#fe6502\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_1424\",\n \"data-name\": \"Path 1424\",\n d: \"M691.367,381.912H600.357a4.658,4.658,0,0,1-3.056-1.154l-2.043-1.8.312-.451.565-.815,24.529-35.317,2.518-3.626a1.683,1.683,0,0,1,2.765,0l7.655,11.021v0l4.5,6.484,10.752,15.478,16.307-23.277a1.683,1.683,0,0,1,2.76,0l10.461,14.93.6.858,12,17.125Z\",\n transform: \"translate(-354.324 -280.888)\",\n fill: \"#b2b2b2\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_1425\",\n \"data-name\": \"Path 1425\",\n d: \"M723.374,367.714a10.149,10.149,0,0,0-8.1,4.03,6.682,6.682,0,0,0-9.323,6.136h27.593A10.166,10.166,0,0,0,723.374,367.714Z\",\n transform: \"translate(-400.445 -302.481)\",\n fill: \"#ccc\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_1426\",\n \"data-name\": \"Path 1426\",\n d: \"M462.2,439.075l-3.373-2.977-.008-.005-.011-.008-.008-.008c-.106-.076-.212-.155-.315-.236-.027-.019-.051-.038-.076-.057l-.038-.03c-.005,0-.008-.008-.014-.011-.076-.06-.155-.122-.23-.185-.038-.027-.073-.057-.111-.087-.1-.084-.206-.171-.309-.258s-.217-.185-.325-.28l-.011-.008c-.022-.019-.041-.038-.062-.054-.1-.092-.206-.185-.309-.283-.087-.079-.174-.16-.258-.239s-.157-.147-.233-.225l-.016-.016c-.057-.054-.114-.111-.173-.171s-.111-.111-.165-.168-.111-.111-.163-.168l-.043-.043-.014-.014-.523-.465,6.934,6.56.187-.269Zm80.991,3.157c.008.179.022.361.035.543l19.178-.543ZM462.2,439.075l-3.373-2.977-.008-.005-.011-.008-.008-.008c-.106-.076-.212-.155-.315-.236-.027-.019-.051-.038-.076-.057l-.038-.03c-.005,0-.008-.008-.014-.011-.076-.06-.155-.122-.23-.185-.038-.027-.073-.057-.111-.087-.1-.084-.206-.171-.309-.258s-.217-.185-.325-.28l-.011-.008c-.022-.019-.041-.038-.062-.054-.1-.092-.206-.185-.309-.283-.087-.079-.174-.16-.258-.239s-.157-.147-.233-.225l-.016-.016c-.057-.054-.114-.111-.173-.171s-.111-.111-.165-.168-.111-.111-.163-.168l-.043-.043-.014-.014-.523-.465,6.934,6.56.187-.269Zm95.583,3.157H543.192c.008.179.022.361.035.543h14.937ZM462.2,439.075l-3.373-2.977-.008-.005-.011-.008-.008-.008c-.106-.076-.212-.155-.315-.236-.027-.019-.051-.038-.076-.057l-.038-.03c-.005,0-.008-.008-.014-.011-.076-.06-.155-.122-.23-.185-.038-.027-.073-.057-.111-.087-.1-.084-.206-.171-.309-.258s-.217-.185-.325-.28l-.011-.008c-.022-.019-.041-.038-.062-.054-.1-.092-.206-.185-.309-.283-.087-.079-.174-.16-.258-.239s-.157-.147-.233-.225l-.016-.016c-.057-.054-.114-.111-.173-.171s-.111-.111-.165-.168-.111-.111-.163-.168l-.043-.043-.014-.014-.523-.465,6.934,6.56.187-.269Zm-13.169-11.632-5.323-4.7a4.6,4.6,0,0,0-3.048-1.154H424.713c16.939.543,17.9.9,30.7,11.491Zm113.953,14.8c-.1-.008-.2-.011-.3-.011H467.31a4.048,4.048,0,0,1-2.525-.88c-.057-.043-.111-.09-.165-.139l-1.893-1.673-.2-.171-.331-.293-3.373-2.977-.008-.005-.011-.008-.008-.008-2.254-1.994-.556-.492-.043-.035-.014-.014-.523-.465-6.378-5.634-5.323-4.7a4.6,4.6,0,0,0-3.048-1.154H417.329a4.621,4.621,0,0,0-4.61,4.618v86.383a4.621,4.621,0,0,0,4.61,4.618H562.682a4.62,4.62,0,0,0,4.61-4.618V446.849A4.622,4.622,0,0,0,562.986,442.242ZM462.2,439.075l-3.373-2.977-.008-.005-.011-.008-.008-.008c-.106-.076-.212-.155-.315-.236-.027-.019-.051-.038-.076-.057l-.038-.03c-.005,0-.008-.008-.014-.011-.076-.06-.155-.122-.23-.185-.038-.027-.073-.057-.111-.087-.1-.084-.206-.171-.309-.258s-.217-.185-.325-.28l-.011-.008c-.022-.019-.041-.038-.062-.054-.1-.092-.206-.185-.309-.283-.087-.079-.174-.16-.258-.239s-.157-.147-.233-.225l-.016-.016c-.057-.054-.114-.111-.173-.171s-.111-.111-.165-.168-.111-.111-.163-.168l-.043-.043-.014-.014-.523-.465,6.934,6.56.187-.269Zm80.991,3.156c.008.179.022.361.035.543l19.178-.543ZM462.2,439.075l-3.373-2.977-.008-.005-.011-.008-.008-.008c-.106-.076-.212-.155-.315-.236-.027-.019-.051-.038-.076-.057l-.038-.03c-.005,0-.008-.008-.014-.011-.076-.06-.155-.122-.23-.185-.038-.027-.073-.057-.111-.087-.1-.084-.206-.171-.309-.258s-.217-.185-.325-.28l-.011-.008c-.022-.019-.041-.038-.062-.054-.1-.092-.206-.185-.309-.283-.087-.079-.174-.16-.258-.239s-.157-.147-.233-.225l-.016-.016c-.057-.054-.114-.111-.173-.171s-.111-.111-.165-.168-.111-.111-.163-.168l-.043-.043-.014-.014-.523-.465,6.934,6.56.187-.269Zm0,0-3.373-2.977-.008-.005-.011-.008-.008-.008c-.106-.076-.212-.155-.315-.236-.027-.019-.051-.038-.076-.057l-.038-.03c-.005,0-.008-.008-.014-.011-.076-.06-.155-.122-.23-.185-.038-.027-.073-.057-.111-.087-.1-.084-.206-.171-.309-.258s-.217-.185-.325-.28l-.011-.008c-.022-.019-.041-.038-.062-.054-.1-.092-.206-.185-.309-.283-.087-.079-.174-.16-.258-.239s-.157-.147-.233-.225l-.016-.016c-.057-.054-.114-.111-.173-.171s-.111-.111-.165-.168-.111-.111-.163-.168l-.043-.043-.014-.014-.523-.465,6.934,6.56.187-.269Zm95.583,3.156H543.192C543.2,442.411,543.214,442.593,557.785,442.231Z\",\n transform: \"translate(-221.106 -342.203)\",\n fill: \"#707070\"\n}));\n\nfunction SvgEmptyPage(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 156,\n height: 175,\n viewBox: \"0 0 156 175\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEmptyPage);\nexport default __webpack_public_path__ + \"static/media/empty-page.d33508a4.svg\";\nexport { ForwardRef as ReactComponent };","import {makeStyles} from \"@material-ui/core/styles\";\n\nexport const rootStyles = makeStyles({\n root: {\n padding: '0 30px 15px',\n }\n});\n\nexport const emptyPageStyles = makeStyles({\n root: {\n display: 'flex',\n alignItems: 'center',\n height: 'calc(100vh - 65px)',\n },\n content: {\n margin: 'auto',\n textAlign: 'center',\n },\n icon: {\n marginBottom: 30,\n },\n typography: {\n marginBottom: 50,\n fontSize: 20,\n maxWidth: 525,\n lineHeight: 1,\n },\n button: {\n width: 335,\n fontSize: 18,\n }\n});\n","import React, {useContext} from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport { ThemeProvider } from '@material-ui/core/styles'\nimport { Box, Button, Typography } from \"@material-ui/core\";\n\nimport { AppRoutes } from \"core/helpers/app-routes\";\nimport { ReactComponent as EmptyPageIcon } from \"assets/images/empty-page.svg\";\nimport { emptyTheme } from \"assets/themes/components/empty-theme\";\nimport {emptyPageStyles} from \"../styles/root.styles\";\nimport {UserRoles} from \"core/enums\";\nimport {UserContext} from \"core/context/user\";\n\ntype EmptyProps = {\n hasError: boolean;\n}\n\nexport const Empty: React.FC = ({hasError}) => {\n\n const userContext = useContext(UserContext);\n\n const history = useHistory();\n const classes = emptyPageStyles();\n\n const goToAddObject = (): void => {\n switch(userContext.user?.role) {\n case UserRoles.COLLECTOR:\n history.push(AppRoutes.ADD_OBJECT);\n break;\n case UserRoles.ARCHIVIST:\n history.push(AppRoutes.ADD_OBJECT);\n break;\n case UserRoles.CURATOR:\n history.push(AppRoutes.ADD_OBJECT);\n break;\n }\n }\n\n return (\n \n \n
    \n \n\n \n {\n hasError\n ? 'Sorry, there was an error. Please try again later.'\n : 'Your collection is empty!\\n' +\n ' It is time to add an artifact.'\n }\n \n\n goToAddObject()}\n >\n Add new object\n \n
    \n
    \n
    \n )\n}\n","import React, {useState} from \"react\";\nimport {Backdrop, Box, Button, CircularProgress, Fade, Modal, Typography} from \"@material-ui/core\";\n\nimport {modalStyles} from \"components/_others/modals/modal-styles\";\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport DeleteIcon from \"@material-ui/icons/Delete\";\n\nimport {ModalHeader} from \"components/_others/modals/ModalHeader\";\n\nimport {useRemoveObject} from \"./hook\";\n\ntype RemoveFeedObjectModalProps = {\n objectId: number;\n open: boolean;\n handleClose: () => void;\n onRemove: () => void;\n}\n\nexport const RemoveObjectModal: React.FC = (\n {objectId, open, handleClose, onRemove}\n) => {\n\n const classes = modalStyles();\n\n const {isLoading, removeObject} = useRemoveObject(objectId);\n const [hasError, setHasError] = useState(false);\n\n const onConfirm = (): void => {\n setHasError(false);\n removeObject().then((res: boolean) => {\n if(res) {\n onRemove();\n handleClose();\n setHasError(false);\n } else {\n setHasError(true);\n }\n })\n }\n\n return (\n \n \n
    \n\n \n\n \n Are you sure you want to delete this object?\n \n\n {\n hasError &&\n \n Sorry, there was an error. Please try again later.\n \n }\n\n \n \n Cancel\n \n\n onConfirm()}\n >\n {\n isLoading && \n }\n {\n !isLoading && \n }\n Delete Object\n \n \n\n
    \n
    \n \n )\n}\n","import {useContext, useState} from \"react\";\nimport {ObjectApi} from \"core/api/consumer\";\nimport {UtilsContext} from \"core/context/utils.context\";\n\nexport const useRemoveObject = (objectId: number): any => {\n\n const utilsContext = useContext(UtilsContext);\n\n const [isLoading, setIsLoading] = useState(false);\n\n const removeObject = async (): Promise => {\n setIsLoading(true);\n\n return await ObjectApi.deleteObject(objectId)\n .then(() => {\n setIsLoading(false);\n utilsContext.addSnackbar('success', 'Success! Your object was removed.');\n return true;\n })\n .catch((error: any) => {\n console.error(error.response);\n setIsLoading(false);\n utilsContext.addSnackbar('error');\n return false;\n })\n }\n\n return {\n isLoading,\n removeObject,\n }\n}\n","import { SortingOption, SortObjectsOptions } from 'core/enums';\n\nexport function getSortingOptions(activeOption: string, asc: boolean): SortingOption[] {\n const result: SortingOption[] = [];\n if (activeOption === undefined) {\n return result;\n }\n\n result.push({\n name: `Title`,\n type: SortObjectsOptions.Title,\n asc,\n active: activeOption === SortObjectsOptions.Title,\n });\n\n result.push({\n name: `Estimated Value`,\n type: SortObjectsOptions.EstimatedValue,\n asc,\n active: activeOption === SortObjectsOptions.EstimatedValue,\n });\n\n result.push({\n name: `No. of Feedbacks`,\n type: SortObjectsOptions.Feedbacks,\n asc,\n active: activeOption === SortObjectsOptions.Feedbacks,\n });\n\n result.push({\n name: `Date Created`,\n type: SortObjectsOptions.DateCreated,\n asc,\n active: activeOption === SortObjectsOptions.DateCreated,\n });\n\n result.push({\n name: 'Artist Name',\n type: SortObjectsOptions.Artist,\n asc,\n active: activeOption === SortObjectsOptions.Artist,\n });\n\n return result;\n}\n\nexport function getNewSortingOption(activeOption: string, newOption: string, asc: boolean | undefined): SortingOption {\n if (activeOption === newOption) {\n return {\n name: '',\n type: newOption,\n asc: asc === undefined ? true : !asc,\n active: true,\n };\n }\n\n return {\n name: '',\n type: newOption,\n asc: true,\n active: true,\n };\n}\n","import {makeStyles} from \"@material-ui/core/styles\";\n\nexport const fixedHeaderStyles = makeStyles((theme) => ({\n root: {\n backgroundColor: theme.rootBackground.main,\n [\"@media (max-width:812) and (orientation: landscape)\"]: { position: 'unset !important' },\n }\n}));\n","import {makeStyles} from \"@material-ui/styles\";\nimport {Theme} from \"@material-ui/core\";\n\nexport const headerStyles = makeStyles((_theme: Theme) => ({\n root: {\n position: 'sticky',\n top: 65,\n zIndex: 3,\n paddingTop: 15,\n paddingBottom: 20,\n width: '100.1%',\n [\"@media (max-width:1250px)\"]: { width: '100.5%'},\n [\"@media (max-width: 812px) and (orientation: landscape)\"]: { position: 'unset'},\n },\n gridContainer: {\n alignItems: 'center',\n },\n actionsContainer: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n }\n}));\n\nexport const addNewObjectBtnStyles = makeStyles((_theme: Theme) => ({\n root: {\n height: 35,\n fontSize: 17,\n fontWeight: 600,\n letterSpacing: 0,\n width: 180,\n [\"@media (max-width:545px)\"]: { width: 'unset', fontSize: 15 },\n [\"@media (max-width:600px)\"]: { fontSize: 15 },\n },\n icon: {\n fontSize: 22,\n marginRight: 5,\n marginTop: 1,\n [\"@media (max-width:545px)\"]: { marginRight: 0 },\n },\n hideXS: {\n [\"@media (max-width:545px)\"]: { display: 'none'},\n }\n}));\n","import { Box, FormControl, MenuItem, Select, Theme } from '@material-ui/core';\nimport ImportExportIcon from '@material-ui/icons/ImportExport';\nimport { makeStyles } from '@material-ui/styles';\nimport { SortingOption } from 'core/enums';\nimport React from 'react';\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n display: 'flex',\n alignItems: 'center',\n },\n formControl: {\n margin: theme.spacing(1),\n minWidth: 120,\n },\n selectEmpty: {\n marginTop: theme.spacing(2),\n },\n icon: {\n cursor: 'pointer',\n },\n}));\n\ntype SortByProps = {\n options: SortingOption[];\n onSelect: (option: string) => void;\n sortByValue: string;\n};\n\nexport const SortBy: React.FC = ({ options, onSelect, sortByValue }) => {\n const classes = useStyles();\n const [value, setValue] = React.useState(sortByValue);\n\n const handleChange = (event: any): void => {\n setValue(event.target.value);\n onSelect(event.target.value);\n };\n\n return (\n \n Sort By\n \n \n \n onSelect(value || '')} className={classes.icon} />\n \n );\n};\n","import React, {useContext} from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport { Button } from \"@material-ui/core\";\n\nimport {addNewObjectBtnStyles} from \"../styles/header.styles\";\nimport AddIcon from '@material-ui/icons/Add';\n\nimport {UserContext} from \"core/context/user\";\nimport {AppRoutes} from \"core/helpers/app-routes\";\nimport {UserRoles} from \"core/enums\";\nimport {UtilsContext} from \"core/context/utils.context\";\n\nexport const AddNewObjectBtn: React.FC = () => {\n\n const userContext = useContext(UserContext);\n const utilsContext = useContext(UtilsContext);\n\n const history = useHistory();\n\n const classes = addNewObjectBtnStyles();\n\n const goToAddObject = (): void => {\n switch(userContext.user?.role) {\n case UserRoles.COLLECTOR:\n history.push(AppRoutes.ADD_OBJECT);\n break;\n case UserRoles.ARCHIVIST:\n history.push(`${AppRoutes.ADD_OBJECT}?jobId=${utilsContext.selectedJob}`);\n break;\n case UserRoles.CURATOR:\n history.push(`${AppRoutes.ADD_OBJECT}?jobId=${utilsContext.selectedJob}`);\n break;\n }\n }\n\n return (\n goToAddObject()}\n >\n \n Add new object\n \n )\n}\n","import {makeStyles, Theme} from \"@material-ui/core/styles\";\n\nexport const statisticsStyles = makeStyles((theme: Theme) => ({\n root: {\n display: 'flex',\n flexWrap: 'wrap',\n },\n item: {\n marginLeft: 40,\n marginTop: 0,\n lineHeight: 1.1,\n '&:first-child': {\n marginLeft: 0,\n },\n [\"@media (max-width: 710px)\"]: {\n width: '100%',\n ['&:last-child']: {\n marginLeft: 0,\n }\n },\n },\n label: {\n fontSize: 18,\n opacity: 0.8,\n [\"@media (max-width: 710px)\"]: { fontSize: 14},\n\n },\n value: {\n color: theme.palette.secondary.main,\n fontSize: 22,\n fontWeight: 600,\n marginLeft: 8,\n [\"@media (max-width: 710px)\"]: { fontSize: 17},\n }\n}));\n","import React from \"react\";\nimport {Box, Typography} from \"@material-ui/core\";\nimport {statisticsStyles} from \"./styles\";\n\ntype StatisticsProps = {\n statistics: {label: string, value: string}[];\n}\n\nexport const Statistics: React.FC = ({statistics}) => {\n\n const classes = statisticsStyles();\n\n return (\n \n {\n statistics.map(s => (\n \n {s.label}:\n {s.value}\n \n ))\n }\n \n )\n}\n","import React from 'react';\nimport { Box, Grid, Hidden } from '@material-ui/core';\n\nimport { fixedHeaderStyles } from 'assets/styles/fixed-header';\nimport { headerStyles } from 'scenes/consumer/MyObjects/styles/header.styles';\n\nimport { SortingOption } from 'core/enums';\nimport { formatUSD } from 'core/helpers';\n\nimport { SortBy } from 'components/_others/SortBy';\nimport { AddNewObjectBtn } from './AddNewObjectBtn';\nimport { Statistics } from 'scenes/consumer/_components/Statistics';\n\ntype PageHeaderProps = {\n totalCount: number;\n totalValue: number;\n sortingOptions: SortingOption[];\n onSortByChange: (option: string) => void;\n sortByValue: string;\n};\n\nexport const PageHeader: React.FC = ({\n totalCount,\n totalValue,\n sortingOptions,\n onSortByChange,\n sortByValue,\n}) => {\n const fixedHeaderCss = fixedHeaderStyles();\n const classes = headerStyles();\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n );\n};\n","import { ObjectApi } from 'core/api/object.api';\nimport { UserContext } from 'core/context/user';\nimport { UtilsContext } from 'core/context/utils.context';\nimport { SortObjectsOptions, UserRoles } from 'core/enums';\nimport { AppRoutes, getMyObjectsRoute } from 'core/helpers';\nimport { usePagination } from 'core/hooks/use-pagination.hook';\nimport { useContext, useEffect, useState } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { IObjectCard } from 'types';\nimport { getNewSortingOption } from '../../_helpers/objects-sorting.helper';\n\nexport const useMyObjectsData = (): any => {\n const userContext = useContext(UserContext);\n const utilsContext = useContext(UtilsContext);\n const history = useHistory();\n\n const [objects, setObjects] = useState([]);\n const [totalValue, setTotalValue] = useState(0);\n const [isError, setHasError] = useState(false);\n\n const { pagination, setPagination } = usePagination();\n\n useEffect(() => {\n utilsContext.setAppLoaderState(true);\n }, []);\n\n const getObjects = (page: number, size: number, sortBy: string, asc: boolean | undefined): void => {\n utilsContext.setAppLoaderState(true); // eslint-disable-next-line max-len\n // const sortAscending: boolean | undefined = ['item', 'datecreated', 'value'].includes(sortBy.toLowerCase())\n // ? !asc\n // : asc;\n ObjectApi.getMyObjects(page, size, sortBy, !!asc, utilsContext.selectedJob)\n .then((res: any) => {\n setObjects(mapObjects(res.data?.data || [], userContext.user?.role, userContext.user?.id));\n setPagination({\n ...pagination,\n page,\n size,\n sortBy,\n asc,\n totalCount: res.data.totalCount,\n numberOfPages: Math.ceil(res.data.totalCount / res.data.size),\n });\n setTotalValue(res.data.totalValue);\n setHasError(false);\n utilsContext.setAppLoaderState(false);\n window.scrollTo(0, 0);\n })\n .catch((error: any) => {\n console.error(error.response);\n utilsContext.addSnackbar(\n 'error',\n 'Sorry, there was an error and we were unable to display your objects.',\n );\n setObjects([]);\n setTotalValue(0);\n setHasError(true);\n utilsContext.setAppLoaderState(false);\n if (userContext.user?.role !== UserRoles.COLLECTOR) {\n history.push(AppRoutes.ASSIGNED_COLLECTORS_INDEX);\n }\n });\n };\n\n const handlePageChange = (page: number): void => {\n const { sortBy, size, asc } = pagination;\n history.push(\n `${getMyObjectsRoute(\n userContext.user?.role,\n )}?page=${page}&size=${size}&sortBy=${sortBy}&desc=${!asc}&jobId=${utilsContext.selectedJob}`,\n );\n getObjects(page, size, pagination.sortBy || SortObjectsOptions.DateCreated, pagination.asc);\n };\n\n const handlePageSizeChange = (size: number): void => {\n const { sortBy, page, asc } = pagination;\n history.push(\n `${getMyObjectsRoute(\n userContext.user?.role,\n )}?page=${page}&size=${size}&sortBy=${sortBy}&desc=${!asc}&jobId=${utilsContext.selectedJob}`,\n );\n getObjects(page, size, pagination.sortBy || SortObjectsOptions.DateCreated, pagination.asc);\n };\n\n const handleSortByChange = (option: string): void => {\n const { sortBy, page, asc, size } = pagination;\n const newOption = getNewSortingOption(sortBy || '', option, asc || false);\n history.push(\n `${getMyObjectsRoute(userContext.user?.role)}?page=${1}&sortBy=${\n newOption.type\n }&desc=${!newOption.asc}&jobId=${utilsContext.selectedJob}`,\n );\n getObjects(page, size, newOption.type, newOption.asc);\n };\n\n return {\n objects,\n totalValue,\n pagination,\n getObjects,\n isError,\n handlePageChange,\n handlePageSizeChange,\n handleSortByChange,\n };\n};\n\nconst mapObjects = (data: any, role: string | undefined, userId: number | undefined): IObjectCard[] => {\n return data.map((a: any) => {\n const canDeleteOrEdit =\n role === UserRoles.COLLECTOR || role === UserRoles.CURATOR ? true : a.createdBy === userId;\n\n return {\n id: a.id,\n title: a.title,\n description: a.description,\n photoUrl: a.photoUrl,\n exactValue: a.exactValue,\n maximumValue: a.maximumValue,\n minimumValue: a.minimumValue,\n hasActiveFeedbackRequest: a.hasActiveFeedbackRequest,\n isSharedToPublicFeed: a.isSharedToPublicFeed,\n canBeSharedToPublicFeed: a.isFeedbackCompleted,\n feedback: {\n exactValue: a.feedback?.exactValue,\n maximumValue: a.feedback?.maximumValue,\n minimumValue: a.feedback?.minimumValue,\n },\n displayDeleteButtonOnCard: !a.hasActiveFeedbackRequest && canDeleteOrEdit,\n displayEditButtonOnCard: canDeleteOrEdit,\n displayShareButtonOnCard: role === UserRoles.COLLECTOR || role === UserRoles.CURATOR,\n };\n });\n};\n","import { Box, Container } from '@material-ui/core';\nimport { Gallery } from 'components/Gallery';\nimport { GalleryTypeEnum } from 'components/Gallery/helpers/GalleryTypeEnum';\nimport { SortObjectsOptions } from 'core/enums';\nimport { getCurrentPageFromUrl, getPageSizeFromUrl, getSortPreference } from 'core/helpers/utils';\nimport React, { useEffect, useState } from 'react';\nimport { Empty } from 'scenes/consumer/MyObjects/components/Empty';\nimport { RemoveObjectModal } from '../_components/RemoveObjectModal';\nimport { getSortingOptions } from '../_helpers/objects-sorting.helper';\nimport { PageHeader } from './components/PageHeader';\nimport { useMyObjectsData } from './hooks/use-my-objects-data.hook';\nimport { rootStyles } from './styles/root.styles';\n\nexport const MyObjects: React.FC = () => {\n const classes = rootStyles();\n\n const [deleteObjectId, setDeleteObjectId] = useState(-1);\n const [selectedSortBy, setSelectedSortBy] = useState('');\n const {\n objects,\n totalValue,\n getObjects,\n pagination,\n isError,\n handlePageChange,\n handlePageSizeChange,\n handleSortByChange,\n } = useMyObjectsData();\n\n const getObjectsAsync = async (): Promise => {\n const params = new URLSearchParams(window.location.search);\n const id = params.get('jobId');\n const page = getCurrentPageFromUrl();\n const pageSize = getPageSizeFromUrl();\n const preferences =\n (await getSortPreference('objects', id ? parseInt(id) : -1)) || SortObjectsOptions.DateCreated;\n setSelectedSortBy(preferences.sortPreference);\n getObjects(page, pageSize, preferences.sortPreference, preferences.ascPreference);\n };\n\n useEffect(() => {\n void getObjectsAsync();\n }, []);\n\n return (\n \n {objects.length > 0 && (\n <>\n \n\n \n handlePageChange(page)}\n onObjectDelete={(id: number) => setDeleteObjectId(id)}\n handlePageSizeChange={(size: number) => handlePageSizeChange(size)}\n />\n \n \n )}\n {objects.length === 0 && }\n\n {deleteObjectId !== -1 && (\n setDeleteObjectId(-1)}\n onRemove={() => getObjects(pagination.page, pagination.size, pagination.sortBy, pagination.asc)}\n />\n )}\n \n );\n};\n","import React, { useContext } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Box, Button, Typography } from '@material-ui/core';\n\nimport CloseIcon from '@material-ui/icons/Close';\nimport SaveIcon from '@material-ui/icons/Save';\nimport AssessmentIcon from '@material-ui/icons/Assessment';\n\nimport { getMyObjectsRoute } from 'core/helpers/app-routes';\nimport { BackNavigation } from 'components/_others/BackNavigation';\nimport { ButtonGrow } from 'components/_others/ButtonGrow';\nimport { UserContext } from '../../../../core/context/user';\nimport { UserRoles } from '../../../../core/enums';\n\nconst useStyles = makeStyles((theme) => ({\n box: {\n textAlign: 'center',\n marginBottom: 20,\n },\n content: {\n position: 'fixed',\n left: 24,\n right: 24,\n zIndex: 1,\n paddingTop: 15,\n backgroundColor: theme.palette.background.default,\n },\n pageTitle: {\n fontSize: 36,\n fontWeight: 'bold',\n },\n addAndAssesButton: {\n height: 28,\n },\n}));\n\ntype HeaderProps = {\n onAdd: () => void;\n onAddAndAssess: () => void;\n};\n\nexport const Header: React.FC = ({ onAdd, onAddAndAssess }) => {\n const userContext = useContext(UserContext);\n const history = useHistory();\n const classes = useStyles();\n\n return (\n \n \n \n\n \n \n Add New Object\n \n\n
    \n }\n text={'Cancel'}\n id={'cancel-add-object-btn'}\n onClick={() => history.push(getMyObjectsRoute(userContext.user?.role))}\n />\n \n\n \n  Add and assess\n \n
    \n
    \n
    \n
    \n );\n};\n","import React, { useContext, useEffect, useState } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Box, Container } from '@material-ui/core';\n\nimport 'scenes/consumer/addObject/styles/style.less';\nimport 'scenes/consumer/addObject/styles/mobile.less';\n\nimport { Header } from 'scenes/consumer/addObject/components/Header';\nimport { ObjectForm } from 'components/_consumer/ObjectForm';\nimport { Loader } from 'components/layout/_components/Loader';\nimport { IObject } from 'components/_consumer/ObjectForm/helpers/object.interface';\nimport { AppRoutes } from 'core/helpers/app-routes';\n\nimport { splitArrayIntoChunksOfLen } from '../../../../../core/helpers/utils';\nimport { GlobalContext } from '../../../../../core/context/global';\nimport { IPhoto, ObjectDetailsContext } from '../../../../../core/context/consumer/objectDetails';\nimport { UnsavedChangesModal } from '../../../../../components/_others';\nimport { UtilsContext } from '../../../../../core/context/utils.context';\nimport { ObjectApi } from '../../../../../core/api';\n\nconst useStyles = makeStyles({\n objectFormBox: {\n marginTop: 110,\n maxWidth: 685,\n marginLeft: 'auto',\n marginRight: 'auto',\n },\n});\n\nexport const AddObject: React.FC = () => {\n const classes = useStyles();\n const history = useHistory();\n\n const globalContext = useContext(GlobalContext);\n const objectDetailsContext = useContext(ObjectDetailsContext);\n\n const [hasErrors, setErrors] = useState(true);\n const [displayErrors, setDisplayErrors] = useState(0);\n const [isLoading, setIsLoading] = useState(false);\n\n const [photos, setPhotos] = useState>([]);\n const [documents, setDocuments] = useState([]);\n const [values, setValues] = useState({\n title: '',\n description: '',\n height: '',\n width: '',\n depth: '',\n weight: '',\n material: '',\n style: '',\n origin: '',\n condition: '',\n artist: '',\n artistBio: '',\n exactProductionYear: null,\n lowerProductionYear: null,\n upperProductionYear: null,\n productionYearOption: '',\n exactYearNotation: 'AD',\n lowerYearNotation: 'AD',\n upperYearNotation: 'AD',\n era: '',\n exactValue: '',\n minimumValue: '',\n maximumValue: '',\n estimatedValueOption: '',\n categories: [],\n collections: [],\n artistImageUrl: '',\n });\n\n const utilsContext = useContext(UtilsContext);\n useEffect(() => {\n window.scrollTo(0, 0);\n const params = new URLSearchParams(window.location.search);\n const id = params.get('collectionId');\n const name = params.get('collectionName');\n if (!id || !name) {\n return;\n }\n setValues({ ...values, collections: [{ id: Number(id), name }] });\n }, []);\n\n const addObject = (bypassPhoto = false): void => {\n if (hasErrors) {\n setDisplayErrors(displayErrors + 1);\n return;\n }\n\n if (objectDetailsContext.modals.displayUnsavedPhotosModal && !bypassPhoto) {\n objectDetailsContext.modals.toggleUnsavedChangesModal();\n return;\n }\n\n objectDetailsContext.modals.toggleDisplayUnsavedPhotosModal(false);\n setIsLoading(true);\n\n if(photos?.length > 0) {\n const firstPhoto = photos[0];\n const remainingPhotos = photos.slice(1);\n\n ObjectApi.preUploadPhoto(firstPhoto as string)\n .then((res: any) => {\n const formValues = { ...values, photoId: res.data.id };\n ObjectApi.addObject(formValues)\n .then((res: any) => {\n if (remainingPhotos.length) {\n uploadPhotos(res.data.id, remainingPhotos as string[]);\n }\n\n if (documents.length) {\n uploadDocuments(res.data.id);\n }\n\n setIsLoading(false);\n history.push({\n pathname: AppRoutes.OBJECT,\n search: `?id=${res.data.id}`,\n });\n })\n .catch((error: any) => {\n throw error;\n });\n })\n .catch((error: any) => {\n console.error(error.response);\n setIsLoading(false);\n utilsContext.addSnackbar('error');\n });\n } else {\n ObjectApi.addObject(values)\n .then((res: any) => {\n if (photos.length) {\n uploadPhotos(res.data.id, photos as string[]);\n }\n\n if (documents.length) {\n uploadDocuments(res.data.id);\n }\n\n setIsLoading(false);\n history.push({\n pathname: AppRoutes.OBJECT,\n search: `?id=${res.data.id}`,\n });\n })\n .catch((error: any) => {\n throw error;\n });\n }\n\n\n\n };\n\n const addAndAssessObject = (): void => {\n if (hasErrors) {\n setDisplayErrors(displayErrors + 1);\n return;\n }\n\n if (objectDetailsContext.modals.displayUnsavedPhotosModal) {\n objectDetailsContext.modals.toggleUnsavedChangesModal();\n return;\n }\n\n objectDetailsContext.modals.toggleDisplayUnsavedPhotosModal(false);\n setIsLoading(true);\n const firstPhoto = photos[0];\n const remainingPhotos = photos.slice(1);\n\n ObjectApi.preUploadPhoto(firstPhoto as string)\n .then((res: any) => {\n const formValues = { ...values, photoId: res.data.id };\n ObjectApi.addObject(formValues)\n .then((res: any) => {\n if (remainingPhotos.length) {\n uploadPhotos(res.data.id, remainingPhotos as string[]);\n }\n\n if (documents.length) {\n uploadDocuments(res.data.id);\n }\n\n setIsLoading(false);\n history.push({\n pathname: AppRoutes.OBJECT,\n search: `?id=${res.data.id}&assess=open`,\n });\n })\n .catch((error: any) => {\n throw error;\n });\n })\n .catch((error: any) => {\n console.error(error.response);\n setIsLoading(false);\n utilsContext.addSnackbar('error');\n });\n };\n\n const uploadPhotos = (artifactId: number, remainingPhotos?: string[]): void => {\n const uploadPhotosChunks = splitArrayIntoChunksOfLen(\n remainingPhotos ? remainingPhotos : photos,\n Math.ceil(photos.length / 3),\n );\n\n if (uploadPhotosChunks[0]?.length) {\n globalContext.setUploadPhotosBatch1(true);\n globalContext.setShouldReloadBatch1(true);\n ObjectApi.addPhoto(artifactId, uploadPhotosChunks[0], 0)\n .then(() => {\n globalContext.setUploadPhotosBatch1(false);\n })\n .catch((error: any) => {\n console.error(error);\n setIsLoading(false);\n utilsContext.addSnackbar(\n 'error',\n 'Sorry, there was an error and some of your photos were ' +\n 'not saved. Please try again later.',\n );\n });\n }\n\n if (uploadPhotosChunks[1]?.length) {\n globalContext.setUploadPhotosBatch2(true);\n globalContext.setShouldReloadBatch2(true);\n ObjectApi.addPhoto(artifactId, uploadPhotosChunks[1], 1)\n .then(() => {\n globalContext.setUploadPhotosBatch2(false);\n })\n .catch((error: any) => {\n console.error(error);\n setIsLoading(false);\n utilsContext.addSnackbar(\n 'error',\n 'Sorry, there was an error and some of your photos were ' +\n 'not saved. Please try again later.',\n );\n });\n }\n\n if (uploadPhotosChunks[2]?.length) {\n globalContext.setUploadPhotosBatch3(true);\n globalContext.setShouldReloadBatch3(true);\n ObjectApi.addPhoto(artifactId, uploadPhotosChunks[2], 2)\n .then(() => {\n globalContext.setUploadPhotosBatch3(false);\n })\n .catch((error: any) => {\n console.error(error);\n setIsLoading(false);\n utilsContext.addSnackbar(\n 'error',\n 'Sorry, there was an error and some of your photos were not' +\n ' saved. Please try again later.',\n );\n });\n }\n };\n\n const uploadDocuments = (artifactId: number): void => {\n ObjectApi.addFile(artifactId, documents)\n .then(() => {\n setIsLoading(false);\n })\n .catch((error: any) => {\n console.error(error);\n setIsLoading(false);\n utilsContext.addSnackbar(\n 'error',\n 'Sorry, there was an error and your documents were not saved.' + ' Please try again later.',\n );\n });\n };\n\n return (\n \n {isLoading && }\n\n {!isLoading && (\n <>\n
    \n\n \n setValues(values)}\n setFormErrors={(hasErrors: boolean) => setErrors(hasErrors)}\n setPhotos={setPhotos}\n setDocuments={(documents: File[]) => setDocuments(documents)}\n />\n \n \n )}\n\n objectDetailsContext.modals.toggleUnsavedChangesModal()}\n onConfirm={() => {\n objectDetailsContext.modals.toggleUnsavedChangesModal();\n addObject(true);\n }}\n />\n \n );\n};\n","import React from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { Box, Typography } from \"@material-ui/core\";\n\nimport avatarPlaceholder from \"assets/placeholders/avatar-placeholder.png\";\nimport { getPhotoUrl } from \"core/helpers/file-size.helper\";\nimport { FileSize } from \"core/enums\";\n\ntype ExpertDetailsProps = {\n url: string;\n name: string;\n title: string;\n id: number;\n}\n\nconst useStyles = makeStyles( theme => ({\n root: {\n display: 'flex',\n alignItems: 'center',\n marginBottom: 12,\n },\n avatar: {\n width: 40,\n height: 40,\n borderRadius: 40,\n marginRight: 12,\n },\n name: {\n color: theme.palette.text.primary,\n fontSize: 16,\n fontWeight: 'bold',\n },\n title: {\n color: '#707070',\n fontSize: 12,\n }\n}))\n\nexport const ExpertDetails: React.FC = ({url, name, title, id}) => {\n\n const classes = useStyles();\n\n return (\n \n \"user-avatar\"\n
    \n \n {name}\n \n \n {title}\n \n
    \n
    \n )\n}\n","import React from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { Box, Typography } from \"@material-ui/core\";\n\nimport { ExpertDetails } from \"./ExpertDetails\";\nimport { IExpert } from \"core/context/consumer/objectDetails\";\n\nconst useStyles = makeStyles({\n noOfExperts: {\n fontSize: 14,\n fontWeight: 'normal',\n lineHeight: 1,\n },\n expertsCount: {\n color: '#029BFE',\n fontWeight: 'bold',\n fontSize: 16,\n },\n});\n\ntype RecommendedExpertsProps = {\n experts: IExpert[];\n}\n\nexport const RecommendedExperts: React.FC = ({experts}) => {\n\n const classes = useStyles();\n\n const noOfExperts = experts?.length || 0;\n\n return (\n \n\n \n {noOfExperts}\n {Number(noOfExperts) === 1 ? ' expert has ' : ' experts have '}\n been recommended\n \n\n \n {\n experts.map((expert: IExpert) => (\n 0 ? `${expert.lastName[0]}.` : ''}`}\n title={expert.title}\n id={expert.userId}\n />\n ))\n }\n \n \n )\n}\n","import React from \"react\";\nimport { modalStyles } from \"components/_others/modals/modal-styles\";\n\nimport { Backdrop, Box, Button, Divider, Fade, Modal, Typography } from \"@material-ui/core\";\nimport { IExpert } from \"core/context/consumer/objectDetails\";\nimport { RecommendedExperts } from \"./index\";\n\nimport CloseIcon from \"@material-ui/icons/Close\";\n\ntype RecommendedExpertsModalProps = {\n open: boolean;\n handleClose: () => void;\n experts: IExpert[]\n}\n\nexport const RecommendedExpertsModal: React.FC = ({open, handleClose, experts}) => {\n\n const classes = modalStyles();\n\n return (\n \n \n
    \n \n
    \n \n Recommended Experts\n \n \n
    \n \n \n\n \n\n \n \n Close\n \n \n
    \n
    \n \n )\n}\n","import { Box, Grid, Typography } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Dimensions } from 'components/_consumer/ObjectDetails/Dimensions';\nimport { Documents } from 'components/_consumer/ObjectDetails/Documents';\nimport { Feedbacks } from 'components/_consumer/ObjectDetails/Feedbacks';\nimport { SectionHeader } from 'components/_consumer/ObjectDetails/SectionHeader';\nimport { IArtifact, IDocument } from 'core/context/consumer/objectDetails';\nimport { IFeedbackResult } from 'core/context/feedback-requests/feedback';\nimport React, { useContext, useEffect, useState } from 'react';\nimport { FeedbackResultModal } from '../../../../../components/_consumer/ObjectDetails/FeedbackResultModal';\nimport { UserContext } from '../../../../../core/context/user';\n\ntype AboutObjectProps = {\n object: IArtifact;\n};\n\nconst useStyles = makeStyles((theme) => ({\n label: {\n color: '#B2B2B2',\n fontSize: 13,\n marginTop: 5,\n },\n value: {\n color: theme.palette.text.primary,\n fontSize: 13,\n marginBottom: 5,\n },\n}));\n\nexport const AboutObject: React.FC = ({ object }) => {\n const userContext = useContext(UserContext);\n const classes = useStyles();\n\n const [displayFeedbackResultModal, toggleFeedbackResultModal] = useState(null);\n\n const inProgressFeedback = object.feedbackRequests.find((f) => !f.isCompleted);\n const activeFeedbacksComments = inProgressFeedback ? inProgressFeedback.comments : [];\n\n useEffect(() => {\n const params = new URLSearchParams(window.location.search);\n const feedbackId = params.get('feedbackId');\n if (feedbackId) {\n const feedback = object.feedbacks.find((f) => f.id === Number(feedbackId));\n toggleFeedbackResultModal(feedback || null);\n }\n }, []);\n\n return (\n <>\n \n\n \n {object.description}\n \n\n \n \n \n \n \n Weight\n \n {object.weight ? `${object.weight} lb.` : 'unknown'}\n \n \n \n\n Approximate age\n \n {object.exactProductionYear !== null && (\n <>\n {object.exactProductionYear < 0\n ? `${object.exactProductionYear * -1} BC`\n : object.exactProductionYear}\n \n )}\n {object.lowerProductionYear !== null && object.upperProductionYear !== null && (\n <>\n {object.lowerProductionYear < 0\n ? `${object.lowerProductionYear * -1} BC`\n : object.lowerProductionYear}\n {' - '}\n {object.upperProductionYear < 0\n ? `${object.upperProductionYear * -1} BC`\n : object.upperProductionYear}\n \n )}\n {object.lowerProductionYear === null && object.exactProductionYear === null && <>{' unknown '}}\n \n\n \n \n Material\n {object.material || 'unknown'}\n \n \n Style\n {object.style || 'unknown'}\n \n \n\n \n \n Origin\n {object.origin || 'unknown'}\n \n \n Condition\n {object.condition || 'unknown'}\n \n \n\n Artist or Maker\n {object.artist || 'unknown'}\n\n {object.artistImageUrl && (\n
    \n \n
    \n )}\n\n Artist Bio\n \n {object.artistBio || '-'}\n \n\n Scanned Documents\n {object.fileOcrContent || '-'}\n\n \n !d.deleted)} />\n \n\n \n !f.isCompleted) > -1\n ? `You have 1 pending assessments. We will notify you when the\n expert reviews your artifact.`\n : ''\n }\n onSelect={(feedback) => toggleFeedbackResultModal(feedback)}\n activeFeedbacksComments={activeFeedbacksComments}\n activeFeedbackRequestId={inProgressFeedback ? inProgressFeedback.id : undefined}\n artifactId={object.id}\n />\n \n\n {displayFeedbackResultModal !== null && (\n toggleFeedbackResultModal(null)}\n isOwnArtifact={true}\n photo={object.photos?.find((p) => p.isPrimary)?.url || ''}\n feedback={displayFeedbackResultModal}\n artifactId={object.id}\n />\n )}\n \n );\n};\n","import React, {useContext} from \"react\";\nimport { modalStyles } from \"components/_others/modals/modal-styles\";\nimport { Backdrop, Box, Button, Fade, Modal, Typography } from \"@material-ui/core\";\n\nimport InfoIcon from '@material-ui/icons/Info';\nimport {UserContext} from \"../../../../../core/context/user\";\nimport {ModalHeader} from \"../../../../../components/_others/modals/ModalHeader\";\n\ntype MissingInformationModalProps = {\n open: boolean;\n missingFields: string[];\n handleClose: () => void;\n primaryAction: () => void;\n secondaryAction: () => void;\n}\n\nexport const MissingInformationModal: React.FC = (\n {open, handleClose, missingFields, primaryAction, secondaryAction}\n) => {\n\n const classes = modalStyles();\n const userContext = useContext(UserContext);\n\n return (\n \n \n
    \n handleClose()}\n />\n\n \n Don't spare the details! Make sure all your object's information is\n logged for our team of experts.\n \n\n \n \n You can still request an assessment with limited information and we will try our best\n to make an accurate evaluation of your object.\n \n\n {\n missingFields.indexOf('photos') > -1 &&\n \n There is one exception: please add at least one photo to your artifact,\n otherwise the expert will not be able to evaluate it.\n \n }\n\n \n Currently Empty Fields:\n \n\n \n {missingFields.join(', ')}\n \n\n \n Note: You will not be able to edit your object information once an\n assessment order is placed. This excludes photos and documentation.\n \n\n \n {\n missingFields.indexOf('photos') === -1 &&\n secondaryAction()}\n >\n Continue to Assessment\n \n }\n\n primaryAction()}\n >\n Add the missing information\n \n \n
    \n
    \n \n )\n}\n","import {IArtifact} from \"../../../../core/context/consumer/objectDetails\";\n\nexport function computeMissingFields(object: IArtifact): string[] {\n const result = [];\n\n if(!object.width || !object.height || !object.depth || !object.weight) {\n let r = 'Dimensions (';\n if(!object.height) {\n r += 'height, ';\n }\n if(!object.width) {\n r += 'width, ';\n }\n if(!object.depth) {\n r += 'depth, ';\n }\n if(!object.weight) {\n r += 'weight, '\n }\n r = r.substring(r.length - 3, 0);\n r += ')';\n result.push(r);\n }\n\n if(!object.exactProductionYear && !object.lowerProductionYear) {\n result.push('approximate age');\n }\n\n if(!object.material) { result.push('material') }\n if(!object.style) { result.push('style') }\n if(!object.origin) { result.push('origin') }\n if(!object.condition) { result.push('condition') }\n if(!object.artist) { result.push('artist/maker') }\n\n if(!object.exactValue && !object.minimumValue) {\n result.push('estimated value');\n }\n\n if(!object.photos?.length) { result.push('photos') }\n if(!object.documents?.length) { result.push('documents') }\n\n return result;\n}\n\n","import {makeStyles} from \"@material-ui/styles\";\nimport {Theme} from \"@material-ui/core\";\n\nexport function getStylesForCircularProgress(isLightTheme: boolean): any {\n return {\n // Rotation of path and trail, in number of turns (0-1)\n rotation: 0,\n\n // Whether to use rounded or flat corners on the ends - can use 'butt' or 'round'\n strokeLinecap: 'butt',\n\n // Text size\n textSize: '23px',\n\n // How long animation takes to go from one percentage to another, in seconds\n pathTransitionDuration: 0.5,\n\n // Can specify path transition in more detail, or remove it entirely\n // pathTransition: 'none',\n\n // Colors\n pathColor: `#FE6502`,\n textColor: isLightTheme ? 'black' : 'white',\n trailColor: isLightTheme ? '#acacac' : '#707070',\n backgroundColor: '#FE6502',\n }\n}\n\n\nexport const linearProgressBarStyles = makeStyles((theme: Theme) => ({\n container: {\n display: 'flex',\n alignItems: 'center',\n marginRight: 5,\n [\"@media (max-width:855px)\"]: { width: '80%', margin: 'auto'},\n },\n root: {\n height: 8,\n width: 190,\n margin: '0 4px',\n [\"@media (max-width:855px)\"]: { width: '100%' },\n },\n legend: {\n color: theme.formLabel.main,\n fontSize: 10,\n opacity: 0.8,\n },\n value: {\n position: 'relative',\n top: -13,\n fontSize: 12,\n // [\"@media (max-width:855px)\"]: { display: 'none' },\n },\n colorPrimary: {\n backgroundColor: theme.rootBackground.progressBarBackground,\n },\n barSuccess: {\n backgroundColor: '#309e16',\n },\n bar: {\n backgroundColor: theme.palette.secondary.main,\n },\n tooltip: {\n textAlign: 'center',\n color: '#fefefe !important',\n backgroundColor: '#474747 !important'\n },\n tooltipArrow: {\n color: '#474747 !important'\n }\n}));\n","import {Box, Tooltip} from \"@material-ui/core\";\nimport LinearProgress from \"@material-ui/core/LinearProgress\";\nimport React from \"react\";\nimport {linearProgressBarStyles} from \"./progress-bars.style\";\n\ntype LinearProgressBarProps = {\n percentage: number;\n}\n\nexport const ObjectDetailsProgressBar: React.FC = ({percentage}) => {\n\n const classes = linearProgressBarStyles();\n\n const getValueLeftPosition = (): number => {\n if(!percentage) {\n return 10;\n }\n if(percentage < 10) {\n return percentage + 10;\n }\n if(percentage < 20) {\n return 10 + Math.max(7, percentage);\n }\n if(percentage < 30) {\n return 5 + Math.max(7, percentage);\n }\n if(percentage <= 40) {\n return 3 + percentage;\n }\n if(percentage <= 50) {\n return percentage - 2;\n }\n if(percentage <= 60) {\n return percentage - 2;\n }\n if(percentage <= 70) {\n return percentage - 7;\n }\n if(percentage <= 80) {\n return percentage - 9;\n }\n if(percentage <= 90) {\n return percentage - 12;\n }\n if(percentage <= 100) {\n return percentage - 13;\n }\n return percentage;\n }\n\n return (\n \n {percentage}%\n \n 0%\n = 50\n ? 'There are enough details for our experts to evaluate your object!' +\n ' We encourage you to submit an assessment and find more about your artifact.'\n : ''\n }\n >\n = 50 ? classes.barSuccess : classes.bar\n }}\n />\n \n\n 100%\n \n )\n}\n","import React, {useContext} from \"react\";\nimport {Box, Button, Tooltip, Typography} from \"@material-ui/core\";\n\nimport InfoIcon from '@material-ui/icons/Info';\nimport ReplyIcon from '@material-ui/icons/Reply';\nimport EditIcon from '@material-ui/icons/Edit';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport CloseIcon from '@material-ui/icons/Close';\nimport SaveIcon from '@material-ui/icons/Save';\n\nimport { ButtonGrow } from \"components/_others/ButtonGrow\";\nimport { ObjectDetailsContext } from \"core/context/consumer/objectDetails\";\nimport { computeMissingFields } from \"scenes/consumer/objectDetails/helpers/missing-info-helper\";\nimport {ObjectDetailsProgressBar} from \"../../../_components/ObjectDetailsProgressBar\";\nimport {UserContext} from \"../../../../../core/context/user\";\nimport {UserRoles} from \"../../../../../core/enums\";\n\ntype ActionButtonsProps = {\n noOfRecommendedExperts: number;\n detailsPercent: number;\n isOnEditMode: boolean;\n paymentFreePass: boolean;\n isSharedToPublicFeed: boolean;\n onToggleEditMode: (newState: boolean) => void;\n onSaveObject: () => void;\n};\n\nconst assessmentInfoTooltipText = `\n You can use the \"Assessment\" button to request an expert opinion for your object\n`;\n\nexport const ActionButtons: React.FC = (\n {isOnEditMode, onToggleEditMode, onSaveObject, noOfRecommendedExperts, paymentFreePass,\n isSharedToPublicFeed, detailsPercent}\n) => {\n\n const objectDetailsContext = useContext(ObjectDetailsContext);\n const userContext = useContext(UserContext)\n\n const onRequestAssessment = (): void => {\n if(computeMissingFields(objectDetailsContext.artifact).length !== 0) {\n objectDetailsContext.modals.toggleMissingInfoModal();\n } else {\n objectDetailsContext.modals.toggleRequestAssessmentModal();\n }\n }\n\n const hasPendingAsessments = (): boolean => {\n if(!objectDetailsContext.artifact.feedbackRequests) {\n return false;\n }\n return objectDetailsContext.artifact.feedbackRequests.findIndex(f => !f.isCompleted) > -1;\n }\n\n return (\n \n {\n !isOnEditMode && !hasPendingAsessments() &&\n <>\n \n \n \n Details Completed\n \n \n\n \n {\n userContext.user?.role !== UserRoles.ARCHIVIST &&\n \n onRequestAssessment()}\n style={{marginRight: 5}}\n >\n {paymentFreePass ? '' : '$9'} Assessment\n \n\n \n \n \n \n }\n\n {\n noOfRecommendedExperts > 0 && userContext.user?.role !== UserRoles.ARCHIVIST &&\n \n View the recommended{' '}\n objectDetailsContext.modals.toggleRecommendedExpertsModal()}\n >\n {noOfRecommendedExperts}\n \n {noOfRecommendedExperts === 1 ? ' expert' : ' experts'}\n \n }\n {\n isSharedToPublicFeed &&\n \n Your artifact is shared to the Community Feed.\n \n }\n \n \n }\n\n
    \n {\n !isOnEditMode &&\n <>\n {\n userContext.user?.role !== UserRoles.ARCHIVIST &&\n }\n text={'Share'}\n id={'share-object-btn'}\n onClick={() => objectDetailsContext.modals.toggleShareObjectOptionsModal()}\n />\n }\n\n {\n (userContext.user?.role === UserRoles.COLLECTOR || userContext.user?.role === UserRoles.CURATOR ||\n (\n (\n userContext.user?.role === UserRoles.ARCHIVIST\n ) && userContext.user.id === objectDetailsContext.artifact.createdBy\n )) && }\n text={'Edit'}\n id={'edit-object-btn'}\n onClick={() => onToggleEditMode(!isOnEditMode)}\n />\n }\n\n {\n (userContext.user?.role === UserRoles.COLLECTOR || userContext.user?.role === UserRoles.CURATOR ||\n (\n (\n userContext.user?.role === UserRoles.ARCHIVIST\n ) && userContext.user.id === objectDetailsContext.artifact.createdBy\n )) && !hasPendingAsessments() && }\n text={'Delete'}\n id={'delete-object-btn'}\n onClick={() => objectDetailsContext.modals.toggleConfirmDeleteModal()}\n />\n }\n \n }\n {\n isOnEditMode &&\n <>\n }\n text={'Cancel'}\n id={'cancel-edit-object-btn'}\n onClick={() => onToggleEditMode(!isOnEditMode)}\n />\n onSaveObject()}\n >\n \n  Save\n \n \n }\n
    \n
    \n )\n}\n","import React, {useContext} from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport { Box, Grid } from \"@material-ui/core\";\n\nimport { BackNavigation } from \"components/_others/BackNavigation\";\nimport { Title } from \"../../../../../components/_consumer/ObjectDetails\";\nimport { ActionButtons } from \"./ActionButtons\";\nimport {fixedHeaderStyles} from \"../../../../../assets/styles/fixed-header\";\nimport {UserContext} from \"../../../../../core/context/user\";\nimport {UserRoles} from \"../../../../../core/enums\";\n\ntype HeaderProps = {\n name: string;\n detailsPercent: number;\n isOnEditMode: boolean;\n isSharedToPublicFeed: boolean;\n toggleEditMode: (newState: boolean, onBack: boolean) => void;\n onSaveObject: () => void;\n noOfRecommendedExperts: number;\n paymentFreePass: boolean;\n}\n\nexport const Header: React.FC = (\n {name, isOnEditMode, isSharedToPublicFeed, toggleEditMode, onSaveObject,\n noOfRecommendedExperts, paymentFreePass, detailsPercent}\n) => {\n\n const history = useHistory();\n const fixedHeaderCss = fixedHeaderStyles();\n const userContext = useContext(UserContext);\n\n const handlePageLeave = (): void => {\n if(isOnEditMode) {\n toggleEditMode(false, true);\n } else {\n history.goBack()\n }\n }\n\n return (\n \n handlePageLeave()}\n />\n\n \n \n \n \n \n toggleEditMode(newState, false)}\n onSaveObject={() => onSaveObject()}\n noOfRecommendedExperts={noOfRecommendedExperts}\n paymentFreePass={paymentFreePass}\n isSharedToPublicFeed={isSharedToPublicFeed}\n />\n \n \n \n )\n}\n","import * as api from '../_utils/api';\n\nexport class PaymentApi {\n\n static async createPaymentIntent(artifactId: number): Promise {\n return api._post(`payment/${artifactId}`);\n }\n}\n","import React, {useContext, useEffect, useState} from \"react\";\nimport { CardElement, useElements, useStripe } from \"@stripe/react-stripe-js\";\nimport { Typography } from \"@material-ui/core\";\n\nimport { PaymentApi } from \"core/api/consumer/payment.api\";\nimport { CollectorApi } from \"core/api/consumer\";\nimport {UserContext} from \"../../../../../core/context/user\";\n\ntype PaymentProps = {\n artifactId: number;\n paymentFreePass: boolean;\n message: string;\n reload: number;\n onSuccess: () => void;\n onError: (err: any) => void;\n}\n\nconst cardStyle = {\n style: {\n base: {\n color: \"#B2B2B2\",\n fontFamily: 'Arial, sans-serif',\n fontSmoothing: \"antialiased\",\n fontSize: \"16px\",\n backgroundColor: window.localStorage.getItem('theme') !== 'light' ? '#383838' : '#EFEFEF',\n \"::placeholder\": {\n color: \"#707070\"\n },\n },\n\n invalid: {\n color: \"#B32222\",\n iconColor: \"#B32222\"\n }\n },\n hidePostalCode: true,\n};\n\nexport const Payment: React.FC = ({paymentFreePass, artifactId, message,reload, onSuccess, onError}) => {\n\n const stripe = useStripe();\n const elements = useElements();\n\n const userContext = useContext(UserContext);\n\n const [error, setError] = useState(null);\n\n useEffect(() => {\n if(artifactId === -1) {\n return;\n }\n onRequestAssessment();\n }, [reload])\n\n const handleCardChange = (event: any): void => {\n setError(event.error ? event.error.message : \"\");\n };\n\n const onRequestAssessment = (): void => {\n if(paymentFreePass) {\n submitFeedback('');\n return;\n }\n PaymentApi.createPaymentIntent(artifactId)\n .then((res: any) => {\n void handlePaymentSubmit(res.data.paymentClientSecret);\n })\n .catch((error: any) => {\n console.error(error.response);\n setError('There was an error and the payment could not be completed.');\n })\n }\n\n const handlePaymentSubmit = async (paymentClientSecret: string): Promise => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const payload: any = await stripe.confirmCardPayment(\n paymentClientSecret, {\n payment_method: {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n card: elements.getElement(CardElement),\n }})\n\n if (payload.error) {\n setError(`Payment failed ${payload.error.message}`);\n onError(`Sorry, there was an error. Please try again later.`);\n } else {\n setError(null);\n submitFeedback(paymentClientSecret);\n }\n };\n\n const submitFeedback = (paymentClientSecret: string): void => {\n CollectorApi.requestFeedback(artifactId, message, paymentClientSecret)\n .then(() => {\n setTimeout(() => {\n onSuccess();\n }, 5000)\n })\n .catch((error: any) => {\n console.error(error.response);\n console.error(error)\n onError(error?.data?.message);\n })\n }\n\n return (\n
    \n
    \n \n
    \n\n {error && (\n \n {error}\n \n )}\n
    \n )\n}\n","import React, {useContext, useState} from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport { modalStyles } from \"components/_others/modals/modal-styles\";\nimport {\n Backdrop,\n Box,\n Button,\n CircularProgress,\n Fade,\n InputLabel,\n Modal,\n TextField,\n Typography\n} from \"@material-ui/core\";\n\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport MonetizationOnIcon from '@material-ui/icons/MonetizationOn';\n\nimport { Payment } from \"./Payment\";\nimport { loadStripe } from \"@stripe/stripe-js\";\nimport { Elements } from \"@stripe/react-stripe-js\";\nimport {UserContext} from \"../../../../../core/context/user\";\nimport {ObjectHighlights} from \"components/object/ObjectHighlights\";\nimport {ModalHeader} from \"../../../../../components/_others/modals/ModalHeader\";\nimport {IArtifact} from \"../../../../../core/context/consumer/objectDetails\";\nimport {UtilsContext} from \"../../../../../core/context/utils.context\";\n\nconst promise = loadStripe(\n \"pk_live_zMaf3An1ZLFLYt5qmBAqqXaL00Wdzb5FfC\"\n);\n\ntype RequestAssessmentModalProps = {\n open: boolean;\n paymentFreePass: boolean;\n object: IArtifact;\n handleClose: () => void;\n}\n\nexport const RequestAssessmentModal: React.FC = (\n {paymentFreePass, open, handleClose, object}\n) => {\n\n const classes = modalStyles();\n const history = useHistory();\n const userContext = useContext(UserContext);\n\n const [message, setMessage] = useState('');\n const [isLoading, setIsLoading] = useState(false);\n const utilsContext = useContext(UtilsContext);\n const [paymentData, setPaymentData] = useState({message: '', artifactId: -1, reload: 0});\n\n const handleSubmit = (): void => {\n setIsLoading(true);\n setPaymentData({message, artifactId: object.id, reload: paymentData.reload + 1});\n }\n\n const manageError = (error: string): void => {\n setIsLoading(false);\n console.log(error)\n let errorMessage = 'Sorry, there was an error. Please try again later.';\n if(error === 'AlreadyExists') {\n errorMessage = 'You already submitted a request for this object.'\n }\n utilsContext.addSnackbar('error', errorMessage)\n }\n\n return (\n \n \n
    \n handleClose()}\n />\n\n \n Total amount: \n {paymentFreePass ? '$0' : '$9'}\n \n \n\n {\n !paymentFreePass &&\n \n One of Artifact's highly credible experts will provide an assessment of your object.\n This assessment will include details and labels that you can import into the object record.\n \n }\n\n \n\n <>\n \n Add additional information for your reviewer (optional)\n \n setMessage(e.target.value)}\n />\n \n\n \n \n Enter your credit card information bellow:\n \n \n history.go(0)}\n onError={(error: string) => manageError(error)}\n />\n \n \n\n \n Note: you will not be able to edit your object after you request an assessment,\n but you will be able to upload new photos or documents.\n \n\n \n \n Cancel\n \n\n handleSubmit()}\n disabled={isLoading}\n >\n {\n isLoading && \n }\n {\n !isLoading && !paymentFreePass &&\n \n }\n Request Assessment\n \n \n
    \n
    \n \n )\n}\n","import React from \"react\";\nimport { Box } from \"@material-ui/core\";\n\nimport { IPhoto } from \"core/context/consumer/objectDetails\";\nimport { getPhotoUrl } from \"core/helpers\";\nimport { FileSize } from \"core/enums\";\n\ntype PhotoBoxProps = {\n photo: IPhoto;\n}\n\nexport const PhotoBox: React.FC = ({photo}) => {\n return (\n \n \n \n )\n}\n","import { Backdrop, Box, Button, CircularProgress, Divider, Fade, Modal, Typography } from '@material-ui/core';\nimport { modalStyles } from 'components/_others/modals/modal-styles';\nimport React, { useEffect, useState } from 'react';\nimport { DragDropContext, Draggable, Droppable } from 'react-beautiful-dnd';\nimport { useHistory } from 'react-router-dom';\n\nimport CloseIcon from '@material-ui/icons/Close';\nimport SaveIcon from '@material-ui/icons/Save';\n\nimport { CollectorApi } from 'core/api/consumer';\nimport { IPhoto } from 'core/context/consumer/objectDetails';\nimport { PhotoBox } from './PhotoBox';\n\ntype ReorderPhotosModalProps = {\n open: boolean;\n handleClose: () => void;\n photos: IPhoto[];\n};\n\nconst reorder = (list: IPhoto[], startIndex: number, endIndex: number): IPhoto[] => {\n const result = Array.from(list);\n const [removed] = result.splice(startIndex, 1);\n result.splice(endIndex, 0, removed);\n return result;\n};\n\nexport const ReorderPhotosModal: React.FC = ({ open, handleClose, photos }) => {\n const classes = modalStyles();\n const history = useHistory();\n\n const [items, setItems] = useState([]);\n const [isLoading, setIsLoading] = useState(false);\n\n useEffect(() => {\n setItems(photos);\n }, [photos]);\n\n const onDragEnd = (result: any): void => {\n // dropped outside the list\n if (!result.destination) {\n return;\n }\n\n const res = reorder(items, result.source.index, result.destination.index);\n\n setItems(res);\n };\n\n const handleSubmit = (): void => {\n setIsLoading(true);\n\n const payload = items.map((i: IPhoto, index: number) => {\n return {\n id: i.id,\n order: index,\n };\n });\n\n CollectorApi.reorderPhotos(payload)\n .then(() => {\n const params = new URLSearchParams(window.location.search);\n const assess = params.get('assess');\n const id = params.get('id');\n if (assess === 'open') {\n history.replace(`${history.location.pathname}?id=${id}`);\n history.go(0);\n } else {\n history.go(0);\n }\n })\n .catch((error: any) => {\n console.error(error.response);\n });\n };\n\n return (\n \n \n
    \n \n
    \n Reorder Photos\n \n
    \n \n \n\n \n You can click and hold a photo and drag it into the position you like.\n \n\n \n \n {(provided: any) => (\n \n
    \n {items.map((p, index) => (\n \n {(provided) => (\n \n \n
    \n )}\n \n ))}\n
    \n
    \n )}\n \n \n\n \n \n \n Cancel\n \n\n handleSubmit()}\n disabled={isLoading}\n >\n {isLoading && }\n {!isLoading && (\n \n )}\n Save\n \n \n \n
    \n \n \n );\n};\n","import { Box, CircularProgress, Container, Grid, Typography } from '@material-ui/core';\nimport { Loader } from 'components/layout/_components/Loader';\nimport { ObjectComments } from 'components/object/ObjectComments';\nimport { ObjectLabels } from 'components/_consumer/ObjectDetails';\nimport { Gallery } from 'components/_consumer/ObjectDetails/Gallery';\nimport { RecommendedExpertsModal } from 'components/_consumer/ObjectDetails/RecommendedExperts/RecommendedExpertsModal';\nimport 'components/_consumer/ObjectDetails/styles/style.less';\nimport { ObjectForm } from 'components/_consumer/ObjectForm';\nimport { IObject } from 'components/_consumer/ObjectForm/helpers/object.interface';\nimport { ShareObjectToPersonsModal } from 'components/_consumer/share-object/ShareObjectToPersonsModal';\nimport { ShareObjectToPublicFeedModal } from 'components/_consumer/share-object/ShareObjectToPublicFeedModal';\nimport { UnsavedChangesModal } from 'components/_others/UnsavedChangesModal';\nimport { IDocument, IPhoto, ObjectDetailsContext } from 'core/context/consumer/objectDetails';\nimport { getMyObjectsRoute } from 'core/helpers/app-routes';\nimport { getEstimatedDisplayValue } from 'core/helpers/artifact-value.helper';\nimport { isEqual } from 'lodash';\nimport moment from 'moment';\nimport React, { useContext, useEffect, useState } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { AboutObject } from 'scenes/consumer/objectDetails/components/AboutObject';\nimport { MissingInformationModal } from 'scenes/consumer/objectDetails/components/Feedback/MissingInformationModal';\nimport { Header } from 'scenes/consumer/objectDetails/components/Header';\nimport { SelectShareOptionModal } from '../../../../../components/_consumer/share-object/SelectShareOptionModal';\nimport { ShareArtifactOptions, UserRoles } from '../../../../../core';\nimport { ObjectApi } from '../../../../../core/api';\nimport { GlobalContext } from '../../../../../core/context/global';\nimport { UserContext } from '../../../../../core/context/user';\nimport { UtilsContext } from '../../../../../core/context/utils.context';\nimport { splitArrayIntoChunksOfLen } from '../../../../../core/helpers/utils';\nimport { RemoveObjectModal } from '../../../_components/RemoveObjectModal';\nimport { RequestAssessmentModal } from '../../components/Feedback/RequestAsessmentModal';\nimport { ReorderPhotosModal } from '../../components/ReorderPhotosModal';\nimport { computeMissingFields } from '../../helpers/missing-info-helper';\n\nexport const ObjectDetails: React.FC = () => {\n const history = useHistory();\n const objectDetailsContext = useContext(ObjectDetailsContext);\n\n const globalContext = useContext(GlobalContext);\n const userContext = useContext(UserContext);\n\n const [isLoading, setIsLoading] = useState(true);\n const [hasErrors, setErrors] = useState(false);\n const [displayDeleteButtonInGallery, setDisplayDeleteButtonInGallery] = useState(true);\n const [values, setValues] = useState({\n title: '',\n description: '',\n height: '',\n width: '',\n depth: '',\n weight: '',\n material: '',\n style: '',\n origin: '',\n condition: '',\n artist: '',\n artistBio: '',\n exactProductionYear: '',\n lowerProductionYear: '',\n upperProductionYear: '',\n productionYearOption: '',\n exactYearNotation: 'AD',\n lowerYearNotation: 'AD',\n upperYearNotation: 'AD',\n era: '',\n exactValue: '',\n minimumValue: '',\n maximumValue: '',\n estimatedValueOption: '',\n artistImageUrl: '',\n categories: objectDetailsContext.artifact.categories,\n collections: objectDetailsContext.artifact.collections,\n });\n\n const [hasEditChanges, setHasEditChanges] = useState(false);\n const [photos, setPhotos] = useState>([]);\n const [documents, setDocuments] = useState([]);\n const [newDocuments, setNewDocuments] = useState([]);\n const [shouldLeavePage, toggleShouldLeavePage] = useState(false);\n const [updateLoading, setUpdateLoading] = useState({ artifact: false, documents: false, photos: false });\n const utilsContext = useContext(UtilsContext);\n const [showSharedToPublicFeed, setShowSharedToPublicFeed] = useState(true);\n\n const [displayReorderPhotosModal, toggleReorderPhotosModal] = useState(false);\n const [loadingPhotos, setLoadingPhotos] = useState(\n globalContext.uploadPhotosBatch1 || globalContext.uploadPhotosBatch2 || globalContext.uploadPhotosBatch3,\n );\n\n useEffect(() => {\n if (\n globalContext.shouldReloadBatch1 &&\n !globalContext.uploadPhotosBatch1 &&\n objectDetailsContext.artifact.id !== 0\n ) {\n setTimeout(() => {\n globalContext.setShouldReloadBatch1(false);\n getArtifact(objectDetailsContext.artifact.id);\n setLoadingPhotos(\n globalContext.uploadPhotosBatch1 ||\n globalContext.uploadPhotosBatch2 ||\n globalContext.uploadPhotosBatch3,\n );\n }, 1000);\n }\n }, [globalContext.uploadPhotosBatch1]);\n\n useEffect(() => {\n if (\n globalContext.shouldReloadBatch2 &&\n !globalContext.uploadPhotosBatch2 &&\n objectDetailsContext.artifact.id !== 0\n ) {\n globalContext.setShouldReloadBatch2(false);\n getArtifact(objectDetailsContext.artifact.id);\n setLoadingPhotos(\n globalContext.uploadPhotosBatch1 ||\n globalContext.uploadPhotosBatch2 ||\n globalContext.uploadPhotosBatch3,\n );\n }\n }, [globalContext.uploadPhotosBatch2]);\n\n useEffect(() => {\n if (\n globalContext.shouldReloadBatch3 &&\n !globalContext.uploadPhotosBatch3 &&\n objectDetailsContext.artifact.id !== 0\n ) {\n globalContext.setShouldReloadBatch3(false);\n getArtifact(objectDetailsContext.artifact.id);\n setLoadingPhotos(\n globalContext.uploadPhotosBatch1 ||\n globalContext.uploadPhotosBatch2 ||\n globalContext.uploadPhotosBatch3,\n );\n }\n }, [globalContext.uploadPhotosBatch3]);\n\n useEffect(() => {\n const params = new URLSearchParams(window.location.search);\n const id = params.get('id');\n const assess = params.get('assess'); //the url has &assess=open when this component is reached from add and assess button on object create\n if (!id) {\n history.push(getMyObjectsRoute(userContext.user?.role));\n }\n getArtifact(Number(id));\n if (assess === 'open') {\n objectDetailsContext.modals.toggleRequestAssessmentModal();\n }\n }, []);\n\n const getArtifact = (id: number): void => {\n ObjectApi.getArtifact(id)\n .then((res: any) => {\n objectDetailsContext.setArtifact(res.data, false);\n objectDetailsContext.setEditMode(false);\n setObjectDetails(res.data);\n setIsLoading(false);\n window.scrollTo(0, 0);\n })\n .catch((error: any) => {\n console.error(error.response);\n history.push(getMyObjectsRoute(userContext.user?.role));\n utilsContext.addSnackbar(\n 'error',\n 'Sorry, there was an error and we were unable to display your object.' + ' Please try again later.',\n );\n });\n };\n\n const setObjectDetails = (data: any): void => {\n setValues({\n title: data.title,\n description: data.description,\n height: data.height || '',\n width: data.width || '',\n depth: data.depth || '',\n weight: data.weight || '',\n material: data.material || '',\n style: data.style || '',\n origin: data.origin || '',\n condition: data.condition || '',\n artist: data.artist || '',\n artistBio: data.artistBio || '',\n exactProductionYear: data.exactProductionYear !== null ? Math.abs(data.exactProductionYear) : '',\n lowerProductionYear: data.lowerProductionYear !== null ? Math.abs(data.lowerProductionYear) : '',\n upperProductionYear: data.upperProductionYear !== null ? Math.abs(data.upperProductionYear) : '',\n productionYearOption:\n data.exactProductionYear !== null ? 'exact' : data.lowerProductionYear !== null ? 'range' : '',\n exactYearNotation: data.exactProductionYear < 0 ? 'BC' : 'AD',\n lowerYearNotation: data.lowerProductionYear < 0 ? 'BC' : 'AD',\n upperYearNotation: data.upperProductionYear < 0 ? 'BC' : 'AD',\n era: data.era || '',\n exactValue: data.exactValue || '',\n minimumValue: data.minimumValue || '',\n maximumValue: data.maximumValue || '',\n estimatedValueOption: data.exactValue !== null ? 'exact' : data.minimumValue !== null ? 'range' : '',\n categories: data.categories,\n collections: data.collections,\n artistImageUrl: data.artistImageUrl,\n });\n\n data.photos.forEach((photo: IPhoto) => (photo.deleted = false));\n data.documents.forEach((document: IDocument) => (document.deleted = false));\n setPhotos(data.photos);\n setDocuments(data.documents.slice());\n };\n\n const cancelEditMode = (resetValues = true): void => {\n if (resetValues) {\n setObjectDetails(objectDetailsContext.artifact);\n if (objectDetailsContext.modals.displayUnsavedChangesModal) {\n objectDetailsContext.modals.toggleUnsavedChangesModal();\n }\n setPhotos(objectDetailsContext.artifact.photos);\n }\n objectDetailsContext.setEditMode(false);\n window.scrollTo(0, 0);\n\n setHasEditChanges(false);\n };\n\n const markPhotoAsDeleted = (id: number): void => {\n setPhotos(\n photos.map((photo) => {\n if ((photo as IPhoto).id === id && !(photo as IPhoto).deleted) {\n return {\n ...(photo as IPhoto),\n deleted: true,\n };\n }\n return photo;\n }),\n );\n setHasEditChanges(true);\n };\n\n useEffect(() => {\n if (!hasEditChanges) {\n if (\n photos.filter((photo) => (photo as IPhoto).deleted).length !==\n objectDetailsContext.artifact.photos.filter((photo) => photo.deleted).length\n ) {\n objectDetailsContext.setPhotos(photos.filter((p) => typeof p !== 'string') as IPhoto[]);\n }\n }\n }, [hasEditChanges]);\n\n const markDocumentAsDeleted = (id: number): void => {\n const document = documents.find((document: IDocument) => document.id === id);\n if (document) {\n document.deleted = true;\n setDocuments(documents.slice());\n }\n };\n\n const shouldUpdateArtifact = (): boolean => {\n if (!shouldDisableEdit()) {\n return true;\n }\n return !isEqual(values.collections, objectDetailsContext.artifact.collections);\n };\n\n const shouldDisableEdit = (): boolean => {\n if (objectDetailsContext.artifact.feedbackRequests.findIndex((f) => !f.isCompleted) === -1) {\n return false;\n }\n\n const activeFeedback = objectDetailsContext.artifact.feedbackRequests.find((f) => !f.isCompleted);\n return !(activeFeedback && activeFeedback.comments?.length > 0);\n };\n\n const saveObject = (bypassPhoto = false): void => {\n if (objectDetailsContext.modals.displayUnsavedPhotosModal && !bypassPhoto) {\n objectDetailsContext.modals.toggleUnsavedChangesModal();\n return;\n }\n\n objectDetailsContext.modals.toggleDisplayUnsavedPhotosModal(false);\n\n if (hasErrors) {\n return;\n }\n\n setIsLoading(true);\n setUpdateLoading({ ...updateLoading, artifact: true });\n\n if (shouldUpdateArtifact()) {\n ObjectApi.updateObject(values, objectDetailsContext.artifact.id)\n .then((res: any) => {\n setUpdateLoading({ ...updateLoading, artifact: false });\n if (!updateLoading.photos && !updateLoading.documents) {\n objectDetailsContext.setArtifact(res.data, true);\n cancelEditMode(false);\n setIsLoading(false);\n }\n })\n .catch((error: any) => {\n console.error(error.response);\n console.error(error);\n setIsLoading(false);\n setUpdateLoading({ documents: false, photos: false, artifact: false });\n utilsContext.addSnackbar('error');\n });\n } else {\n setUpdateLoading({ ...updateLoading, artifact: false });\n setIsLoading(false);\n }\n\n documents\n .filter((document: IDocument) => document.deleted && !document.wasDeleted)\n .forEach((document: IDocument) => {\n ObjectApi.deleteDocument(document.id)\n .then(() => {\n document.wasDeleted = true;\n cancelEditMode(false);\n setIsLoading(false);\n })\n .catch((error: any) => {\n setIsLoading(false);\n console.error(error.response);\n utilsContext.addSnackbar(\n 'error',\n 'Sorry, there was an error and we were unable to ' + 'delete your documents.',\n );\n });\n });\n\n if (newDocuments.length) {\n setIsLoading(true);\n setUpdateLoading({ ...updateLoading, documents: true });\n ObjectApi.addFile(objectDetailsContext.artifact.id, newDocuments)\n .then((res: any) => {\n setUpdateLoading({ ...updateLoading, documents: false });\n objectDetailsContext.addNewDocuments(res.data);\n setDocuments(documents.concat(res.data).slice());\n setNewDocuments([]);\n if (!updateLoading.artifact && !updateLoading.photos) {\n cancelEditMode(false);\n setIsLoading(false);\n }\n })\n .catch((error: any) => {\n console.error(error.response);\n setUpdateLoading({ ...updateLoading, documents: false });\n utilsContext.addSnackbar(\n 'error',\n 'Sorry, there was an error and we were unable to add your documents.',\n );\n });\n }\n\n const newPhotos = photos.filter((p) => typeof p === 'string');\n if (newPhotos.length) {\n const uploadPhotosChunks = splitArrayIntoChunksOfLen(newPhotos, Math.ceil(newPhotos.length / 3));\n\n if (uploadPhotosChunks[0]?.length) {\n globalContext.setShouldReloadBatch1(true);\n globalContext.setUploadPhotosBatch1(true);\n setLoadingPhotos(\n globalContext.uploadPhotosBatch1 ||\n globalContext.uploadPhotosBatch2 ||\n globalContext.uploadPhotosBatch3,\n );\n ObjectApi.addPhoto(objectDetailsContext.artifact.id, uploadPhotosChunks[0], 0)\n .then(() => {\n globalContext.setUploadPhotosBatch1(false);\n const photosToDelete = photos\n .filter(\n (photo) =>\n (photo as IPhoto).deleted &&\n !(photo as IPhoto).wasDeleted &&\n typeof photo !== 'string',\n )\n .map((p) => (p as IPhoto).id);\n\n if (photosToDelete.length) {\n ObjectApi.deletePhoto(photosToDelete)\n .then(() => {\n setPhotos(\n photos.map((photo) => {\n if (photosToDelete.includes((photo as IPhoto).id && (photo as IPhoto).id)) {\n return {\n ...(photo as IPhoto),\n deleted: true,\n wasDeleted: true,\n };\n }\n return photo;\n }),\n );\n objectDetailsContext.setPhotos(\n objectDetailsContext.artifact.photos.map((photo) => {\n if (photosToDelete.includes(photo.id)) {\n return {\n ...photo,\n deleted: false,\n wasDeleted: true,\n };\n }\n return photo;\n }),\n );\n cancelEditMode(false);\n setIsLoading(false);\n })\n .catch((error: any) => {\n console.error(error.response);\n setIsLoading(false);\n utilsContext.addSnackbar(\n 'error',\n 'Sorry, there was an error and we were unable ' + 'to delete your photos.',\n );\n });\n } else {\n if (!updateLoading.artifact) {\n cancelEditMode(false);\n setIsLoading(false);\n }\n }\n })\n .catch((error: any) => {\n console.error(error);\n setUpdateLoading({ ...updateLoading, photos: false });\n utilsContext.addSnackbar(\n 'error',\n 'Sorry, there was an error and some of your photos were ' +\n 'not saved. Please try again later.',\n );\n });\n }\n\n if (uploadPhotosChunks[1]?.length) {\n globalContext.setShouldReloadBatch2(true);\n globalContext.setUploadPhotosBatch2(true);\n setLoadingPhotos(\n globalContext.uploadPhotosBatch1 ||\n globalContext.uploadPhotosBatch2 ||\n globalContext.uploadPhotosBatch3,\n );\n ObjectApi.addPhoto(objectDetailsContext.artifact.id, uploadPhotosChunks[1], 1)\n .then(() => {\n globalContext.setUploadPhotosBatch2(false);\n if (!updateLoading.artifact) {\n cancelEditMode(false);\n setIsLoading(false);\n }\n })\n .catch((error: any) => {\n console.error(error);\n setUpdateLoading({ ...updateLoading, photos: false });\n utilsContext.addSnackbar(\n 'error',\n 'Sorry, there was an error and some of your photos were ' +\n 'not saved. Please try again later.',\n );\n });\n }\n\n if (uploadPhotosChunks[2]?.length) {\n globalContext.setShouldReloadBatch3(true);\n globalContext.setUploadPhotosBatch3(true);\n setLoadingPhotos(\n globalContext.uploadPhotosBatch1 ||\n globalContext.uploadPhotosBatch2 ||\n globalContext.uploadPhotosBatch3,\n );\n ObjectApi.addPhoto(objectDetailsContext.artifact.id, uploadPhotosChunks[2], 2)\n .then(() => {\n globalContext.setUploadPhotosBatch3(false);\n if (!updateLoading.artifact) {\n cancelEditMode(false);\n setIsLoading(false);\n }\n })\n .catch((error: any) => {\n console.error(error);\n setUpdateLoading({ ...updateLoading, photos: false });\n utilsContext.addSnackbar(\n 'error',\n 'Sorry, there was an error and some of your photos were not' +\n ' saved. Please try again later.',\n );\n });\n }\n } else {\n const photosToDelete = photos\n .filter(\n (photo) => (photo as IPhoto).deleted && !(photo as IPhoto).wasDeleted && typeof photo !== 'string',\n )\n .map((p) => (p as IPhoto).id);\n if (photosToDelete.length) {\n ObjectApi.deletePhoto(photosToDelete)\n .then(() => {\n setPhotos(\n photos.map((photo) => {\n if (photosToDelete.includes((photo as IPhoto).id && (photo as IPhoto).id)) {\n return {\n ...(photo as IPhoto),\n deleted: true,\n wasDeleted: true,\n };\n }\n return photo;\n }),\n );\n objectDetailsContext.setPhotos(\n objectDetailsContext.artifact.photos.map((photo) => {\n if (photosToDelete.includes(photo.id)) {\n return {\n ...photo,\n deleted: false,\n wasDeleted: true,\n };\n }\n return photo;\n }),\n );\n\n cancelEditMode(false);\n setIsLoading(false);\n })\n .catch((error: any) => {\n console.error(error.response);\n setIsLoading(false);\n utilsContext.addSnackbar(\n 'error',\n 'Sorry, there was an error and we were unable to delete' + ' your photos.',\n );\n });\n }\n }\n };\n\n useEffect(() => {\n if (objectDetailsContext.artifact) {\n if (objectDetailsContext.artifact.feedbackRequests.length) {\n if (objectDetailsContext.artifact.feedbackRequests.findIndex((f) => !f.isCompleted) > -1) {\n setDisplayDeleteButtonInGallery(\n objectDetailsContext.artifact.photos.filter((p) => !p.wasDeleted).length > 1,\n );\n } else {\n setDisplayDeleteButtonInGallery(true);\n }\n } else {\n setDisplayDeleteButtonInGallery(\n objectDetailsContext.artifact.photos.filter((p) => !p.wasDeleted).length > 1,\n );\n }\n }\n }, [objectDetailsContext.artifact.photos]);\n\n const onDeleteFromGallery = (id: number): void => {\n objectDetailsContext.setPhotos(\n objectDetailsContext.artifact.photos.map((p) => {\n if (p.id === id) {\n return {\n ...p,\n wasDeleted: true,\n };\n }\n return p;\n }),\n );\n };\n\n return (\n \n {!isLoading && (\n <>\n saveObject()}\n noOfRecommendedExperts={objectDetailsContext.artifact.experts.length}\n paymentFreePass={\n userContext.user?.paymentFreePass || objectDetailsContext.artifact.paymentFreePass || false\n }\n isSharedToPublicFeed={\n objectDetailsContext.artifact.isSharedToPublicFeed && showSharedToPublicFeed\n }\n toggleEditMode={(newState: boolean, onBack: boolean) => {\n if (!newState) {\n if (onBack) {\n toggleShouldLeavePage(true);\n }\n if (hasEditChanges) {\n objectDetailsContext.modals.toggleUnsavedChangesModal();\n } else {\n cancelEditMode();\n }\n } else {\n objectDetailsContext.setEditMode(newState);\n }\n }}\n />\n\n \n \n \n \n \n \n \n Estimated Value:\n \n {getEstimatedDisplayValue(\n objectDetailsContext.artifact.exactValue,\n objectDetailsContext.artifact.minimumValue,\n objectDetailsContext.artifact.maximumValue,\n )}\n \n \n \n \n \n \n Item number:{' '}\n \n #{objectDetailsContext.artifact.id}\n \n \n \n Time Stamp:{' '}\n \n \n {moment(\n objectDetailsContext.artifact.createdDate.replace(\n 'T',\n 'Z',\n ),\n ).format('HH:mm a')}\n \n \n \n \n Date:{' '}\n \n \n {moment(\n objectDetailsContext.artifact.createdDate.replace(\n 'T',\n 'Z',\n ),\n ).format('MM/DD/YYYY')}\n \n \n \n \n \n \n\n !p.deleted || !p.wasDeleted,\n )}\n isMyObject={!objectDetailsContext.onEditMode}\n displayDeleteButton={displayDeleteButtonInGallery}\n artifactId={objectDetailsContext.artifact.id}\n onPhotoDeleteSuccess={onDeleteFromGallery}\n />\n\n {loadingPhotos && (\n \n \n \n We are loading your photos, please wait...\n \n \n )}\n\n {!loadingPhotos &&\n objectDetailsContext.artifact.photos?.filter((p) => !p.deleted).length > 1 &&\n !objectDetailsContext.onEditMode && (\n \n toggleReorderPhotosModal(true)}\n >\n Reorder Photos\n \n toggleReorderPhotosModal(false)}\n photos={objectDetailsContext.artifact.photos.filter(\n (p) => !p.deleted,\n )}\n />\n \n )}\n\n {objectDetailsContext.artifact.isFeedbackImported && (\n null}\n />\n )}\n \n \n {!objectDetailsContext.onEditMode && (\n <>\n \n \n \n\n \n \n \n \n \n \n )}\n {objectDetailsContext.onEditMode && (\n \n \n !(p as IPhoto).deleted && !(p as IPhoto).wasDeleted,\n )}\n documents={documents.filter((d) => !d.wasDeleted)}\n setValues={(values: IObject) => {\n setValues(values);\n setHasEditChanges(true);\n }}\n setFormErrors={(hasErrors: boolean) => setErrors(hasErrors)}\n setPhotos={setPhotos}\n setDocuments={(documents: File[]) => setNewDocuments(documents)}\n onPhotoDelete={(id: number) => markPhotoAsDeleted(id)}\n onDocumentDelete={(id: number) => markDocumentAsDeleted(id)}\n />\n \n \n )}\n \n \n\n {objectDetailsContext.modals.displayConfirmDelete && (\n objectDetailsContext.modals.toggleConfirmDeleteModal()}\n onRemove={() => history.push(getMyObjectsRoute(userContext.user?.role))}\n />\n )}\n\n objectDetailsContext.modals.toggleUnsavedChangesModal()}\n onConfirm={() => {\n if (objectDetailsContext.modals.displayUnsavedPhotosModal) {\n objectDetailsContext.modals.toggleUnsavedChangesModal();\n saveObject(true);\n } else {\n cancelEditMode();\n if (shouldLeavePage) {\n history.goBack();\n }\n }\n }}\n />\n\n 0}\n canBeSharedToFeed={true}\n open={objectDetailsContext.modals.displayShareObjectOptionsModal}\n handleClose={() => objectDetailsContext.modals.toggleShareObjectOptionsModal()}\n onSelect={(type: number) => {\n if (type === ShareArtifactOptions.People) {\n objectDetailsContext.modals.toggleShareObjectToPersonsModal();\n }\n if (type === ShareArtifactOptions.PublicFeed) {\n objectDetailsContext.modals.toggleShareObjectToFeedModal();\n }\n objectDetailsContext.modals.toggleShareObjectOptionsModal();\n }}\n onRemove={() => {\n objectDetailsContext.artifact.isSharedToPublicFeed = false;\n setShowSharedToPublicFeed(false);\n }}\n />\n\n objectDetailsContext.modals.toggleShareObjectToFeedModal()}\n onShareSuccess={() => {\n objectDetailsContext.artifact.isSharedToPublicFeed = true;\n }}\n />\n\n objectDetailsContext.modals.toggleShareObjectToPersonsModal()}\n />\n \n )}\n {isLoading && }\n\n objectDetailsContext.modals.toggleMissingInfoModal()}\n missingFields={computeMissingFields(objectDetailsContext.artifact)}\n primaryAction={() => {\n objectDetailsContext.setEditMode(true);\n objectDetailsContext.modals.toggleMissingInfoModal();\n }}\n secondaryAction={() => {\n objectDetailsContext.modals.toggleRequestAssessmentModal();\n objectDetailsContext.modals.toggleMissingInfoModal();\n }}\n />\n\n objectDetailsContext.modals.toggleRequestAssessmentModal()}\n />\n\n objectDetailsContext.modals.toggleRecommendedExpertsModal()}\n experts={objectDetailsContext.artifact.experts}\n />\n \n );\n};\n","import React, {useContext, useEffect} from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport { Box, Container } from \"@material-ui/core\";\n\nimport \"scenes/consumer/sharedWithMe/styles/style.less\";\n\nimport { AppRoutes } from \"core/helpers/app-routes\";\nimport { CollectorShareApi } from \"core/api/consumer/collector-share.api\";\nimport { GalleryTypeEnum } from \"components/Gallery/helpers/GalleryTypeEnum\";\nimport { SharedWithMeContext } from \"core/context/consumer/sharedWithMe\";\n\nimport { Loader } from \"components/layout/_components/Loader\";\nimport { Gallery } from \"components/Gallery\";\nimport {getCurrentPageFromUrl} from \"core/helpers/utils\";\nimport {Statistics} from \"../../../_components/Statistics\";\nimport {UtilsContext} from \"../../../../../core/context/utils.context\";\n\nexport const SharedWithMeDashboard: React.FC = () => {\n\n const sharedWithMeContext = useContext(SharedWithMeContext);\n const history = useHistory();\n\n const utilsContext = useContext(UtilsContext);\n useEffect(() => {\n const pageArtifacts = getCurrentPageFromUrl('pageArtifacts');\n sharedWithMeContext.setCurrentPageObjects(pageArtifacts);\n getArtifacts(pageArtifacts);\n\n const pageCollections = getCurrentPageFromUrl('pageCollections');\n sharedWithMeContext.setCurrentPageCollections(pageCollections);\n getCollections(pageCollections);\n }, [])\n\n const getArtifacts = (page: number): void => {\n sharedWithMeContext.setLoadingObjects(true);\n\n CollectorShareApi.getSharedObjects(sharedWithMeContext.paginationObjects.size, page)\n .then((res: any) => {\n sharedWithMeContext.setArtifacts(res.data);\n window.scrollTo(0, 0);\n })\n .catch((error: any) => {\n console.error(error.response);\n utilsContext.addSnackbar('error', 'Sorry, there was an error and we were unable to display ' +\n 'your shared objects.')\n })\n }\n\n const getCollections = (page: number): void => {\n sharedWithMeContext.setLoadingCollections(true);\n\n CollectorShareApi.getSharedCollections(sharedWithMeContext.paginationCollections.size, page)\n .then((res: any) => {\n sharedWithMeContext.setCollections(res.data);\n window.scrollTo(0, 0);\n })\n .catch((error: any) => {\n console.error(error.response);\n utilsContext.addSnackbar('error', 'Sorry, there was an error and we were unable to display your' +\n ' shared collections.')\n })\n }\n\n const handlePageChangeObjects = (page: number): void => {\n // eslint-disable-next-line max-len\n history.push(`${AppRoutes.SHARED_WITH_ME}?pageArtifacts=${page}&pageCollections=${sharedWithMeContext.paginationCollections.page}`);\n sharedWithMeContext.setCurrentPageObjects(page);\n getArtifacts(page);\n }\n\n const handlePageChangeCollections = (page: number): void => {\n // eslint-disable-next-line max-len\n history.push(`${AppRoutes.SHARED_WITH_ME}?pageArtifacts=${sharedWithMeContext.paginationObjects.page}&pageCollections=${page}`);\n sharedWithMeContext.setCurrentPageCollections(page);\n getCollections(page);\n }\n\n return (\n \n {\n !sharedWithMeContext.isLoadingObjects &&\n <>\n \n \n \n\n \n handlePageChangeObjects(page)}\n />\n \n \n }\n\n {\n sharedWithMeContext.isLoadingObjects &&\n \n }\n\n {\n !sharedWithMeContext.isLoadingCollections &&\n <>\n \n \n \n\n \n c.collection)}\n handlePageChange={(page: number) => handlePageChangeCollections(page)}\n />\n \n \n }\n\n {\n (sharedWithMeContext.isLoadingCollections && !sharedWithMeContext.isLoadingObjects) &&\n \n }\n \n )\n}\n","import React from \"react\";\nimport { Box } from \"@material-ui/core\";\n\nimport { BackNavigation } from \"components/_others/BackNavigation\";\nimport { Title } from \"components/_consumer/ObjectDetails/Title\";\nimport {fixedHeaderStyles} from \"../../../../../../assets/styles/fixed-header\";\n\ntype HeaderProps = {\n name: string;\n}\n\nexport const Header: React.FC = ({name}) => {\n\n const fixedHeaderCss = fixedHeaderStyles();\n\n return (\n \n \n\n \n \n )\n}\n","import React, {useState} from \"react\";\nimport {Box, Grid, Typography} from \"@material-ui/core\";\nimport { makeStyles } from \"@material-ui/core/styles\";\n\nimport { ISharedArtifact } from \"core/context/consumer/sharedObject\";\nimport { IDocument } from \"core/context/consumer/objectDetails\";\nimport { IFeedbackResult } from \"core/context/feedback-requests/feedback\";\n\nimport { SectionHeader } from \"components/_consumer/ObjectDetails/SectionHeader\";\nimport { Dimensions } from \"components/_consumer/ObjectDetails/Dimensions\";\nimport { Documents } from \"components/_consumer/ObjectDetails/Documents\";\nimport { Feedbacks } from \"components/_consumer/ObjectDetails/Feedbacks\";\nimport { FeedbackResultModal } from \"components/_consumer/ObjectDetails/FeedbackResultModal\";\n\ntype AboutObjectProps = {\n artifact: ISharedArtifact\n}\n\nconst useStyles = makeStyles( theme => ({\n label: {\n color: '#B2B2B2',\n fontSize: 13,\n marginTop: 5,\n },\n value: {\n color: theme.palette.text.primary,\n fontSize: 13,\n marginBottom: 5,\n }\n}))\n\nexport const AboutObject: React.FC = ({artifact}) => {\n\n const classes = useStyles();\n\n const [displayFeedbackResultModal, toggleFeedbackResultModal] = useState(null);\n\n return (\n <>\n \n\n \n {artifact.description}\n \n\n \n \n \n \n \n Weight\n \n {artifact.weight ? `${artifact.weight} lb.` : 'unknown'}\n \n \n \n\n Approximate age\n \n {\n artifact.exactProductionYear !== null &&\n <>\n {\n artifact.exactProductionYear < 0\n ? `${artifact.exactProductionYear * -1} BC`\n : artifact.exactProductionYear\n }\n \n }\n {\n artifact.lowerProductionYear !== null && artifact.upperProductionYear !== null &&\n <>\n {\n artifact.lowerProductionYear < 0\n ? `${artifact.lowerProductionYear * -1} BC`\n : artifact.lowerProductionYear\n }{' - '}\n {\n artifact.upperProductionYear < 0\n ? `${artifact.upperProductionYear * -1} BC`\n : artifact.upperProductionYear\n }\n \n }\n {\n artifact.lowerProductionYear === null && artifact.exactProductionYear === null &&\n <>\n {' unknown '}\n \n }\n \n\n \n \n Material\n {artifact.material || 'unknown'}\n \n \n Style\n {artifact.style || 'unknown'}\n \n \n\n \n \n Origin\n {artifact.origin || 'unknown'}\n \n \n Condition\n {artifact.condition || 'unknown'}\n \n \n\n Artist or Maker\n {artifact.artist || 'unknown'}\n\n \n !d.deleted)} />\n \n\n \n toggleFeedbackResultModal(feedback)}\n activeFeedbacksComments={[]}\n />\n \n\n {\n displayFeedbackResultModal !== null &&\n toggleFeedbackResultModal(null)}\n photo={artifact.photos?.find(p => p.isPrimary)?.url || ''}\n feedback={displayFeedbackResultModal}\n artifactId={artifact.id}\n />\n }\n \n )\n}\n","import React from \"react\";\nimport { Box, Typography } from \"@material-ui/core\";\nimport AccountCircleIcon from \"@material-ui/icons/AccountCircle\";\n\nimport { getPhotoUrl } from \"core/helpers/file-size.helper\";\nimport { FileSize } from \"core/enums\";\nimport {makeStyles} from \"@material-ui/core/styles\";\n\ntype SharedByProps = {\n avatar: string|null;\n name: string;\n message: string;\n}\n\nconst useStyles = makeStyles({\n root: {\n fontSize: 18,\n fontWeight: 'bold',\n color: '#707070'\n },\n divider: {\n maxWidth: 55,\n height: 0,\n marginTop: 0,\n borderRadius: 2,\n marginBottom: 15,\n marginLeft: 0,\n borderTop: '1px solid #707070',\n }\n});\n\nexport const SharedBy: React.FC = ({avatar, name, message}) => {\n\n const classes = useStyles();\n\n return (\n <>\n <>\n \n Shared with you by\n \n
    \n \n \n {\n !avatar &&\n \n }\n {\n avatar &&\n \n }\n\n \n {name}\n \n \n\n \n {message}\n \n \n )\n}\n","import React, { useContext, useEffect, useState } from 'react';\nimport moment from 'moment';\nimport { useHistory } from 'react-router-dom';\nimport { Box, Container, Grid, Typography } from '@material-ui/core';\nimport 'components/_consumer/ObjectDetails/styles/style.less';\n\nimport { Loader } from 'components/layout/_components/Loader';\nimport { Header } from './components/Header';\nimport { Gallery } from 'components/_consumer/ObjectDetails/Gallery';\nimport { AboutObject } from './components/AboutObject';\nimport { SharedBy } from './components/SharedBy';\nimport { ObjectComments } from 'components/object/ObjectComments';\nimport { ObjectLabels } from 'components/_consumer/ObjectDetails/ObjectLabels';\n\nimport { AppRoutes } from 'core/helpers/app-routes';\nimport { CollectorShareApi } from 'core/api/consumer/collector-share.api';\nimport { SharedObjectContext } from 'core/context/consumer/sharedObject';\nimport { getEstimatedDisplayValue } from 'core/helpers';\nimport { UserContext } from 'core/context/user';\nimport { UtilsContext } from '../../../../../core/context/utils.context';\n\nexport const SharedObjectDetails: React.FC = () => {\n const history = useHistory();\n const sharedObjectContext = useContext(SharedObjectContext);\n const userContext = useContext(UserContext);\n\n const [isLoading, setIsLoading] = useState(true);\n const utilsContext = useContext(UtilsContext);\n const [sharedFromCollection, setSharedFromCollection] = useState(false);\n\n useEffect(() => {\n const params = new URLSearchParams(window.location.search);\n const id = params.get('id');\n\n const sharedWithMe = params.get('collectionShare');\n\n if (sharedWithMe) {\n setSharedFromCollection(true);\n console.log(sharedFromCollection);\n }\n\n if (!id) {\n history.push(AppRoutes.SHARED_WITH_ME);\n }\n\n CollectorShareApi.getSharedObject(Number(id), sharedWithMe || '')\n .then((res: any) => {\n sharedObjectContext.setArtifact(res.data);\n setIsLoading(false);\n window.scrollTo(0, 0);\n })\n .catch((error: any) => {\n console.error(error.response);\n history.push(AppRoutes.SHARED_WITH_ME);\n utilsContext.addSnackbar(\n 'error',\n 'Sorry, there was an error and we were unable to display your object.',\n );\n });\n }, []);\n\n return (\n \n {isLoading && }\n {!isLoading && (\n <>\n
    \n\n \n \n \n \n \n \n Estimated Value:\n \n {getEstimatedDisplayValue(\n sharedObjectContext.artifact.exactValue,\n sharedObjectContext.artifact.minimumValue,\n sharedObjectContext.artifact.maximumValue,\n )}\n \n \n \n \n \n \n Item number:{' '}\n \n #{sharedObjectContext.artifact.id}\n \n \n \n Time Stamp:{' '}\n \n \n {moment(\n sharedObjectContext.artifact.createdDate?.replace('T', 'Z'),\n ).format('HH:mm a')}\n \n \n \n \n Date:{' '}\n \n \n {moment(\n sharedObjectContext.artifact.createdDate?.replace('T', 'Z'),\n ).format('MM/DD/YYYY')}\n \n \n \n \n \n \n\n \n \n {sharedObjectContext.artifact.isFeedbackImported && (\n null}\n />\n )}\n \n \n \n \n \n \n \n\n \n\n \n \n \n \n \n \n )}\n \n );\n};\n","import {makeStyles} from \"@material-ui/core/styles\";\n\nexport const emptyStyles = makeStyles({\n root: {\n display: 'flex',\n alignItems: 'center',\n height: 'calc(100vh - 65px)',\n },\n content: {\n margin: 'auto',\n textAlign: 'center',\n },\n icon: {\n marginBottom: 30,\n },\n typography: {\n marginBottom: 50,\n fontSize: 20,\n maxWidth: 525,\n lineHeight: 1,\n opacity: 0.8,\n fontWeight: 100,\n },\n button: {\n width: 335,\n fontSize: 18,\n }\n});\n","import {makeStyles} from \"@material-ui/styles\";\nimport {Theme} from \"@material-ui/core\";\n\nexport const headerStyles = makeStyles((_theme: Theme) => ({\n root: {\n position: 'sticky',\n top: 65,\n zIndex: 3,\n paddingTop: 15,\n paddingBottom: 20,\n width: '100.1%',\n [\"@media (max-width:1250px)\"]: { width: '100.5%'},\n [\"@media (max-width: 812px) and (orientation: landscape)\"]: { position: 'unset'},\n },\n gridContainer: {\n alignItems: 'center',\n },\n actionsContainer: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n }\n}));\n\nexport const addNewCollectionBtnStyles = makeStyles((_theme: Theme) => ({\n root: {\n height: 35,\n fontSize: 17,\n fontWeight: 600,\n letterSpacing: 0,\n width: 202,\n [\"@media (max-width:545px)\"]: { width: 'unset', fontSize: 15 },\n [\"@media (max-width:600px)\"]: { fontSize: 15 },\n },\n icon: {\n fontSize: 22,\n marginRight: 5,\n marginTop: 1,\n [\"@media (max-width:545px)\"]: { marginRight: 0 },\n },\n hideXS: {\n [\"@media (max-width:545px)\"]: { display: 'none'},\n }\n}));\n","import * as api from './_utils/api';\n\nexport class CollectionApi {\n\n static async getMyCollections(page: number, size: number, sortBy: string, asc: boolean|undefined): Promise {\n return api._post(`collection/get?page=${page}&size=${size}&desc=${!asc}&orderBy=${sortBy}`, {});\n }\n\n static async addNewCollection(name: string): Promise {\n return api._post(`collection/create`, {name});\n }\n\n static async removeCollection(collectionId: number): Promise {\n return api._delete(`collection/delete/${collectionId}`);\n }\n\n static async searchCollections(page: number, size: number, searchBy: string, jobId = -1): Promise {\n if(jobId === -1) {\n return api._post(`collection/get?page=${page}&size=${size}`, {search: searchBy});\n }\n return api._post(`collection/get?page=${page}&size=${size}`, {userId: jobId, search: searchBy});\n }\n}\n","import React, {useState} from \"react\";\nimport {modalStyles} from \"components/_others/modals/modal-styles\";\nimport {Backdrop, Box, Button, CircularProgress, Fade, Modal, TextField, Typography} from \"@material-ui/core\";\n\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport SaveIcon from '@material-ui/icons/Save';\n\nimport {useNewCollection} from \"../hooks/use-new-collection.hook\";\nimport {ModalHeader} from \"components/_others/modals/ModalHeader\";\n\ntype AddNewCollectionModalProps = {\n open: boolean;\n handleClose: () => void;\n}\n\nexport const AddNewCollectionModal: React.FC = ({open,handleClose}) => {\n\n const classes = modalStyles();\n\n const [collectionName, setCollectionName] = useState({text: '', error: ''});\n\n const {isLoading, addNewCollection} = useNewCollection();\n\n const onSave = (): void => {\n if(!collectionName.text.length) {\n setCollectionName({...collectionName, error: 'Please enter a collection name'});\n return;\n }\n addNewCollection(collectionName.text?.trim()).then((res: boolean) => {\n if(res) {\n handleClose();\n }\n })\n }\n\n return (\n \n \n
    \n\n handleClose()}\n />\n\n \n Please enter a name for your collection\n \n\n \n setCollectionName({\n text: e.target.value,\n error: e.target.value.length === 0 ? 'Please enter a collection name' : ''\n })}\n />\n \n\n \n \n Cancel\n \n\n onSave()}\n >\n {\n isLoading && \n }\n {\n !isLoading && \n }\n Save\n \n \n
    \n
    \n \n )\n}\n","import {useContext, useState} from \"react\";\nimport {UtilsContext} from \"core/context/utils.context\";\nimport {CollectionApi} from \"core/api/collection.api\";\nimport { useHistory } from \"react-router-dom\";\nimport {AppRoutes} from \"../../../../core/helpers\";\n\nexport const useNewCollection = (): any => {\n\n const history = useHistory();\n const utilsContext = useContext(UtilsContext);\n\n const [isLoading, setIsLoading] = useState(false);\n\n const addNewCollection = async (name: string): Promise => {\n setIsLoading(true);\n\n return await CollectionApi.addNewCollection(name)\n .then((res: any) => {\n setIsLoading(false);\n utilsContext.addSnackbar('success', 'Success! Your collection was added.');\n history.push(`${AppRoutes.COLLECTION}?id=${res.data.id}`);\n return true;\n })\n .catch((error: any) => {\n console.error(error.response);\n setIsLoading(false);\n utilsContext.addSnackbar('error');\n return false;\n })\n }\n\n return {\n isLoading,\n addNewCollection,\n }\n}\n","import React, {useState} from \"react\";\nimport { Button } from \"@material-ui/core\";\n\nimport {addNewCollectionBtnStyles} from \"../styles/header.styles\";\nimport AddIcon from '@material-ui/icons/Add';\n\nimport {AddNewCollectionModal} from \"./AddNewCollectionModal\";\n\nexport const AddNewCollectionBtn: React.FC = () => {\n\n const [displayAddNewModal, toggleAddNewModal] = useState(false);\n\n const classes = addNewCollectionBtnStyles();\n\n return (\n <>\n toggleAddNewModal(true)}\n >\n \n Add new collection\n \n\n {\n displayAddNewModal &&\n toggleAddNewModal(false)}\n />\n }\n \n )\n}\n","import React from \"react\";\nimport {Box, Typography} from \"@material-ui/core\";\n\nimport {emptyStyles} from \"../styles/empty.style\";\n\nimport {ReactComponent as EmptyPageIcon} from \"assets/images/empty-page.svg\";\nimport {AddNewCollectionBtn} from \"./AddNewCollectionBtn\";\n\nexport const Empty: React.FC = () => {\n\n const classes = emptyStyles();\n\n return (\n \n
    \n \n\n \n You do not have any collections yet.\n Please click the button below to start organizing your collectibles!\n \n\n \n\n
    \n
    \n )\n}\n","import React from \"react\";\nimport { Backdrop, Box, Button, CircularProgress, Fade, Modal, Typography } from \"@material-ui/core\";\nimport { modalStyles } from \"components/_others/modals/modal-styles\";\n\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport DeleteIcon from \"@material-ui/icons/Delete\";\n\nimport {useRemoveCollection} from \"./hook\";\nimport {ModalHeader} from \"components/_others/modals/ModalHeader\";\n\ntype DeleteCollectionModalProps = {\n collectionId: number;\n open: boolean;\n handleClose: (wasDeleted: boolean) => void;\n}\n\nexport const RemoveCollectionModal: React.FC = (\n {collectionId, open, handleClose}\n) => {\n\n const classes = modalStyles();\n\n const {isLoading, removeCollection} = useRemoveCollection();\n\n const onDelete = (): void => {\n removeCollection(collectionId).then((res: boolean) => {\n if(res) {\n handleClose(true);\n }\n });\n }\n\n return (\n \n \n
    \n\n handleClose(false)}\n />\n\n \n Are you sure you want to delete this collection?\n \n\n \n handleClose(false)}\n >\n Cancel\n \n\n onDelete()}\n >\n {\n isLoading && \n }\n {\n !isLoading && \n }\n Delete\n \n \n
    \n
    \n \n )\n}\n","import {useContext, useState} from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport {UtilsContext} from \"core/context/utils.context\";\nimport {CollectionApi} from \"core/api/collection.api\";\nimport {AppRoutes} from \"core/helpers\";\n\nexport const useRemoveCollection = (): any => {\n\n const history = useHistory();\n const utilsContext = useContext(UtilsContext);\n\n const [isLoading, setIsLoading] = useState(false);\n\n const removeCollection = async (collectionId: number): Promise => {\n setIsLoading(true);\n\n return await CollectionApi.removeCollection(collectionId)\n .then(() => {\n setIsLoading(false);\n utilsContext.addSnackbar('success', 'Success! Your collection was removed.');\n history.push(AppRoutes.MY_COLLECTIONS);\n return true;\n })\n .catch((error: any) => {\n console.error(error.response);\n setIsLoading(false);\n utilsContext.addSnackbar('error');\n return false;\n })\n }\n\n return {\n isLoading,\n removeCollection,\n }\n}\n","import {SortingOption, SortCollectionsOptions} from \"core/enums\";\n\nexport function getSortingOptions(activeOption: string, asc: boolean): SortingOption[] {\n const result: SortingOption[] = [];\n if(activeOption === undefined) {\n return result;\n }\n\n result.push({\n name: `Title`,\n type: SortCollectionsOptions.Title,\n asc,\n active: activeOption === SortCollectionsOptions.Title,\n })\n\n result.push({\n name: `Estimated Value`,\n type: SortCollectionsOptions.EstimatedValue,\n asc,\n active: activeOption === SortCollectionsOptions.EstimatedValue,\n })\n\n result.push({\n name: `No. of Items`,\n type: SortCollectionsOptions.NumberOfItems,\n asc,\n active: activeOption === SortCollectionsOptions.NumberOfItems,\n })\n\n result.push({\n name: `Date Created`,\n type: SortCollectionsOptions.DateCreated,\n asc,\n active: activeOption === SortCollectionsOptions.DateCreated,\n })\n\n return result;\n}\n\nexport function getActiveSortingOption(option: string): SortingOption {\n return getSortingOptions(option, false).find(e => e.name === option) || {\n name: `Date Created`,\n type: SortCollectionsOptions.DateCreated,\n asc: false,\n active: true,\n };\n}\n\nexport function getNewSortingOption(activeOption: string, newOption: string, asc: boolean): SortingOption {\n if(activeOption === newOption) {\n return {\n name: '',\n type: newOption,\n asc: asc === undefined ? true : !asc,\n active: true,\n }\n }\n\n return {\n name: '',\n type: newOption,\n asc,\n active: true,\n }\n}\n","import React, { useContext } from 'react';\nimport { Box, Grid, Hidden } from '@material-ui/core';\n\nimport { fixedHeaderStyles } from 'assets/styles/fixed-header';\nimport { headerStyles } from '../styles/header.styles';\n\nimport { SortingOption, UserRoles } from 'core/enums';\n\nimport { Statistics } from 'scenes/consumer/_components/Statistics';\nimport { SortBy } from 'components/_others/SortBy';\nimport { AddNewCollectionBtn } from './AddNewCollectionBtn';\nimport { UserContext } from 'core/context/user';\n\ntype PageHeaderProps = {\n totalCount: number;\n sortingOptions: SortingOption[];\n onSortByChange: (option: string) => void;\n sortByValue: string;\n};\n\nexport const PageHeader: React.FC = ({ totalCount, sortingOptions, onSortByChange, sortByValue }) => {\n const userContext = useContext(UserContext);\n\n const fixedHeaderCss = fixedHeaderStyles();\n const classes = headerStyles();\n\n return (\n \n \n \n \n \n \n \n \n \n onSortByChange(option)}\n sortByValue={sortByValue}\n />\n \n \n\n {userContext.user?.role !== UserRoles.ARCHIVIST && }\n \n \n \n \n );\n};\n","import { useContext, useEffect, useState } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { UtilsContext } from 'core/context/utils.context';\nimport { CollectionApi } from 'core/api/collection.api';\nimport { ICollection } from 'types';\nimport { usePagination } from 'core/hooks/use-pagination.hook';\nimport { AppRoutes, getMyObjectsRoute } from 'core/helpers';\nimport { SortCollectionsOptions, UserRoles } from 'core/enums';\nimport { getNewSortingOption } from 'scenes/consumer/_helpers/collections-sorting.helper';\nimport { UserContext } from '../../../../core/context/user';\n\nexport const useMyCollectionsData = (): any => {\n const userContext = useContext(UserContext);\n const utilsContext = useContext(UtilsContext);\n const history = useHistory();\n\n const [collections, setCollections] = useState([]);\n\n const { pagination, setPagination } = usePagination();\n\n useEffect(() => {\n utilsContext.setAppLoaderState(true);\n }, []);\n\n const getCollections = (page: number, size: number, sortBy: string, asc: boolean | undefined): void => {\n utilsContext.setAppLoaderState(true); // eslint-disable-next-line max-len\n // const sortAscending: boolean | undefined = ['item', 'datecreated', 'value'].includes(sortBy.toLowerCase())\n // ? !asc\n // : asc;\n CollectionApi.getMyCollections(page, size, sortBy, !!asc)\n .then((res: any) => {\n setCollections(mapCollections(res.data?.data || [], userContext.user?.role, userContext.user?.id));\n setPagination({\n ...pagination,\n page,\n size,\n sortBy,\n asc,\n totalCount: res.data.totalCount,\n numberOfPages: Math.ceil(res.data.totalCount / res.data.size),\n });\n utilsContext.setAppLoaderState(false);\n window.scrollTo(0, 0);\n })\n .catch((error: any) => {\n console.error(error.response);\n setCollections([]);\n utilsContext.addSnackbar(\n 'error',\n 'Sorry, there was an error and we were unable to display your collections.',\n );\n history.push(getMyObjectsRoute(userContext.user?.role));\n utilsContext.setAppLoaderState(false);\n });\n };\n\n const handlePageChange = (page: number): void => {\n const { sortBy, asc, size } = pagination;\n history.push(`${AppRoutes.MY_COLLECTIONS}?page=${page}&size=${size}&sortBy=${sortBy}&desc=${!asc}`);\n getCollections(page, size, pagination.sortBy || SortCollectionsOptions.DateCreated, pagination.asc);\n };\n\n const handlePageSizeChange = (size: number): void => {\n const { sortBy, asc, page } = pagination;\n history.push(`${AppRoutes.MY_COLLECTIONS}?page=${page}&size=${size}&sortBy=${sortBy}&desc=${!asc}`);\n getCollections(page, size, pagination.sortBy || SortCollectionsOptions.DateCreated, pagination.asc);\n };\n\n const handleSortByChange = (option: string): void => {\n const { sortBy, asc, size, page } = pagination;\n const newOption = getNewSortingOption(sortBy || '', option, asc || false);\n history.push(`${AppRoutes.MY_COLLECTIONS}?page=${1}&sortBy=${newOption.type}&desc=${!newOption.asc}`);\n getCollections(page, size, newOption.type, newOption.asc);\n };\n\n return {\n collections,\n pagination,\n getCollections,\n handlePageChange,\n handlePageSizeChange,\n handleSortByChange,\n };\n};\n\nconst mapCollections = (data: any, role: string | undefined, userId: number | undefined): ICollection[] => {\n return data.map((c: any) => {\n const canDelete = role === UserRoles.COLLECTOR ? true : c.createdBy === userId;\n const canShare = role === UserRoles.COLLECTOR || role === UserRoles.CURATOR;\n\n return {\n id: c.id,\n name: c.name,\n photoUrl: c.photoUrl,\n totalObjects: c.totalObjects,\n displayShareButtonOnCard: canShare && c.totalObjects > 0,\n displayDeleteButtonOnCard: canDelete,\n };\n });\n};\n","import { Box, Container } from '@material-ui/core';\nimport { Gallery } from 'components/Gallery';\nimport { GalleryTypeEnum } from 'components/Gallery/helpers/GalleryTypeEnum';\nimport { SortCollectionsOptions } from 'core/enums';\nimport { getCurrentPageFromUrl, getPageSizeFromUrl, getSortPreference } from 'core/helpers/utils';\nimport React, { useEffect, useState } from 'react';\nimport { Empty } from 'scenes/consumer/MyCollections/components/Empty';\nimport { RemoveCollectionModal } from 'scenes/consumer/_components/RemoveCollectionModal';\nimport { getSortingOptions } from '../_helpers/collections-sorting.helper';\nimport { PageHeader } from './components/PageHeader';\nimport { useMyCollectionsData } from './hooks/use-my-collections-data.hook';\n\nexport const MyCollections: React.FC = () => {\n const [displayRemoveCollectionModal, toggleRemoveCollectionModal] = useState(-1);\n const [selectedSortBy, setSelectedSortBy] = useState('');\n\n const { collections, getCollections, pagination, handlePageChange, handlePageSizeChange, handleSortByChange } =\n useMyCollectionsData();\n\n const getCollectionsAsync = async (): Promise => {\n const page = getCurrentPageFromUrl();\n const pageSize = getPageSizeFromUrl(100);\n const preferences = (await getSortPreference('collection')) || SortCollectionsOptions.DateCreated;\n setSelectedSortBy(preferences.sortPreference);\n getCollections(page, pageSize, preferences.sortPreference, preferences.ascPreference);\n };\n\n useEffect(() => {\n void getCollectionsAsync();\n }, []);\n\n return (\n \n {collections?.length > 0 && (\n <>\n handleSortByChange(option)}\n sortByValue={selectedSortBy}\n />\n\n \n handlePageChange(page)}\n onObjectDelete={(id: number) => toggleRemoveCollectionModal(id)}\n handlePageSizeChange={(size: number) => handlePageSizeChange(size)}\n />\n \n \n )}\n\n {collections?.length === 0 && }\n\n {displayRemoveCollectionModal !== -1 && (\n {\n if (result) {\n getCollections(pagination.page, pagination.size, pagination.sortBy, pagination.asc);\n }\n toggleRemoveCollectionModal(-1);\n }}\n />\n )}\n \n );\n};\n","import React, {useContext, useEffect, useState} from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport { modalStyles } from \"components/_others/modals/modal-styles\";\nimport {\n Backdrop,\n Box,\n Button,\n Chip,\n CircularProgress,\n Fade,\n Modal,\n TextField,\n Typography\n} from \"@material-ui/core\";\nimport { Autocomplete } from \"@material-ui/lab\";\n\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport SaveIcon from \"@material-ui/icons/Save\";\nimport imagePlaceholder from \"assets/placeholders/artifact-placeholder.png\";\nimport \"scenes/consumer/MyCollectionObjects/styles/add-object-modal.less\";\n\nimport { AppRoutes } from \"core/helpers/app-routes\";\nimport { CollectorApi } from \"core/api/consumer/collector.api\";\nimport { CollectorCollectionApi } from \"core/api/consumer/collector-collection.api\";\nimport { intersectArrays } from \"core/helpers/utils\";\nimport { getPhotoUrl } from \"core/helpers\";\nimport { FileSize } from \"core/enums\";\nimport {UserContext} from \"../../../../core/context/user\";\nimport {UtilsContext} from \"../../../../core/context/utils.context\";\n\ntype AddObjectToCollectionModalProps = {\n collectionId: number;\n collectionName: string;\n open: boolean;\n handleClose: () => void;\n}\n\ninterface ObjectOption {\n id: number;\n title: string;\n}\n\nexport const AddObjectToCollectionModal: React.FC = (\n {collectionId, collectionName, open, handleClose}\n) => {\n\n const classes = modalStyles();\n const history = useHistory();\n const userContext = useContext(UserContext);\n const utilsContext = useContext(UtilsContext);\n\n const [view, setView] = useState('select-option');\n const [isLoading, setIsLoading] = useState(false);\n\n const [selectedObjects, setSelectedObjects] = useState([]);\n const [objectOptions, setObjectOptions] = useState([]);\n\n\n useEffect(() => {\n if (open) {\n setView('select-option');\n setSelectedObjects([]);\n setObjectOptions([]);\n }\n }, [open])\n\n const goToNewObject = (): void => {\n handleClose();\n history.push({\n pathname: AppRoutes.ADD_OBJECT,\n search: `?collectionId=${collectionId}&collectionName=${collectionName}`\n });\n }\n\n const getObjectsOptions = (value: string): void => {\n if(value?.length < 4) {\n setObjectOptions([]);\n return;\n }\n\n CollectorApi.searchArtifactsByCollection(JSON.stringify(value), collectionId)\n .then((res: any) => {\n setObjectOptions(res.data.data);\n })\n .catch((error: any) => {\n console.error(error.response);\n setObjectOptions([]);\n })\n }\n\n const onSave = (): void => {\n setIsLoading(true);\n\n CollectorCollectionApi.addArtifactsToCollection(collectionId, selectedObjects.map((el: ObjectOption) => el.id))\n .then(() => {\n handleClose();\n history.go(0);\n })\n .catch((error: any) => {\n console.error(error.response);\n utilsContext.addSnackbar('error');\n })\n }\n\n return (\n \n \n
    \n \n \n \n\n \n \n Add Object?\n \n \n\n {\n view === 'select-option' &&\n <>\n setView('select-object')}\n >\n \n Add Items from My Objects\n \n \n Simply add existing items shared from \"My Objects\" page.\n \n \n\n goToNewObject()}\n >\n \n Add New Object\n \n \n Upload a new object to your collection.\n \n \n \n }\n\n {\n view === 'select-object' &&\n \n \n Choose the name of your object form the dropdown below:\n \n option.title}\n getOptionSelected={\n (option, _value) =>\n selectedObjects.findIndex((el: ObjectOption) => el.id === option.id) !== -1\n }\n onChange={(_e, value) => setSelectedObjects(value)}\n onInputChange={(_e, value) => getObjectsOptions(value)}\n renderTags={(value, getTagProps) =>\n value.map((option, index) => (\n \n ))\n }\n renderInput={(params) => (\n \n )}\n renderOption={(option) => (\n \n \n {option.title}\n \n )}\n />\n \n }\n\n \n \n Cancel\n \n\n {\n view === 'select-object' &&\n onSave()}\n >\n {\n isLoading && \n }\n {\n !isLoading && \n }\n Save\n \n }\n \n
    \n
    \n \n )\n}\n","import React, {useContext, useEffect, useState} from \"react\";\nimport { modalStyles } from \"components/_others/modals/modal-styles\";\nimport {Backdrop,\n Box,\n Button,\n CircularProgress,\n Fade,\n Modal,\n TextField,\n Typography\n} from \"@material-ui/core\";\n\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport SaveIcon from '@material-ui/icons/Save';\n\nimport {CollectorCollectionApi} from \"../../../../core/api/consumer\";\nimport {UtilsContext} from \"../../../../core/context/utils.context\";\n\ntype AddNewCollectionModalProps = {\n open: boolean;\n name: string;\n id: number;\n handleClose: () => void;\n}\n\nexport const EditCollectionNameModal: React.FC = (\n {open,handleClose, id, name}\n) => {\n\n const classes = modalStyles();\n\n const [isLoading, setIsLoading] = useState(false);\n const [collectionName, setCollectionName] = useState({text: name, error: ''});\n const utilsContext = useContext(UtilsContext);\n useEffect(() => {\n setCollectionName({text: name, error: ''})\n }, [name])\n\n const onSave = (): void => {\n if(!collectionName.text.length) {\n setCollectionName({...collectionName, error: 'Please enter a collection name'});\n return;\n }\n\n setIsLoading(true);\n CollectorCollectionApi.updateCollection(id, {name: collectionName.text?.trim()})\n .then(() => {\n setIsLoading(false);\n utilsContext.addSnackbar('success', 'Success! Please wait...')\n\n setTimeout(() => {\n history.go(0)\n }, 1000)\n })\n .catch((error: any) => {\n console.error(error.response);\n setIsLoading(false);\n utilsContext.addSnackbar('error');\n })\n }\n\n return (\n \n \n
    \n \n \n \n\n \n \n Edit Collection Name\n \n \n Please enter a new name for your collection\n \n \n\n \n setCollectionName({\n text: e.target.value,\n error: e.target.value.length === 0 ? 'Please enter a collection name' : ''\n })}\n />\n \n\n \n \n Cancel\n \n\n onSave()}\n >\n {\n isLoading && \n }\n {\n !isLoading && \n }\n Save\n \n \n
    \n
    \n \n )\n}\n","import React, { useContext } from 'react';\nimport { Box, Grid, Hidden } from '@material-ui/core';\n\nimport AddIcon from '@material-ui/icons/Add';\nimport DeleteIcon from '@material-ui/icons/Delete';\n\nimport { BackNavigation } from 'components/_others/BackNavigation';\nimport { ButtonGrow } from 'components/_others/ButtonGrow';\n\nimport { formatUSD } from 'core/helpers/format-currency';\nimport { CollectionContext } from 'core/context/consumer/collection';\nimport EditIcon from '@material-ui/icons/Edit';\nimport { EditCollectionNameModal } from './EditCollectionNameModal';\nimport { fixedHeaderStyles } from '../../../../assets/styles/fixed-header';\nimport { SortBy } from '../../../../components/_others/SortBy';\nimport { getSortingOptions } from '../../_helpers/objects-sorting.helper';\nimport { Statistics } from '../../_components/Statistics';\nimport { RemoveCollectionModal } from '../../_components/RemoveCollectionModal';\nimport { UserContext } from '../../../../core/context/user';\nimport { UserRoles } from '../../../../core/enums';\n\ntype CollectionPageHeader = {\n isSharedWithMe: boolean;\n changeSortByOption: (option: string) => void;\n sortByValue: string;\n};\n\nexport const CollectionPageHeader: React.FC = ({\n changeSortByOption,\n isSharedWithMe,\n sortByValue,\n}) => {\n const collectionContext = useContext(CollectionContext);\n const userContext = useContext(UserContext);\n const fixedHeaderCss = fixedHeaderStyles();\n\n return (\n \n \n \n \n \n \n \n \n \n \n {!isSharedWithMe && (\n \n \n \n \n changeSortByOption(option)}\n sortByValue={sortByValue}\n />\n \n \n\n {(userContext.user?.role === UserRoles.CURATOR ||\n userContext.user?.role === UserRoles.COLLECTOR) && (\n <>\n }\n text={'Add Object'}\n id={'add-object-to-collection-btn'}\n highlightOnHover={true}\n onClick={() => collectionContext.modals.toggleAddObjectModal()}\n />\n }\n text={'Edit Name'}\n id={'edit-object-btn'}\n onClick={() => collectionContext.modals.toggleEditCollectionNameModal(true)}\n />\n }\n text={'Delete Collection'}\n id={'delete-collection-btn'}\n onClick={() => collectionContext.modals.toggleDeleteCollectionModal()}\n />\n \n )}\n \n \n )}\n \n\n collectionContext.modals.toggleEditCollectionNameModal(false)}\n />\n\n collectionContext.modals.toggleDeleteCollectionModal()}\n />\n \n );\n};\n","import React, {useContext, useState} from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport { Backdrop, Box, Button, CircularProgress, Fade, Modal, Typography } from \"@material-ui/core\";\nimport { modalStyles } from \"components/_others/modals/modal-styles\";\n\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport DeleteIcon from \"@material-ui/icons/Delete\";\n\nimport { CollectorApi } from \"core/api/consumer/collector.api\";\nimport {UtilsContext} from \"../../../../core/context/utils.context\";\n\ntype DeleteCollectionModalProps = {\n objectId: number;\n collectionId: number;\n open: boolean;\n handleClose: () => void;\n}\n\nexport const DeleteObjectModal: React.FC = (\n {objectId, collectionId, open, handleClose}\n) => {\n\n const classes = modalStyles();\n const history = useHistory();\n\n const [isLoading, setIsLoading] = useState(false);\n const utilsContext = useContext(UtilsContext);\n const onDelete = (): void => {\n setIsLoading(true);\n\n CollectorApi.removeArtifactFromCollection(objectId, collectionId)\n .then(() => {\n setIsLoading(false);\n handleClose();\n history.go(0);\n utilsContext.addSnackbar('success', 'This object was removed')\n })\n .catch((error: any) => {\n console.error(error.response);\n utilsContext.addSnackbar('error', 'Sorry, there was an error and we were unable to remove this item.')\n })\n }\n\n return (\n \n \n
    \n \n \n \n\n \n \n Remove Object?\n \n \n Are you sure you want to remove the item from this collection?\n \n \n\n \n \n Cancel\n \n\n onDelete()}\n >\n {\n isLoading && \n }\n {\n !isLoading && \n }\n Remove\n \n \n
    \n\n
    \n \n )\n}\n","import React, { useContext } from 'react';\nimport { makeStyles, ThemeProvider } from '@material-ui/core/styles';\nimport { Box, Button, Typography } from '@material-ui/core';\n\nimport { ReactComponent as EmptyPageIcon } from 'assets/images/empty-page.svg';\nimport { emptyTheme } from 'assets/themes/components/empty-theme';\nimport { CollectionContext } from 'core/context/consumer/collection';\nimport { UserContext } from 'core/context/user';\n\nconst useStyles = makeStyles({\n root: {\n display: 'flex',\n alignItems: 'center',\n },\n content: {\n margin: 'auto',\n textAlign: 'center',\n },\n icon: {\n marginBottom: 30,\n },\n typography: {\n marginBottom: 50,\n fontSize: 20,\n maxWidth: 525,\n lineHeight: 1,\n },\n button: {\n width: 335,\n fontSize: 18,\n },\n});\n\nexport const EmptyCollection: React.FC = () => {\n const collectionContext = useContext(CollectionContext);\n\n const classes = useStyles();\n\n const { user } = useContext(UserContext);\n return (\n \n \n
    \n \n\n \n {`Opps! You have no artifacts in this collection. ${\n user?.role.toLowerCase() !== 'archivist' ? \" I think it's time to add one.\" : ''\n }`}\n \n\n {user?.role.toLowerCase() !== 'archivist' && (\n collectionContext.modals.toggleAddObjectModal()}\n >\n Add Object\n \n )}\n
    \n
    \n
    \n );\n};\n","import { Box, Container } from '@material-ui/core';\nimport { Gallery } from 'components/Gallery';\nimport { GalleryTypeEnum } from 'components/Gallery/helpers/GalleryTypeEnum';\nimport { Loader } from 'components/layout/_components/Loader';\nimport { CollectorCollectionApi } from 'core/api/consumer/collector-collection.api';\nimport { CollectionContext } from 'core/context/consumer/collection';\nimport { SortObjectsOptions } from 'core/enums';\nimport { AppRoutes, getMyObjectsRoute } from 'core/helpers/app-routes';\nimport { getCurrentPageFromUrl, getPageSizeFromUrl, getSortPreference } from 'core/helpers/utils';\nimport React, { useContext, useEffect, useState } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { UserContext } from '../../../core/context/user';\nimport { UtilsContext } from '../../../core/context/utils.context';\nimport { getNewSortingOption } from '../_helpers/objects-sorting.helper';\nimport { AddObjectToCollectionModal } from './components/AddObjectToCollectionModal';\nimport { CollectionPageHeader } from './components/CollectionPageHeader';\nimport { DeleteObjectModal } from './components/DeleteObjectModal';\nimport { EmptyCollection } from './components/EmptyCollection';\n\nexport const MyCollectionObjects: React.FC = () => {\n const userContext = useContext(UserContext);\n const collectionContext = useContext(CollectionContext);\n const history = useHistory();\n\n const utilsContext = useContext(UtilsContext);\n const [isSharedWithMe, setIsSharedWithMe] = useState(false);\n const [shareCollectionId, setShareCollectionId] = useState(-1);\n\n const getCollectionArtifactsAsync = async (): Promise => {\n utilsContext.setAppLoaderState(true);\n const params = new URLSearchParams(window.location.search);\n const id = params.get('id');\n const jobId = params.get('jobId');\n const sharedWithMe = params.get('sharedWithMe');\n\n if (sharedWithMe === 'true') {\n setIsSharedWithMe(true);\n }\n\n if (!id) {\n history.push(getMyObjectsRoute(userContext.user?.role));\n }\n const page = getCurrentPageFromUrl();\n const pageSize = getPageSizeFromUrl();\n const preferences =\n (await getSortPreference('objects', jobId ? parseInt(jobId) : -1)) || SortObjectsOptions.DateCreated;\n\n collectionContext.setCurrentPage(page, pageSize);\n collectionContext.setSortBy(preferences.sortPreference, preferences.ascPreference);\n collectionContext.setCollectionId(Number(id));\n collectionContext.modals.toggleDeleteObjectModal(-1);\n await getCollectionArtifacts(\n page,\n Number(id),\n pageSize,\n preferences.sortPreference,\n preferences.ascPreference,\n sharedWithMe === 'true',\n );\n utilsContext.setAppLoaderState(false);\n };\n\n useEffect(() => {\n void getCollectionArtifactsAsync();\n }, []);\n\n const getCollectionArtifacts = (\n page: number,\n collectionId: number,\n size: number,\n sortBy: string,\n asc: boolean | undefined,\n sharedWithMe: boolean,\n ): void => {\n collectionContext.setLoading(true);\n\n CollectorCollectionApi.getCollectionItems(collectionId, page, size, sortBy, asc, sharedWithMe)\n .then((res: any) => {\n if (sharedWithMe) {\n collectionContext.setArtifacts(res.data);\n setShareCollectionId(res.data?.id);\n } else {\n collectionContext.setArtifacts(res.data);\n }\n window.scrollTo(0, 0);\n })\n .catch((error: any) => {\n console.error(error.response);\n history.push(AppRoutes.MY_COLLECTIONS);\n utilsContext.addSnackbar(\n 'error',\n 'Sorry, there was an error and we were unable to display your collection.',\n );\n });\n };\n\n const handlePageChange = (page: number): void => {\n const { sortBy, size } = collectionContext.pagination;\n const desc = !collectionContext.pagination.asc;\n // eslint-disable-next-line max-len\n history.push(\n `${AppRoutes.COLLECTION}?id=${collectionContext.id}&page=${page}&size=${size}&sortBy=${sortBy}&desc=${desc}`,\n );\n collectionContext.setCurrentPage(page, size);\n getCollectionArtifacts(\n page,\n collectionContext.id,\n size,\n collectionContext.pagination.sortBy || SortObjectsOptions.DateCreated,\n collectionContext.pagination.asc,\n isSharedWithMe,\n );\n };\n\n const handlePageSizeChange = (size: number): void => {\n const { sortBy, page } = collectionContext.pagination;\n const desc = !collectionContext.pagination.asc;\n // eslint-disable-next-line max-len\n history.push(\n `${AppRoutes.COLLECTION}?id=${collectionContext.id}&page=${page}&size=${size}&sortBy=${sortBy}&desc=${desc}`,\n );\n collectionContext.setCurrentPage(page, size);\n getCollectionArtifacts(\n page,\n collectionContext.id,\n size,\n collectionContext.pagination.sortBy || SortObjectsOptions.DateCreated,\n collectionContext.pagination.asc,\n isSharedWithMe,\n );\n };\n\n const changeSortByOption = (option: string): void => {\n const newOption = getNewSortingOption(\n collectionContext.pagination.sortBy || '',\n option,\n collectionContext.pagination.asc || false,\n );\n collectionContext.setSortBy(newOption.type, newOption.asc);\n history.push(\n // eslint-disable-next-line max-len\n `${AppRoutes.COLLECTION}?id=${collectionContext.id}&page=${1}&sortBy=${\n newOption.type\n }&desc=${!newOption.asc}\n `,\n );\n getCollectionArtifacts(\n collectionContext.pagination.page,\n collectionContext.id,\n collectionContext.pagination.size,\n newOption.type,\n newOption.asc,\n isSharedWithMe,\n );\n };\n\n return (\n \n {!collectionContext.isLoading && (\n <>\n changeSortByOption(option)}\n sortByValue={collectionContext.pagination.sortBy as string}\n />\n\n {!isSharedWithMe && (\n \n handlePageChange(page)}\n onObjectDelete={(id: number) => collectionContext.modals.toggleDeleteObjectModal(id)}\n handlePageSizeChange={(size: number) => handlePageSizeChange(size)}\n />\n \n )}\n\n {isSharedWithMe && (\n \n {\n return {\n id: a.id,\n title: a.title,\n description: a.title,\n collectorName: `${a.collector?.firstName} ${a.collector?.lastName}`,\n collectorPhoto: a.collector?.photoUrl,\n sharedFromCollection: true,\n shareCollectionId,\n photo: {\n fileName: a.title,\n url: a.photoUrl,\n },\n };\n })}\n pagination={{\n numberOfPages: collectionContext.pagination.numberOfPages,\n currentPage: collectionContext.pagination.page,\n pageSize: collectionContext.pagination.size,\n }}\n handlePageChange={(page: number) => handlePageChange(page)}\n handlePageSizeChange={(size: number) => handlePageSizeChange(size)}\n />\n \n )}\n \n )}\n {!collectionContext.isLoading && collectionContext.displayEmptyPage && }\n {collectionContext.isLoading && }\n\n collectionContext.modals.toggleAddObjectModal()}\n />\n\n collectionContext.modals.toggleDeleteObjectModal(-1)}\n />\n \n );\n};\n","import React, { useContext, useEffect, useState } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { makeStyles } from '@material-ui/styles';\nimport { Box, Container, Typography } from '@material-ui/core';\n\nimport { AppRoutes, getMyObjectsRoute } from 'core/helpers';\nimport { GalleryTypeEnum } from 'components/Gallery/helpers/GalleryTypeEnum';\nimport { SearchResultsContext } from 'core/context/searchResults';\n\nimport { Gallery } from 'components/Gallery';\nimport { Loader } from 'components/_others';\nimport { getCurrentPageFromUrl } from '../../../core/helpers/utils';\nimport { fixedHeaderStyles } from '../../../assets/styles/fixed-header';\nimport { UserContext } from '../../../core/context/user';\nimport { ObjectApi } from '../../../core/api';\nimport { UtilsContext } from '../../../core/context/utils.context';\nimport { CollectionApi } from '../../../core/api/collection.api';\n\nconst useStyles = makeStyles(() => ({\n root: {\n padding: '0 30px 15px',\n },\n pageTitle: {\n fontSize: 26,\n fontWeight: 400,\n opacity: 0.8,\n },\n sectionTitle: {\n fontSize: 18,\n fontWeight: 400,\n marginBottom: 10,\n },\n}));\n\nexport const SearchResults: React.FC = () => {\n const userContext = useContext(UserContext);\n const utilsContext = useContext(UtilsContext);\n const classes = useStyles();\n const history = useHistory();\n const searchResultsContext = useContext(SearchResultsContext);\n\n const [isLoading, setIsLoading] = useState(false);\n const fixedHeaderCss = fixedHeaderStyles();\n\n useEffect(() => {\n if (!searchResultsContext.searchBy) {\n history.push(getMyObjectsRoute(userContext.user?.role));\n return;\n }\n\n const page = getCurrentPageFromUrl();\n searchResultsContext.setCurrentPage('artifacts', page);\n searchResultsContext.setCurrentPage('collections', page);\n onSearch();\n }, [searchResultsContext.searchBy]);\n\n const onSearch = (): void => {\n setIsLoading(true);\n searchForArtifacts(searchResultsContext.paginationArtifacts.page);\n searchForCollections(searchResultsContext.paginationCollections.page);\n };\n\n const handlePageChange = (scope: string, page: number): void => {\n history.push(`${AppRoutes.SEARCH_RESULTS}?page=${page}`);\n searchResultsContext.setCurrentPage(scope, page);\n if (scope === 'artifacts') {\n searchForArtifacts(page);\n }\n if (scope === 'collections') {\n searchForCollections(page);\n }\n };\n\n const searchForArtifacts = (page: number): void => {\n ObjectApi.searchObjects(\n page,\n searchResultsContext.paginationArtifacts.size,\n searchResultsContext.searchBy,\n utilsContext.selectedJob,\n )\n .then((res: any) => {\n searchResultsContext.setArtifactsResult(res.data);\n setIsLoading(false);\n })\n .catch((error: any) => {\n console.error(error.response);\n setIsLoading(false);\n searchResultsContext.setArtifactsResult([]);\n });\n };\n\n const searchForCollections = (page: number): void => {\n CollectionApi.searchCollections(\n page,\n searchResultsContext.paginationArtifacts.size,\n searchResultsContext.searchBy,\n utilsContext.selectedJob,\n )\n .then((res: any) => {\n searchResultsContext.setCollectionsResult(res.data);\n setIsLoading(false);\n })\n .catch((error: any) => {\n console.error(error.response);\n setIsLoading(false);\n searchResultsContext.setCollectionsResult([]);\n });\n };\n\n return (\n \n {!isLoading && (\n <>\n \n \n Search Results\n \n \n\n {searchResultsContext.artifacts.length > 0 && (\n \n \n Artifacts - {searchResultsContext.paginationArtifacts.totalCount} result(s)\n \n\n \n handlePageChange('artifacts', page)}\n />\n \n \n )}\n\n {searchResultsContext.collections.length > 0 && (\n \n \n Collections - {searchResultsContext.paginationCollections.totalCount} result(s)\n \n\n \n handlePageChange('collections', page)}\n />\n \n \n )}\n\n {searchResultsContext.collections.length === 0 && searchResultsContext.artifacts.length === 0 && (\n \n \n There are no items matching your search criteria.\n \n \n )}\n \n )}\n\n {isLoading && }\n \n );\n};\n","import React, { useContext, useState } from \"react\";\nimport { Box, Button, Typography } from \"@material-ui/core\";\nimport { UserContext } from \"core/context/user\";\nimport { formatUSD } from \"core/helpers/format-currency\";\n\nimport AccountCircleIcon from \"@material-ui/icons/AccountCircle\";\nimport EditIcon from \"@material-ui/icons/Edit\";\n\nimport { AvatarEditorModal } from \"../AvatarEditorModal\";\nimport { getPhotoUrl } from \"core/helpers/file-size.helper\";\nimport {FileSize, UserRoles} from \"core/enums\";\n\ntype LightboxProps = {\n stats: {\n totalObjects: number,\n totalValue: number\n }\n}\n\nexport const Lightbox: React.FC = ({stats}) => {\n\n const userContext = useContext(UserContext);\n\n const [openAvatarEditor, toggleAvatarEditor] = useState(false);\n\n return (\n \n \n {\n !userContext.user?.photoUrl &&\n \n }\n {\n userContext.user?.photoUrl &&\n \n }\n\n toggleAvatarEditor(true)}\n >\n \n \n \n\n \n \n {userContext.user?.firstName}{' '}{userContext.user?.lastName}\n \n\n {\n userContext.user?.role === UserRoles.COLLECTOR &&\n \n \n Total Objects: {stats.totalObjects}\n \n \n Total Value: {formatUSD(stats.totalValue)}\n \n \n }\n\n \n\n toggleAvatarEditor(false)}\n />\n \n )\n}\n","import {\n Box,\n Button,\n CircularProgress,\n Grid,\n InputLabel,\n MenuItem,\n Select,\n TextField,\n Typography,\n} from '@material-ui/core';\nimport { makeStyles } from '@material-ui/core/styles';\nimport CloseIcon from '@material-ui/icons/Close';\nimport SaveIcon from '@material-ui/icons/Save';\nimport { CommonApi, ICity, ICountry, ICurrency, IState } from 'core/api/shared';\nimport { UserContext } from 'core/context/user';\nimport { RegisterTypesEnum } from 'core/enums';\nimport { WEBSITE } from 'core/helpers';\nimport React, { useContext, useEffect, useState } from 'react';\nimport InputMask from 'react-input-mask';\nimport { useHistory } from 'react-router-dom';\nimport { UserApi } from '../../../../../core/api/user';\nimport { UtilsContext } from '../../../../../core/context/utils.context';\nimport { cleanPhoneNumber } from '../../../../../core/helpers/utils';\nimport { ForgotPasswordModal } from '../../../components/ForgotPassword/ForgotPasswordModal';\nimport { ConfirmEmailChangeModal } from '../components/ConfirmEmailChangeModal';\nimport { DeleteAccountSegment } from '../components/DeleteAccountSegment';\n\nexport const useStyles = makeStyles((theme) => ({\n profileActionsContainer: {\n backgroundColor: theme.rootBackground.main,\n },\n formControl: {\n marginBottom: 15,\n marginTop: 4,\n },\n label: {\n color: theme.formLabel.main,\n opacity: 0.9,\n },\n}));\n\nexport const UserProfileForm: React.FC = () => {\n const classes = useStyles();\n const userContext = useContext(UserContext);\n const history = useHistory();\n\n const [isLoading, setIsLoading] = useState(false);\n const [openChangePasswordModal, toggleChangePasswordModal] = useState(false);\n const [openChangeEmailModal, toggleChangeEmailModal] = useState(false);\n\n const [onFocus, setOnFocus] = useState('');\n const [values, setValues] = useState({\n firstName: userContext.user?.firstName || '',\n lastName: userContext.user?.lastName || '',\n title: userContext.user?.title || '',\n phoneNumber: userContext.user?.phoneNumber || '',\n description: userContext.user?.description || '',\n address: userContext.user?.address || '',\n organization: userContext.user?.organization || '',\n website: userContext.user?.website || '',\n country: userContext.user?.country || null,\n countryId: userContext.user?.country?.id || -1,\n state: userContext.user?.state || null,\n stateId: userContext.user?.state?.id || -1,\n city: userContext.user?.city || null,\n cityId: userContext.user?.city?.id || -1,\n currencyId: userContext.user?.currency?.id || -1,\n });\n\n const [errors, setErrors] = useState({ firstName: '', lastName: '', website: '', phoneNumber: '' });\n const utilsContext = useContext(UtilsContext);\n const [countries, setCountries] = useState([]);\n const [states, setStates] = useState([]);\n const [cities, setCities] = useState([]);\n const [currencies, setCurrencies] = useState([]);\n\n useEffect(() => {\n setValues({\n firstName: userContext.user?.firstName || '',\n lastName: userContext.user?.lastName || '',\n title: userContext.user?.title || '',\n phoneNumber: userContext.user?.phoneNumber || '',\n description: userContext.user?.description || '',\n address: userContext.user?.address || '',\n organization: userContext.user?.organization || '',\n website: userContext.user?.website || '',\n country: userContext.user?.country || null,\n countryId: userContext.user?.country?.id || -1,\n state: userContext.user?.state || null,\n stateId: userContext.user?.state?.id || -1,\n city: userContext.user?.city || null,\n cityId: userContext.user?.city?.id || -1,\n currencyId: userContext.user?.currency?.id || -1,\n });\n }, [userContext.user]);\n\n useEffect(() => {\n getCountries();\n if (values.countryId !== -1) {\n getStates(values.countryId);\n }\n if (values.stateId !== -1) {\n getCities(values.stateId);\n }\n getCurrencies();\n }, []);\n\n const manageErrors = (): void => {\n const errFN = !values.firstName\n ? 'Please enter your first name'\n : values.firstName.replace(/[a-z]/g, '').length === values.firstName.length\n ? 'Please enter a valid first name'\n : '';\n const errLN = !values.lastName\n ? 'Please enter your last name'\n : values.lastName.replace(/[a-z]/g, '').length === values.lastName.length\n ? 'Please enter a valid last name'\n : '';\n\n const errW =\n values.website && !WEBSITE.test(values.website) ? 'Website format is not valid. Eg. www.artifact.com' : '';\n const errP =\n cleanPhoneNumber(values.phoneNumber).length !== 10 && cleanPhoneNumber(values.phoneNumber).length !== 0\n ? 'Invalid phone number'\n : '';\n\n setErrors({\n firstName: errFN,\n lastName: errLN,\n website: errW,\n phoneNumber: errP,\n });\n };\n\n const onSave = (): void => {\n if (errors.firstName !== '' || errors.lastName !== '' || errors.website !== '' || errors.phoneNumber !== '') {\n return;\n }\n setIsLoading(true);\n const payload = {\n firstName: values.firstName,\n lastName: values.lastName,\n title: values.title,\n description: values.description,\n organization: values.organization,\n website: values.website,\n address: values.address,\n phoneNumber: values.phoneNumber,\n currencyId: values.currencyId === -1 ? null : values.currencyId,\n countryId: values.countryId === -1 ? null : values.countryId,\n stateId: values.stateId === -1 ? null : values.stateId,\n cityId: values.cityId === -1 ? null : values.cityId,\n };\n UserApi.updateUserProfile(payload, userContext.user?.id || 0)\n .then((_res: any) => {\n setIsLoading(false);\n history.go(0);\n utilsContext.addSnackbar('success', 'Your profile information was updated.');\n })\n .catch((error: any) => {\n console.log(error);\n console.error(error.response);\n utilsContext.addSnackbar(\n 'error',\n 'Sorry, there was an error and we were unable to save your information.',\n );\n });\n };\n\n const getCountries = (): void => {\n CommonApi.getCountries()\n .then((res: any) => {\n setCountries(res.data);\n })\n .catch((error: any) => {\n console.error(error.response);\n });\n };\n\n const getStates = (countryId: number): void => {\n CommonApi.getStates(countryId)\n .then((res: any) => {\n setStates(res.data);\n })\n .catch((error: any) => {\n console.error(error.response);\n });\n };\n\n const getCities = (stateId: number): void => {\n CommonApi.getCities(stateId)\n .then((res: any) => {\n setCities(res.data);\n })\n .catch((error: any) => {\n console.error(error.response);\n });\n };\n\n const getCurrencies = (): void => {\n CommonApi.getCurrencies()\n .then((res: any) => {\n setCurrencies(res.data);\n })\n .catch((error: any) => {\n console.error(error.response);\n });\n };\n\n //checks if there have been changes made to the user\n const shouldDisableSaveButton = (): boolean => {\n for (const key of Object.keys(values)) {\n if (!['state', 'country', 'city', 'currencyId', 'stateId', 'countryId', 'cityId'].includes(key)) {\n if (values[key as keyof typeof values] !== userContext.user?.[key as keyof typeof userContext.user]) {\n return false;\n }\n }\n }\n\n if (values.stateId !== userContext.user?.state?.id) {\n if (values.stateId === -1) {\n if (userContext.user?.state) {\n return false;\n }\n } else {\n return false;\n }\n }\n if (values.cityId !== userContext.user?.city?.id) {\n if (values.cityId === -1) {\n if (userContext.user?.city) {\n return false;\n }\n } else {\n return false;\n }\n }\n if (values.countryId !== userContext.user?.country?.id) {\n if (values.countryId === -1) {\n if (userContext.user?.country) {\n return false;\n }\n } else {\n return false;\n }\n }\n if (values.currencyId !== userContext.user?.currency?.id) {\n if (values.currencyId === -1) {\n if (userContext.user?.currency) {\n return false;\n }\n } else {\n return false;\n }\n }\n\n return true;\n };\n\n return (\n <>\n \n history.goBack()}\n >\n Cancel\n \n\n \n {isLoading && }\n {!isLoading && }\n Save\n \n \n\n \n \n My Profile\n \n\n \n <>\n \n First Name\n \n setValues({ ...values, firstName: e.target.value })}\n onFocus={() => setOnFocus('firstName')}\n onBlur={() => {\n setOnFocus('');\n manageErrors();\n }}\n />\n \n\n <>\n \n Last Name\n \n setValues({ ...values, lastName: e.target.value })}\n onFocus={() => setOnFocus('lastName')}\n onBlur={() => {\n setOnFocus('');\n manageErrors();\n }}\n />\n \n\n <>\n \n Email\n \n \n {(userContext.user?.registerType === RegisterTypesEnum.Web ||\n userContext.user?.registerType === RegisterTypesEnum.Mobile ||\n userContext.user?.registerType === RegisterTypesEnum.System ||\n !userContext.user?.email) && (\n \n toggleChangeEmailModal(true)}>\n {userContext.user?.email ? 'Change Email' : 'Set Email'}\n \n \n )}\n \n\n <>\n \n Title\n \n setValues({ ...values, title: e.target.value })}\n onFocus={() => setOnFocus('title')}\n onBlur={() => {\n setOnFocus('');\n }}\n />\n \n\n <>\n \n Phone Number\n \n setValues({ ...values, phoneNumber: e.target.value })}\n disabled={false}\n onFocus={() => setOnFocus('phoneNumber')}\n onBlur={() => {\n setOnFocus('');\n manageErrors();\n }}\n >\n {(inputProps: any) => (\n \n )}\n \n \n\n <>\n \n Bio\n \n setValues({ ...values, description: e.target.value })}\n onFocus={() => setOnFocus('description')}\n onBlur={() => {\n setOnFocus('');\n }}\n />\n \n\n <>\n \n Address\n \n setValues({ ...values, address: e.target.value })}\n onFocus={() => setOnFocus('address')}\n onBlur={() => {\n setOnFocus('');\n }}\n />\n \n\n \n \n <>\n \n Country\n \n setOnFocus('country')}\n onBlur={() => {\n setOnFocus('');\n }}\n onChange={(e) => {\n setValues({\n ...values,\n countryId: Number(e.target.value),\n stateId: -1,\n cityId: -1,\n });\n getStates(Number(e.target.value));\n setCities([]);\n }}\n >\n \n None\n \n {countries.map((c) => (\n \n {c.name}\n \n ))}\n \n \n \n\n \n <>\n \n State\n \n setOnFocus('state')}\n onBlur={() => {\n setOnFocus('');\n }}\n onChange={(e) => {\n setValues({\n ...values,\n stateId: Number(e.target.value),\n cityId: -1,\n });\n getCities(Number(e.target.value));\n }}\n >\n \n None\n \n {states.map((c) => (\n \n {c.name}\n \n ))}\n \n \n \n\n \n <>\n \n City\n \n setOnFocus('city')}\n onBlur={() => {\n setOnFocus('');\n }}\n onChange={(e) => {\n setValues({ ...values, cityId: Number(e.target.value) });\n }}\n >\n \n None\n \n {cities.map((c) => (\n \n {c.name}\n \n ))}\n \n \n \n \n\n <>\n \n Organization\n \n setValues({ ...values, organization: e.target.value })}\n onFocus={() => setOnFocus('organization')}\n onBlur={() => {\n setOnFocus('');\n }}\n />\n \n\n <>\n \n Website\n \n setValues({ ...values, website: e.target.value })}\n onFocus={() => setOnFocus('website')}\n onBlur={() => {\n setOnFocus('');\n manageErrors();\n }}\n />\n \n\n <>\n \n Currency\n \n setOnFocus('currency')}\n onBlur={() => {\n setOnFocus('');\n }}\n onChange={(e) => setValues({ ...values, currencyId: Number(e.target.value) })}\n >\n \n None\n \n {currencies.map((c) => (\n \n {c.code} - {c.name}\n \n ))}\n \n \n \n\n {(userContext.user?.registerType === RegisterTypesEnum.Web ||\n userContext.user?.registerType === RegisterTypesEnum.Mobile ||\n userContext.user?.registerType === RegisterTypesEnum.System) && (\n <>\n Settings\n\n \n <>\n \n Password\n \n \n \n \n toggleChangePasswordModal(true)}>\n Change Password\n \n \n \n \n )}\n\n \n\n toggleChangePasswordModal(false)}\n userEmail={userContext.user?.email}\n forChangePassword={true}\n />\n\n toggleChangeEmailModal(false)}\n userEmail={userContext.user?.email}\n />\n \n \n );\n};\n","import React, { useContext, useEffect, useState } from 'react';\nimport { Box, Container, Grid, ThemeOptions } from '@material-ui/core';\n\nimport '../../../styles/user-profile.less';\n\nimport { Lightbox } from './Lightbox';\nimport { UserProfileForm } from './UserProfileForm';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { SortObjectsOptions } from '../../../../../core/enums';\nimport { ObjectApi } from 'core/api/consumer';\nimport { UtilsContext } from 'core/context/utils.context';\nimport { UserContext } from 'core/context/user';\n\nexport const useStyles = makeStyles((theme: ThemeOptions) => ({\n leftSection: {\n borderRightColor: `${theme.divider.main} !important`,\n },\n}));\n\nexport const CollectorProfile: React.FC = () => {\n const classes = useStyles();\n\n const utilsContext = useContext(UtilsContext);\n const userContext = useContext(UserContext);\n\n const [stats, setStats] = useState({ totalObjects: 0, totalValue: 0 });\n\n useEffect(() => {\n if (userContext.user?.role === 'Collector') {\n ObjectApi.getMyObjects(1, 5, SortObjectsOptions.DateCreated, false)\n .then((res: any) => {\n setStats({\n totalObjects: res.data.totalCount,\n totalValue: res.data.totalValue,\n });\n })\n .catch((error: any) => {\n console.error(error.response);\n utilsContext.addSnackbar(\n 'error',\n 'Sorry, there was an error and we were unable to display your objects statistics.',\n );\n });\n }\n }, []);\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import {makeStyles} from \"@material-ui/styles\";\nimport {Theme} from \"@material-ui/core\";\n\nexport const rootStyles = makeStyles((theme: Theme) => ({\n root: {\n padding: '15px 10px 30px 15px',\n },\n statistics: {\n position: 'fixed',\n marginTop: -15,\n marginLeft: 15,\n [\"@media (max-width:1280px)\"]: {\n backgroundColor: theme.rootBackground.main,\n zIndex: 1,\n width: '100%',\n marginTop: 0,\n top: 65,\n paddingTop: 10,\n marginLeft: -3,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n },\n },\n pagination: {\n marginTop: 10,\n marginLeft: -10,\n [\"@media (max-width:1280px)\"]: {\n marginRight: 10,\n }\n },\n feed: {\n [\"@media (max-width:1280px)\"]: {\n marginTop: 50,\n }\n }\n}))\n\nexport const emptyStyles = makeStyles({\n root: {\n display: 'flex',\n alignItems: 'center',\n height: 'calc(100vh - 65px)',\n },\n content: {\n margin: 'auto',\n textAlign: 'center',\n },\n icon: {\n marginBottom: 30,\n },\n typography: {\n marginBottom: 50,\n fontSize: 20,\n maxWidth: 525,\n lineHeight: 1,\n },\n});\n","import {useContext, useState} from \"react\";\nimport {useHistory} from \"react-router-dom\";\n\nimport {CommunityFeedApi} from \"core/api/consumer\";\nimport {ICommunityFeedArtifact} from \"../types\";\nimport {AppRoutes} from \"core/helpers\";\n\nimport {UtilsContext} from \"core/context/utils.context\";\nimport {usePagination} from \"core/hooks/use-pagination.hook\";\n\nexport const useFeedData = (): any => {\n\n const utilsContext = useContext(UtilsContext);\n const history = useHistory();\n\n const [feedData, setFeedData] = useState([]);\n\n const {pagination, setPagination} = usePagination();\n\n const getFeedData = (page: number, size: number): void => {\n utilsContext.setAppLoaderState(true);\n \n CommunityFeedApi.getCommunityFeedObjects(page, size)\n .then((res: any) => {\n setFeedData(mapObjects(res.data?.data || []));\n setPagination({\n ...pagination,\n page,\n size,\n totalCount: res.data.totalCount,\n numberOfPages: Math.ceil(res.data.totalCount/res.data.size)\n });\n window.scrollTo(0, 0);\n utilsContext.setAppLoaderState(false);\n })\n .catch((error: any) => {\n console.error(error.response);\n utilsContext.addSnackbar('error');\n history.push(AppRoutes.MY_OBJECTS);\n utilsContext.setAppLoaderState(false);\n })\n }\n\n return {\n feedData,\n getFeedData,\n pagination,\n }\n\n}\n\nconst mapObjects = (data: any): ICommunityFeedArtifact[] => {\n return data.map((a: any) => {\n return {\n id: a.id,\n publicFeedId: a.publicFeedId,\n title: a.title,\n description: a.description,\n photos: a.photos || [],\n offersEnabled: a.offersEnabled,\n totalCommentsCount: a.totalCommentsCount,\n collector: {\n userId: a.collector.userId\n },\n }\n })\n}\n","import React from \"react\";\nimport {ThemeProvider} from '@material-ui/core/styles'\nimport {Box, Typography} from \"@material-ui/core\";\n\nimport {emptyTheme} from \"assets/themes/components/empty-theme\";\nimport {emptyStyles} from \"../styles/root.style\";\n\nimport {ReactComponent as EmptyPageIcon} from \"assets/images/empty-page.svg\";\n\nexport const EmptyFeed: React.FC = () => {\n\n const classes = emptyStyles();\n\n return ( \n \n \n
    \n \n\n \n The Community Feed is empty at the moment. Please come back later.\n \n
    \n
    \n
    \n )\n}\n","import {makeStyles} from \"@material-ui/styles\";\nimport {Theme} from \"@material-ui/core\";\n\nexport const artifactCardStyles = makeStyles((theme: Theme) => ({\n root: {\n backgroundColor: theme.rootBackground.cardBackground,\n marginBottom: 35,\n padding: 30,\n maxWidth: 700,\n margin: 'auto',\n },\n artifactPhoto: {\n width: '100%',\n maxHeight: 600,\n objectFit: 'cover',\n cursor: 'pointer',\n [\"@media (max-width:1280px)\"]: { maxHeight: 400 },\n },\n artifactTitle: {\n fontSize: 20,\n fontWeight: 600,\n },\n artifactSubtitle: {\n fontSize: 15,\n color: theme.formLabel.main,\n opacity: 0.9,\n lineHeight: 1.3,\n marginTop: 10,\n marginBottom: 15,\n },\n divider: {\n width: '100%',\n marginTop: 10,\n marginBottom: 10,\n backgroundColor: theme.divider.main,\n },\n showMore: {\n cursor: 'pointer',\n color: \"#029BFE\"\n },\n commentsContainer: {\n maxHeight: 300,\n overflow: 'auto',\n marginBottom: 5,\n }\n}))\n","import {makeStyles} from \"@material-ui/styles\";\nimport {Theme} from \"@material-ui/core\";\n\nexport const commentsStyles = makeStyles((theme: Theme) => ({\n divider: {\n width: '100%',\n marginTop: 10,\n marginBottom: 10,\n backgroundColor: theme.divider.main,\n },\n showMore: {\n cursor: 'pointer',\n color: \"#029BFE\"\n },\n commentsContainer: {\n maxHeight: 300,\n overflow: 'auto',\n marginBottom: 5,\n },\n root: {\n marginBottom: 15,\n marginTop: 15\n },\n name: {\n fontFamily: 'Myriad Pro Semibold',\n lineHeight: 1,\n display: 'flex',\n alignItems: 'center',\n },\n date: {\n fontSize: 14,\n marginLeft: 10,\n color: theme.formLabel.main,\n opacity: 0.8,\n fontFamily: 'Myriad Pro Regular',\n },\n text: {\n fontSize: 15,\n color: theme.formLabel.main,\n opacity: 1,\n lineHeight: 1.3,\n },\n deleteIcon: {\n marginLeft: 10,\n width: 18,\n cursor: 'pointer',\n },\n editIcon: {\n marginLeft: 10,\n width: 18,\n cursor: 'pointer',\n },\n saveIcon: {\n marginLeft: 10,\n width: 18,\n cursor: 'pointer',\n color: '#FE6502'\n },\n textarea: {\n marginTop: 5\n }\n}))\n\nexport const addCommentStyles = makeStyles({\n root: {\n marginTop: 15,\n },\n label: {\n marginBottom: 15,\n fontSize: 14,\n },\n textarea: {\n width: '96%',\n [\"@media (max-width:960px)\"]: { width: '100%' },\n },\n button: {\n float: 'right',\n height: 55,\n padding: '0px 10px',\n fontWeight: 300,\n fontSize: 15,\n [\"@media (max-width:960px)\"]: { height: 35, width: 100 },\n }\n});\n","import React, {useState} from \"react\";\nimport moment from \"moment\";\nimport {Box, TextField, Typography} from \"@material-ui/core\";\n\nimport {commentsStyles} from \"../../styles/comments.styles\";\n\nimport DeleteForeverIcon from \"@material-ui/icons/DeleteForever\";\nimport EditIcon from \"@material-ui/icons/Edit\";\nimport ClearIcon from \"@material-ui/icons/Clear\";\nimport SaveIcon from \"@material-ui/icons/Save\";\n\nimport {ConfirmDeleteModal} from \"components/_others\";\nimport {IObjectComment} from \"types\";\n\ntype CommentDetailsProps = {\n comment: IObjectComment;\n isAllowedToDelete: boolean;\n isAllowedToEdit: boolean;\n onDeleteComment: (commentId: number) => Promise;\n onEditComment: (commentId: number, comment: string) => Promise;\n}\n\nexport const CommentDetails: React.FC = (\n {isAllowedToDelete, isAllowedToEdit, comment, onDeleteComment, onEditComment}\n) => {\n\n const classes = commentsStyles();\n\n const [displayFullComment, toggleFullComment] = useState(false);\n const [displayConfirmDelete, toggleConfirmDelete] = useState(false);\n const [commentText, setCommentText] = useState(comment.text);\n const [onEditMode, setOnEditMode] = useState(false);\n\n const onDelete = (): void => {\n void onDeleteComment(comment.id).then((res: boolean) => {\n if(res) {\n toggleConfirmDelete(false);\n }\n })\n }\n\n const onEdit = (): void => {\n void onEditComment(comment.id, commentText).then((res: boolean) => {\n if(res) {\n setOnEditMode(false);\n }\n })\n }\n\n return (\n \n\n \n {comment.authorFirstName} {comment.authorLastName}\n \n {' '}{moment(comment.dateCreated).format('MM/DD/YYYY')}\n \n {\n onEditMode &&\n onEdit()}\n />\n }\n {\n onEditMode &&\n {setOnEditMode(false); setCommentText(comment.text)}}\n />\n }\n {\n isAllowedToEdit && !onEditMode &&\n setOnEditMode(true)}\n />\n }\n {\n isAllowedToDelete && !onEditMode &&\n toggleConfirmDelete(true)}\n />\n }\n\n \n\n \n {\n !onEditMode && commentText.length > 300 && !displayFullComment &&\n <>\n {commentText.substr(0, 300)}\n toggleFullComment(true)}\n className={classes.showMore}\n >\n {' '}...see more\n \n \n }\n {\n !onEditMode && (commentText.length <= 300 || displayFullComment) &&\n <>\n {commentText}\n \n }\n {\n onEditMode &&\n setCommentText(e.target.value)}\n rows={2}\n rowsMax={5}\n inputProps={{ maxLength: 500 }}\n variant=\"outlined\"\n />\n }\n \n\n {\n displayConfirmDelete &&\n toggleConfirmDelete(false)}\n onConfirm={() => onDelete()}\n />\n }\n \n )\n}\n","import React, { useState } from \"react\";\nimport { Button, Grid, InputLabel, TextField } from \"@material-ui/core\";\n\nimport ChatBubbleIcon from '@material-ui/icons/ChatBubble';\nimport {addCommentStyles} from \"../../styles/comments.styles\";\n\ntype AddCommentProps = {\n id: number;\n onAddNewComment: (objectId: number, comment: string) => Promise;\n}\n\nexport const AddComment: React.FC = ({id, onAddNewComment}) => {\n\n const classes = addCommentStyles();\n\n const [comment, setComment] = useState('');\n\n const addComment = (): void => {\n\n if(!comment?.trim().length) {\n return;\n }\n\n onAddComment();\n setComment('');\n }\n\n const onAddComment = (): void => {\n void onAddNewComment(id, comment).then((res: boolean) => {\n if(res) {\n setComment('');\n }\n })\n }\n\n const handleKeyPress = (key: string): void => {\n if(key === 'Enter') {\n addComment();\n }\n }\n\n return (\n
    \n \n Add a comment\n \n\n \n \n setComment(e.target.value)}\n onKeyPress={(e: any) => handleKeyPress(e.key)}\n rows={2}\n rowsMax={5}\n inputProps={{ maxLength: 1000 }}\n variant=\"outlined\"\n className={classes.textarea}\n />\n \n \n addComment()}\n >\n \n \n \n \n
    \n )\n}\n\n\n","import React from \"react\";\nimport {Box, Divider, Typography} from \"@material-ui/core\";\n\nimport {commentsStyles} from \"../../styles/comments.styles\";\n\nimport {ICommunityFeedArtifact} from \"../../types\";\nimport {IObjectComment} from \"types\";\nimport {useObjectCommentsData} from \"scenes/consumer/_hooks\";\n\nimport {CommentDetails} from \"./CommentDetails\";\nimport {AddComment} from \"./AddComment\";\n\ntype CommentsProps = {\n artifact: ICommunityFeedArtifact;\n}\n\nexport const Comments: React.FC = ({artifact}) => {\n\n const classes = commentsStyles();\n\n const {\n comments,\n currentPage,\n hasMoreComments,\n getMoreComments,\n addNewComment,\n editComment,\n deleteComment,\n isAllowedToDelete,\n isAllowedToEdit\n } = useObjectCommentsData(artifact.id, 3);\n\n return (\n \n {\n comments?.length > 0 &&\n <>\n \n\n \n {\n comments.map((c: IObjectComment) => (\n \n ))\n }\n \n \n }\n\n {\n artifact.totalCommentsCount > 0 && currentPage === 0 &&\n getMoreComments()}\n >\n {artifact.totalCommentsCount} {artifact.totalCommentsCount === 1 ? ' comment' : 'comments'}\n \n }\n\n {\n hasMoreComments &&\n getMoreComments()}\n >\n Show more comments\n \n }\n\n \n\n \n \n )\n}\n\n\n","import {useContext, useState} from \"react\";\nimport {IObjectComment} from \"../../../types\";\nimport {ObjectCommentsApi} from \"core/api/object-comments.api\";\nimport {UtilsContext} from \"core/context/utils.context\";\nimport {UserContext} from \"core/context/user\";\n\nexport const useObjectCommentsData = (objectId: number, pageSize: number): any => {\n\n const utilsContext = useContext(UtilsContext);\n const userContext = useContext(UserContext);\n\n const [comments, setComments] = useState([]);\n const [currentPage, setCurrentPage] = useState(0);\n const [hasMoreComments, setHasMoreComments] = useState(false);\n\n const getMoreComments = (): void => {\n setCurrentPage(currentPage+1);\n\n ObjectCommentsApi.getObjectComments(objectId, currentPage+1, pageSize)\n .then((res: any) => {\n const newComments = comments;\n res.data?.data.forEach((comment: IObjectComment) => {\n if(newComments?.findIndex(c => c.id === comment.id) === -1) {\n newComments.push(comment);\n }\n })\n setComments(newComments.slice());\n setHasMoreComments(res.data.totalCount > newComments.length);\n })\n .catch((error: any) => {\n console.error(error.response);\n utilsContext.addSnackbar('error');\n })\n }\n\n const addNewComment = async (objectId: number, comment: string): Promise => {\n return await ObjectCommentsApi.addComment(objectId, comment)\n .then((res: any) => {\n const newComments = comments;\n newComments.unshift(res.data);\n setComments(newComments.slice());\n return true;\n })\n .catch((error: any) => {\n console.error(error.response);\n utilsContext.addSnackbar('error');\n return false;\n })\n }\n\n const editComment = async (commentId: number, comment: string): Promise => {\n return ObjectCommentsApi.editComment(commentId, comment)\n .then(() => {\n const commentIndex = comments.findIndex(c => c.id === commentId);\n if(commentIndex > -1) {\n const newComments = comments;\n newComments[commentIndex].text = comment;\n setComments(newComments.slice());\n }\n return true;\n })\n .catch((error: any) => {\n console.error(error.response);\n utilsContext.addSnackbar('error');\n return false;\n })\n }\n\n const deleteComment = async (commentId: number): Promise => {\n return await ObjectCommentsApi.deleteComment(commentId)\n .then(() => {\n const commentIndex = comments.findIndex(c => c.id === commentId);\n if(commentIndex > -1) {\n const newComments = comments;\n newComments.splice(commentIndex, 1);\n setComments(newComments.slice());\n }\n return true;\n })\n .catch((error: any) => {\n console.error(error.response);\n utilsContext.addSnackbar('error');\n return false;\n })\n }\n\n const isAllowedToDelete = (objectOwnerId: number, commentCreatedById: number): boolean => {\n return userContext.user?.id === commentCreatedById || userContext.user?.id === objectOwnerId;\n }\n\n const isAllowedToEdit = (commentCreatedById: number): boolean => {\n return userContext.user?.id === commentCreatedById;\n }\n\n return {\n comments,\n currentPage,\n hasMoreComments,\n getMoreComments,\n addNewComment,\n editComment,\n deleteComment,\n isAllowedToDelete,\n isAllowedToEdit,\n }\n}\n","import React, { useState } from 'react';\nimport { Box } from '@material-ui/core';\n\nimport imagePlaceholder from 'assets/placeholders/artifact-placeholder.png';\n\nimport { getPhotoUrl } from 'core/helpers';\nimport { FileSize } from 'core/enums';\nimport { IPhoto } from 'core/context/consumer/objectDetails';\n\nimport { PhotoLightbox } from 'components/_consumer/ObjectDetails/Gallery/PhotoLightbox';\nimport { artifactCardStyles } from '../../styles/artifact-card.style';\n\ntype PhotosProps = {\n photos: IPhoto[];\n artifactId: number;\n};\n\nexport const Photos: React.FC = ({ photos, artifactId }) => {\n const classes = artifactCardStyles();\n\n const [lightbox, setLightbox] = useState(-1);\n\n const mainPhoto = photos.filter((photo) => photo.isPrimary)[0]?.url ?? photos[0]?.url ?? '';\n\n return (\n \n {\n if (mainPhoto) {\n setLightbox(0);\n }\n }}\n />\n\n setLightbox(-1)}\n />\n \n );\n};\n","import React, {useState} from \"react\";\nimport {Box, Typography} from \"@material-ui/core\";\nimport {artifactCardStyles} from \"../../styles/artifact-card.style\";\n\ntype DetailsProps = {\n title: string;\n description: string;\n}\n\nexport const Details: React.FC = ({title, description}) => {\n\n const classes = artifactCardStyles();\n\n const [displayFullDescription, toggleFullDescription] = useState(false);\n\n return (\n \n \n {title}\n \n \n {\n description?.length > 180 && !displayFullDescription &&\n <>\n {description?.substr(0, 180)}\n toggleFullDescription(true)}\n className={classes.showMore}\n >\n {' '}...see more\n \n \n }\n {\n (description?.length <= 180 || displayFullDescription) &&\n <>\n {description}\n \n }\n \n \n )\n}\n","import {makeStyles} from \"@material-ui/styles\";\nimport {Theme} from \"@material-ui/core\";\n\nexport const makeOfferStyles = makeStyles((theme: Theme) => ({\n formContainer: {\n marginTop: 30,\n },\n formControl: {\n marginBottom: 20,\n },\n formLabel: {\n color: theme.formLabel.main,\n fontSize: 14,\n marginBottom: 5,\n },\n focusLabel: {\n color: theme.palette?.primary?.main,\n }\n}))\n\nexport const makeOfferBtnStyles = makeStyles((theme: Theme) => ({\n root: {\n backgroundColor: '#707070',\n color: 'white',\n fontSize: 13,\n padding: '0px 10px',\n '&:hover': {\n backgroundColor: theme.palette?.primary?.main,\n }\n }\n}))\n","import React from \"react\";\n\nimport {Button} from \"@material-ui/core\";\nimport {makeOfferBtnStyles} from \"../../styles/make-offer.style\";\n\ntype MakeAnOfferButtonProps = {\n onClick: () => void;\n}\n\nexport const MakeAnOfferButton: React.FC = ({onClick}) => {\n\n const classes = makeOfferBtnStyles();\n\n return (\n \n Make an Offer\n \n )\n}\n","import React, {useState} from \"react\";\nimport {\n Box,\n Button,\n InputAdornment,\n Modal,\n Typography,\n Backdrop,\n CircularProgress,\n Fade,\n InputLabel,\n TextField,\n} from \"@material-ui/core\";\n\nimport {modalStyles} from \"components/_others/modals/modal-styles\";\nimport {makeOfferStyles} from \"../../styles/make-offer.style\";\nimport CloseIcon from \"@material-ui/icons/Close\";\n\nimport {ICommunityFeedArtifact} from \"../../types\";\nimport {useMakeOffer} from \"../../hooks/use-make-offer.hook\";\n\nimport {ModalHeader} from \"components/_others/modals/ModalHeader\";\nimport {ObjectHighlights} from \"components/object/ObjectHighlights\";\nimport {NumberInput} from \"components/_others/NumberInput\";\n\n\ntype MakeAnOfferProps = {\n artifact: ICommunityFeedArtifact;\n open: boolean;\n handleClose: () => void;\n}\n\nexport const MakeAnOffer: React.FC = ({artifact, open, handleClose}) => {\n\n const modalClasses = modalStyles();\n const classes = makeOfferStyles();\n\n const [values, setValues] = useState({amount: '', message: ''});\n const [onFocus, setOnFocus] = useState('');\n\n const {isMakeOfferLoading, makeOffer} = useMakeOffer();\n\n const sendOffer = (): void => {\n makeOffer(artifact.publicFeedId, values.amount, values.message).then((res: boolean) => {\n if(res) {\n handleClose();\n }\n })\n }\n\n return (\n \n \n
    \n\n handleClose()}\n />\n\n \n You can send a proposal for this collector to buy his object.\n Make sure you add also a message to this request.\n \n\n 0 ? artifact.photos[0].url : null}\n title={artifact.title}\n description={artifact.description}\n />\n\n \n \n \n Amount\n \n $,\n inputComponent: NumberInput,\n }}\n value={values.amount}\n onChange={(e: any) => setValues({\n ...values,\n amount: e.target.value,\n })}\n onFocus={() => setOnFocus('amount')}\n onBlur={() => setOnFocus('')}\n />\n \n\n \n \n Add a message to your offer\n \n setValues({...values, message: e.target.value})}\n onFocus={() => setOnFocus('message')}\n onBlur={() => setOnFocus('')}\n />\n \n \n\n \n \n Cancel\n \n\n sendOffer()}\n >\n {\n isMakeOfferLoading && \n }\n Send Offer\n \n \n
    \n
    \n \n )\n}\n","import {useContext, useState} from \"react\";\nimport {CommunityFeedApi} from \"core/api/consumer\";\nimport {UtilsContext} from \"core/context/utils.context\";\n\nexport const useMakeOffer = (): any => {\n\n const utilsContext = useContext(UtilsContext);\n\n const [isMakeOfferLoading, setIsLoading] = useState(false);\n\n const makeOffer = async (objectId: number, amount: string, message: string): Promise => {\n setIsLoading(true);\n\n return await CommunityFeedApi.postCommunityFeedOffer(objectId, {amount, message})\n .then(() => {\n setIsLoading(false);\n utilsContext.addSnackbar('success', 'Thank you for your offer!');\n return true;\n })\n .catch((error: any) => {\n console.error(error.response);\n setIsLoading(false);\n utilsContext.addSnackbar('error');\n return false;\n })\n }\n\n return {\n isMakeOfferLoading,\n makeOffer\n }\n}\n","import React, {useContext, useState} from \"react\";\nimport {Box, Card} from \"@material-ui/core\";\n\nimport {artifactCardStyles} from \"../../styles/artifact-card.style\";\n\nimport {UserContext} from \"core/context/user\";\nimport {ICommunityFeedArtifact} from \"../../types\";\n\nimport {Comments} from \"../Comments\";\nimport {Photos} from \"./Photos\";\nimport {Details} from \"./Details\";\nimport {MakeAnOfferButton} from \"../MakeAnOffer/MakeAnOfferButton\";\nimport {MakeAnOffer} from \"../MakeAnOffer\";\n\ntype ArtifactCardProps = {\n artifact: ICommunityFeedArtifact;\n}\n\nexport const ArtifactCard: React.FC = ({artifact}) => {\n\n const classes = artifactCardStyles();\n\n const userContext = useContext(UserContext);\n\n const [displayMakeAnOfferModal, toggleMakeAnOfferModal] = useState(false);\n\n return (\n \n\n \n {\n artifact.offersEnabled && userContext.user?.id !== artifact.collector.userId &&\n \n toggleMakeAnOfferModal(true)}\n />\n {\n displayMakeAnOfferModal &&\n toggleMakeAnOfferModal(false)}\n />\n }\n \n\n }\n \n\n\n \n\n \n\n \n\n \n )\n}\n","import React, {useEffect} from \"react\";\nimport {useHistory} from \"react-router-dom\";\nimport {Box, Container} from \"@material-ui/core\";\n\nimport {rootStyles} from \"./styles/root.style\";\n\nimport Pagination from \"@material-ui/lab/Pagination\";\n\nimport {AppRoutes} from \"core/helpers\";\nimport {ICommunityFeedArtifact} from \"./types\";\nimport {getCurrentPageFromUrl} from \"core/helpers/utils\";\nimport {useFeedData} from \"./hooks/use-feed-data.hook\";\n\nimport {EmptyFeed} from \"./components/EmptyFeed\";\nimport {ArtifactCard} from \"./components/ArtifactCard\";\nimport {Statistics} from \"../_components/Statistics\";\n\nexport const CommunityFeed: React.FC = () => {\n\n const classes = rootStyles();\n\n const history = useHistory();\n\n const {feedData, getFeedData, pagination} = useFeedData();\n\n useEffect(() => {\n const page = getCurrentPageFromUrl();\n getFeedData(page, 50);\n }, [])\n\n const handlePageChange = (page: number): void => {\n history.push(`${AppRoutes.PUBLIC_FEED}?page=${page}`);\n getFeedData(page, 50);\n }\n\n return (\n \n {\n feedData?.length > 0 &&\n \n \n\n \n\n {\n pagination.numberOfPages > 1 &&\n \n handlePageChange(value)}\n />\n \n }\n \n\n \n {\n feedData.map((artifact: ICommunityFeedArtifact) => (\n \n ))\n }\n \n \n }\n\n {\n feedData?.length === 0 &&\n \n }\n \n )\n}\n","import {makeStyles} from \"@material-ui/styles\";\nimport {Theme} from \"@material-ui/core\";\n\nexport const rootStyles = makeStyles((_theme: Theme) => ({\n root: {\n padding: '25px 30px 15px',\n [\"@media (max-width:855px)\"]: { padding: '25px 15px 15px' },\n },\n widgetsContainer: {\n marginTop: 40,\n maxWidth: 900,\n display: 'flex',\n justifyContent: 'space-between',\n [\"@media (max-width:855px)\"]: { display: 'block' },\n },\n objectsContainer: {\n marginTop: 20,\n maxWidth: 900,\n }\n}));\n","import {makeStyles} from \"@material-ui/styles\";\nimport {Theme} from \"@material-ui/core\";\n\nexport const objectsListStyles = makeStyles((theme: Theme) => ({\n title: {\n fontSize: 13,\n color: theme.formLabel.main,\n marginBottom: 5,\n },\n objectsList: {\n padding: 10,\n borderColor: theme.rootBackground.secondaryBorder,\n border: '1px solid',\n backgroundColor: theme.rootBackground.cardBackground,\n borderRadius: 2,\n }\n}));\n\nexport const objectStyles = makeStyles((theme: Theme) => ({\n root: {\n backgroundColor: theme.rootBackground.secondary,\n marginBottom: 12,\n display: 'flex',\n height: 120,\n '&:last-child': {\n marginBottom: 0,\n },\n [\"@media (max-width:855px)\"]: { display: 'block', height: 'unset', textAlign: 'center', paddingTop: 10 },\n },\n photo: {\n width: 120,\n height: 120,\n minWidth: 120,\n minHeight: 120,\n objectFit: 'cover',\n },\n detailsBox: {\n padding: 10,\n width: '100%',\n },\n titleBox: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n [\"@media (max-width:855px)\"]: { display: 'block' },\n },\n title: {\n fontSize: 16,\n },\n description: {\n fontSize: 12,\n color: theme.formLabel.main,\n lineHeight: 1.4,\n },\n actionsContainer: {\n display: 'flex',\n alignItems: 'center',\n [\"@media (max-width:855px)\"]: { display: 'block', marginTop: 10 },\n },\n viewObjectBtn: {\n fontSize: 14,\n },\n viewObjectIcon: {\n [\"@media (max-width:855px)\"]: { display: 'none'},\n },\n removeFromFeedBtn: {\n fontSize: 14,\n color: theme.palette.error.main,\n marginRight: 10,\n }\n}));\n","import React, {useState} from \"react\";\nimport {Backdrop, Box, Button, CircularProgress, Fade, Modal, Typography} from \"@material-ui/core\";\n\nimport {modalStyles} from \"components/_others/modals/modal-styles\";\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport DeleteIcon from \"@material-ui/icons/Delete\";\n\nimport {ModalHeader} from \"components/_others/modals/ModalHeader\";\n\nimport {useRemoveFeedObject} from \"./hook\";\n\ntype RemoveFeedObjectModalProps = {\n objectId: number;\n open: boolean;\n handleClose: () => void;\n onRemove: () => void;\n}\n\nexport const RemoveFeedObjectModal: React.FC = (\n {objectId, open, handleClose, onRemove}\n) => {\n\n const classes = modalStyles();\n\n const {isLoading, removeObjectFromFeed} = useRemoveFeedObject(objectId);\n const [hasError, setHasError] = useState(false);\n\n const onConfirm = (): void => {\n setHasError(false);\n removeObjectFromFeed().then((res: boolean) => {\n if(res) {\n onRemove();\n handleClose();\n setHasError(false);\n } else {\n setHasError(true);\n }\n })\n }\n\n return (\n \n \n
    \n\n \n\n \n Are you sure you want to remove this object from the Community Feed?\n \n\n {\n hasError &&\n \n Sorry, there was an error. Please try again later.\n \n }\n\n \n \n Cancel\n \n\n onConfirm()}\n >\n {\n isLoading && \n }\n {\n !isLoading && \n }\n Remove from Community Feed\n \n \n\n
    \n
    \n \n )\n}\n","import {useContext, useState} from \"react\";\nimport {CommunityFeedApi} from \"core/api/consumer\";\nimport {UtilsContext} from \"core/context/utils.context\";\n\nexport const useRemoveFeedObject = (objectId: number): any => {\n\n const utilsContext = useContext(UtilsContext);\n\n const [isLoading, setIsLoading] = useState(false);\n\n const removeObjectFromFeed = async (): Promise => {\n setIsLoading(true);\n\n return await CommunityFeedApi.removeObjectFromCommunityFeed(objectId)\n .then(() => {\n setIsLoading(false);\n utilsContext.addSnackbar('success', 'Success! Your object was removed.');\n return true;\n })\n .catch((error: any) => {\n console.error(error.response);\n setIsLoading(false);\n utilsContext.addSnackbar('error');\n return false;\n })\n }\n\n return {\n isLoading,\n removeObjectFromFeed,\n }\n}\n","import React, { useState } from 'react';\nimport { Link } from 'react-router-dom';\nimport { Box, Button, Typography } from '@material-ui/core';\n\nimport { objectStyles } from '../styles/objects-list.style';\nimport ChevronRightIcon from '@material-ui/icons/ChevronRight';\nimport imagePlaceholder from 'assets/placeholders/artifact-placeholder.png';\n\nimport { AppRoutes, getPhotoUrl } from 'core/helpers';\nimport { FileSize, ReportTypeEnum } from 'core/enums';\nimport { IReportObject } from '../types';\n\nimport { ObjectDetailsProgressBar } from 'scenes/consumer/_components/ObjectDetailsProgressBar';\nimport { RemoveFeedObjectModal } from 'scenes/consumer/_components/RemoveFeedObjectModal';\n\ntype ObjectDetailsProps = {\n object: IReportObject;\n reportType: string;\n onObjectRemove: (id: number) => void;\n};\n\nexport const ObjectDetails: React.FC = ({ object, reportType, onObjectRemove }) => {\n const classes = objectStyles();\n\n const [isRemoveObjectFeedModalOpen, toggleRemoveObjectFeedModal] = useState(false);\n const [isRemovedFromFeed, setIsRemovedFromFeed] = useState(false);\n\n const handleObjectRemove = (): void => {\n onObjectRemove(object.id);\n setIsRemovedFromFeed(true);\n };\n\n return (\n \n \n \n \n \n {object.title?.substring(0, 20)}\n {object.title?.length > 20 ? '...' : ''}\n \n\n \n {reportType === ReportTypeEnum.SharedOnCommunityFeed && !isRemovedFromFeed && (\n toggleRemoveObjectFeedModal(true)}\n >\n Remove from Feed\n \n )}\n {reportType === ReportTypeEnum.MissingDetails && (\n \n )}\n\n \n \n View object \n \n \n \n \n\n \n {object.description?.substring(0, 550)}\n {object.description?.length > 550 ? '...' : ''}\n \n \n\n {isRemoveObjectFeedModalOpen && (\n toggleRemoveObjectFeedModal(false)}\n onRemove={handleObjectRemove}\n />\n )}\n \n );\n};\n","import React from 'react';\nimport { Box, Typography } from '@material-ui/core';\n\nimport { objectsListStyles } from '../styles/objects-list.style';\n\nimport { IReportObject } from '../types';\nimport { ReportTypeEnum } from 'core/enums';\n\nimport { ObjectDetails } from './ObjectDetails';\nimport { Loader } from 'components/_others';\n\ntype ListOfObjectsProps = {\n data: IReportObject[];\n reportType: string;\n isLoading: boolean;\n onObjectRemove: (id: number) => void;\n};\n\nexport const ListOfObjects: React.FC = ({ reportType, data, isLoading, onObjectRemove }) => {\n const classes = objectsListStyles();\n\n return (\n \n \n {reportType === ReportTypeEnum.MissingPhotos && List of objects with 1 photo or less:}\n {reportType === ReportTypeEnum.MissingDetails && List of objects with missing details:}\n {reportType === ReportTypeEnum.SharedOnCommunityFeed && (\n List of objects shared on Community Feed:\n )}\n \n\n \n {!isLoading && (\n <>\n {data?.map((object: IReportObject) => (\n \n ))}\n \n )}\n\n {isLoading && }\n \n \n );\n};\n","import {makeStyles} from \"@material-ui/styles\";\nimport {Theme} from \"@material-ui/core\";\n\nexport const widgetStyles = makeStyles((theme: Theme) => ({\n root: {\n backgroundColor: theme.rootBackground.cardBackground,\n border: '1px solid',\n borderColor: theme.rootBackground.secondaryBorder,\n padding: '10px 15px',\n width: '32%',\n borderRadius: 2,\n [\"@media (max-width:855px)\"]: { width: '100%', marginBottom: 10 },\n },\n selected: {\n borderWidth: 2,\n borderColor: theme.label.text,\n },\n title: {\n color: theme.palette.text.secondary,\n fontSize: 13,\n },\n count: {\n fontWeight: 'bold',\n marginTop: 7,\n },\n flexBox: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'flex-end',\n marginBottom: 10,\n },\n toggleListBtn: {\n backgroundColor: theme.label.main,\n color: theme.label.text,\n fontSize: 15,\n padding: '0 10px',\n \"&:hover\": {\n backgroundColor: theme.rootBackground.secondaryBorder\n }\n },\n selectedBtn: {\n backgroundColor: 'transparent',\n borderColor: theme.label.text,\n },\n expandIcon: {\n width: 18,\n marginLeft: -5,\n },\n circularProgressBox: {\n width: 80,\n height: 80,\n textAlign: 'center',\n },\n}));\n","import React from 'react';\nimport { CircularProgressbar, buildStyles } from 'react-circular-progressbar';\nimport { Box, Button, Typography } from '@material-ui/core';\n\nimport 'react-circular-progressbar/dist/styles.css';\nimport { widgetStyles } from '../styles/widget.style';\n\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport ExpandLessIcon from '@material-ui/icons/ExpandLess';\n\nimport { getStylesForCircularProgress } from '../../_components/ObjectDetailsProgressBar/progress-bars.style';\n\ntype WidgetProps = {\n isLightTheme: boolean;\n isSelected: boolean;\n title: string;\n subtitle: string;\n count: number;\n percentage: number;\n onSelect: () => void;\n};\n\nexport const Widget: React.FC = ({\n isLightTheme,\n isSelected,\n title,\n count,\n subtitle,\n percentage,\n onSelect,\n}) => {\n const widgetClasses = widgetStyles();\n\n return (\n \n {title}\n {subtitle}\n\n \n onSelect()}\n style={count === 0 ? { visibility: 'hidden' } : {}}\n >\n {!isSelected && (\n <>\n Show List\n \n )}\n {isSelected && (\n <>\n Hide List\n \n )}\n \n\n \n \n \n \n \n );\n};\n","import { Box, Container } from '@material-ui/core';\nimport React, { useContext, useEffect, useState } from 'react';\n\nimport { fixedHeaderStyles } from 'assets/styles/fixed-header';\nimport { rootStyles } from './styles/root.style';\n\nimport { UserContext } from 'core/context/user';\nimport { ReportTypeEnum } from 'core/enums';\n\nimport Pagination from '@material-ui/lab/Pagination';\nimport { Statistics } from '../_components/Statistics';\nimport { ListOfObjects } from './components/ListOfObjects';\nimport { Widget } from './components/Widget';\nimport { useReportingData } from './hooks/use-reporting-data.hook';\n\nexport const Reporting: React.FC = () => {\n const classes = rootStyles();\n const fixedHeaderCss = fixedHeaderStyles();\n\n const [selectedReportType, setSelectedReportType] = useState('');\n\n const userContext = useContext(UserContext);\n const {\n objectsData,\n getObjectsData,\n isObjectDataLoading,\n pagination,\n widgetData,\n getWidgetData,\n onRemoveFromCommunityFeed,\n } = useReportingData();\n\n useEffect(() => {\n getWidgetData();\n }, []);\n\n useEffect(() => {\n if (selectedReportType === '') {\n return;\n }\n getObjectsData(1, selectedReportType);\n }, [selectedReportType]);\n\n const selectReportType = (type: string): void => {\n if (selectedReportType === type) {\n setSelectedReportType('');\n return;\n }\n setSelectedReportType(type);\n };\n\n return (\n \n \n \n \n\n \n selectReportType(ReportTypeEnum.MissingPhotos)}\n />\n selectReportType(ReportTypeEnum.MissingDetails)}\n />\n selectReportType(ReportTypeEnum.SharedOnCommunityFeed)}\n />\n \n\n {selectedReportType !== '' && (\n \n \n\n {pagination.numberOfPages > 1 && !isObjectDataLoading && (\n getObjectsData(value, selectedReportType)}\n />\n )}\n \n )}\n \n );\n};\n","import { useContext, useState } from 'react';\nimport { usePagination } from 'core/hooks/use-pagination.hook';\nimport { ReportingApi } from 'core/api/consumer';\nimport { UtilsContext } from 'core/context/utils.context';\n\nexport const useReportingData = (): any => {\n const [isObjectDataLoading, setIsLoading] = useState(false);\n const [objectsData, setObjectsData] = useState([]);\n\n const [widgetData, setWidgetDataData] = useState({\n missingPhotos: {\n count: 0,\n percentage: 0,\n },\n missingDetails: {\n count: 0,\n percentage: 0,\n },\n sharedOnCommunityFeed: {\n count: 0,\n percentage: 0,\n },\n totalCount: 0,\n });\n\n const { pagination, setPagination } = usePagination();\n\n const utilsContext = useContext(UtilsContext);\n\n const getObjectsData = (page: number, reportType: string): void => {\n setIsLoading(true);\n\n ReportingApi.getArtifactsByStatistics(page, pagination.size, reportType)\n .then((res: any) => {\n setObjectsData(res.data.data);\n setPagination({\n ...pagination,\n page,\n totalCount: res.data.totalCount,\n numberOfPages: Math.ceil(res.data.totalCount / res.data.size),\n });\n setIsLoading(false);\n })\n .catch((error: any) => {\n console.error(error.response);\n setIsLoading(false);\n });\n };\n\n const getWidgetData = (): void => {\n utilsContext.setAppLoaderState(true);\n ReportingApi.getReportingStatistics()\n .then((res: any) => {\n setWidgetDataData({\n missingPhotos: {\n count: res.data.onePhotoCount,\n percentage: 100 - Math.round(res.data.onePhotoPercent),\n },\n missingDetails: {\n count: res.data.missingDetailsCount,\n percentage: 100 - Math.round(res.data.missingDetailsPercent),\n },\n sharedOnCommunityFeed: {\n count: res.data.sharedOnPublicFeedCount,\n percentage: Math.round(res.data.sharedOnPublicFeedPercent),\n },\n totalCount: res.data.totalCount,\n });\n utilsContext.setAppLoaderState(false);\n })\n .catch((error: any) => {\n console.error(error.response);\n utilsContext.setAppLoaderState(false);\n utilsContext.addSnackbar('error');\n });\n };\n\n const onRemoveFromCommunityFeed = (_id: number): void => {\n setWidgetDataData({\n ...widgetData,\n sharedOnCommunityFeed: {\n count: widgetData.sharedOnCommunityFeed.count - 1,\n percentage: Math.floor(((widgetData.sharedOnCommunityFeed.count - 1) * 100) / widgetData.totalCount),\n },\n });\n };\n\n return {\n isObjectDataLoading,\n objectsData,\n getObjectsData,\n pagination,\n widgetData,\n getWidgetData,\n onRemoveFromCommunityFeed,\n };\n};\n","import React, {useContext} from \"react\";\nimport { Box } from \"@material-ui/core\";\n\nimport { ConsumerFooter} from \"components/layout/ConsumerFooter\";\n\nimport { AppRoutes } from \"core/helpers\";\nimport { PrivateRoute } from \"components/_others/PrivateRoute\";\nimport { MyObjects } from \"./MyObjects\";\nimport { AddObject } from \"./addObject/scenes/AddObject\";\nimport { ObjectDetails } from \"./objectDetails/scenes/ObjectDetails\";\nimport { SharedWithMeDashboard } from \"./sharedWithMe/scenes/SharedWithMeDashboard\";\nimport { SharedObjectDetails } from \"./sharedWithMe/scenes/SharedObjectDetails\";\nimport { MyCollections } from \"./MyCollections\";\nimport { MyCollectionObjects } from \"./MyCollectionObjects\";\nimport { SearchResults } from \"../shared/SearchResults\";\nimport { CollectorProfile } from \"../auth/scenes/UserProfile/CollectorProfile\";\nimport { Notifications } from \"../auth/scenes/Notifications\";\nimport {CommunityFeed} from \"./CommunityFeed\";\nimport {Reporting} from \"./Reporting\";\nimport {CustomSnackbar} from \"../../components/_others/CustomSnackbar\";\nimport {UtilsContext} from \"../../core/context/utils.context\";\nimport {Loader} from \"../../components\";\n\nexport const CollectorApp: React.FC = () => {\n\n const utilsContext = useContext(UtilsContext);\n\n return (\n \n \n\n {\n utilsContext.appLoader && \n }\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n\n \n\n utilsContext.closeSnackbar()}\n severity={utilsContext.snackbar.severity}\n message={utilsContext.snackbar.text}\n />\n \n )\n}\n","import React from 'react';\n\nimport { Box, Container, Typography } from '@material-ui/core';\n\nexport const PrivacyPolicy: React.FC = () => {\n // const userContext = useContext(UserContext);\n\n // useEffect(() => {\n // userContext.setTheme(false, false);\n // }, [])\n\n return (\n \n \n Privacy Policy\n \n \n Last updated: February 09, 2021\n \n\n \n

    \n This Privacy Policy describes Our policies and procedures on the collection, use and disclosure of\n Your information when You use the Service and tells You about Your privacy rights and how the law\n protects You.\n

    \n

    \n We use Your Personal data to provide and improve the Service. By using the Service, You agree to the\n collection and use of information in accordance with this Privacy Policy.\n

    \n
    \n\n \n

    Interpretation and Definitions

    \n

    Interpretation

    \n

    \n The words of which the initial letter is capitalized have meanings defined under the following\n conditions. The following definitions shall have the same meaning regardless of whether they appear\n in singular or in plural.\n

    \n

    Definitions

    \n

    For the purposes of this Privacy Policy:

    \n
      \n
    • \n

      \n Account means a unique account created for You to access our Service or\n parts of our Service.\n

      \n
    • \n
    • \n

      \n Affiliate means an entity that controls, is controlled by or is under\n common control with a party, where "control" means ownership of 50% or more of the\n shares, equity interest or other securities entitled to vote for election of directors or\n other managing authority.\n

      \n
    • \n
    • \n

      \n Application means the software program provided by the Company downloaded\n by You on any electronic device, named Artifact ID\n

      \n
    • \n
    • \n

      \n Company (referred to as either "the Company", "We",\n "Us" or "Our" in this Agreement) refers to Anidentifier Inc, 77 Van Ness\n Ave, Ste 101-1005.\n

      \n
    • \n
    • \n

      \n Cookies are small files that are placed on Your computer, mobile device or\n any other device by a website, containing the details of Your browsing history on that\n website among its many uses.\n

      \n
    • \n
    • \n

      \n Country refers to: California, United States\n

      \n
    • \n
    • \n

      \n Device means any device that can access the Service such as a computer, a\n cellphone or a digital tablet.\n

      \n
    • \n
    • \n

      \n Personal Data is any information that relates to an identified or\n identifiable individual.\n

      \n
    • \n
    • \n

      \n Service refers to the Application or the Website or both.\n

      \n
    • \n
    • \n

      \n Service Provider means any natural or legal person who processes the data\n on behalf of the Company. It refers to third-party companies or individuals employed by the\n Company to facilitate the Service, to provide the Service on behalf of the Company, to\n perform services related to the Service or to assist the Company in analyzing how the\n Service is used.\n

      \n
    • \n
    • \n

      \n Third-party Social Media Service refers to any website or any social\n network website through which a User can log in or create an account to use the Service.\n

      \n
    • \n
    • \n

      \n Usage Data refers to data collected automatically, either generated by the\n use of the Service or from the Service infrastructure itself (for example, the duration of a\n page visit).\n

      \n
    • \n
    • \n

      \n Website refers to Artifact ID, accessible from\n \n http://artifact.id\n \n

      \n
    • \n
    • \n

      \n You means the individual accessing or using the Service, or the company, or\n other legal entity on behalf of which such individual is accessing or using the Service, as\n applicable.\n

      \n
    • \n
    \n

    Collecting and Using Your Personal Data

    \n

    Types of Data Collected

    \n

    Personal Data

    \n

    \n While using Our Service, We may ask You to provide Us with certain personally identifiable\n information that can be used to contact or identify You. Personally identifiable information may\n include, but is not limited to:\n

    \n
      \n
    • \n

      Email address

      \n
    • \n
    • \n

      Usage Data

      \n
    • \n
    \n

    Usage Data

    \n

    Usage Data is collected automatically when using the Service.

    \n

    \n Usage Data may include information such as Your Device's Internet Protocol address (e.g. IP\n address), browser type, browser version, the pages of our Service that You visit, the time and date\n of Your visit, the time spent on those pages, unique device identifiers and other diagnostic data.\n

    \n

    \n When You access the Service by or through a mobile device, We may collect certain information\n automatically, including, but not limited to, the type of mobile device You use, Your mobile device\n unique ID, the IP address of Your mobile device, Your mobile operating system, the type of mobile\n Internet browser You use, unique device identifiers and other diagnostic data.\n

    \n

    \n We may also collect information that Your browser sends whenever You visit our Service or when You\n access the Service by or through a mobile device.\n

    \n

    Information Collected while Using the Application

    \n

    \n While using Our Application, in order to provide features of Our Application, We may collect, with\n Your prior permission:\n

    \n
      \n
    • Pictures and other information from your Device's camera and photo library
    • \n
    \n

    \n We use this information to provide features of Our Service, to improve and customize Our Service.\n The information may be uploaded to the Company's servers and/or a Service Provider's server or it\n may be simply stored on Your device.\n

    \n

    You can enable or disable access to this information at any time, through Your Device settings.

    \n

    Tracking Technologies and Cookies

    \n

    \n We use Cookies and similar tracking technologies to track the activity on Our Service and store\n certain information. Tracking technologies used are beacons, tags, and scripts to collect and track\n information and to improve and analyze Our Service. The technologies We use may include:\n

    \n
      \n
    • \n Cookies or Browser Cookies. A cookie is a small file placed on Your Device. You\n can instruct Your browser to refuse all Cookies or to indicate when a Cookie is being sent.\n However, if You do not accept Cookies, You may not be able to use some parts of our Service.\n Unless you have adjusted Your browser setting so that it will refuse Cookies, our Service may\n use Cookies.\n
    • \n
    • \n Flash Cookies. Certain features of our Service may use local stored objects (or\n Flash Cookies) to collect and store information about Your preferences or Your activity on our\n Service. Flash Cookies are not managed by the same browser settings as those used for Browser\n Cookies. For more information on how You can delete Flash Cookies, please read "Where can I\n change the settings for disabling, or deleting local shared objects?" available at{' '}\n \n https://helpx.adobe.com/flash-player/kb/disable-local-shared-objects\n -flash.html#main_Where_can_I_change_the_settings_for_disabling__or_deleting_local_shared\n _objects_\n \n
    • \n
    • \n Web Beacons. Certain sections of our Service and our emails may contain small\n electronic files known as web beacons (also referred to as clear gifs, pixel tags, and\n single-pixel gifs) that permit the Company, for example, to count users who have visited those\n pages or opened an email and for other related website statistics (for example, recording the\n popularity of a certain section and verifying system and server integrity).\n
    • \n
    \n

    \n Cookies can be "Persistent" or "Session" Cookies. Persistent Cookies remain on\n Your personal computer or mobile device when You go offline, while Session Cookies are deleted as\n soon as You close Your web browser. You can learn more about cookies here:{' '}\n \n All About Cookies by TermsFeed\n \n .\n

    \n

    We use both Session and Persistent Cookies for the purposes set out below:

    \n
      \n
    • \n

      \n Necessary / Essential Cookies\n

      \n

      Type: Session Cookies

      \n

      Administered by: Us

      \n

      \n Purpose: These Cookies are essential to provide You with services available through the\n Website and to enable You to use some of its features. They help to authenticate users and\n prevent fraudulent use of user accounts. Without these Cookies, the services that You have\n asked for cannot be provided, and We only use these Cookies to provide You with those\n services.\n

      \n
    • \n
    • \n

      \n Cookies Policy / Notice Acceptance Cookies\n

      \n

      Type: Persistent Cookies

      \n

      Administered by: Us

      \n

      Purpose: These Cookies identify if users have accepted the use of cookies on the Website.

      \n
    • \n
    • \n

      \n Functionality Cookies\n

      \n

      Type: Persistent Cookies

      \n

      Administered by: Us

      \n

      \n Purpose: These Cookies allow us to remember choices You make when You use the Website, such\n as remembering your login details or language preference. The purpose of these Cookies is to\n provide You with a more personal experience and to avoid You having to re-enter your\n preferences every time You use the Website.\n

      \n
    • \n
    • \n

      \n Tracking and Performance Cookies\n

      \n

      Type: Persistent Cookies

      \n

      Administered by: Third-Parties

      \n

      \n Purpose: These Cookies are used to track information about traffic to the Website and how\n users use the Website. The information gathered via these Cookies may directly or indirectly\n identify you as an individual visitor. This is because the information collected is\n typically linked to a pseudonymous identifier associated with the device you use to access\n the Website. We may also use these Cookies to test new pages, features or new functionality\n of the Website to see how our users react to them.\n

      \n
    • \n
    \n

    \n For more information about the cookies we use and your choices regarding cookies, please visit our\n Cookies Policy or the Cookies section of our Privacy Policy.\n

    \n

    Use of Your Personal Data

    \n

    The Company may use Personal Data for the following purposes:

    \n
      \n
    • \n

      \n To provide and maintain our Service, including to monitor the usage of our\n Service.\n

      \n
    • \n
    • \n

      \n To manage Your Account: to manage Your registration as a user of the\n Service. The Personal Data You provide can give You access to different functionalities of\n the Service that are available to You as a registered user.\n

      \n
    • \n
    • \n

      \n For the performance of a contract: the development, compliance and\n undertaking of the purchase contract for the products, items or services You have purchased\n or of any other contract with Us through the Service.\n

      \n
    • \n
    • \n

      \n To contact You: To contact You by email, telephone calls, SMS, or other\n equivalent forms of electronic communication, such as a mobile application's push\n notifications regarding updates or informative communications related to the\n functionalities, products or contracted services, including the security updates, when\n necessary or reasonable for their implementation.\n

      \n
    • \n
    • \n

      \n To provide You with news, special offers and general information about\n other goods, services and events which we offer that are similar to those that you have\n already purchased or enquired about unless You have opted not to receive such information.\n

      \n
    • \n
    • \n

      \n To manage Your requests: To attend and manage Your requests to Us.\n

      \n
    • \n
    • \n

      \n For business transfers: We may use Your information to evaluate or conduct\n a merger, divestiture, restructuring, reorganization, dissolution, or other sale or transfer\n of some or all of Our assets, whether as a going concern or as part of bankruptcy,\n liquidation, or similar proceeding, in which Personal Data held by Us about our Service\n users is among the assets transferred.\n

      \n
    • \n
    • \n

      \n For other purposes: We may use Your information for other purposes, such as\n data analysis, identifying usage trends, determining the effectiveness of our promotional\n campaigns and to evaluate and improve our Service, products, services, marketing and your\n experience.\n

      \n
    • \n
    \n

    We may share Your personal information in the following situations:

    \n
      \n
    • \n With Service Providers: We may share Your personal information with Service\n Providers to monitor and analyze the use of our Service, for payment processing, to contact You.\n
    • \n
    • \n For business transfers: We may share or transfer Your personal information in\n connection with, or during negotiations of, any merger, sale of Company assets, financing, or\n acquisition of all or a portion of Our business to another company.\n
    • \n
    • \n With Affiliates: We may share Your information with Our affiliates, in which\n case we will require those affiliates to honor this Privacy Policy. Affiliates include Our\n parent company and any other subsidiaries, joint venture partners or other companies that We\n control or that are under common control with Us.\n
    • \n
    • \n With business partners: We may share Your information with Our business\n partners to offer You certain products, services or promotions.\n
    • \n
    • \n With other users: when You share personal information or otherwise interact in\n the public areas with other users, such information may be viewed by all users and may be\n publicly distributed outside. If You interact with other users or register through a Third-Party\n Social Media Service, Your contacts on the Third-Party Social Media Service may see Your name,\n profile, pictures and description of Your activity. Similarly, other users will be able to view\n descriptions of Your activity, communicate with You and view Your profile.\n
    • \n
    • \n With Your consent: We may disclose Your personal information for any other\n purpose with Your consent.\n
    • \n
    \n

    Retention of Your Personal Data

    \n

    \n The Company will retain Your Personal Data only for as long as is necessary for the purposes set out\n in this Privacy Policy. We will retain and use Your Personal Data to the extent necessary to comply\n with our legal obligations (for example, if we are required to retain your data to comply with\n applicable laws), resolve disputes, and enforce our legal agreements and policies.\n

    \n

    \n The Company will also retain Usage Data for internal analysis purposes. Usage Data is generally\n retained for a shorter period of time, except when this data is used to strengthen the security or\n to improve the functionality of Our Service, or We are legally obligated to retain this data for\n longer time periods.\n

    \n

    Transfer of Your Personal Data

    \n

    \n Your information, including Personal Data, is processed at the Company's operating offices and in\n any other places where the parties involved in the processing are located. It means that this\n information may be transferred to — and maintained on — computers located outside of Your state,\n province, country or other governmental jurisdiction where the data protection laws may differ than\n those from Your jurisdiction.\n

    \n

    \n Your consent to this Privacy Policy followed by Your submission of such information represents Your\n agreement to that transfer.\n

    \n

    \n The Company will take all steps reasonably necessary to ensure that Your data is treated securely\n and in accordance with this Privacy Policy and no transfer of Your Personal Data will take place to\n an organization or a country unless there are adequate controls in place including the security of\n Your data and other personal information.\n

    \n

    Disclosure of Your Personal Data

    \n

    Business Transactions

    \n

    \n If the Company is involved in a merger, acquisition or asset sale, Your Personal Data may be\n transferred. We will provide notice before Your Personal Data is transferred and becomes subject to\n a different Privacy Policy.\n

    \n

    Law enforcement

    \n

    \n Under certain circumstances, the Company may be required to disclose Your Personal Data if required\n to do so by law or in response to valid requests by public authorities (e.g. a court or a government\n agency).\n

    \n

    Other legal requirements

    \n

    \n The Company may disclose Your Personal Data in the good faith belief that such action is necessary\n to:\n

    \n
      \n
    • Comply with a legal obligation
    • \n
    • Protect and defend the rights or property of the Company
    • \n
    • Prevent or investigate possible wrongdoing in connection with the Service
    • \n
    • Protect the personal safety of Users of the Service or the public
    • \n
    • Protect against legal liability
    • \n
    \n

    Security of Your Personal Data

    \n

    \n The security of Your Personal Data is important to Us, but remember that no method of transmission\n over the Internet, or method of electronic storage is 100% secure. While We strive to use\n commercially acceptable means to protect Your Personal Data, We cannot guarantee its absolute\n security.\n

    \n

    Detailed Information on the Processing of Your Personal Data

    \n

    \n The Service Providers We use may have access to Your Personal Data. These third-party vendors\n collect, store, use, process and transfer information about Your activity on Our Service in\n accordance with their Privacy Policies.\n

    \n

    Deleting your account

    \n

    \n You can always choose to delete your account. To do this, please navigate into the MyProfile section\n and follow the instructions at the bottom of the page. Any information shared with us will be\n permanently deleted.\n

    \n

    Analytics

    \n

    We may use third-party Service providers to monitor and analyze the use of our Service.

    \n
      \n
    • \n

      \n Google Analytics\n

      \n

      \n Google Analytics is a web analytics service offered by Google that tracks and reports\n website traffic. Google uses the data collected to track and monitor the use of our Service.\n This data is shared with other Google services. Google may use the collected data to\n contextualize and personalize the ads of its own advertising network.\n

      \n

      \n You can opt-out of having made your activity on the Service available to Google Analytics by\n installing the Google Analytics opt-out browser add-on. The add-on prevents the Google\n Analytics JavaScript (ga.js, analytics.js and dc.js) from sharing information with Google\n Analytics about visits activity.\n

      \n

      \n You may opt-out of certain Google Analytics features through your mobile device settings,\n such as your device advertising settings or by following the instructions provided by Google\n in their Privacy Policy:{' '}\n \n https://policies.google.com/privacy\n \n

      \n

      \n For more information on the privacy practices of Google, please visit the Google Privacy\n & Terms web page:{' '}\n \n https://policies.google.com/privacy\n \n

      \n
    • \n
    \n

    Email Marketing

    \n

    \n We may use Your Personal Data to contact You with newsletters, marketing or promotional materials\n and other information that may be of interest to You. You may opt-out of receiving any, or all, of\n these communications from Us by following the unsubscribe link or instructions provided in any email\n We send or by contacting Us.\n

    \n

    We may use Email Marketing Service Providers to manage and send emails to You.

    \n
      \n
    • \n

      \n sendgrid\n

      \n

      \n Their Privacy Policy can be viewed at{' '}\n \n https://www.twilio.com/legal/privacy\n \n

      \n
    • \n
    \n

    Payments

    \n

    \n We may provide paid products and/or services within the Service. In that case, we may use\n third-party services for payment processing (e.g. payment processors).\n

    \n

    \n We will not store or collect Your payment card details. That information is provided directly to Our\n third-party payment processors whose use of Your personal information is governed by their Privacy\n Policy. These payment processors adhere to the standards set by PCI-DSS as managed by the PCI\n Security Standards Council, which is a joint effort of brands like Visa, Mastercard, American\n Express and Discover. PCI-DSS requirements help ensure the secure handling of payment information.\n

    \n
      \n
    • \n

      \n Stripe\n

      \n

      \n Their Privacy Policy can be viewed at\n \n https://stripe.com/us/privacy\n \n

      \n
    • \n
    \n

    Children's Privacy

    \n

    \n Our Service does not address anyone under the age of 13. We do not knowingly collect personally\n identifiable information from anyone under the age of 13. If You are a parent or guardian and You\n are aware that Your child has provided Us with Personal Data, please contact Us. If We become aware\n that We have collected Personal Data from anyone under the age of 13 without verification of\n parental consent, We take steps to remove that information from Our servers.\n

    \n

    \n If We need to rely on consent as a legal basis for processing Your information and Your country\n requires consent from a parent, We may require Your parent's consent before We collect and use that\n information.\n

    \n

    Links to Other Websites

    \n

    \n Our Service may contain links to other websites that are not operated by Us. If You click on a third\n party link, You will be directed to that third party's site. We strongly advise You to review the\n Privacy Policy of every site You visit.\n

    \n

    \n We have no control over and assume no responsibility for the content, privacy policies or practices\n of any third party sites or services.\n

    \n

    Changes to this Privacy Policy

    \n

    \n We may update Our Privacy Policy from time to time. We will notify You of any changes by posting the\n new Privacy Policy on this page.\n

    \n

    \n We will let You know via email and/or a prominent notice on Our Service, prior to the change\n becoming effective and update the "Last updated" date at the top of this Privacy Policy.\n

    \n

    \n You are advised to review this Privacy Policy periodically for any changes. Changes to this Privacy\n Policy are effective when they are posted on this page.\n

    \n \n\n \n Contact Us\n \n\n

    If you have any questions about this Privacy Policy, You can contact us:

    \n
      \n
    • \n By email:{' '}\n \n privacy@artifact.id\n \n
    • \n
    \n
    \n );\n};\n","import { Box, Container, Typography } from '@material-ui/core';\nimport React from 'react';\n\nexport const TermsAndConditions: React.FC = () => {\n return (\n \n \n Terms and Conditions\n \n \n Last updated: March 31, 2021\n \n

    Please read these terms and conditions carefully before using Our Service.

    \n\n \n

    Interpretation and Definitions

    \n

    Interpretation

    \n

    \n The words of which the initial letter is capitalized have meanings defined under the following\n conditions. The following definitions shall have the same meaning regardless of whether they appear\n in singular or in plural.\n

    \n

    Definitions

    \n

    For the purposes of these Terms and Conditions:

    \n
      \n
    • \n

      \n Application means the software program provided by the Company downloaded\n by You on any electronic device, named Artifact.id\n

      \n
    • \n
    • \n

      \n Application Store means the digital distribution service operated and\n developed by Apple Inc. (Apple App Store) or Google Inc. (Google Play Store) in which the\n Application has been downloaded.\n

      \n
    • \n
    • \n

      \n Affiliate means an entity that controls, is controlled by or is under\n common control with a party, where "control" means ownership of 50% or more of the\n shares, equity interest or other securities entitled to vote for election of directors or\n other managing authority.\n

      \n
    • \n
    • \n

      \n Account means a unique account created for You to access our Service or\n parts of our Service.\n

      \n
    • \n
    • \n

      \n Country refers to: California, United States\n

      \n
    • \n
    • \n

      \n Company (referred to as either "the Company", "We",\n "Us" or "Our" in this Agreement) refers to AnIdentifier Inc, 77 Van Ness\n Ave 101-1005 San Francisco, CA 94102.\n

      \n
    • \n
    • \n

      \n Content refers to content such as text, images, or other information that\n can be posted, uploaded, linked to or otherwise made available by You, regardless of the\n form of that content.\n

      \n
    • \n
    • \n

      \n Device means any device that can access the Service such as a computer, a\n cellphone or a digital tablet.\n

      \n
    • \n
    • \n

      \n Feedback means feedback, innovations or suggestions sent by You regarding\n the attributes, performance or features of our Service.\n

      \n
    • \n
    • \n

      \n Free Trial refers to a limited period of time that may be free when\n purchasing a Subscription.\n

      \n
    • \n
    • \n

      \n In-app Purchase refers to the purchase of a product, item, service or\n Subscription made through the Application and subject to these Terms and Conditions and/or\n the Application Store's own terms and conditions.\n

      \n
    • \n
    • \n

      \n Service refers to the Application or the Website or both.\n

      \n
    • \n
    • \n

      \n Subscriptions refer to the services or access to the Service offered on a\n subscription basis by the Company to You.\n

      \n
    • \n
    • \n

      \n Terms and Conditions (also referred as "Terms") mean these Terms\n and Conditions that form the entire agreement between You and the Company regarding the use\n of the Service.\n

      \n
    • \n
    • \n

      \n Third-party Social Media Service means any services or content (including\n data, information, products or services) provided by a third-party that may be displayed,\n included or made available by the Service.\n

      \n
    • \n
    • \n

      \n Website refers to Artfiact.id, accessible from\n \n http://artifact.id\n \n

      \n
    • \n
    • \n

      \n You means the individual accessing or using the Service, or the company, or\n other legal entity on behalf of which such individual is accessing or using the Service, as\n applicable.\n

      \n
    • \n
    \n

    Acknowledgment

    \n

    \n These are the Terms and Conditions governing the use of this Service and the agreement that operates\n between You and the Company. These Terms and Conditions set out the rights and obligations of all\n users regarding the use of the Service.\n

    \n

    \n Your access to and use of the Service is conditioned on Your acceptance of and compliance with these\n Terms and Conditions. These Terms and Conditions apply to all visitors, users and others who access\n or use the Service.\n

    \n

    \n By accessing or using the Service You agree to be bound by these Terms and Conditions. If You\n disagree with any part of these Terms and Conditions then You may not access the Service.\n

    \n

    \n You represent that you are over the age of 18. The Company does not permit those under 18 to use the\n Service.\n

    \n

    \n Your access to and use of the Service is also conditioned on Your acceptance of and compliance with\n the Privacy Policy of the Company. Our Privacy Policy describes Our policies and procedures on the\n collection, use and disclosure of Your personal information when You use the Application or the\n Website and tells You about Your privacy rights and how the law protects You. Please read Our\n Privacy Policy carefully before using Our Service.\n

    \n

    Subscriptions

    \n

    Subscription period

    \n

    \n The Service or some parts of the Service are available only with a paid Subscription. You will be\n billed in advance on a recurring and periodic basis (such as daily, weekly, monthly or annually),\n depending on the type of Subscription plan you select when purchasing the Subscription.\n

    \n

    \n At the end of each period, Your Subscription will automatically renew under the exact same\n conditions unless You cancel it or the Company cancels it.\n

    \n

    Subscription cancellations

    \n

    \n You may cancel Your Subscription renewal either through Your Account settings page or by contacting\n the Company. You will not receive a refund for the fees You already paid for Your current\n Subscription period and You will be able to access the Service until the end of Your current\n Subscription period.\n

    \n

    \n If the Subscription has been made through an In-app Purchase, You can cancel the renewal of Your\n Subscription with the Application Store.\n

    \n

    Billing

    \n

    \n You shall provide the Company with accurate and complete billing information including full name,\n address, state, zip code, telephone number, and a valid payment method information.\n

    \n

    \n Should automatic billing fail to occur for any reason, the Company will issue an electronic invoice\n indicating that you must proceed manually, within a certain deadline date, with the full payment\n corresponding to the billing period as indicated on the invoice.\n

    \n

    \n If the Subscription has been made through an In-app Purchase, all billing is handled by the\n Application Store and is governed by the Application Store's own terms and conditions.\n

    \n

    Fee Changes

    \n

    \n The Company, in its sole discretion and at any time, may modify the Subscription fees. Any\n Subscription fee change will become effective at the end of the then-current Subscription period.\n

    \n

    \n The Company will provide You with reasonable prior notice of any change in Subscription fees to give\n You an opportunity to terminate Your Subscription before such change becomes effective.\n

    \n

    \n Your continued use of the Service after the Subscription fee change comes into effect constitutes\n Your agreement to pay the modified Subscription fee amount.\n

    \n

    Refunds

    \n

    Except when required by law, paid Subscription fees are non-refundable.

    \n

    \n Certain refund requests for Subscriptions may be considered by the Company on a case-by-case basis\n and granted at the sole discretion of the Company.\n

    \n

    \n If the Subscription has been made through an In-app purchase, the Application Store's refund policy\n will apply. If You wish to request a refund, You may do so by contacting the Application Store\n directly.\n

    \n

    Free Trial

    \n

    \n The Company may, at its sole discretion, offer a Subscription with a Free Trial for a limited period\n of time.\n

    \n

    You may be required to enter Your billing information in order to sign up for the Free Trial.

    \n

    \n If You do enter Your billing information when signing up for a Free Trial, You will not be charged\n by the Company until the Free Trial has expired. On the last day of the Free Trial period, unless\n You cancelled Your Subscription, You will be automatically charged the applicable Subscription fees\n for the type of Subscription You have selected.\n

    \n

    \n At any time and without notice, the Company reserves the right to (i) modify the terms and\n conditions of the Free Trial offer, or (ii) cancel such Free Trial offer.\n

    \n

    In-app Purchases

    \n

    \n The Application may include In-app Purchases that allow you to buy products, services or\n Subscriptions.\n

    \n

    \n More information about how you may be able to manage In-app Purchases using your Device may be set\n out in the Application Store's own terms and conditions or in your Device's Help settings.\n

    \n

    \n In-app Purchases can only be consumed within the Application. If you make a In-app Purchase, that\n In-app Purchase cannot be cancelled after you have initiated its download. In-app Purchases cannot\n be redeemed for cash or other consideration or otherwise transferred.\n

    \n

    \n If any In-app Purchase is not successfully downloaded or does not work once it has been successfully\n downloaded, we will, after becoming aware of the fault or being notified to the fault by You,\n investigate the reason for the fault. We will act reasonably in deciding whether to provide You with\n a replacement In-app Purchase or issue You with a patch to repair the fault. In no event will We\n charge You to replace or repair the In-app Purchase. In the unlikely event that we are unable to\n replace or repair the relevant In-app Purchase or are unable to do so within a reasonable period of\n time and without significant inconvenience to You, We will authorize the Application Store to refund\n You an amount up to the cost of the relevant In-app Purchase. Alternatively, if You wish to request\n a refund, You may do so by contacting the Application Store directly.\n

    \n

    \n You acknowledge and agree that all billing and transaction processes are handled by the Application\n Store from where you downloaded the Application and are governed by that Application Store's own\n terms and conditions.\n

    \n

    \n If you have any payment related issues with In-app Purchases, then you need to contact the\n Application Store directly.\n

    \n

    User Accounts

    \n

    \n When You create an account with Us, You must provide Us information that is accurate, complete, and\n current at all times. Failure to do so constitutes a breach of the Terms, which may result in\n immediate termination of Your account on Our Service.\n

    \n

    \n You are responsible for safeguarding the password that You use to access the Service and for any\n activities or actions under Your password, whether Your password is with Our Service or a\n Third-Party Social Media Service.\n

    \n

    \n You agree not to disclose Your password to any third party. You must notify Us immediately upon\n becoming aware of any breach of security or unauthorized use of Your account.\n

    \n

    \n You may not use as a username the name of another person or entity or that is not lawfully available\n for use, a name or trademark that is subject to any rights of another person or entity other than\n You without appropriate authorization, or a name that is otherwise offensive, vulgar or obscene.\n

    \n

    Content

    \n

    Your Right to Post Content

    \n

    \n Our Service allows You to post Content. You are responsible for the Content that You post to the\n Service, including its legality, reliability, and appropriateness.\n

    \n

    \n By posting Content to the Service, You grant Us the right and license to use, modify, publicly\n perform, publicly display, reproduce, and distribute such Content on and through the Service. You\n retain any and all of Your rights to any Content You submit, post or display on or through the\n Service and You are responsible for protecting those rights. You agree that this license includes\n the right for Us to make Your Content available to other users of the Service, who may also use Your\n Content subject to these Terms.\n

    \n

    \n You represent and warrant that: (i) the Content is Yours (You own it) or You have the right to use\n it and grant Us the rights and license as provided in these Terms, and (ii) the posting of Your\n Content on or through the Service does not violate the privacy rights, publicity rights, copyrights,\n contract rights or any other rights of any person.\n

    \n

    Content Restrictions

    \n

    \n The Company is not responsible for the content of the Service's users. You expressly understand and\n agree that You are solely responsible for the Content and for all activity that occurs under your\n account, whether done so by You or any third person using Your account.\n

    \n

    \n You may not transmit any Content that is unlawful, offensive, upsetting, intended to disgust,\n threatening, libelous, defamatory, obscene or otherwise objectionable. Examples of such\n objectionable Content include, but are not limited to, the following:\n

    \n
      \n
    • Unlawful or promoting unlawful activity.
    • \n
    • \n Defamatory, discriminatory, or mean-spirited content, including references or commentary about\n religion, race, sexual orientation, gender, national/ethnic origin, or other targeted groups.\n
    • \n
    • \n Spam, machine – or randomly – generated, constituting unauthorized or unsolicited advertising,\n chain letters, any other form of unauthorized solicitation, or any form of lottery or gambling.\n
    • \n
    • \n Containing or installing any viruses, worms, malware, trojan horses, or other content that is\n designed or intended to disrupt, damage, or limit the functioning of any software, hardware or\n telecommunications equipment or to damage or obtain unauthorized access to any data or other\n information of a third person.\n
    • \n
    • \n Infringing on any proprietary rights of any party, including patent, trademark, trade secret,\n copyright, right of publicity or other rights.\n
    • \n
    • \n Impersonating any person or entity including the Company and its employees or representatives.\n
    • \n
    • Violating the privacy of any third person.
    • \n
    • False information and features.
    • \n
    \n

    \n The Company reserves the right, but not the obligation, to, in its sole discretion, determine\n whether or not any Content is appropriate and complies with this Terms, refuse or remove this\n Content. The Company further reserves the right to make formatting and edits and change the manner\n any Content. The Company can also limit or revoke the use of the Service if You post such\n objectionable Content. As the Company cannot control all content posted by users and/or third\n parties on the Service, you agree to use the Service at your own risk. You understand that by using\n the Service You may be exposed to content that You may find offensive, indecent, incorrect or\n objectionable, and You agree that under no circumstances will the Company be liable in any way for\n any content, including any errors or omissions in any content, or any loss or damage of any kind\n incurred as a result of your use of any content.\n

    \n

    Content Backups

    \n

    \n Although regular backups of Content are performed, the Company do not guarantee there will be no\n loss or corruption of data.\n

    \n

    \n Corrupt or invalid backup points may be caused by, without limitation, Content that is corrupted\n prior to being backed up or that changes during the time a backup is performed.\n

    \n

    \n The Company will provide support and attempt to troubleshoot any known or discovered issues that may\n affect the backups of Content. But You acknowledge that the Company has no liability related to the\n integrity of Content or the failure to successfully restore Content to a usable state.\n

    \n

    \n You agree to maintain a complete and accurate copy of any Content in a location independent of the\n Service.\n

    \n

    Copyright Policy

    \n

    Intellectual Property Infringement

    \n

    \n We respect the intellectual property rights of others. It is Our policy to respond to any claim that\n Content posted on the Service infringes a copyright or other intellectual property infringement of\n any person.\n

    \n

    \n If You are a copyright owner, or authorized on behalf of one, and You believe that the copyrighted\n work has been copied in a way that constitutes copyright infringement that is taking place through\n the Service, You must submit Your notice in writing to the attention of our copyright agent via\n email at{' '}\n \n dmca@artifact.id\n \n and include in Your notice a detailed description of the alleged infringement.\n

    \n

    \n You may be held accountable for damages (including costs and attorneys' fees) for misrepresenting\n that any Content is infringing Your copyright.\n

    \n

    DMCA Notice and DMCA Procedure for Copyright Infringement Claims

    \n

    \n You may submit a notification pursuant to the Digital Millennium Copyright Act (DMCA) by providing\n our Copyright Agent with the following information in writing (see 17 U.S.C 512(c)(3) for further\n detail):\n

    \n
      \n
    • \n An electronic or physical signature of the person authorized to act on behalf of the owner of\n the copyright's interest.\n
    • \n
    • \n A description of the copyrighted work that You claim has been infringed, including the URL\n (i.e., web page address) of the location where the copyrighted work exists or a copy of the\n copyrighted work.\n
    • \n
    • \n Identification of the URL or other specific location on the Service where the material that You\n claim is infringing is located.\n
    • \n
    • Your address, telephone number, and email address.
    • \n
    • \n A statement by You that You have a good faith belief that the disputed use is not authorized by\n the copyright owner, its agent, or the law.\n
    • \n
    • \n A statement by You, made under penalty of perjury, that the above information in Your notice is\n accurate and that You are the copyright owner or authorized to act on the copyright owner's\n behalf.\n
    • \n
    \n

    \n You can contact our copyright agent via email at\n \n dmca@artifact.id\n \n Upon receipt of a notification, the Company will take whatever action, in its sole discretion, it\n deems appropriate, including removal of the challenged content from the Service.\n

    \n

    Intellectual Property

    \n

    \n The Service and its original content (excluding Content provided by You or other users), features\n and functionality are and will remain the exclusive property of the Company and its licensors.\n

    \n

    \n The Service is protected by copyright, trademark, and other laws of both the Country and foreign\n countries.\n

    \n

    \n Our trademarks and trade dress may not be used in connection with any product or service without the\n prior written consent of the Company.\n

    \n

    Your Feedback to Us

    \n

    \n You assign all rights, title and interest in any Feedback You provide the Company. If for any reason\n such assignment is ineffective, You agree to grant the Company a non-exclusive, perpetual,\n irrevocable, royalty free, worldwide right and license to use, reproduce, disclose, sub-license,\n distribute, modify and exploit such Feedback without restriction.\n

    \n

    Links to Other Websites

    \n

    \n Our Service may contain links to third-party web sites or services that are not owned or controlled\n by the Company.\n

    \n

    \n The Company has no control over, and assumes no responsibility for, the content, privacy policies,\n or practices of any third party web sites or services. You further acknowledge and agree that the\n Company shall not be responsible or liable, directly or indirectly, for any damage or loss caused or\n alleged to be caused by or in connection with the use of or reliance on any such content, goods or\n services available on or through any such web sites or services.\n

    \n

    \n We strongly advise You to read the terms and conditions and privacy policies of any third-party web\n sites or services that You visit.\n

    \n

    Termination

    \n

    \n We may terminate or suspend Your Account immediately, without prior notice or liability, for any\n reason whatsoever, including without limitation if You breach these Terms and Conditions.\n

    \n

    \n Upon termination, Your right to use the Service will cease immediately. If You wish to terminate\n Your Account, You may simply discontinue using the Service.\n

    \n

    Limitation of Liability

    \n

    \n Notwithstanding any damages that You might incur, the entire liability of the Company and any of its\n suppliers under any provision of this Terms and Your exclusive remedy for all of the foregoing shall\n be limited to the amount actually paid by You through the Service or 100 USD if You haven't\n purchased anything through the Service.\n

    \n

    \n To the maximum extent permitted by applicable law, in no event shall the Company or its suppliers be\n liable for any special, incidental, indirect, or consequential damages whatsoever (including, but\n not limited to, damages for loss of profits, loss of data or other information, for business\n interruption, for personal injury, loss of privacy arising out of or in any way related to the use\n of or inability to use the Service, third-party software and/or third-party hardware used with the\n Service, or otherwise in connection with any provision of this Terms), even if the Company or any\n supplier has been advised of the possibility of such damages and even if the remedy fails of its\n essential purpose.\n

    \n

    \n Some states do not allow the exclusion of implied warranties or limitation of liability for\n incidental or consequential damages, which means that some of the above limitations may not apply.\n In these states, each party's liability will be limited to the greatest extent permitted by law.\n

    \n

    "AS IS" and "AS AVAILABLE" Disclaimer

    \n

    \n The Service is provided to You "AS IS" and "AS AVAILABLE" and with all faults\n and defects without warranty of any kind. To the maximum extent permitted under applicable law, the\n Company, on its own behalf and on behalf of its Affiliates and its and their respective licensors\n and service providers, expressly disclaims all warranties, whether express, implied, statutory or\n otherwise, with respect to the Service, including all implied warranties of merchantability, fitness\n for a particular purpose, title and non-infringement, and warranties that may arise out of course of\n dealing, course of performance, usage or trade practice. Without limitation to the foregoing, the\n Company provides no warranty or undertaking, and makes no representation of any kind that the\n Service will meet Your requirements, achieve any intended results, be compatible or work with any\n other software, applications, systems or services, operate without interruption, meet any\n performance or reliability standards or be error free or that any errors or defects can or will be\n corrected.\n

    \n

    \n Without limiting the foregoing, neither the Company nor any of the company's provider makes any\n representation or warranty of any kind, express or implied: (i) as to the operation or availability\n of the Service, or the information, content, and materials or products included thereon; (ii) that\n the Service will be uninterrupted or error-free; (iii) as to the accuracy, reliability, or currency\n of any information or content provided through the Service; or (iv) that the Service, its servers,\n the content, or e-mails sent from or on behalf of the Company are free of viruses, scripts, trojan\n horses, worms, malware, timebombs or other harmful components.\n

    \n

    \n Some jurisdictions do not allow the exclusion of certain types of warranties or limitations on\n applicable statutory rights of a consumer, so some or all of the above exclusions and limitations\n may not apply to You. But in such a case the exclusions and limitations set forth in this section\n shall be applied to the greatest extent enforceable under applicable law.\n

    \n

    Governing Law

    \n

    \n The laws of the Country, excluding its conflicts of law rules, shall govern this Terms and Your use\n of the Service. Your use of the Application may also be subject to other local, state, national, or\n international laws.\n

    \n

    Disputes Resolution

    \n

    \n If You have any concern or dispute about the Service, You agree to first try to resolve the dispute\n informally by contacting the Company.\n

    \n

    For European Union (EU) Users

    \n

    \n If You are a European Union consumer, you will benefit from any mandatory provisions of the law of\n the country in which you are resident in.\n

    \n

    United States Federal Government End Use Provisions

    \n

    \n If You are a U.S. federal government end user, our Service is a "Commercial Item" as that\n term is defined at 48 C.F.R. §2.101.\n

    \n

    United States Legal Compliance

    \n

    \n You represent and warrant that (i) You are not located in a country that is subject to the United\n States government embargo, or that has been designated by the United States government as a\n "terrorist supporting" country, and (ii) You are not listed on any United States\n government list of prohibited or restricted parties.\n

    \n

    Severability and Waiver

    \n

    Severability

    \n

    \n If any provision of these Terms is held to be unenforceable or invalid, such provision will be\n changed and interpreted to accomplish the objectives of such provision to the greatest extent\n possible under applicable law and the remaining provisions will continue in full force and effect.\n

    \n

    Waiver

    \n

    \n Except as provided herein, the failure to exercise a right or to require performance of an\n obligation under this Terms shall not effect a party's ability to exercise such right or require\n such performance at any time thereafter nor shall be the waiver of a breach constitute a waiver of\n any subsequent breach.\n

    \n

    Translation Interpretation

    \n

    \n These Terms and Conditions may have been translated if We have made them available to You on our\n Service. You agree that the original English text shall prevail in the case of a dispute.\n

    \n

    Changes to These Terms and Conditions

    \n

    \n We reserve the right, at Our sole discretion, to modify or replace these Terms at any time. If a\n revision is material We will make reasonable efforts to provide at least 30 days' notice prior to\n any new terms taking effect. What constitutes a material change will be determined at Our sole\n discretion.\n

    \n

    \n By continuing to access or use Our Service after those revisions become effective, You agree to be\n bound by the revised terms. If You do not agree to the new terms, in whole or in part, please stop\n using the website and the Service.\n

    \n \n\n \n Contact Us\n \n

    If you have any questions about these Terms and Conditions, You can contact us:

    \n
      \n
    • \n By email:{' '}\n \n info@artifact.id\n \n
    • \n
    \n
    \n );\n};\n","import { Container, Typography } from '@material-ui/core';\nimport React from 'react';\n\nexport const OurMission: React.FC = () => {\n return (\n \n \n Our Mission\n \n\n \n Artifact’s mission is to help our users find value in the objects they have collected throughout their\n lives. We fuse bold technology with human insight to create a radically simple way of identifying,\n assessing, and archiving collections. From the everyday to the extraordinary, we believe each beloved\n possession has multiple stories to tell.\n \n\n \n Artifact.id instantly connects users to both our innovative suite of tools and a trusted, vetted\n community of passionate experts, enabling the quick, easy evaluation of almost any object.\n \n\n \n Users rely on Artifact to:\n \n
      \n
    • \n \n Discover \n \n the personal history and true value of the objects they love.\n
    • \n
    • \n \n Protect \n \n their collections now and in the future by archiving it.\n
    • \n
    • \n \n Share \n \n their collections with others, fostering curiosity and collectively increasing human knowledge.\n
    • \n
    \n
    \n );\n};\n","import {makeStyles} from \"@material-ui/styles\";\nimport {Theme} from \"@material-ui/core\";\n\nexport const rootStyles = makeStyles((theme: Theme) => ({\n root: {\n padding: '15px 10px 30px 15px',\n height: '72vh',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center'\n },\n content: {\n textAlign: 'center',\n },\n title: {\n fontSize: 36,\n marginBottom: 20,\n },\n subtitle: {\n fontSize: 18,\n marginBottom: 35,\n maxWidth: 430,\n },\n seeCollectors: {\n color: theme.palette.primary.main,\n cursor: 'pointer',\n textDecoration: 'underline',\n }\n}))\n","export default __webpack_public_path__ + \"static/media/assign_collectors.8759f5c8.svg\";","import React, {useContext, useState} from \"react\";\nimport {Box, Container, Typography} from \"@material-ui/core\";\nimport {UserContext} from \"core/context/user\";\nimport {rootStyles} from \"./styles/root.style\";\nimport imgSrc from \"assets/images/assign_collectors.svg\";\nimport {AssignJobModal} from \"components/jobs/AssignJobModal\";\nimport {UserRoles} from \"core/enums\";\nimport {UtilsContext} from \"core/context/utils.context\";\nimport { useHistory } from \"react-router-dom\";\nimport {AppRoutes, setJobIdInStorage} from \"../../../core/helpers\";\n\n\nexport const AssignedCollectors: React.FC = () => {\n\n const userContext = useContext(UserContext);\n const utilsContext = useContext(UtilsContext);\n\n const history = useHistory();\n\n const [displayJobsModal, toggleDisplayJobsModal] = useState(true);\n\n const classes = rootStyles();\n\n const onSelectJob = (id: number): void => {\n utilsContext.selectJob(id);\n setJobIdInStorage(id);\n toggleDisplayJobsModal(false);\n history.push(`${AppRoutes.MY_OBJECTS}?jobId=${id}`);\n }\n\n return (\n \n\n \n \n Hi, {userContext.user?.firstName}!\n \n\n \n In order to start working,{' '}\n toggleDisplayJobsModal(true)}\n >\n click here\n \n {' '}to see the list of your assigned Collectors.\n \n\n {'assign-collectors'}\n \n\n {\n displayJobsModal &&\n toggleDisplayJobsModal(false)}\n title={'Collectors'}\n jobRole={UserRoles.COLLECTOR}\n userId={userContext.user?.id || 0}\n userRole={userContext.user?.role || ''}\n notAssigned={false}\n onJobSelect={(userId: number) => onSelectJob(userId)}\n />\n }\n \n )\n}\n","import React, {useContext, useEffect, useState} from \"react\";\nimport {Box} from \"@material-ui/core\";\nimport {UtilsContext} from \"../../core/context/utils.context\";\nimport {ConsumerFooter, CustomSnackbar, Loader, PrivateRoute} from \"../../components\";\nimport {AppRoutes, setJobIdInStorage} from \"../../core/helpers\";\nimport {AssignedCollectors} from \"./AssignedCollectors\";\nimport {getJobIdFromUrl} from \"../../core/helpers/utils\";\n\n\nexport const HelperApp: React.FC = () => {\n\n const utilsContext = useContext(UtilsContext);\n\n const [isLoading, setIsLoading] = useState(true);\n\n useEffect(() => {\n const jobId = getJobIdFromUrl();\n if(jobId !== -1) {\n utilsContext.selectJob(jobId);\n setJobIdInStorage(jobId);\n }\n setIsLoading(false);\n }, [])\n\n return (\n \n \n {\n utilsContext.appLoader && \n }\n\n {\n !isLoading &&\n \n \n \n }\n\n \n\n \n\n utilsContext.closeSnackbar()}\n severity={utilsContext.snackbar.severity}\n message={utilsContext.snackbar.text}\n />\n \n )\n}\n","import { createMuiTheme, ThemeOptions } from \"@material-ui/core\";\nimport { darkTheme } from \"assets/themes/dark-theme\";\nimport {lightTheme} from \"../../../assets/themes/light-theme\";\n\nexport function getHelperToolbarTheme(isLightTheme: boolean): ThemeOptions {\n return isLightTheme ? helperToolbarLightTheme : helperToolbarDarkTheme;\n}\n\nexport const helperToolbarDarkTheme: ThemeOptions = createMuiTheme({\n ...darkTheme,\n palette: {\n ...darkTheme.palette,\n primary: {\n main: \"rgb(43,43,51, 0.7)\",\n contrastText: \"#EFEFEF\",\n },\n secondary: {\n main: \"#FE6502\",\n contrastText: \"#EFEFEF\",\n }\n },\n typography: {\n htmlFontSize: 18,\n fontFamily: \"Myriad Pro Regular\"\n },\n overrides: {\n MuiAppBar: {\n root: {\n boxShadow: \"0 3px 10px #00000014\",\n minHeight: 65,\n backgroundColor: 'rgb(43,43,51, 1) !important',\n },\n },\n MuiToolbar: {\n root: {\n minHeight: 65,\n }\n },\n MuiLink: {\n root: {\n cursor: \"pointer\",\n }\n },\n MuiButton: {\n root: {\n borderRadius: 0,\n }\n },\n MuiSelect: {\n root: {\n padding: '10px 14px',\n backgroundColor: darkTheme.rootBackground.secondary,\n }\n },\n MuiPopover: {\n paper: {\n backgroundColor: darkTheme.rootBackground.secondary,\n }\n }\n },\n});\n\nexport const helperToolbarLightTheme: ThemeOptions = createMuiTheme({\n ...lightTheme,\n palette: {\n ...darkTheme.palette,\n primary: {\n main: \"rgb(43,43,51, 0.7)\",\n contrastText: \"#EFEFEF\",\n },\n secondary: {\n main: \"#FE6502\",\n contrastText: \"#EFEFEF\",\n },\n background: {\n default: \"#FFFFFF\",\n paper: \"#FFFFFF\",\n },\n text: {\n primary: \"#383838\",\n secondary: \"#B2B2B2\",\n },\n },\n typography: {\n htmlFontSize: 18,\n fontFamily: \"Myriad Pro Regular\"\n },\n overrides: {\n MuiAppBar: {\n root: {\n boxShadow: \"0 3px 10px #00000014\",\n minHeight: 65,\n backgroundColor: '#FFFFFF !important',\n },\n },\n MuiToolbar: {\n root: {\n minHeight: 65,\n }\n },\n MuiLink: {\n root: {\n cursor: \"pointer\",\n }\n },\n MuiButton: {\n root: {\n borderRadius: 0,\n }\n },\n MuiPaper: {\n root: {\n backgroundColor: \"#EFEFEF\",\n }\n },\n MuiSelect: {\n root: {\n padding: '10px 14px',\n backgroundColor: lightTheme.rootBackground.secondary,\n }\n },\n MuiPopover: {\n paper: {\n backgroundColor: lightTheme.rootBackground.secondary,\n }\n }\n },\n});\n","import {makeStyles} from \"@material-ui/styles\";\nimport {Theme} from \"@material-ui/core\";\n\nexport const helperToolbarClasses = makeStyles((theme: Theme) => ({\n root: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: '100%',\n paddingLeft: 24,\n paddingRight: 13,\n },\n selectCollectorBox: {\n display: 'flex',\n alignItems: 'center',\n },\n selectCollectorLabel: {\n color: theme.palette.text.primary,\n opacity: 0.8,\n fontSize: 13,\n marginRight: 15,\n },\n selectFormControl: {\n minWidth: 250,\n }\n}))\n\nexport const navigationClasses = makeStyles((_theme: Theme) => ({\n root: {\n display: 'inline-flex',\n paddingLeft: 24,\n },\n}))\n","import React from \"react\";\nimport {INavLink} from \"../../_helpers/nav-link.interfaces\";\nimport {List, ListItem, Typography} from \"@material-ui/core\";\nimport {Link, useRouteMatch} from \"react-router-dom\";\nimport {navigationClasses} from \"../styles\";\n\ntype NavigationProps = {\n links: INavLink[];\n isLightTheme: boolean;\n selectedCollector: number;\n}\n\nconst activeLinkColor = (isLightTheme: boolean): string => {\n return isLightTheme ? 'black' : '#FFFFFF';\n}\n\nconst inactiveLinkColor = (isLightTheme: boolean): string => {\n return isLightTheme ? '#6c6c6c' : '#B2B2B2';\n}\n\nexport const Navigation: React.FC = ({links, isLightTheme, selectedCollector}) => {\n\n const classes = navigationClasses();\n\n const isRouteMatch = (path: string, exact: boolean): any => {\n return useRouteMatch({\n path, exact\n });\n }\n\n return (\n \n {links.map((navLink: INavLink) => (\n \n \n \n {navLink.name}\n \n \n \n ))}\n \n )\n}\n","import {AppRoutes} from \"core/helpers/app-routes\";\nimport {INavLink} from \"./nav-link.interfaces\";\n\nexport const navLinks: INavLink[] = [\n {\n id: 90,\n name: 'Objects',\n path: AppRoutes.MY_OBJECTS,\n },\n {\n id: 91,\n name: 'Collections',\n path: AppRoutes.MY_COLLECTIONS,\n },\n {\n id: 92,\n name: 'Reporting',\n path: AppRoutes.REPORTING,\n },\n {\n id: 93,\n name: 'Community Feed',\n path: AppRoutes.PUBLIC_FEED,\n onAuthPages: false,\n },\n]\n","import React, { useContext, useEffect } from 'react';\nimport { ThemeProvider } from '@material-ui/core/styles';\nimport { UserContext } from '../../../core/context/user';\nimport { AppBar, Box, FormControl, MenuItem, Select, Toolbar } from '@material-ui/core';\nimport { useAvailableJobsData } from '../../jobs/_hooks/use-available-jobs-data.hook';\nimport { UserRoles } from '../../../core/enums';\nimport { getHelperToolbarTheme } from '../_styles/helper-toolbar-theme';\nimport { IJob } from '../../../types';\nimport { Searchbar } from '../ConsumerToolbar/components/Searchbar';\nimport { helperToolbarClasses } from './styles';\nimport { UtilsContext } from '../../../core/context/utils.context';\nimport { Navigation } from './components/Navigation';\nimport { navLinks } from '../_helpers/helper-toolbar-nav-links';\nimport { AppRoutes, setJobIdInStorage } from '../../../core/helpers';\nimport { useHistory } from 'react-router-dom';\n\nexport const HelperToolbar: React.FC = () => {\n const userContext = useContext(UserContext);\n const utilsContext = useContext(UtilsContext);\n const history = useHistory();\n\n const classes = helperToolbarClasses();\n\n const [selectedCollector, setSelectedCollector] = React.useState(utilsContext.selectedJob);\n\n const { jobs, getAvailableJobs, isLoading } = useAvailableJobsData(\n userContext.user?.id || 0,\n UserRoles.COLLECTOR,\n userContext.user?.role || '',\n false,\n );\n\n useEffect(() => {\n getAvailableJobs(1, null, 100);\n }, []);\n\n useEffect(() => {\n setSelectedCollector(utilsContext.selectedJob);\n }, [utilsContext.selectedJob]);\n\n const handleCollectorSelect = (event: any): void => {\n setSelectedCollector(event.target.value);\n utilsContext.selectJob(Number(event.target.value));\n setJobIdInStorage(event.target.value);\n history.push(`${AppRoutes.MY_OBJECTS}?jobId=${Number(event.target.value)}`);\n history.go(0);\n };\n\n return (\n \n \n \n \n \n {!isLoading && (\n <>\n \n \n \n {!jobs.length && (\n \n None\n \n )}\n {jobs.map((j: IJob) => (\n \n {j.userName}\n \n ))}\n \n \n\n {selectedCollector !== -1 && (\n \n )}\n \n )}\n \n\n {}\n \n \n \n \n );\n};\n","import React, {useContext, useEffect, useState} from \"react\";\nimport {BrowserRouter as Router, Redirect, Route, Switch} from \"react-router-dom\";\nimport {Box, CssBaseline} from \"@material-ui/core\";\n\nimport {AppRoutes, getJobIdFromStorage, getToken} from \"./core/helpers\";\nimport {SignIn} from \"./scenes/auth/scenes/SignIn\";\nimport {CreateAccount} from \"./scenes/auth/scenes/CreateAccount\";\n\nimport {ConsumerToolbar} from \"./components/layout/ConsumerToolbar\";\nimport {Loader} from \"./components/_others\";\nimport {DashboardApp} from \"./scenes/dashboard\";\nimport {CollectorApp} from \"./scenes/consumer/collector-app\";\n\nimport {PrivateRoute} from \"./components/_others/PrivateRoute\";\nimport {ObjectDetailsProvider} from \"./core/context/consumer/objectDetails\";\nimport {SharedWithMeProvider} from \"./core/context/consumer/sharedWithMe\";\nimport {SharedObjectProvider} from \"./core/context/consumer/sharedObject\";\nimport {CollectionProvider} from \"./core/context/consumer/collection\";\n\nimport {UserContext} from \"./core/context/user\";\nimport {UserApi} from \"./core/api/user\";\nimport {UserRoles} from \"./core/enums\";\nimport {homepageByUserRole} from \"./core/helpers/redirect-helper\";\nimport {lightTheme} from \"./assets/themes/light-theme\";\nimport {darkTheme} from \"./assets/themes/dark-theme\";\nimport {ThemeProvider} from \"@material-ui/core/styles\";\nimport {PrivacyPolicy} from \"./scenes/shared/PrivacyPolicy\";\nimport {TermsAndConditions} from \"./scenes/shared/TermsAndConditions\";\nimport {OurMission} from \"./scenes/shared/OurMission\";\nimport {HelperApp} from \"./scenes/consumer/helper-app\";\nimport {HelperToolbar} from \"./components/layout/HelperToolbar\";\nimport {Tutorial} from \"./scenes/consumer/Tutorial\";\nimport {UtilsContext} from \"./core/context/utils.context\";\n\nexport const AppRouting: React.FC = () => {\n\n const [loading, setLoading] = useState(true);\n\n const userContext = useContext(UserContext);\n const utilsContext = useContext(UtilsContext);\n\n useEffect(() => {\n const token = getToken();\n\n if(!token) {\n setLoading(false);\n return;\n }\n\n UserApi.getUser()\n .then((res: any) => {\n userContext.setUser(res.data);\n setLoading(false);\n })\n .catch((error: any) => {\n console.error(error.response)\n setLoading(false);\n userContext.onLogout();\n window.localStorage.clear();\n window.location.replace(\"/\");\n })\n\n if(getJobIdFromStorage() !== null) {\n utilsContext.selectJob(Number(getJobIdFromStorage()));\n }\n }, [])\n\n return (\n \n \n \n {\n ((!userContext.user && !loading) ||\n userContext.user?.role === UserRoles.COLLECTOR ||\n userContext.user?.role === UserRoles.ARCHIVIST ||\n userContext.user?.role === UserRoles.CURATOR\n ) &&\n \n }\n {\n (userContext.user?.role === UserRoles.ARCHIVIST || userContext.user?.role === UserRoles.CURATOR) &&\n utilsContext.selectedJob !== -1 &&\n \n }\n {\n !loading &&\n \n \n\n \n \n \n \n \n \n \n\n (\n <>\n \n \n \n \n \n \n \n \n \n \n )}\n >\n \n\n \n\n (\n \n )}\n />\n\n \n \n \n }\n {\n loading && \n }\n \n \n )\n}\n","import React, {useEffect} from 'react';\n\nimport \"assets/styles/root.less\";\n\nimport { AppRouting } from \"./AppRouting\";\nimport { isMobileBrowser } from \"./core/helpers/utils\";\n\nimport { UserProvider } from \"core/context/user\";\nimport { SearchResultsProvider } from \"./core/context/searchResults\";\nimport { GlobalProvider } from \"./core/context/global\";\nimport { UtilsProvider } from \"./core/context/utils.context\";\n\nconst App: React.FC = () => {\n\n useEffect(() => {\n if(isMobileBrowser() && !window.sessionStorage.getItem('displayMobileAlert')) {\n alert('We are sorry, but this website is not yet optimized for mobile use and some' +\n ' features might not work as expected. Please open www.artifact.id on a desktop/laptop browser, or' +\n ' you can download out mobile app at the Apple Store or Google Play.');\n window.sessionStorage.setItem('displayMobileAlert', 'true');\n }\n }, [])\n\n return (\n \n \n \n \n \n \n \n \n \n );\n}\n\nexport default App;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport App from './App';\n\nReactDOM.render(, document.getElementById(\"root\"));\n"],"sourceRoot":""}