synapse-react-client 4.0.9 → 4.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/SWC.index.d.ts +1 -0
- package/dist/SWC.index.d.ts.map +1 -1
- package/dist/SWC.index.js +2 -1
- package/dist/SWC.index.js.map +1 -1
- package/dist/aridhia-queries/aridhiaTokenExchange.js.map +1 -1
- package/dist/aridhia-queries/useGetAridhiaRequests.js.map +1 -1
- package/dist/assets/icons/TasksIcon.d.ts.map +1 -1
- package/dist/assets/icons/TasksIcon.js +6 -10
- package/dist/assets/icons/TasksIcon.js.map +1 -1
- package/dist/components/AccessRequirementAclEditor/AccessRequirementAclEditor.d.ts.map +1 -1
- package/dist/components/AccessRequirementAclEditor/AccessRequirementAclEditor.js +69 -63
- package/dist/components/AccessRequirementAclEditor/AccessRequirementAclEditor.js.map +1 -1
- package/dist/components/AccessRequirementList/AccessApprovalCheckMark.js.map +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementList.js.map +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementListUtils.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsEditor.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/SelfSignAccessRequirementItem.js.map +1 -1
- package/dist/components/AccessRequirementRelatedProjectsList/AccessRequirementRelatedProjectsList.js.map +1 -1
- package/dist/components/AccessTokenPage/AccessTokenCard/AccessTokenCard.js.map +1 -1
- package/dist/components/AcknowledgementsPage/StudyAcknowledgements.js.map +1 -1
- package/dist/components/AclEditor/PermissionLevelMenu.js.map +1 -1
- package/dist/components/AclEditor/ResourceAccessAndUserGroupHeader.js.map +1 -1
- package/dist/components/AclEditor/useSortResourceAccessList.js.map +1 -1
- package/dist/components/AclEditor/useUpdateAcl.js.map +1 -1
- package/dist/components/Aridhia/AridhiaAccessStatus.js.map +1 -1
- package/dist/components/Authentication/AuthenticationMethodSelection.d.ts.map +1 -1
- package/dist/components/Authentication/AuthenticationMethodSelection.js +38 -37
- package/dist/components/Authentication/AuthenticationMethodSelection.js.map +1 -1
- package/dist/components/Authentication/Constants.d.ts +1 -0
- package/dist/components/Authentication/Constants.d.ts.map +1 -1
- package/dist/components/Authentication/Constants.js +2 -2
- package/dist/components/Authentication/Constants.js.map +1 -1
- package/dist/components/Authentication/LastLoginInfo.js.map +1 -1
- package/dist/components/Authentication/RecoveryCodeForm.js.map +1 -1
- package/dist/components/Authentication/RecoveryCodeGrid.js.map +1 -1
- package/dist/components/Authentication/RegenerateBackupCodesWarning.js.map +1 -1
- package/dist/components/Authentication/Reset2FAWarning.js.map +1 -1
- package/dist/components/Authentication/StandaloneLoginForm.js +1 -1
- package/dist/components/Authentication/TwoFactorBackupCodes.js.map +1 -1
- package/dist/components/Authentication/TwoFactorEnrollmentForm.d.ts.map +1 -1
- package/dist/components/Authentication/TwoFactorEnrollmentForm.js +2 -1
- package/dist/components/Authentication/TwoFactorEnrollmentForm.js.map +1 -1
- package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.js.map +1 -1
- package/dist/components/CardContainer/CardContainer.js.map +1 -1
- package/dist/components/CardDeck/CardDeck.Mobile.js.map +1 -1
- package/dist/components/CardDeck/TableQueryCardDeck.js.map +1 -1
- package/dist/components/CertificationQuiz/CertificationQuiz.js.map +1 -1
- package/dist/components/ChallengeDataDownload/ChallengeDataDownload.js.map +1 -1
- package/dist/components/ChallengeSubmission/ChallengeSubmission.js.map +1 -1
- package/dist/components/ChallengeSubmission/ChallengeSubmissionStepper.js.map +1 -1
- package/dist/components/ChallengeSubmission/EvaluationQueueCurrentRoundInfo.js.map +1 -1
- package/dist/components/ChallengeSubmission/EvaluationQueueList.js.map +1 -1
- package/dist/components/ChallengeSubmission/SubmissionDirectoryList.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/ChallengeTeamWizard.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/CreateChallengeTeam.js.map +1 -1
- package/dist/components/ChangePassword/ChangePassword.js.map +1 -1
- package/dist/components/ChangePassword/ChangePasswordWithToken.js.map +1 -1
- package/dist/components/ChangePassword/useChangePasswordFormState.js +1 -1
- package/dist/components/ChangePassword/useChangePasswordFormState.js.map +1 -1
- package/dist/components/CitationPopover/CitationPopoverContent.js.map +1 -1
- package/dist/components/ColumnFilter/ColumnFilter.js.map +1 -1
- package/dist/components/ComponentCollapse.js.map +1 -1
- package/dist/components/CookiesNotification/CookiesNotification.js.map +1 -1
- package/dist/components/CreateProjectModal/CreateProjectModal.js.map +1 -1
- package/dist/components/CreateTableViewWizard/CreateTableViewWizardUtils.js.map +1 -1
- package/dist/components/DataGrid/DataGrid.d.ts +0 -1
- package/dist/components/DataGrid/DataGrid.d.ts.map +1 -1
- package/dist/components/DataGrid/DataGrid.js +72 -72
- package/dist/components/DataGrid/DataGrid.js.map +1 -1
- package/dist/components/DataGrid/DataGridWebSocket.d.ts +4 -0
- package/dist/components/DataGrid/DataGridWebSocket.d.ts.map +1 -1
- package/dist/components/DataGrid/DataGridWebSocket.js +9 -8
- package/dist/components/DataGrid/DataGridWebSocket.js.map +1 -1
- package/dist/components/DataGrid/SynapseGrid.d.ts.map +1 -1
- package/dist/components/DataGrid/SynapseGrid.js +326 -268
- package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
- package/dist/components/DataGrid/columns/AutocompleteColumn.d.ts +2 -0
- package/dist/components/DataGrid/columns/AutocompleteColumn.d.ts.map +1 -1
- package/dist/components/DataGrid/columns/AutocompleteColumn.js +113 -67
- package/dist/components/DataGrid/columns/AutocompleteColumn.js.map +1 -1
- package/dist/components/DataGrid/columns/AutocompleteMultipleEnumColumn.d.ts +2 -1
- package/dist/components/DataGrid/columns/AutocompleteMultipleEnumColumn.d.ts.map +1 -1
- package/dist/components/DataGrid/columns/AutocompleteMultipleEnumColumn.js +126 -122
- package/dist/components/DataGrid/columns/AutocompleteMultipleEnumColumn.js.map +1 -1
- package/dist/components/DataGrid/columns/useGridAutocompleteState.d.ts +58 -0
- package/dist/components/DataGrid/columns/useGridAutocompleteState.d.ts.map +1 -0
- package/dist/components/DataGrid/columns/useGridAutocompleteState.js +52 -0
- package/dist/components/DataGrid/columns/useGridAutocompleteState.js.map +1 -0
- package/dist/components/DataGrid/components/ValidationAlert.d.ts +5 -2
- package/dist/components/DataGrid/components/ValidationAlert.d.ts.map +1 -1
- package/dist/components/DataGrid/components/ValidationAlert.js +429 -24
- package/dist/components/DataGrid/components/ValidationAlert.js.map +1 -1
- package/dist/components/DataGrid/hooks/useColumnResizeHandles.js.map +1 -1
- package/dist/components/DataGrid/hooks/useGetSchemaForGrid.js.map +1 -1
- package/dist/components/DataGrid/hooks/useGridUndoRedo.js.map +1 -1
- package/dist/components/DataGrid/hooks/useStack.js.map +1 -1
- package/dist/components/DataGrid/useCRDTModelView.js.map +1 -1
- package/dist/components/DataGrid/useDataGridWebsocket.d.ts +7 -0
- package/dist/components/DataGrid/useDataGridWebsocket.d.ts.map +1 -1
- package/dist/components/DataGrid/useDataGridWebsocket.js +16 -2
- package/dist/components/DataGrid/useDataGridWebsocket.js.map +1 -1
- package/dist/components/DataGrid/useInitializeGridConnection.js.map +1 -1
- package/dist/components/DataGrid/useMergeGridWithRecordSet.js.map +1 -1
- package/dist/components/DataGrid/useMergeGridWithSource.js.map +1 -1
- package/dist/components/DataGrid/useMergeGridWithTable.js.map +1 -1
- package/dist/components/DataGrid/utils/DataGridUtils.js.map +1 -1
- package/dist/components/DataGrid/utils/applyModelChange.js.map +1 -1
- package/dist/components/DataGrid/utils/columnFactory.js.map +1 -1
- package/dist/components/DataGrid/utils/computeReplicaSelectionModel.js.map +1 -1
- package/dist/components/DataGrid/utils/extractColumnValidationMessages.js.map +1 -1
- package/dist/components/DataGrid/utils/getCellClassName.d.ts.map +1 -1
- package/dist/components/DataGrid/utils/getCellClassName.js +8 -8
- package/dist/components/DataGrid/utils/getCellClassName.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRx.js.map +1 -1
- package/dist/components/DataGrid/utils/modelRowsToGrid.js.map +1 -1
- package/dist/components/DataGrid/utils/parseFreeTextUsingJsonSchemaType.js.map +1 -1
- package/dist/components/DataGrid/utils/splitPatch.js.map +1 -1
- package/dist/components/DateTimePicker/DateTimePicker.js.map +1 -1
- package/dist/components/DirectDownload/DirectDownload.js.map +1 -1
- package/dist/components/DirectDownloadButton.js.map +1 -1
- package/dist/components/DownloadCart/CreatePackageV2.js.map +1 -1
- package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js.map +1 -1
- package/dist/components/DownloadCart/DownloadListActionsRequired.js.map +1 -1
- package/dist/components/DownloadCart/DownloadListTable.js.map +1 -1
- package/dist/components/DownloadCart/fileNameUtils.js.map +1 -1
- package/dist/components/DraggableDialog/DraggableDialog.js.map +1 -1
- package/dist/components/DynamicForm/DynamicFormModal.js.map +1 -1
- package/dist/components/Ecosystem/TableQueryEcosystem.js.map +1 -1
- package/dist/components/EntityAclEditor/EntityAclEditor.d.ts.map +1 -1
- package/dist/components/EntityAclEditor/EntityAclEditor.js +103 -103
- package/dist/components/EntityAclEditor/EntityAclEditor.js.map +1 -1
- package/dist/components/EntityAclEditor/useNotifyNewACLUsers.js.map +1 -1
- package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js.map +1 -1
- package/dist/components/EntityCitation/EntityCitation.js.map +1 -1
- package/dist/components/EntityDownloadButton/EntityDownloadButton.js.map +1 -1
- package/dist/components/EntityDownloadConfirmation/EntityDownloadConfirmation.d.ts.map +1 -1
- package/dist/components/EntityDownloadConfirmation/EntityDownloadConfirmation.js +36 -30
- package/dist/components/EntityDownloadConfirmation/EntityDownloadConfirmation.js.map +1 -1
- package/dist/components/EntityFinder/EntityFinder.js.map +1 -1
- package/dist/components/EntityFinder/VersionSelectionType.js.map +1 -1
- package/dist/components/EntityFinder/details/configurations/EntityChildrenDetails.js.map +1 -1
- package/dist/components/EntityFinder/details/configurations/FavoritesDetails.js.map +1 -1
- package/dist/components/EntityFinder/details/configurations/ProjectListDetails.js.map +1 -1
- package/dist/components/EntityFinder/details/view/DetailsView.js.map +1 -1
- package/dist/components/EntityFinder/tree/EntityTree.js.map +1 -1
- package/dist/components/EntityFinder/tree/VirtualizedTree.js.map +1 -1
- package/dist/components/EntityFinder/useEntitySelection.js.map +1 -1
- package/dist/components/EntityForm/EntityForm.js.map +1 -1
- package/dist/components/EntityHeaderTable/EntityHeaderTable.js.map +1 -1
- package/dist/components/EntityHeaderTable/Filter.js.map +1 -1
- package/dist/components/EntityHeaderTable/useEntityHeaderTableState.js.map +1 -1
- package/dist/components/EntitySubjectsSelector/EntitySubjectsSelector.js.map +1 -1
- package/dist/components/EntityTreeTable/components/IdColumnHeader.js.map +1 -1
- package/dist/components/EntityTreeTable/hooks/useEntityTreeState.js.map +1 -1
- package/dist/components/EntityTreeTable/hooks/useTableColumns.js.map +1 -1
- package/dist/components/EntityTreeTable/hooks/useTableData.js.map +1 -1
- package/dist/components/EntityTreeTable/hooks/useTreeOperationsWithDirectFetch.js.map +1 -1
- package/dist/components/EntityUpload/EntityUpload.js.map +1 -1
- package/dist/components/ExperimentalMode/ExperimentalMode.js.map +1 -1
- package/dist/components/ExternalFileHandleLink/ExternalFileHandleLink.js.map +1 -1
- package/dist/components/FeaturedDataTabs/FacetPlotsCard.js.map +1 -1
- package/dist/components/FeaturedDataTabs/QueryPerFacetPlotsCard.js.map +1 -1
- package/dist/components/FeaturedDataTabs/SingleQueryFacetPlotsCards.js.map +1 -1
- package/dist/components/FeaturedResearch/FeaturedResearch.js.map +1 -1
- package/dist/components/FeaturedToolsList/FeaturedToolsList.js.map +1 -1
- package/dist/components/FilePreview/FileHandleContentRenderer.js.map +1 -1
- package/dist/components/FilePreview/HtmlPreview/HtmlPreview.js.map +1 -1
- package/dist/components/FilePreview/PreviewRendererType.js.map +1 -1
- package/dist/components/Forum/DiscussionReply.js.map +1 -1
- package/dist/components/Forum/DiscussionSearchResult.js.map +1 -1
- package/dist/components/Forum/ForumTable.js.map +1 -1
- package/dist/components/Forum/ForumThreadEditor.js.map +1 -1
- package/dist/components/FullTextSearch/FullTextSearchUtils.js.map +1 -1
- package/dist/components/GenericCard/GenericCard.d.ts.map +1 -1
- package/dist/components/GenericCard/GenericCard.js +12 -7
- package/dist/components/GenericCard/GenericCard.js.map +1 -1
- package/dist/components/GenericCard/Linkify.js.map +1 -1
- package/dist/components/GenericCard/SynapseCardLabel.js.map +1 -1
- package/dist/components/GenericCard/TableRowGenericCard.js +105 -105
- package/dist/components/GenericCard/TableRowGenericCard.js.map +1 -1
- package/dist/components/Goals/Goals.Mobile.js.map +1 -1
- package/dist/components/Goals/Goals.js.map +1 -1
- package/dist/components/GoalsV2/GoalsV2.Mobile.js.map +1 -1
- package/dist/components/GoalsV2/GoalsV2.js.map +1 -1
- package/dist/components/GoalsV3/GoalsV3.Mobile.js.map +1 -1
- package/dist/components/GoalsV3/GoalsV3.js.map +1 -1
- package/dist/components/GoogleMap/SynapseUserMarker.js.map +1 -1
- package/dist/components/HasAccess/AccessIcon.js.map +1 -1
- package/dist/components/HasAccess/useHasAccess.js.map +1 -1
- package/dist/components/HeaderCard/HeaderCardV2.js.map +1 -1
- package/dist/components/HeaderCard.d.ts +6 -1
- package/dist/components/HeaderCard.d.ts.map +1 -1
- package/dist/components/HeaderCard.js +107 -76
- package/dist/components/HeaderCard.js.map +1 -1
- package/dist/components/HexGrid/HexGrid.js.map +1 -1
- package/dist/components/IconList.js.map +1 -1
- package/dist/components/ImageCardGridWithLinks/ImageCardGridWithLinks.js.map +1 -1
- package/dist/components/ImageFromSynapseTable.js.map +1 -1
- package/dist/components/JSONArrayEditor/useParseCsv.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ArrayFieldDescriptionTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ArrayFieldItemTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/BaseInputTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/FieldTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/RJSFInputLabel.js.map +1 -1
- package/dist/components/Markdown/MarkdownGithub.js.map +1 -1
- package/dist/components/Markdown/MarkdownSynapse.js.map +1 -1
- package/dist/components/Markdown/MarkdownUtils.js.map +1 -1
- package/dist/components/Markdown/SynapseWikiContext.js.map +1 -1
- package/dist/components/Markdown/UserMentionModal.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownProvenanceGraph.js.map +1 -1
- package/dist/components/MissingQueryResultsWarning/MissingQueryResultsWarning.js.map +1 -1
- package/dist/components/ModalDownload/ModalDownload.js.map +1 -1
- package/dist/components/OAuthClientAclEditor/OAuthClientAclEditor.d.ts.map +1 -1
- package/dist/components/OAuthClientAclEditor/OAuthClientAclEditor.js +45 -39
- package/dist/components/OAuthClientAclEditor/OAuthClientAclEditor.js.map +1 -1
- package/dist/components/OAuthClientManagement/OAuthManagement.js.map +1 -1
- package/dist/components/PageProgress/PageProgress.js.map +1 -1
- package/dist/components/Plot/DotPlot.js.map +1 -1
- package/dist/components/Plot/Plot.js.map +1 -1
- package/dist/components/Plot/SynapsePlot.js.map +1 -1
- package/dist/components/Plot/ThemesPlot.js.map +1 -1
- package/dist/components/Plot/UpsetPlot.js.map +1 -1
- package/dist/components/PortalAclEditor/PortalAclEditor.d.ts.map +1 -1
- package/dist/components/PortalAclEditor/PortalAclEditor.js +43 -41
- package/dist/components/PortalAclEditor/PortalAclEditor.js.map +1 -1
- package/dist/components/PortalFeaturedPartners/PortalFeaturedPartners.js.map +1 -1
- package/dist/components/PortalList/CreatePortalModal.js.map +1 -1
- package/dist/components/ProgrammaticInstructionsModal/ProgrammaticInstructionsModal.js.map +1 -1
- package/dist/components/ProgrammaticTableDownload/ProgrammaticTableDownload.js.map +1 -1
- package/dist/components/Programs/Programs.Mobile.js.map +1 -1
- package/dist/components/Programs/Programs.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceExternalIcon.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceGraph.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceGraphUtils.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceUtils.js.map +1 -1
- package/dist/components/QueryCount/QueryCount.js.map +1 -1
- package/dist/components/QueryCountButton/QueryCountButton.js.map +1 -1
- package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js.map +1 -1
- package/dist/components/QueryWrapper/QueryWrapper.js.map +1 -1
- package/dist/components/QueryWrapper/TableQueryUseQueryOptions.js.map +1 -1
- package/dist/components/QueryWrapper/TableRowSelectionState.js.map +1 -1
- package/dist/components/QueryWrapper/generateEncodedPathAndQueryForSelectedFacetURL.js.map +1 -1
- package/dist/components/QueryWrapper/useGetQueryMetadata.js.map +1 -1
- package/dist/components/QueryWrapperErrorBoundary.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/UseRowSet.js.map +1 -1
- package/dist/components/RecentPublicationsGrid/RecentPublicationsGrid.js.map +1 -1
- package/dist/components/ReleaseCard/ReleaseCardUtils.js.map +1 -1
- package/dist/components/ResizableContainer/hooks/useResizable.js.map +1 -1
- package/dist/components/Resources/Resources.Mobile.js.map +1 -1
- package/dist/components/Resources/Resources.js.map +1 -1
- package/dist/components/RowDataTable/RowDataTableWithQuery.js.map +1 -1
- package/dist/components/SageResourcesPopover/SageResourcesPopover.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/AnnotationEditorUtils.js.map +1 -1
- package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.js.map +1 -1
- package/dist/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.js.map +1 -1
- package/dist/components/SmartLink/SmartButton.js.map +1 -1
- package/dist/components/SmartLink/SmartLink.js.map +1 -1
- package/dist/components/SourceAppImage.js.map +1 -1
- package/dist/components/StandaloneQueryWrapper/StandaloneQueryWrapper.js.map +1 -1
- package/dist/components/StatisticsPlot.js.map +1 -1
- package/dist/components/StorybookComponentWrapper.js.map +1 -1
- package/dist/components/SubsectionRowRenderer/SubsectionRowRenderer.js.map +1 -1
- package/dist/components/SustainabilityScorecard/SustainabilityScorecard.js.map +1 -1
- package/dist/components/SynapseChat/GridAgentChat.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChatInteraction.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChatMessage.js.map +1 -1
- package/dist/components/SynapseChat/extractMessageFromTraceEvent.js.map +1 -1
- package/dist/components/SynapseForm/StepsSideNav.js.map +1 -1
- package/dist/components/SynapseForm/SummaryTable.js.map +1 -1
- package/dist/components/SynapseForm/SynapseForm.js +4 -2
- package/dist/components/SynapseForm/SynapseForm.js.map +1 -1
- package/dist/components/SynapseForm/SynapseFormWrapper.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseByTheNumbersItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseFeatureItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageChatSearch.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageSearch.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseInActionItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapsePlans.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseTrendingProjects.js.map +1 -1
- package/dist/components/SynapseNavDrawer/SynapseNavDrawer.d.ts +8 -7
- package/dist/components/SynapseNavDrawer/SynapseNavDrawer.d.ts.map +1 -1
- package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js +173 -164
- package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js.map +1 -1
- package/dist/components/SynapsePortalBanners/SynapsePortalBanners.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanel.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanelUtils.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SynapseSearchPageResults.js.map +1 -1
- package/dist/components/SynapseTable/EntityIDColumnCopyIcon.js.map +1 -1
- package/dist/components/SynapseTable/NoContentPlaceholderType.js.map +1 -1
- package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/SynapseTableCell.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableRenderers.js.map +1 -1
- package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js.map +1 -1
- package/dist/components/SynapseTable/table-top/ColumnSelection.js.map +1 -1
- package/dist/components/SynapseTable/table-top/DownloadOptions.js.map +1 -1
- package/dist/components/SynapseTable/usePrefetchTableData.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/DefaultValueField.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ImportTableColumnsButton.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.d.ts +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.d.ts.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormReducer.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/ColumnModelValidator.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/DatetimeSchema.js.map +1 -1
- package/dist/components/TanStackTable/ColumnHeader.d.ts +1 -0
- package/dist/components/TanStackTable/ColumnHeader.d.ts.map +1 -1
- package/dist/components/TanStackTable/ColumnHeader.js +8 -8
- package/dist/components/TanStackTable/ColumnHeader.js.map +1 -1
- package/dist/components/TanStackTable/ColumnHeaderEnumFilter.js.map +1 -1
- package/dist/components/TanStackTable/TableBody.js.map +1 -1
- package/dist/components/TeamSubjectsSelector/TeamSubjectsSelector.js.map +1 -1
- package/dist/components/TextField/TextField.js.map +1 -1
- package/dist/components/TimelinePlot/TimelinePhase.js.map +1 -1
- package/dist/components/TimelinePlot/TimelinePlot.js.map +1 -1
- package/dist/components/TimelinePlot/TimelinePlotSpeciesSelector.js.map +1 -1
- package/dist/components/UserCard/Avatar.js.map +1 -1
- package/dist/components/UserCardList/UserCardList.js.map +1 -1
- package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.Mobile.js.map +1 -1
- package/dist/components/UserCardList/UserCardListRotate.js.map +1 -1
- package/dist/components/UserOrTeamBadge/useUserOrTeam.js.map +1 -1
- package/dist/components/UserProfileLinks/UserProjects.js.map +1 -1
- package/dist/components/UserSearchBox/UserSearchBox.js.map +1 -1
- package/dist/components/Webhook/WebhookDashboard.js.map +1 -1
- package/dist/components/WikiMarkdownEditor/WikiMarkdownEditor.js.map +1 -1
- package/dist/components/WikiMarkdownEditorButton/WikiMarkdownEditorButton.js.map +1 -1
- package/dist/components/dataaccess/AccessApprovalsTable.js.map +1 -1
- package/dist/components/dataaccess/AccessRequestSubmissionTable.js.map +1 -1
- package/dist/components/dataaccess/SubmissionPage/SubmissionPage.js.map +1 -1
- package/dist/components/dataaccess/UseAccessRequirementTable.js.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryTable.js.map +1 -1
- package/dist/components/doi/CreateOrUpdateDoiModal.js.map +1 -1
- package/dist/components/entity/page/CreatedByModifiedBy.js.map +1 -1
- package/dist/components/entity/page/action_menu/EntityActionMenu.js.map +1 -1
- package/dist/components/entity/page/title_bar/useDataCiteUsage.js.map +1 -1
- package/dist/components/entity/page/title_bar/useGetMentions.js.map +1 -1
- package/dist/components/error/ErrorPage.js.map +1 -1
- package/dist/components/favorites/FavoritesPage.js.map +1 -1
- package/dist/components/file/upload/BasicFileHandleUpload.js.map +1 -1
- package/dist/components/layout/SWCHeader.d.ts +9 -0
- package/dist/components/layout/SWCHeader.d.ts.map +1 -0
- package/dist/components/layout/SWCHeader.js +19 -0
- package/dist/components/layout/SWCHeader.js.map +1 -0
- package/dist/components/layout/SWCPageLayout.d.ts +9 -0
- package/dist/components/layout/SWCPageLayout.d.ts.map +1 -0
- package/dist/components/layout/SWCPageLayout.js +14 -0
- package/dist/components/layout/SWCPageLayout.js.map +1 -0
- package/dist/components/menu/ComplexMenu.js.map +1 -1
- package/dist/components/row_renderers/utils/ChipContainer.js.map +1 -1
- package/dist/components/styled/StyledPopover.js.map +1 -1
- package/dist/components/table/CsvPreview/CsvPreview.js +2 -1
- package/dist/components/table/CsvPreview/CsvPreview.js.map +1 -1
- package/dist/components/table/CsvPreview/CsvPreviewDialog.js.map +1 -1
- package/dist/components/trash/TrashCanList.js.map +1 -1
- package/dist/components/widgets/FileHandleLink.js.map +1 -1
- package/dist/components/widgets/RangeSlider/RangeSlider.js.map +1 -1
- package/dist/components/widgets/SynapseVideo.js.map +1 -1
- package/dist/components/widgets/facet-nav/FacetNavPanel.js.map +1 -1
- package/dist/components/widgets/facet-nav/PlotsContainer.js.map +1 -1
- package/dist/components/widgets/facet-nav/SelectionCriteriaPills.js.map +1 -1
- package/dist/components/widgets/facet-nav/useFacetPlots.js.map +1 -1
- package/dist/components/widgets/query-filter/CombinedRangeFacetFilter.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.js.map +1 -1
- package/dist/components/widgets/query-filter/FacetFilterControls.js.map +1 -1
- package/dist/components/widgets/query-filter/RangeFacetFilter.js.map +1 -1
- package/dist/components/widgets/query-filter/RangeFacetFilterUI.js.map +1 -1
- package/dist/features/curator/GridPage/components/GridPageTitle.d.ts.map +1 -1
- package/dist/features/curator/GridPage/components/GridPageTitle.js +23 -30
- package/dist/features/curator/GridPage/components/GridPageTitle.js.map +1 -1
- package/dist/features/curator/dashboard/CuratorDashboard.d.ts +2 -0
- package/dist/features/curator/dashboard/CuratorDashboard.d.ts.map +1 -0
- package/dist/features/curator/dashboard/CuratorDashboard.js +45 -0
- package/dist/features/curator/dashboard/CuratorDashboard.js.map +1 -0
- package/dist/features/curator/dashboard/components/CurationTaskCard.css +1 -0
- package/dist/features/curator/dashboard/components/CurationTaskCard.d.ts +9 -0
- package/dist/features/curator/dashboard/components/CurationTaskCard.d.ts.map +1 -0
- package/dist/features/curator/dashboard/components/CurationTaskCard.js +106 -0
- package/dist/features/curator/dashboard/components/CurationTaskCard.js.map +1 -0
- package/dist/features/curator/dashboard/components/CurationTaskCard.module.js +12 -0
- package/dist/features/curator/dashboard/components/CurationTaskCard.module.js.map +1 -0
- package/dist/features/curator/dashboard/components/CurationTaskCard.module.scss +52 -0
- package/dist/features/curator/dashboard/components/NextStepButton.css +1 -0
- package/dist/features/curator/dashboard/components/NextStepButton.d.ts +14 -0
- package/dist/features/curator/dashboard/components/NextStepButton.d.ts.map +1 -0
- package/dist/features/curator/dashboard/components/NextStepButton.js +35 -0
- package/dist/features/curator/dashboard/components/NextStepButton.js.map +1 -0
- package/dist/features/curator/dashboard/components/NextStepButton.module.js +11 -0
- package/dist/features/curator/dashboard/components/NextStepButton.module.js.map +1 -0
- package/dist/features/curator/dashboard/components/NextStepButton.module.scss +57 -0
- package/dist/features/curator/dashboard/components/UserOrTeamChip.css +1 -1
- package/dist/features/curator/dashboard/components/UserOrTeamChip.module.js +1 -1
- package/dist/features/curator/dashboard/components/UserOrTeamChip.module.js.map +1 -1
- package/dist/features/curator/dashboard/components/UserOrTeamChip.module.scss +5 -5
- package/dist/features/curator/dashboard/components/shared.css +1 -0
- package/dist/features/curator/dashboard/components/shared.module.js +5 -0
- package/dist/features/curator/dashboard/components/shared.module.js.map +1 -0
- package/dist/features/curator/dashboard/components/shared.module.scss +8 -0
- package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.d.ts +0 -2
- package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js +16 -34
- package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useGetOrCreateGridSessionForSource.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask_legacy.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js +1 -1
- package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.d.ts +10 -0
- package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.d.ts.map +1 -0
- package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.js +37 -0
- package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.js.map +1 -0
- package/dist/features/entity/metadata-task/utils/constants.d.ts +5 -0
- package/dist/features/entity/metadata-task/utils/constants.d.ts.map +1 -0
- package/dist/features/entity/metadata-task/utils/constants.js +6 -0
- package/dist/features/entity/metadata-task/utils/constants.js.map +1 -0
- package/dist/mocks/challenge/mockChallenge.js.map +1 -1
- package/dist/mocks/entity/mockDataset.js.map +1 -1
- package/dist/mocks/entity/mockDatasetCollection.js.map +1 -1
- package/dist/mocks/entity/mockFileEntity.js.map +1 -1
- package/dist/mocks/entity/mockFileView.js.map +1 -1
- package/dist/mocks/entity/mockGeneratedEntityData.js.map +1 -1
- package/dist/mocks/entity/mockProject.js.map +1 -1
- package/dist/mocks/entity/mockProjectView.js.map +1 -1
- package/dist/mocks/entity/mockRootEntity.js.map +1 -1
- package/dist/mocks/entity/mockTableEntity.js.map +1 -1
- package/dist/mocks/mockWiki.js.map +1 -1
- package/dist/mocks/msw/handlers/asyncJobHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/challengeHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/changePasswordHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/discussionHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/entityHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/fileHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/gridHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/personalAccessTokenHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/subscriptionHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/teamHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/userProfileHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/wikiHandlers.js.map +1 -1
- package/dist/mocks/provenance/mockActivity.js.map +1 -1
- package/dist/mocks/query/mockReleaseCardsTableQueryResultBundle.js.map +1 -1
- package/dist/ror-client/index.js.map +1 -1
- package/dist/style/components/_cards.scss +4 -0
- package/dist/style/components/_data-grid-extra.css +1 -1
- package/dist/style/components/_data-grid-extra.scss +2 -0
- package/dist/style/main.css +1 -1
- package/dist/synapse-client/HttpClient.js.map +1 -1
- package/dist/synapse-client/SynapseClient.js.map +1 -1
- package/dist/synapse-queries/QueryMatching.test-utils.js.map +1 -1
- package/dist/synapse-queries/auth/useTwoFactorEnrollment.js.map +1 -1
- package/dist/synapse-queries/curation/task/useCurationTask.d.ts +1 -1
- package/dist/synapse-queries/curation/task/useCurationTask.d.ts.map +1 -1
- package/dist/synapse-queries/curation/task/useCurationTask.js +1 -1
- package/dist/synapse-queries/curation/task/useCurationTask.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useRestrictionInformation.js.map +1 -1
- package/dist/synapse-queries/doi/useDOI.js.map +1 -1
- package/dist/synapse-queries/download/useDownloadList.js.map +1 -1
- package/dist/synapse-queries/entity/useEntity.js.map +1 -1
- package/dist/synapse-queries/entity/useEntityBundle.js.map +1 -1
- package/dist/synapse-queries/entity/useExportTableQueryToAnalysisPlatform.js.map +1 -1
- package/dist/synapse-queries/entity/useExportToTerra.js.map +1 -1
- package/dist/synapse-queries/entity/useGetQueryResultBundle.js.map +1 -1
- package/dist/synapse-queries/entity/useSchema.js.map +1 -1
- package/dist/synapse-queries/file/UploadToS3.js.map +1 -1
- package/dist/synapse-queries/file/useDirectUploadToS3.js.map +1 -1
- package/dist/synapse-queries/file/useFiles.js.map +1 -1
- package/dist/synapse-queries/forum/useReply.js.map +1 -1
- package/dist/synapse-queries/forum/useThread.js.map +1 -1
- package/dist/synapse-queries/grid/useEstablishWebsocketConnection.d.ts +2 -0
- package/dist/synapse-queries/grid/useEstablishWebsocketConnection.d.ts.map +1 -1
- package/dist/synapse-queries/grid/useEstablishWebsocketConnection.js.map +1 -1
- package/dist/synapse-queries/grid/useExportGrid.js.map +1 -1
- package/dist/synapse-queries/grid/useGridSession.js.map +1 -1
- package/dist/synapse-queries/grid/useImportCsvIntoGrid.js.map +1 -1
- package/dist/synapse-queries/subscription/useSubscription.js.map +1 -1
- package/dist/synapse-queries/table/useGetCsvPreview.js.map +1 -1
- package/dist/synapse-queries/table/useTableUpdateTransaction.js.map +1 -1
- package/dist/synapse-queries/team/useTeamMembers.js.map +1 -1
- package/dist/synapse-queries/user/useGetUserChallenges.js.map +1 -1
- package/dist/synapse-queries/user/useUserBundle.js.map +1 -1
- package/dist/synapse-queries/user/useUserGroupHeader.js.map +1 -1
- package/dist/testutils/ReactQueryMockUtils.js.map +1 -1
- package/dist/theme/ThemeProvider.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utils/AppUtils/session/SynapseSessionManager.js.map +1 -1
- package/dist/utils/AppUtils/session/useSessionManager.js.map +1 -1
- package/dist/utils/PermissionLevelToAccessType.js.map +1 -1
- package/dist/utils/challenge/evaluation/EvaluationUtils.js.map +1 -1
- package/dist/utils/context/SynapseContext.js.map +1 -1
- package/dist/utils/functions/AccessControlListUtils.d.ts +4 -0
- package/dist/utils/functions/AccessControlListUtils.d.ts.map +1 -1
- package/dist/utils/functions/AccessControlListUtils.js +12 -1
- package/dist/utils/functions/AccessControlListUtils.js.map +1 -1
- package/dist/utils/functions/GridApiUtils.js.map +1 -1
- package/dist/utils/functions/QueryFilterUtils.js.map +1 -1
- package/dist/utils/functions/RealmUtils.d.ts +4 -0
- package/dist/utils/functions/RealmUtils.d.ts.map +1 -1
- package/dist/utils/functions/RealmUtils.js +9 -3
- package/dist/utils/functions/RealmUtils.js.map +1 -1
- package/dist/utils/functions/SanitizeHtmlUtils.js.map +1 -1
- package/dist/utils/functions/SanitizeHtmlUtils.test-utils.js.map +1 -1
- package/dist/utils/functions/SqlFunctions.js.map +1 -1
- package/dist/utils/functions/StringUtils.js.map +1 -1
- package/dist/utils/functions/deepLinkingUtils.js.map +1 -1
- package/dist/utils/functions/getDataFromFromStorage.js.map +1 -1
- package/dist/utils/functions/getEndpoint.js.map +1 -1
- package/dist/utils/functions/getUserData.js.map +1 -1
- package/dist/utils/functions/queryUtils.js.map +1 -1
- package/dist/utils/functions/testDownloadSpeed.js.map +1 -1
- package/dist/utils/hooks/useConfirmItems.js.map +1 -1
- package/dist/utils/hooks/useCookiePreferences.js.map +1 -1
- package/dist/utils/hooks/useCreateShortUrl.js.map +1 -1
- package/dist/utils/hooks/useDetectSSOCode.js.map +1 -1
- package/dist/utils/hooks/useDirectDownloadHandler.js.map +1 -1
- package/dist/utils/hooks/useGetGoalData.js.map +1 -1
- package/dist/utils/hooks/useGetInfoFromIds.js.map +1 -1
- package/dist/utils/hooks/useImageUrlUtils.js.map +1 -1
- package/dist/utils/hooks/useImmutableTableQuery/useImmutableTableQuery.js.map +1 -1
- package/dist/utils/hooks/useImmutableTableQuery/useTableQueryReducer.js.map +1 -1
- package/dist/utils/hooks/useIsBot.js.map +1 -1
- package/dist/utils/hooks/useListState.js.map +1 -1
- package/dist/utils/hooks/useLogin.d.ts.map +1 -1
- package/dist/utils/hooks/useLogin.js +53 -52
- package/dist/utils/hooks/useLogin.js.map +1 -1
- package/dist/utils/hooks/useMutuallyExclusiveState.js.map +1 -1
- package/dist/utils/hooks/useOverlay.js.map +1 -1
- package/dist/utils/hooks/usePreFetchResource.js.map +1 -1
- package/dist/utils/hooks/useQuerySearchParam.js.map +1 -1
- package/dist/utils/hooks/useScrollFadeTransition.js.map +1 -1
- package/dist/utils/hooks/useSet.js.map +1 -1
- package/dist/utils/hooks/useSourceAppConfigs.js.map +1 -1
- package/dist/utils/hooks/useTableImageUrl.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useCreatePathsAndGetParentId.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useLinkFileEntityToURL.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/usePrepareFileEntityUpload.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useTrackFileUploads.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useUploadFileEntities.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useUploadFiles.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/willUploadsExceedStorageLimit.js.map +1 -1
- package/dist/utils/html/TargetEnum.js.map +1 -1
- package/dist/utils/jsonschema/SchemaAnnotationUtils.js.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useReply.js","names":[],"sources":["../../../src/synapse-queries/forum/useReply.ts"],"sourcesContent":["import SynapseClient from '@/synapse-client'\nimport { SynapseClientError, useSynapseContext } from '@/utils'\nimport {\n CreateDiscussionReply,\n DiscussionFilter,\n DiscussionReplyBundle,\n DiscussionReplyOrder,\n Match,\n PaginatedResults,\n SubscriptionObjectType,\n UpdateDiscussionReply,\n} from '@sage-bionetworks/synapse-types'\nimport {\n InfiniteData,\n QueryKey,\n useInfiniteQuery,\n UseInfiniteQueryOptions,\n useMutation,\n UseMutationOptions,\n useQuery,\n useQueryClient,\n UseQueryOptions,\n} from '@tanstack/react-query'\nimport { getNextPageParamForPaginatedResults } from '../InfiniteQueryUtils'\n\nexport function useGetRepliesInfinite<\n TData = InfiniteData<PaginatedResults<DiscussionReplyBundle>>,\n>(\n threadId: string,\n ascending: boolean,\n limit: number,\n sort?: DiscussionReplyOrder,\n filter?: DiscussionFilter,\n options?: Partial<\n UseInfiniteQueryOptions<\n PaginatedResults<DiscussionReplyBundle>,\n SynapseClientError,\n TData,\n QueryKey,\n number | undefined\n >\n >,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n return useInfiniteQuery<\n PaginatedResults<DiscussionReplyBundle>,\n SynapseClientError,\n TData,\n QueryKey,\n number | undefined\n >({\n ...options,\n queryKey: keyFactory.getRepliesQueryKey(\n threadId,\n ascending,\n limit,\n sort,\n filter,\n ),\n queryFn: async context => {\n return SynapseClient.getReplies(\n accessToken,\n threadId,\n limit,\n context.pageParam,\n sort,\n ascending,\n filter,\n )\n },\n initialPageParam: undefined,\n getNextPageParam: getNextPageParamForPaginatedResults,\n })\n}\n\nexport function useGetReply(\n reply: DiscussionReplyBundle,\n options?: Partial<UseQueryOptions<string, SynapseClientError>>,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n const queryFn = async () => {\n const messageUrl = await SynapseClient.getReplyMessageUrl(\n reply.messageKey,\n accessToken,\n )\n const data = await fetch(messageUrl.messageUrl, {\n method: 'GET',\n headers: {\n Accept: '*/*',\n 'Access-Control-Request-Headers': 'authorization',\n 'Content-Type': 'text/plain; charset=utf-8',\n },\n })\n return data.text()\n }\n return useQuery<string, SynapseClientError>({\n ...options,\n queryKey: keyFactory.getReplyQueryKey(\n reply.threadId,\n reply.id,\n reply.messageKey,\n ),\n queryFn,\n })\n}\n\nexport function usePostReply(\n options?: UseMutationOptions<\n DiscussionReplyBundle,\n SynapseClientError,\n CreateDiscussionReply\n >,\n) {\n const queryClient = useQueryClient()\n const { accessToken, keyFactory } = useSynapseContext()\n return useMutation<\n DiscussionReplyBundle,\n SynapseClientError,\n CreateDiscussionReply\n >({\n ...options,\n mutationFn: (request: CreateDiscussionReply) =>\n SynapseClient.postReply(request, accessToken),\n onSuccess: async (newReply, variables, ctx) => {\n await Promise.all([\n queryClient.invalidateQueries({\n queryKey: keyFactory.getAllRepliesQueryKey(newReply.threadId),\n }),\n // Posting a reply will add the subscription, so invalidate query for list of subscribers\n queryClient.invalidateQueries({\n queryKey: keyFactory.getSubscribersQueryKey(\n newReply.threadId,\n SubscriptionObjectType.THREAD,\n ),\n }),\n ])\n if (options?.onSuccess) {\n await options.onSuccess(newReply, variables, ctx)\n }\n },\n })\n}\n\nexport function usePutReply(\n options?: UseMutationOptions<\n DiscussionReplyBundle,\n SynapseClientError,\n UpdateDiscussionReply\n >,\n) {\n const queryClient = useQueryClient()\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useMutation<\n DiscussionReplyBundle,\n SynapseClientError,\n UpdateDiscussionReply\n >({\n ...options,\n mutationFn: (request: UpdateDiscussionReply) =>\n SynapseClient.putReply(request, accessToken),\n onSuccess: async (newReply, variables, ctx) => {\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getAllRepliesQueryKey(newReply.threadId),\n })\n\n if (options?.onSuccess) {\n await options.onSuccess(newReply, variables, ctx)\n }\n },\n })\n}\n\nexport function useDeleteReply(\n options?: Partial<UseMutationOptions<void, SynapseClientError, Match>>,\n) {\n const queryClient = useQueryClient()\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useMutation<void, SynapseClientError, Match>({\n ...options,\n mutationFn: (match: Match) =>\n SynapseClient.deleteReply(accessToken, match.replyId),\n onSuccess: async (updatedReply, variables, ctx) => {\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getAllRepliesQueryKey(variables.threadId),\n })\n\n if (options?.onSuccess) {\n await options.onSuccess(updatedReply, variables, ctx)\n }\n },\n })\n}\n"],"mappings":";;;;;;;AAyBA,SAAgB,EAGd,GACA,GACA,GACA,GACA,GACA,GASA;CACA,IAAM,EAAE,gBAAa,kBAAe,GAAmB;AACvD,QAAO,EAML;EACA,GAAG;EACH,UAAU,EAAW,mBACnB,GACA,GACA,GACA,GACA,EACD;EACD,SAAS,OAAM,MACN,EAAc,WACnB,GACA,GACA,GACA,EAAQ,WACR,GACA,GACA,EACD;EAEH,kBAAkB,KAAA;EAClB,kBAAkB;EACnB,CAAC;;AAGJ,SAAgB,EACd,GACA,GACA;CACA,IAAM,EAAE,gBAAa,kBAAe,GAAmB,EACjD,IAAU,YAAY;EAC1B,IAAM,IAAa,MAAM,EAAc,mBACrC,EAAM,YACN,EACD;AASD,
|
|
1
|
+
{"version":3,"file":"useReply.js","names":[],"sources":["../../../src/synapse-queries/forum/useReply.ts"],"sourcesContent":["import SynapseClient from '@/synapse-client'\nimport { SynapseClientError, useSynapseContext } from '@/utils'\nimport {\n CreateDiscussionReply,\n DiscussionFilter,\n DiscussionReplyBundle,\n DiscussionReplyOrder,\n Match,\n PaginatedResults,\n SubscriptionObjectType,\n UpdateDiscussionReply,\n} from '@sage-bionetworks/synapse-types'\nimport {\n InfiniteData,\n QueryKey,\n useInfiniteQuery,\n UseInfiniteQueryOptions,\n useMutation,\n UseMutationOptions,\n useQuery,\n useQueryClient,\n UseQueryOptions,\n} from '@tanstack/react-query'\nimport { getNextPageParamForPaginatedResults } from '../InfiniteQueryUtils'\n\nexport function useGetRepliesInfinite<\n TData = InfiniteData<PaginatedResults<DiscussionReplyBundle>>,\n>(\n threadId: string,\n ascending: boolean,\n limit: number,\n sort?: DiscussionReplyOrder,\n filter?: DiscussionFilter,\n options?: Partial<\n UseInfiniteQueryOptions<\n PaginatedResults<DiscussionReplyBundle>,\n SynapseClientError,\n TData,\n QueryKey,\n number | undefined\n >\n >,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n return useInfiniteQuery<\n PaginatedResults<DiscussionReplyBundle>,\n SynapseClientError,\n TData,\n QueryKey,\n number | undefined\n >({\n ...options,\n queryKey: keyFactory.getRepliesQueryKey(\n threadId,\n ascending,\n limit,\n sort,\n filter,\n ),\n queryFn: async context => {\n return SynapseClient.getReplies(\n accessToken,\n threadId,\n limit,\n context.pageParam,\n sort,\n ascending,\n filter,\n )\n },\n initialPageParam: undefined,\n getNextPageParam: getNextPageParamForPaginatedResults,\n })\n}\n\nexport function useGetReply(\n reply: DiscussionReplyBundle,\n options?: Partial<UseQueryOptions<string, SynapseClientError>>,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n const queryFn = async () => {\n const messageUrl = await SynapseClient.getReplyMessageUrl(\n reply.messageKey,\n accessToken,\n )\n const data = await fetch(messageUrl.messageUrl, {\n method: 'GET',\n headers: {\n Accept: '*/*',\n 'Access-Control-Request-Headers': 'authorization',\n 'Content-Type': 'text/plain; charset=utf-8',\n },\n })\n return data.text()\n }\n return useQuery<string, SynapseClientError>({\n ...options,\n queryKey: keyFactory.getReplyQueryKey(\n reply.threadId,\n reply.id,\n reply.messageKey,\n ),\n queryFn,\n })\n}\n\nexport function usePostReply(\n options?: UseMutationOptions<\n DiscussionReplyBundle,\n SynapseClientError,\n CreateDiscussionReply\n >,\n) {\n const queryClient = useQueryClient()\n const { accessToken, keyFactory } = useSynapseContext()\n return useMutation<\n DiscussionReplyBundle,\n SynapseClientError,\n CreateDiscussionReply\n >({\n ...options,\n mutationFn: (request: CreateDiscussionReply) =>\n SynapseClient.postReply(request, accessToken),\n onSuccess: async (newReply, variables, ctx) => {\n await Promise.all([\n queryClient.invalidateQueries({\n queryKey: keyFactory.getAllRepliesQueryKey(newReply.threadId),\n }),\n // Posting a reply will add the subscription, so invalidate query for list of subscribers\n queryClient.invalidateQueries({\n queryKey: keyFactory.getSubscribersQueryKey(\n newReply.threadId,\n SubscriptionObjectType.THREAD,\n ),\n }),\n ])\n if (options?.onSuccess) {\n await options.onSuccess(newReply, variables, ctx)\n }\n },\n })\n}\n\nexport function usePutReply(\n options?: UseMutationOptions<\n DiscussionReplyBundle,\n SynapseClientError,\n UpdateDiscussionReply\n >,\n) {\n const queryClient = useQueryClient()\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useMutation<\n DiscussionReplyBundle,\n SynapseClientError,\n UpdateDiscussionReply\n >({\n ...options,\n mutationFn: (request: UpdateDiscussionReply) =>\n SynapseClient.putReply(request, accessToken),\n onSuccess: async (newReply, variables, ctx) => {\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getAllRepliesQueryKey(newReply.threadId),\n })\n\n if (options?.onSuccess) {\n await options.onSuccess(newReply, variables, ctx)\n }\n },\n })\n}\n\nexport function useDeleteReply(\n options?: Partial<UseMutationOptions<void, SynapseClientError, Match>>,\n) {\n const queryClient = useQueryClient()\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useMutation<void, SynapseClientError, Match>({\n ...options,\n mutationFn: (match: Match) =>\n SynapseClient.deleteReply(accessToken, match.replyId),\n onSuccess: async (updatedReply, variables, ctx) => {\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getAllRepliesQueryKey(variables.threadId),\n })\n\n if (options?.onSuccess) {\n await options.onSuccess(updatedReply, variables, ctx)\n }\n },\n })\n}\n"],"mappings":";;;;;;;AAyBA,SAAgB,EAGd,GACA,GACA,GACA,GACA,GACA,GASA;CACA,IAAM,EAAE,gBAAa,kBAAe,GAAmB;AACvD,QAAO,EAML;EACA,GAAG;EACH,UAAU,EAAW,mBACnB,GACA,GACA,GACA,GACA,EACD;EACD,SAAS,OAAM,MACN,EAAc,WACnB,GACA,GACA,GACA,EAAQ,WACR,GACA,GACA,EACD;EAEH,kBAAkB,KAAA;EAClB,kBAAkB;EACnB,CAAC;;AAGJ,SAAgB,EACd,GACA,GACA;CACA,IAAM,EAAE,gBAAa,kBAAe,GAAmB,EACjD,IAAU,YAAY;EAC1B,IAAM,IAAa,MAAM,EAAc,mBACrC,EAAM,YACN,EACD;AASD,UAAO,MARY,MAAM,EAAW,YAAY;GAC9C,QAAQ;GACR,SAAS;IACP,QAAQ;IACR,kCAAkC;IAClC,gBAAgB;IACjB;GACF,CAAC,EACU,MAAM;;AAEpB,QAAO,EAAqC;EAC1C,GAAG;EACH,UAAU,EAAW,iBACnB,EAAM,UACN,EAAM,IACN,EAAM,WACP;EACD;EACD,CAAC;;AAGJ,SAAgB,EACd,GAKA;CACA,IAAM,IAAc,GAAgB,EAC9B,EAAE,gBAAa,kBAAe,GAAmB;AACvD,QAAO,EAIL;EACA,GAAG;EACH,aAAa,MACX,EAAc,UAAU,GAAS,EAAY;EAC/C,WAAW,OAAO,GAAU,GAAW,MAAQ;AAa7C,GAZA,MAAM,QAAQ,IAAI,CAChB,EAAY,kBAAkB,EAC5B,UAAU,EAAW,sBAAsB,EAAS,SAAS,EAC9D,CAAC,EAEF,EAAY,kBAAkB,EAC5B,UAAU,EAAW,uBACnB,EAAS,UACT,EAAuB,OACxB,EACF,CAAC,CACH,CAAC,EACE,GAAS,aACX,MAAM,EAAQ,UAAU,GAAU,GAAW,EAAI;;EAGtD,CAAC;;AAGJ,SAAgB,EACd,GAKA;CACA,IAAM,IAAc,GAAgB,EAC9B,EAAE,gBAAa,kBAAe,GAAmB;AAEvD,QAAO,EAIL;EACA,GAAG;EACH,aAAa,MACX,EAAc,SAAS,GAAS,EAAY;EAC9C,WAAW,OAAO,GAAU,GAAW,MAAQ;AAK7C,GAJA,MAAM,EAAY,kBAAkB,EAClC,UAAU,EAAW,sBAAsB,EAAS,SAAS,EAC9D,CAAC,EAEE,GAAS,aACX,MAAM,EAAQ,UAAU,GAAU,GAAW,EAAI;;EAGtD,CAAC;;AAGJ,SAAgB,EACd,GACA;CACA,IAAM,IAAc,GAAgB,EAC9B,EAAE,gBAAa,kBAAe,GAAmB;AAEvD,QAAO,EAA6C;EAClD,GAAG;EACH,aAAa,MACX,EAAc,YAAY,GAAa,EAAM,QAAQ;EACvD,WAAW,OAAO,GAAc,GAAW,MAAQ;AAKjD,GAJA,MAAM,EAAY,kBAAkB,EAClC,UAAU,EAAW,sBAAsB,EAAU,SAAS,EAC/D,CAAC,EAEE,GAAS,aACX,MAAM,EAAQ,UAAU,GAAc,GAAW,EAAI;;EAG1D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useThread.js","names":[],"sources":["../../../src/synapse-queries/forum/useThread.ts"],"sourcesContent":["import SynapseClient from '@/synapse-client'\nimport { SynapseClientError, useSynapseContext } from '@/utils'\nimport {\n CreateDiscussionThread,\n DiscussionThreadBundle,\n UpdateThreadMessageRequest,\n UpdateThreadTitleRequest,\n} from '@sage-bionetworks/synapse-types'\nimport {\n useMutation,\n UseMutationOptions,\n useQuery,\n useQueryClient,\n UseQueryOptions,\n} from '@tanstack/react-query'\nimport { useCallback } from 'react'\n\nexport function useGetThread(threadId: string) {\n const { data: threadData, isLoading: isLoadingBundle } =\n useGetThreadBundle(threadId)\n const { data: threadBody, isLoading: isLoadingBody } = useGetThreadBody(\n threadData,\n { enabled: !!threadData },\n )\n const { mutate: pinThread } = usePinThread()\n const { mutate: unPinThread } = useUnPinThread()\n\n const togglePin = useCallback(() => {\n if (threadData) {\n if (threadData?.isPinned) {\n unPinThread(threadData)\n } else {\n pinThread(threadData)\n }\n }\n }, [unPinThread, pinThread, threadData])\n\n const isLoading = isLoadingBody || isLoadingBundle\n return { threadData, threadBody, togglePin, isLoading }\n}\n\nexport function useGetThreadBundle(\n threadId: string,\n options?: Partial<\n UseQueryOptions<DiscussionThreadBundle, SynapseClientError>\n >,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useQuery({\n ...options,\n queryKey: keyFactory.getThreadQueryKey(threadId),\n queryFn: () => SynapseClient.getThread(threadId, accessToken),\n })\n}\n\nexport function useGetThreadBody(\n threadData?: DiscussionThreadBundle,\n options?: Partial<UseQueryOptions<string, SynapseClientError>>,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n\n const queryFn = async () => {\n const messageUrl = await SynapseClient.getThreadMessageUrl(\n threadData?.messageKey!,\n accessToken,\n )\n const data = await fetch(messageUrl.messageUrl, {\n method: 'GET',\n headers: {\n Accept: '*/*',\n 'Access-Control-Request-Headers': 'authorization',\n 'Content-Type': 'text/plain; charset=utf-8',\n },\n })\n return data.text()\n }\n return useQuery<string, SynapseClientError>({\n ...options,\n queryKey: keyFactory.getThreadBodyQueryKey(\n threadData?.id!,\n threadData?.messageKey!,\n ),\n queryFn,\n })\n}\n\nexport function useUpdateThreadTitle(\n options?: UseMutationOptions<\n DiscussionThreadBundle,\n SynapseClientError,\n UpdateThreadTitleRequest\n >,\n) {\n const queryClient = useQueryClient()\n const { accessToken, keyFactory } = useSynapseContext()\n return useMutation<\n DiscussionThreadBundle,\n SynapseClientError,\n UpdateThreadTitleRequest\n >({\n ...options,\n mutationFn: (request: UpdateThreadTitleRequest) =>\n SynapseClient.putThreadTitle(accessToken, request),\n onSuccess: async (newThread, variables, ctx) => {\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getAllForumThreadsQueryKey(newThread.forumId),\n })\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getThreadQueryKey(variables.threadId),\n })\n if (options?.onSuccess) {\n await options.onSuccess(newThread, variables, ctx)\n }\n },\n })\n}\n\nexport function useUpdateThreadMessage(\n options?: UseMutationOptions<\n DiscussionThreadBundle,\n SynapseClientError,\n UpdateThreadMessageRequest\n >,\n) {\n const queryClient = useQueryClient()\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useMutation<\n DiscussionThreadBundle,\n SynapseClientError,\n UpdateThreadMessageRequest\n >({\n ...options,\n mutationFn: (request: UpdateThreadMessageRequest) =>\n SynapseClient.putThreadMessage(accessToken, request),\n onSuccess: async (newThread, variables, ctx) => {\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getThreadQueryKey(variables.threadId),\n })\n if (options?.onSuccess) {\n await options.onSuccess(newThread, variables, ctx)\n }\n },\n })\n}\n\nexport function useCreateThread(\n options?: UseMutationOptions<\n DiscussionThreadBundle,\n SynapseClientError,\n CreateDiscussionThread\n >,\n) {\n const queryClient = useQueryClient()\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useMutation<\n DiscussionThreadBundle,\n SynapseClientError,\n CreateDiscussionThread\n >({\n ...options,\n mutationFn: (newThread: CreateDiscussionThread) =>\n SynapseClient.postThread(accessToken, newThread),\n onSuccess: async (threadBundle, newThreadRequest, ctx) => {\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getAllForumThreadsQueryKey(threadBundle.forumId),\n })\n if (options?.onSuccess) {\n await options.onSuccess(threadBundle, newThreadRequest, ctx)\n }\n },\n })\n}\n\nexport function useDeleteThread(\n options?: UseMutationOptions<\n void,\n SynapseClientError,\n DiscussionThreadBundle\n >,\n) {\n const queryClient = useQueryClient()\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useMutation<void, SynapseClientError, DiscussionThreadBundle>({\n ...options,\n mutationFn: (threadBundle: DiscussionThreadBundle) =>\n SynapseClient.deleteThread(accessToken, threadBundle.id),\n onSuccess: async (updatedThread, threadBundle, ctx) => {\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getAllForumThreadsQueryKey(threadBundle.forumId),\n })\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getThreadQueryKey(threadBundle.id),\n })\n if (options?.onSuccess) {\n await options.onSuccess(updatedThread, threadBundle, ctx)\n }\n },\n })\n}\n\nexport function useRestoreThread(\n options?: UseMutationOptions<\n void,\n SynapseClientError,\n DiscussionThreadBundle\n >,\n) {\n const queryClient = useQueryClient()\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useMutation<void, SynapseClientError, DiscussionThreadBundle>({\n ...options,\n mutationFn: (threadBundle: DiscussionThreadBundle) =>\n SynapseClient.restoreThread(accessToken, threadBundle.id),\n onSuccess: async (updatedThread, threadBundle, ctx) => {\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getAllForumThreadsQueryKey(threadBundle.forumId),\n })\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getThreadQueryKey(threadBundle.id),\n })\n if (options?.onSuccess) {\n await options.onSuccess(updatedThread, threadBundle, ctx)\n }\n },\n })\n}\n\nexport function usePinThread(\n options?: UseMutationOptions<\n void,\n SynapseClientError,\n DiscussionThreadBundle\n >,\n) {\n const queryClient = useQueryClient()\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useMutation<void, SynapseClientError, DiscussionThreadBundle>({\n ...options,\n mutationFn: (threadBundle: DiscussionThreadBundle) =>\n SynapseClient.pinThread(accessToken, threadBundle.id),\n onSuccess: async (updatedThread, threadBundle, ctx) => {\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getAllForumThreadsQueryKey(threadBundle.forumId),\n })\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getThreadQueryKey(threadBundle.id),\n })\n if (options?.onSuccess) {\n await options.onSuccess(updatedThread, threadBundle, ctx)\n }\n },\n })\n}\n\nexport function useUnPinThread(\n options?: UseMutationOptions<\n void,\n SynapseClientError,\n DiscussionThreadBundle\n >,\n) {\n const queryClient = useQueryClient()\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useMutation<void, SynapseClientError, DiscussionThreadBundle>({\n ...options,\n mutationFn: (threadBundle: DiscussionThreadBundle) =>\n SynapseClient.unPinThread(accessToken, threadBundle.id),\n onSuccess: async (updatedThread, threadBundle, ctx) => {\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getAllForumThreadsQueryKey(threadBundle.forumId),\n })\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getThreadQueryKey(threadBundle.id),\n })\n if (options?.onSuccess) {\n await options.onSuccess(updatedThread, threadBundle, ctx)\n }\n },\n })\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useThread.js","names":[],"sources":["../../../src/synapse-queries/forum/useThread.ts"],"sourcesContent":["import SynapseClient from '@/synapse-client'\nimport { SynapseClientError, useSynapseContext } from '@/utils'\nimport {\n CreateDiscussionThread,\n DiscussionThreadBundle,\n UpdateThreadMessageRequest,\n UpdateThreadTitleRequest,\n} from '@sage-bionetworks/synapse-types'\nimport {\n useMutation,\n UseMutationOptions,\n useQuery,\n useQueryClient,\n UseQueryOptions,\n} from '@tanstack/react-query'\nimport { useCallback } from 'react'\n\nexport function useGetThread(threadId: string) {\n const { data: threadData, isLoading: isLoadingBundle } =\n useGetThreadBundle(threadId)\n const { data: threadBody, isLoading: isLoadingBody } = useGetThreadBody(\n threadData,\n { enabled: !!threadData },\n )\n const { mutate: pinThread } = usePinThread()\n const { mutate: unPinThread } = useUnPinThread()\n\n const togglePin = useCallback(() => {\n if (threadData) {\n if (threadData?.isPinned) {\n unPinThread(threadData)\n } else {\n pinThread(threadData)\n }\n }\n }, [unPinThread, pinThread, threadData])\n\n const isLoading = isLoadingBody || isLoadingBundle\n return { threadData, threadBody, togglePin, isLoading }\n}\n\nexport function useGetThreadBundle(\n threadId: string,\n options?: Partial<\n UseQueryOptions<DiscussionThreadBundle, SynapseClientError>\n >,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useQuery({\n ...options,\n queryKey: keyFactory.getThreadQueryKey(threadId),\n queryFn: () => SynapseClient.getThread(threadId, accessToken),\n })\n}\n\nexport function useGetThreadBody(\n threadData?: DiscussionThreadBundle,\n options?: Partial<UseQueryOptions<string, SynapseClientError>>,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n\n const queryFn = async () => {\n const messageUrl = await SynapseClient.getThreadMessageUrl(\n threadData?.messageKey!,\n accessToken,\n )\n const data = await fetch(messageUrl.messageUrl, {\n method: 'GET',\n headers: {\n Accept: '*/*',\n 'Access-Control-Request-Headers': 'authorization',\n 'Content-Type': 'text/plain; charset=utf-8',\n },\n })\n return data.text()\n }\n return useQuery<string, SynapseClientError>({\n ...options,\n queryKey: keyFactory.getThreadBodyQueryKey(\n threadData?.id!,\n threadData?.messageKey!,\n ),\n queryFn,\n })\n}\n\nexport function useUpdateThreadTitle(\n options?: UseMutationOptions<\n DiscussionThreadBundle,\n SynapseClientError,\n UpdateThreadTitleRequest\n >,\n) {\n const queryClient = useQueryClient()\n const { accessToken, keyFactory } = useSynapseContext()\n return useMutation<\n DiscussionThreadBundle,\n SynapseClientError,\n UpdateThreadTitleRequest\n >({\n ...options,\n mutationFn: (request: UpdateThreadTitleRequest) =>\n SynapseClient.putThreadTitle(accessToken, request),\n onSuccess: async (newThread, variables, ctx) => {\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getAllForumThreadsQueryKey(newThread.forumId),\n })\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getThreadQueryKey(variables.threadId),\n })\n if (options?.onSuccess) {\n await options.onSuccess(newThread, variables, ctx)\n }\n },\n })\n}\n\nexport function useUpdateThreadMessage(\n options?: UseMutationOptions<\n DiscussionThreadBundle,\n SynapseClientError,\n UpdateThreadMessageRequest\n >,\n) {\n const queryClient = useQueryClient()\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useMutation<\n DiscussionThreadBundle,\n SynapseClientError,\n UpdateThreadMessageRequest\n >({\n ...options,\n mutationFn: (request: UpdateThreadMessageRequest) =>\n SynapseClient.putThreadMessage(accessToken, request),\n onSuccess: async (newThread, variables, ctx) => {\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getThreadQueryKey(variables.threadId),\n })\n if (options?.onSuccess) {\n await options.onSuccess(newThread, variables, ctx)\n }\n },\n })\n}\n\nexport function useCreateThread(\n options?: UseMutationOptions<\n DiscussionThreadBundle,\n SynapseClientError,\n CreateDiscussionThread\n >,\n) {\n const queryClient = useQueryClient()\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useMutation<\n DiscussionThreadBundle,\n SynapseClientError,\n CreateDiscussionThread\n >({\n ...options,\n mutationFn: (newThread: CreateDiscussionThread) =>\n SynapseClient.postThread(accessToken, newThread),\n onSuccess: async (threadBundle, newThreadRequest, ctx) => {\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getAllForumThreadsQueryKey(threadBundle.forumId),\n })\n if (options?.onSuccess) {\n await options.onSuccess(threadBundle, newThreadRequest, ctx)\n }\n },\n })\n}\n\nexport function useDeleteThread(\n options?: UseMutationOptions<\n void,\n SynapseClientError,\n DiscussionThreadBundle\n >,\n) {\n const queryClient = useQueryClient()\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useMutation<void, SynapseClientError, DiscussionThreadBundle>({\n ...options,\n mutationFn: (threadBundle: DiscussionThreadBundle) =>\n SynapseClient.deleteThread(accessToken, threadBundle.id),\n onSuccess: async (updatedThread, threadBundle, ctx) => {\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getAllForumThreadsQueryKey(threadBundle.forumId),\n })\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getThreadQueryKey(threadBundle.id),\n })\n if (options?.onSuccess) {\n await options.onSuccess(updatedThread, threadBundle, ctx)\n }\n },\n })\n}\n\nexport function useRestoreThread(\n options?: UseMutationOptions<\n void,\n SynapseClientError,\n DiscussionThreadBundle\n >,\n) {\n const queryClient = useQueryClient()\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useMutation<void, SynapseClientError, DiscussionThreadBundle>({\n ...options,\n mutationFn: (threadBundle: DiscussionThreadBundle) =>\n SynapseClient.restoreThread(accessToken, threadBundle.id),\n onSuccess: async (updatedThread, threadBundle, ctx) => {\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getAllForumThreadsQueryKey(threadBundle.forumId),\n })\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getThreadQueryKey(threadBundle.id),\n })\n if (options?.onSuccess) {\n await options.onSuccess(updatedThread, threadBundle, ctx)\n }\n },\n })\n}\n\nexport function usePinThread(\n options?: UseMutationOptions<\n void,\n SynapseClientError,\n DiscussionThreadBundle\n >,\n) {\n const queryClient = useQueryClient()\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useMutation<void, SynapseClientError, DiscussionThreadBundle>({\n ...options,\n mutationFn: (threadBundle: DiscussionThreadBundle) =>\n SynapseClient.pinThread(accessToken, threadBundle.id),\n onSuccess: async (updatedThread, threadBundle, ctx) => {\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getAllForumThreadsQueryKey(threadBundle.forumId),\n })\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getThreadQueryKey(threadBundle.id),\n })\n if (options?.onSuccess) {\n await options.onSuccess(updatedThread, threadBundle, ctx)\n }\n },\n })\n}\n\nexport function useUnPinThread(\n options?: UseMutationOptions<\n void,\n SynapseClientError,\n DiscussionThreadBundle\n >,\n) {\n const queryClient = useQueryClient()\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useMutation<void, SynapseClientError, DiscussionThreadBundle>({\n ...options,\n mutationFn: (threadBundle: DiscussionThreadBundle) =>\n SynapseClient.unPinThread(accessToken, threadBundle.id),\n onSuccess: async (updatedThread, threadBundle, ctx) => {\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getAllForumThreadsQueryKey(threadBundle.forumId),\n })\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getThreadQueryKey(threadBundle.id),\n })\n if (options?.onSuccess) {\n await options.onSuccess(updatedThread, threadBundle, ctx)\n }\n },\n })\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useEstablishWebsocketConnection.d.ts","sourceRoot":"","sources":["../../../src/synapse-queries/grid/useEstablishWebsocketConnection.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAA;AAC3E,OAAO,EAAe,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAA;AAG/D,UAAU,wBAAwB;IAChC,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,gBAAgB,CAAC,EAAE;QACjB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAA;QACxB,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;QACxC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAA;QAC1C,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAA;QAC/B,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAA;QAClC,KAAK,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;KACzB,CAAA;CACF;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,OAAO,CAAC,EAAE,OAAO,CACf,kBAAkB,CAAC,iBAAiB,EAAE,OAAO,EAAE,wBAAwB,CAAC,CACzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgCF"}
|
|
1
|
+
{"version":3,"file":"useEstablishWebsocketConnection.d.ts","sourceRoot":"","sources":["../../../src/synapse-queries/grid/useEstablishWebsocketConnection.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAA;AAC3E,OAAO,EAAe,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAA;AAG/D,UAAU,wBAAwB;IAChC,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,gBAAgB,CAAC,EAAE;QACjB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAA;QACxB,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;QACxC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAA;QAC1C,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAA;QAC/B,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAA;QAClC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAA;QACxB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;QACtB,KAAK,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;KACzB,CAAA;CACF;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,OAAO,CAAC,EAAE,OAAO,CACf,kBAAkB,CAAC,iBAAiB,EAAE,OAAO,EAAE,wBAAwB,CAAC,CACzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgCF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useEstablishWebsocketConnection.js","names":[],"sources":["../../../src/synapse-queries/grid/useEstablishWebsocketConnection.ts"],"sourcesContent":["import { useGridPresignedUrl } from '@/synapse-queries/grid/useGridPresignedUrl'\nimport { DataGridWebSocket } from '@/components/DataGrid/DataGridWebSocket'\nimport { useMutation, UseMutationOptions } from '@tanstack/react-query'\nimport { GridModel } from '@/components/DataGrid/DataGridTypes'\nimport { useCallback, useState } from 'react'\n\ninterface EstablishWebsocketParams {\n replicaId: number\n sessionId: string\n websocketOptions?: {\n onGridReady?: () => void\n onStatusChange?: (open: boolean) => void\n onModelCreate?: (model: GridModel) => void\n onReplicaConnected?: () => void\n onReplicaDisconnected?: () => void\n model?: GridModel | null\n }\n}\n\n/**\n * Hook to establish a DataGrid WebSocket using a presigned URL.\n * Assumes the WebSocket will connect successfully once a presigned URL is retrieved.\n */\nexport function useEstablishWebsocketConnection(\n options?: Partial<\n UseMutationOptions<DataGridWebSocket, unknown, EstablishWebsocketParams>\n >,\n) {\n const { mutateAsync: fetchPresignedUrl } = useGridPresignedUrl()\n const [presignedUrl, setPresignedUrl] = useState<string | null>(null)\n\n const clearPresignedUrl = useCallback(() => {\n setPresignedUrl(null)\n }, [])\n\n const mutation = useMutation({\n retry: 5,\n retryDelay: attempt =>\n Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000),\n mutationFn: async ({\n replicaId,\n sessionId,\n websocketOptions,\n }: EstablishWebsocketParams) => {\n if (!replicaId) throw new Error('replicaId is required')\n const url = await fetchPresignedUrl({ replicaId, sessionId })\n setPresignedUrl(url)\n\n return new DataGridWebSocket({\n replicaId,\n url,\n ...(websocketOptions || {}),\n })\n },\n ...options,\n })\n\n return { ...mutation, presignedUrl, clearPresignedUrl }\n}\n"],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"useEstablishWebsocketConnection.js","names":[],"sources":["../../../src/synapse-queries/grid/useEstablishWebsocketConnection.ts"],"sourcesContent":["import { useGridPresignedUrl } from '@/synapse-queries/grid/useGridPresignedUrl'\nimport { DataGridWebSocket } from '@/components/DataGrid/DataGridWebSocket'\nimport { useMutation, UseMutationOptions } from '@tanstack/react-query'\nimport { GridModel } from '@/components/DataGrid/DataGridTypes'\nimport { useCallback, useState } from 'react'\n\ninterface EstablishWebsocketParams {\n replicaId: number\n sessionId: string\n websocketOptions?: {\n onGridReady?: () => void\n onStatusChange?: (open: boolean) => void\n onModelCreate?: (model: GridModel) => void\n onReplicaConnected?: () => void\n onReplicaDisconnected?: () => void\n onSyncStart?: () => void\n onSyncEnd?: () => void\n model?: GridModel | null\n }\n}\n\n/**\n * Hook to establish a DataGrid WebSocket using a presigned URL.\n * Assumes the WebSocket will connect successfully once a presigned URL is retrieved.\n */\nexport function useEstablishWebsocketConnection(\n options?: Partial<\n UseMutationOptions<DataGridWebSocket, unknown, EstablishWebsocketParams>\n >,\n) {\n const { mutateAsync: fetchPresignedUrl } = useGridPresignedUrl()\n const [presignedUrl, setPresignedUrl] = useState<string | null>(null)\n\n const clearPresignedUrl = useCallback(() => {\n setPresignedUrl(null)\n }, [])\n\n const mutation = useMutation({\n retry: 5,\n retryDelay: attempt =>\n Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000),\n mutationFn: async ({\n replicaId,\n sessionId,\n websocketOptions,\n }: EstablishWebsocketParams) => {\n if (!replicaId) throw new Error('replicaId is required')\n const url = await fetchPresignedUrl({ replicaId, sessionId })\n setPresignedUrl(url)\n\n return new DataGridWebSocket({\n replicaId,\n url,\n ...(websocketOptions || {}),\n })\n },\n ...options,\n })\n\n return { ...mutation, presignedUrl, clearPresignedUrl }\n}\n"],"mappings":";;;;;AAyBA,SAAgB,EACd,GAGA;CACA,IAAM,EAAE,aAAa,MAAsB,GAAqB,EAC1D,CAAC,GAAc,KAAmB,EAAwB,KAAK,EAE/D,IAAoB,QAAkB;AAC1C,IAAgB,KAAK;IACpB,EAAE,CAAC;AAwBN,QAAO;EAAE,GAtBQ,EAAY;GAC3B,OAAO;GACP,aAAY,MACV,KAAK,IAAI,IAAU,IAAI,KAAK,IAAU,MAAO,KAAM,KAAK,IAAK;GAC/D,YAAY,OAAO,EACjB,cACA,cACA,0BAC8B;AAC9B,QAAI,CAAC,EAAW,OAAU,MAAM,wBAAwB;IACxD,IAAM,IAAM,MAAM,EAAkB;KAAE;KAAW;KAAW,CAAC;AAG7D,WAFA,EAAgB,EAAI,EAEb,IAAI,EAAkB;KAC3B;KACA;KACA,GAAI,KAAoB,EAAE;KAC3B,CAAC;;GAEJ,GAAG;GACJ,CAEW;EAAU;EAAc;EAAmB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useExportGrid.js","names":[],"sources":["../../../src/synapse-queries/grid/useExportGrid.ts"],"sourcesContent":["import { useSynapseContext } from '@/utils/context/SynapseContext'\nimport {\n DownloadFromGridRequest,\n DownloadFromGridResult,\n waitForAsyncResult,\n} from '@sage-bionetworks/synapse-client'\nimport { SynapseClientError } from '@sage-bionetworks/synapse-client/util/SynapseClientError'\nimport { useMutation, UseMutationOptions } from '@tanstack/react-query'\n\nexport function useExportGridAsCsv(\n options?: Partial<\n UseMutationOptions<\n DownloadFromGridResult,\n SynapseClientError,\n DownloadFromGridRequest\n >\n >,\n) {\n const { synapseClient } = useSynapseContext()\n\n return useMutation<\n DownloadFromGridResult,\n SynapseClientError,\n DownloadFromGridRequest\n >({\n ...options,\n mutationFn: async downloadFromGridRequest => {\n const asyncJobId =\n await synapseClient.gridServicesClient.postRepoV1GridDownloadCsvAsyncStart(\n {\n downloadFromGridRequest,\n },\n )\n\n const asyncJobResponse = await waitForAsyncResult(() =>\n synapseClient.asynchronousJobServicesClient.getRepoV1AsynchronousJobJobId(\n {\n jobId: asyncJobId.token!,\n },\n ),\n )\n return asyncJobResponse.responseBody as DownloadFromGridResult\n },\n })\n}\n"],"mappings":";;;;AASA,SAAgB,EACd,GAOA;CACA,IAAM,EAAE,qBAAkB,GAAmB;AAE7C,QAAO,EAIL;EACA,GAAG;EACH,YAAY,OAAM,MAA2B;GAC3C,IAAM,IACJ,MAAM,EAAc,mBAAmB,oCACrC,EACE,4BACD,CACF;AASH,
|
|
1
|
+
{"version":3,"file":"useExportGrid.js","names":[],"sources":["../../../src/synapse-queries/grid/useExportGrid.ts"],"sourcesContent":["import { useSynapseContext } from '@/utils/context/SynapseContext'\nimport {\n DownloadFromGridRequest,\n DownloadFromGridResult,\n waitForAsyncResult,\n} from '@sage-bionetworks/synapse-client'\nimport { SynapseClientError } from '@sage-bionetworks/synapse-client/util/SynapseClientError'\nimport { useMutation, UseMutationOptions } from '@tanstack/react-query'\n\nexport function useExportGridAsCsv(\n options?: Partial<\n UseMutationOptions<\n DownloadFromGridResult,\n SynapseClientError,\n DownloadFromGridRequest\n >\n >,\n) {\n const { synapseClient } = useSynapseContext()\n\n return useMutation<\n DownloadFromGridResult,\n SynapseClientError,\n DownloadFromGridRequest\n >({\n ...options,\n mutationFn: async downloadFromGridRequest => {\n const asyncJobId =\n await synapseClient.gridServicesClient.postRepoV1GridDownloadCsvAsyncStart(\n {\n downloadFromGridRequest,\n },\n )\n\n const asyncJobResponse = await waitForAsyncResult(() =>\n synapseClient.asynchronousJobServicesClient.getRepoV1AsynchronousJobJobId(\n {\n jobId: asyncJobId.token!,\n },\n ),\n )\n return asyncJobResponse.responseBody as DownloadFromGridResult\n },\n })\n}\n"],"mappings":";;;;AASA,SAAgB,EACd,GAOA;CACA,IAAM,EAAE,qBAAkB,GAAmB;AAE7C,QAAO,EAIL;EACA,GAAG;EACH,YAAY,OAAM,MAA2B;GAC3C,IAAM,IACJ,MAAM,EAAc,mBAAmB,oCACrC,EACE,4BACD,CACF;AASH,WAAO,MAPwB,QAC7B,EAAc,8BAA8B,8BAC1C,EACE,OAAO,EAAW,OACnB,CACF,CACF,EACuB;;EAE3B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGridSession.js","names":[],"sources":["../../../src/synapse-queries/grid/useGridSession.ts"],"sourcesContent":["import { KeyFactory } from '@/synapse-queries/index'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport startGridSession from '@/utils/functions/GridApiUtils'\nimport {\n CreateGridRequest,\n CreateGridResponse,\n CreateReplicaResponse,\n GridReplicaInfo,\n GridSession,\n ListGridSessionsRequest,\n ListGridSessionsResponse,\n PostRepoV1GridSessionSessionIdReplicaRequest,\n SynapseClient,\n SynchronizeGridRequest,\n SynchronizeGridResponse,\n waitForAsyncResult,\n} from '@sage-bionetworks/synapse-client'\nimport { SynapseClientError } from '@sage-bionetworks/synapse-client/util/SynapseClientError'\nimport {\n InfiniteData,\n QueryKey,\n queryOptions,\n useInfiniteQuery,\n UseInfiniteQueryOptions,\n useMutation,\n UseMutationOptions,\n useQuery,\n useQueryClient,\n UseQueryOptions,\n} from '@tanstack/react-query'\nimport { SynapseQueriesContext } from '../types'\n\nexport function useCreateGridReplica(\n options?: Partial<\n UseMutationOptions<CreateReplicaResponse, SynapseClientError, string>\n >,\n) {\n const queryClient = useQueryClient()\n const { keyFactory, synapseClient } = useSynapseContext()\n\n return useMutation<CreateReplicaResponse, SynapseClientError, string>({\n ...options,\n mutationFn: (sessionId: string) =>\n synapseClient.gridServicesClient.postRepoV1GridSessionSessionIdReplica({\n sessionId,\n createReplicaRequest: {\n gridSessionId: sessionId,\n },\n } as PostRepoV1GridSessionSessionIdReplicaRequest),\n onSuccess: async (replicaId, sessionId, ctx) => {\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getGridSessionListKey(),\n })\n if (options?.onSuccess) {\n await options.onSuccess(replicaId, sessionId, ctx)\n }\n },\n })\n}\n\nexport function useDeleteGridSession(\n options?: Partial<UseMutationOptions<void, SynapseClientError, string>>,\n) {\n const queryClient = useQueryClient()\n const { keyFactory, synapseClient } = useSynapseContext()\n\n return useMutation<void, SynapseClientError, string>({\n ...options,\n mutationFn: (sessionId: string) =>\n synapseClient.gridServicesClient.deleteRepoV1GridSessionSessionId({\n sessionId,\n }),\n onSuccess: async (updatedClient, sessionId, ctx) => {\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getGridSessionListKey(),\n })\n if (options?.onSuccess) {\n await options.onSuccess(updatedClient, sessionId, ctx)\n }\n },\n })\n}\n\n/**\n * Get the queryOptions to request list of Grid sessions. For an infinite query, use `useGetGridSessionsInfinite`\n * @param request\n * @param context\n */\nexport const getGridSessionsQuery = (\n request: ListGridSessionsRequest,\n context: {\n keyFactory: KeyFactory\n synapseClient: SynapseClient\n },\n) =>\n queryOptions({\n queryKey: context.keyFactory.getGridSessionListKey(request),\n queryFn: () =>\n context.synapseClient.gridServicesClient.postRepoV1GridSessionList({\n listGridSessionsRequest: request,\n }),\n })\n\nexport function useGetGridSessionsInfinite<\n TData = InfiniteData<ListGridSessionsResponse>,\n>(\n request: Omit<ListGridSessionsRequest, 'nextPageToken'>,\n options?: Partial<\n UseInfiniteQueryOptions<\n ListGridSessionsResponse,\n SynapseClientError,\n TData,\n QueryKey,\n ListGridSessionsResponse['nextPageToken']\n >\n >,\n) {\n const { keyFactory, synapseClient } = useSynapseContext()\n\n return useInfiniteQuery<\n ListGridSessionsResponse,\n SynapseClientError,\n TData,\n QueryKey,\n ListGridSessionsResponse['nextPageToken']\n >({\n ...options,\n queryKey: keyFactory.getGridSessionListKey(request),\n queryFn: async context =>\n await synapseClient.gridServicesClient.postRepoV1GridSessionList({\n listGridSessionsRequest: {\n ...request,\n nextPageToken: context.pageParam,\n },\n }),\n initialPageParam: undefined,\n getNextPageParam: page => page.nextPageToken,\n })\n}\n\nexport function getGridSessionQuery(\n sessionId: string,\n context: SynapseQueriesContext,\n) {\n const { keyFactory, synapseClient } = context\n return queryOptions<GridSession, SynapseClientError>({\n queryKey: keyFactory.getGridSessionKey(sessionId),\n queryFn: () =>\n synapseClient.gridServicesClient.getRepoV1GridSessionSessionId({\n sessionId: sessionId,\n }),\n })\n}\n\nexport function useGetGridSession(\n sessionId: string,\n options?: Partial<UseQueryOptions<GridSession, SynapseClientError>>,\n) {\n const synapseContext = useSynapseContext()\n const queryClient = useQueryClient()\n\n return useQuery<GridSession, SynapseClientError>({\n ...options,\n ...getGridSessionQuery(sessionId, { ...synapseContext, queryClient }),\n })\n}\n\nexport const useCreateGridSession = (\n options?: Partial<\n UseMutationOptions<\n CreateGridResponse,\n SynapseClientError,\n CreateGridRequest\n >\n >,\n) => {\n const { synapseClient } = useSynapseContext()\n\n return useMutation<CreateGridResponse, SynapseClientError, CreateGridRequest>(\n {\n ...options,\n mutationFn: async (request: CreateGridRequest) =>\n await startGridSession(synapseClient, request),\n },\n )\n}\n\n/**\n * Synchronization is a two-phase process that ensures consistency between the user's local\n * changes and external changes made to the source:\n *\n * Phase 1: Schema Synchronization\n * - Synchronizes column definitions between the grid copy and source\n * - Resolves schema conflicts\n *\n * Phase 2: Row Synchronization\n * - Synchronizes row data using the final schema from Phase 1\n * - Merges cell-level changes when rows conflict\n * - Pushes user changes from copy to source\n * - Pulls external changes from source to copy\n *\n * @see {@link https://rest-docs.synapse.org/rest/POST/grid/synchronize/async/start.html}\n * @see {@link https://rest-docs.synapse.org/rest/GET/grid/synchronize/async/get/asyncToken.html}\n */\nexport function useSynchronizeGridSession(\n options?: Omit<\n UseMutationOptions<\n SynchronizeGridResponse,\n SynapseClientError,\n Omit<SynchronizeGridRequest, 'concreteType'>\n >,\n 'mutationFn'\n >,\n) {\n const { synapseClient } = useSynapseContext()\n\n return useMutation<\n SynchronizeGridResponse,\n SynapseClientError,\n Omit<SynchronizeGridRequest, 'concreteType'>\n >({\n ...options,\n mutationFn: async request => {\n const synchronizeGridRequest: SynchronizeGridRequest = {\n ...request,\n concreteType:\n 'org.sagebionetworks.repo.model.grid.SynchronizeGridRequest',\n }\n\n // Start the async export job\n const asyncJobId =\n await synapseClient.gridServicesClient.postRepoV1GridSynchronizeAsyncStart(\n { synchronizeGridRequest },\n )\n\n // Poll for the async job\n const asyncJobResponse = await waitForAsyncResult(() =>\n synapseClient.asynchronousJobServicesClient.getRepoV1AsynchronousJobJobId(\n {\n jobId: asyncJobId.token!,\n },\n ),\n )\n\n return asyncJobResponse.responseBody as SynchronizeGridResponse\n },\n })\n}\n\n/**\n * Fetches all replicas in a grid session by following pagination tokens.\n * Refetch this query on `replica-connected` or `replica-disconnected` WebSocket events\n * to keep the replica list current.\n */\nexport function useListGridReplicas(\n sessionId: string | undefined,\n options?: Partial<UseQueryOptions<GridReplicaInfo[], SynapseClientError>>,\n) {\n const { keyFactory, synapseClient } = useSynapseContext()\n\n return useQuery<GridReplicaInfo[], SynapseClientError>({\n ...options,\n queryKey: keyFactory.getGridReplicaListKey(sessionId!),\n enabled: !!sessionId && (options?.enabled ?? true),\n queryFn: async () => {\n const replicas: GridReplicaInfo[] = []\n let nextPageToken: string | undefined = undefined\n do {\n const response =\n await synapseClient.gridServicesClient.postRepoV1GridSessionSessionIdReplicaList(\n {\n sessionId: sessionId!,\n listGridReplicasRequest: {\n gridSessionId: sessionId!,\n nextPageToken,\n },\n },\n )\n replicas.push(...(response.page ?? []))\n nextPageToken = response.nextPageToken\n } while (nextPageToken)\n return replicas\n },\n })\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useGridSession.js","names":[],"sources":["../../../src/synapse-queries/grid/useGridSession.ts"],"sourcesContent":["import { KeyFactory } from '@/synapse-queries/index'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport startGridSession from '@/utils/functions/GridApiUtils'\nimport {\n CreateGridRequest,\n CreateGridResponse,\n CreateReplicaResponse,\n GridReplicaInfo,\n GridSession,\n ListGridSessionsRequest,\n ListGridSessionsResponse,\n PostRepoV1GridSessionSessionIdReplicaRequest,\n SynapseClient,\n SynchronizeGridRequest,\n SynchronizeGridResponse,\n waitForAsyncResult,\n} from '@sage-bionetworks/synapse-client'\nimport { SynapseClientError } from '@sage-bionetworks/synapse-client/util/SynapseClientError'\nimport {\n InfiniteData,\n QueryKey,\n queryOptions,\n useInfiniteQuery,\n UseInfiniteQueryOptions,\n useMutation,\n UseMutationOptions,\n useQuery,\n useQueryClient,\n UseQueryOptions,\n} from '@tanstack/react-query'\nimport { SynapseQueriesContext } from '../types'\n\nexport function useCreateGridReplica(\n options?: Partial<\n UseMutationOptions<CreateReplicaResponse, SynapseClientError, string>\n >,\n) {\n const queryClient = useQueryClient()\n const { keyFactory, synapseClient } = useSynapseContext()\n\n return useMutation<CreateReplicaResponse, SynapseClientError, string>({\n ...options,\n mutationFn: (sessionId: string) =>\n synapseClient.gridServicesClient.postRepoV1GridSessionSessionIdReplica({\n sessionId,\n createReplicaRequest: {\n gridSessionId: sessionId,\n },\n } as PostRepoV1GridSessionSessionIdReplicaRequest),\n onSuccess: async (replicaId, sessionId, ctx) => {\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getGridSessionListKey(),\n })\n if (options?.onSuccess) {\n await options.onSuccess(replicaId, sessionId, ctx)\n }\n },\n })\n}\n\nexport function useDeleteGridSession(\n options?: Partial<UseMutationOptions<void, SynapseClientError, string>>,\n) {\n const queryClient = useQueryClient()\n const { keyFactory, synapseClient } = useSynapseContext()\n\n return useMutation<void, SynapseClientError, string>({\n ...options,\n mutationFn: (sessionId: string) =>\n synapseClient.gridServicesClient.deleteRepoV1GridSessionSessionId({\n sessionId,\n }),\n onSuccess: async (updatedClient, sessionId, ctx) => {\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getGridSessionListKey(),\n })\n if (options?.onSuccess) {\n await options.onSuccess(updatedClient, sessionId, ctx)\n }\n },\n })\n}\n\n/**\n * Get the queryOptions to request list of Grid sessions. For an infinite query, use `useGetGridSessionsInfinite`\n * @param request\n * @param context\n */\nexport const getGridSessionsQuery = (\n request: ListGridSessionsRequest,\n context: {\n keyFactory: KeyFactory\n synapseClient: SynapseClient\n },\n) =>\n queryOptions({\n queryKey: context.keyFactory.getGridSessionListKey(request),\n queryFn: () =>\n context.synapseClient.gridServicesClient.postRepoV1GridSessionList({\n listGridSessionsRequest: request,\n }),\n })\n\nexport function useGetGridSessionsInfinite<\n TData = InfiniteData<ListGridSessionsResponse>,\n>(\n request: Omit<ListGridSessionsRequest, 'nextPageToken'>,\n options?: Partial<\n UseInfiniteQueryOptions<\n ListGridSessionsResponse,\n SynapseClientError,\n TData,\n QueryKey,\n ListGridSessionsResponse['nextPageToken']\n >\n >,\n) {\n const { keyFactory, synapseClient } = useSynapseContext()\n\n return useInfiniteQuery<\n ListGridSessionsResponse,\n SynapseClientError,\n TData,\n QueryKey,\n ListGridSessionsResponse['nextPageToken']\n >({\n ...options,\n queryKey: keyFactory.getGridSessionListKey(request),\n queryFn: async context =>\n await synapseClient.gridServicesClient.postRepoV1GridSessionList({\n listGridSessionsRequest: {\n ...request,\n nextPageToken: context.pageParam,\n },\n }),\n initialPageParam: undefined,\n getNextPageParam: page => page.nextPageToken,\n })\n}\n\nexport function getGridSessionQuery(\n sessionId: string,\n context: SynapseQueriesContext,\n) {\n const { keyFactory, synapseClient } = context\n return queryOptions<GridSession, SynapseClientError>({\n queryKey: keyFactory.getGridSessionKey(sessionId),\n queryFn: () =>\n synapseClient.gridServicesClient.getRepoV1GridSessionSessionId({\n sessionId: sessionId,\n }),\n })\n}\n\nexport function useGetGridSession(\n sessionId: string,\n options?: Partial<UseQueryOptions<GridSession, SynapseClientError>>,\n) {\n const synapseContext = useSynapseContext()\n const queryClient = useQueryClient()\n\n return useQuery<GridSession, SynapseClientError>({\n ...options,\n ...getGridSessionQuery(sessionId, { ...synapseContext, queryClient }),\n })\n}\n\nexport const useCreateGridSession = (\n options?: Partial<\n UseMutationOptions<\n CreateGridResponse,\n SynapseClientError,\n CreateGridRequest\n >\n >,\n) => {\n const { synapseClient } = useSynapseContext()\n\n return useMutation<CreateGridResponse, SynapseClientError, CreateGridRequest>(\n {\n ...options,\n mutationFn: async (request: CreateGridRequest) =>\n await startGridSession(synapseClient, request),\n },\n )\n}\n\n/**\n * Synchronization is a two-phase process that ensures consistency between the user's local\n * changes and external changes made to the source:\n *\n * Phase 1: Schema Synchronization\n * - Synchronizes column definitions between the grid copy and source\n * - Resolves schema conflicts\n *\n * Phase 2: Row Synchronization\n * - Synchronizes row data using the final schema from Phase 1\n * - Merges cell-level changes when rows conflict\n * - Pushes user changes from copy to source\n * - Pulls external changes from source to copy\n *\n * @see {@link https://rest-docs.synapse.org/rest/POST/grid/synchronize/async/start.html}\n * @see {@link https://rest-docs.synapse.org/rest/GET/grid/synchronize/async/get/asyncToken.html}\n */\nexport function useSynchronizeGridSession(\n options?: Omit<\n UseMutationOptions<\n SynchronizeGridResponse,\n SynapseClientError,\n Omit<SynchronizeGridRequest, 'concreteType'>\n >,\n 'mutationFn'\n >,\n) {\n const { synapseClient } = useSynapseContext()\n\n return useMutation<\n SynchronizeGridResponse,\n SynapseClientError,\n Omit<SynchronizeGridRequest, 'concreteType'>\n >({\n ...options,\n mutationFn: async request => {\n const synchronizeGridRequest: SynchronizeGridRequest = {\n ...request,\n concreteType:\n 'org.sagebionetworks.repo.model.grid.SynchronizeGridRequest',\n }\n\n // Start the async export job\n const asyncJobId =\n await synapseClient.gridServicesClient.postRepoV1GridSynchronizeAsyncStart(\n { synchronizeGridRequest },\n )\n\n // Poll for the async job\n const asyncJobResponse = await waitForAsyncResult(() =>\n synapseClient.asynchronousJobServicesClient.getRepoV1AsynchronousJobJobId(\n {\n jobId: asyncJobId.token!,\n },\n ),\n )\n\n return asyncJobResponse.responseBody as SynchronizeGridResponse\n },\n })\n}\n\n/**\n * Fetches all replicas in a grid session by following pagination tokens.\n * Refetch this query on `replica-connected` or `replica-disconnected` WebSocket events\n * to keep the replica list current.\n */\nexport function useListGridReplicas(\n sessionId: string | undefined,\n options?: Partial<UseQueryOptions<GridReplicaInfo[], SynapseClientError>>,\n) {\n const { keyFactory, synapseClient } = useSynapseContext()\n\n return useQuery<GridReplicaInfo[], SynapseClientError>({\n ...options,\n queryKey: keyFactory.getGridReplicaListKey(sessionId!),\n enabled: !!sessionId && (options?.enabled ?? true),\n queryFn: async () => {\n const replicas: GridReplicaInfo[] = []\n let nextPageToken: string | undefined = undefined\n do {\n const response =\n await synapseClient.gridServicesClient.postRepoV1GridSessionSessionIdReplicaList(\n {\n sessionId: sessionId!,\n listGridReplicasRequest: {\n gridSessionId: sessionId!,\n nextPageToken,\n },\n },\n )\n replicas.push(...(response.page ?? []))\n nextPageToken = response.nextPageToken\n } while (nextPageToken)\n return replicas\n },\n })\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useImportCsvIntoGrid.js","names":[],"sources":["../../../src/synapse-queries/grid/useImportCsvIntoGrid.ts"],"sourcesContent":["import { useSynapseContext } from '@/utils/index'\nimport {\n GridCsvImportRequest,\n GridCsvImportResponse,\n SynapseClientError,\n waitForAsyncResult,\n} from '@sage-bionetworks/synapse-client'\nimport { useMutation, UseMutationOptions } from '@tanstack/react-query'\n\nexport function useImportCsvIntoGrid(\n options?: Partial<\n UseMutationOptions<\n GridCsvImportResponse,\n SynapseClientError,\n GridCsvImportRequest\n >\n >,\n) {\n const { synapseClient } = useSynapseContext()\n\n return useMutation<\n GridCsvImportResponse,\n SynapseClientError,\n GridCsvImportRequest\n >({\n ...options,\n mutationFn: async request => {\n const asyncJobId =\n await synapseClient.gridServicesClient.postRepoV1GridImportCsvAsyncStart(\n {\n gridCsvImportRequest: request,\n },\n )\n\n const asyncJobResponse = await waitForAsyncResult(() =>\n synapseClient.asynchronousJobServicesClient.getRepoV1AsynchronousJobJobId(\n {\n jobId: asyncJobId.token!,\n },\n ),\n )\n return asyncJobResponse.responseBody as unknown as GridCsvImportResponse\n },\n })\n}\n"],"mappings":";;;;;AASA,SAAgB,EACd,GAOA;CACA,IAAM,EAAE,qBAAkB,GAAmB;AAE7C,QAAO,EAIL;EACA,GAAG;EACH,YAAY,OAAM,MAAW;GAC3B,IAAM,IACJ,MAAM,EAAc,mBAAmB,kCACrC,EACE,sBAAsB,GACvB,CACF;AASH,
|
|
1
|
+
{"version":3,"file":"useImportCsvIntoGrid.js","names":[],"sources":["../../../src/synapse-queries/grid/useImportCsvIntoGrid.ts"],"sourcesContent":["import { useSynapseContext } from '@/utils/index'\nimport {\n GridCsvImportRequest,\n GridCsvImportResponse,\n SynapseClientError,\n waitForAsyncResult,\n} from '@sage-bionetworks/synapse-client'\nimport { useMutation, UseMutationOptions } from '@tanstack/react-query'\n\nexport function useImportCsvIntoGrid(\n options?: Partial<\n UseMutationOptions<\n GridCsvImportResponse,\n SynapseClientError,\n GridCsvImportRequest\n >\n >,\n) {\n const { synapseClient } = useSynapseContext()\n\n return useMutation<\n GridCsvImportResponse,\n SynapseClientError,\n GridCsvImportRequest\n >({\n ...options,\n mutationFn: async request => {\n const asyncJobId =\n await synapseClient.gridServicesClient.postRepoV1GridImportCsvAsyncStart(\n {\n gridCsvImportRequest: request,\n },\n )\n\n const asyncJobResponse = await waitForAsyncResult(() =>\n synapseClient.asynchronousJobServicesClient.getRepoV1AsynchronousJobJobId(\n {\n jobId: asyncJobId.token!,\n },\n ),\n )\n return asyncJobResponse.responseBody as unknown as GridCsvImportResponse\n },\n })\n}\n"],"mappings":";;;;;AASA,SAAgB,EACd,GAOA;CACA,IAAM,EAAE,qBAAkB,GAAmB;AAE7C,QAAO,EAIL;EACA,GAAG;EACH,YAAY,OAAM,MAAW;GAC3B,IAAM,IACJ,MAAM,EAAc,mBAAmB,kCACrC,EACE,sBAAsB,GACvB,CACF;AASH,WAAO,MAPwB,QAC7B,EAAc,8BAA8B,8BAC1C,EACE,OAAO,EAAW,OACnB,CACF,CACF,EACuB;;EAE3B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSubscription.js","names":[],"sources":["../../../src/synapse-queries/subscription/useSubscription.ts"],"sourcesContent":["import SynapseClient from '@/synapse-client'\nimport { SynapseClientError, useSynapseContext } from '@/utils'\nimport {\n Direction,\n SortByType,\n SubscriberPagedResults,\n Subscription,\n SubscriptionObjectType,\n SubscriptionPagedResults,\n SubscriptionQuery,\n SubscriptionRequest,\n Topic,\n} from '@sage-bionetworks/synapse-types'\nimport {\n InfiniteData,\n QueryKey,\n useInfiniteQuery,\n UseInfiniteQueryOptions,\n useMutation,\n UseMutationOptions,\n useQuery,\n useQueryClient,\n UseQueryOptions,\n} from '@tanstack/react-query'\nimport { isEmpty } from 'lodash-es'\nimport { useCallback } from 'react'\n\nexport function useGetSubscribers(\n topic: Topic,\n options?: Partial<\n UseQueryOptions<SubscriberPagedResults, SynapseClientError>\n >,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n return useQuery({\n ...options,\n queryKey: keyFactory.getSubscribersQueryKey(\n topic.objectId,\n topic.objectType,\n ),\n queryFn: () => SynapseClient.getSubscribers(accessToken, topic),\n })\n}\n\nexport function useGetSubscription(\n objectId: string,\n objectType: SubscriptionObjectType,\n options?: Partial<UseQueryOptions<Subscription | null, SynapseClientError>>,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n const queryFn = async () => {\n const subscriptionRequest: SubscriptionRequest = {\n objectType: objectType,\n idList: [objectId],\n sortByType: SortByType.OBJECT_ID,\n sortDirection: Direction.ASC,\n }\n const subscriptionList = await SynapseClient.postSubscriptionList(\n accessToken,\n subscriptionRequest,\n )\n\n if (isEmpty(subscriptionList.results)) {\n return null\n }\n return subscriptionList.results[0]\n }\n return useQuery<Subscription | null, SynapseClientError>({\n ...options,\n queryKey: keyFactory.getSubscriptionQueryKey(objectId, objectType),\n queryFn,\n })\n}\n\nexport function useGetAllSubscriptions<\n TData = InfiniteData<SubscriptionPagedResults>,\n>(\n query: SubscriptionQuery,\n options?: Partial<\n UseInfiniteQueryOptions<\n SubscriptionPagedResults,\n SynapseClientError,\n TData,\n QueryKey,\n number | undefined\n >\n >,\n queryKeyOverride?: QueryKey,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n const queryClient = useQueryClient()\n\n return useInfiniteQuery<\n SubscriptionPagedResults,\n SynapseClientError,\n TData,\n QueryKey,\n number | undefined\n >({\n ...options,\n queryKey: queryKeyOverride ?? keyFactory.getAllSubscriptionsQueryKey(query),\n queryFn: async context => {\n const offset = context.pageParam\n const subscriptions = await SynapseClient.getAllSubscriptions(\n accessToken,\n 10,\n offset,\n query,\n )\n subscriptions.results.forEach(subscription => {\n queryClient.setQueryData(\n keyFactory.getSubscriptionQueryKey(\n subscription.objectId,\n subscription.objectType,\n ),\n subscription,\n )\n })\n return subscriptions\n },\n initialPageParam: undefined,\n getNextPageParam: (page, allPages) => {\n const totalNumberOfFetchedResults = allPages.flatMap(\n page => page.results,\n ).length\n if (page.totalNumberOfResults > totalNumberOfFetchedResults) {\n return totalNumberOfFetchedResults\n }\n return undefined\n },\n })\n}\n\nexport function usePostSubscription(\n options?: Partial<\n UseMutationOptions<Subscription, SynapseClientError, Topic>\n >,\n) {\n const queryClient = useQueryClient()\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useMutation<Subscription, SynapseClientError, Topic>({\n ...options,\n mutationFn: (topic: Topic) =>\n SynapseClient.postSubscription(accessToken, topic),\n onSuccess: async (updatedSubscription, variables, ctx) => {\n await Promise.all([\n queryClient.invalidateQueries({\n queryKey: keyFactory.getAllSubscriptionsQueryKey(),\n }),\n queryClient.invalidateQueries({\n queryKey: keyFactory.getSubscriptionQueryKey(\n variables.objectId,\n variables.objectType,\n ),\n }),\n queryClient.invalidateQueries({\n queryKey: keyFactory.getSubscribersQueryKey(\n variables.objectId,\n variables.objectType,\n ),\n }),\n ])\n\n if (options?.onSuccess) {\n await options.onSuccess(updatedSubscription, variables, ctx)\n }\n },\n })\n}\n\nexport function useDeleteSubscription(\n options?: Partial<UseMutationOptions<void, SynapseClientError, Subscription>>,\n) {\n const queryClient = useQueryClient()\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useMutation<void, SynapseClientError, Subscription>({\n ...options,\n mutationFn: (subscription: Subscription) =>\n SynapseClient.deleteSubscription(\n accessToken,\n subscription.subscriptionId,\n ),\n onSuccess: async (updatedSubscription, variables, ctx) => {\n await Promise.all([\n queryClient.invalidateQueries({\n queryKey: keyFactory.getAllSubscriptionsQueryKey(),\n }),\n queryClient.invalidateQueries({\n queryKey: keyFactory.getSubscriptionQueryKey(\n variables.objectId,\n variables.objectType,\n ),\n }),\n queryClient.invalidateQueries({\n queryKey: keyFactory.getSubscribersQueryKey(\n variables.objectId,\n variables.objectType,\n ),\n }),\n ])\n\n if (options?.onSuccess) {\n await options.onSuccess(updatedSubscription, variables, ctx)\n }\n },\n })\n}\n\nexport const useSubscription = (\n objectId: string,\n objectType: SubscriptionObjectType,\n) => {\n const { data: subscription, isLoading: isLoadingGet } = useGetSubscription(\n objectId,\n objectType,\n )\n const { mutate: postSubscription, isPending: isPendingCreate } =\n usePostSubscription()\n const { mutate: deleteSubscription, isPending: isPendingDelete } =\n useDeleteSubscription()\n\n const isLoading: boolean = isLoadingGet || isPendingCreate || isPendingDelete\n const toggleSubscribed = useCallback(() => {\n if (subscription) {\n deleteSubscription(subscription)\n } else {\n postSubscription({ objectId, objectType })\n }\n }, [deleteSubscription, objectId, objectType, postSubscription, subscription])\n\n return {\n isLoading,\n subscription,\n toggleSubscribed,\n isSubscribed: Boolean(subscription),\n }\n}\n"],"mappings":";;;;;;;;AA2BA,SAAgB,EACd,GACA,GAGA;CACA,IAAM,EAAE,gBAAa,kBAAe,GAAmB;AACvD,QAAO,EAAS;EACd,GAAG;EACH,UAAU,EAAW,uBACnB,EAAM,UACN,EAAM,WACP;EACD,eAAe,EAAc,eAAe,GAAa,EAAM;EAChE,CAAC;;AAGJ,SAAgB,EACd,GACA,GACA,GACA;CACA,IAAM,EAAE,gBAAa,kBAAe,GAAmB,EACjD,IAAU,YAAY;EAC1B,IAAM,IAA2C;GACnC;GACZ,QAAQ,CAAC,EAAS;GAClB,YAAY,EAAW;GACvB,eAAe,EAAU;GAC1B,EACK,IAAmB,MAAM,EAAc,qBAC3C,GACA,EACD;AAKD,SAHI,EAAQ,EAAiB,QAAQ,GAC5B,OAEF,EAAiB,QAAQ;;AAElC,QAAO,EAAkD;EACvD,GAAG;EACH,UAAU,EAAW,wBAAwB,GAAU,EAAW;EAClE;EACD,CAAC;;AAGJ,SAAgB,EAGd,GACA,GASA,GACA;CACA,IAAM,EAAE,gBAAa,kBAAe,GAAmB,EACjD,IAAc,GAAgB;AAEpC,QAAO,EAML;EACA,GAAG;EACH,UAAU,KAAoB,EAAW,4BAA4B,EAAM;EAC3E,SAAS,OAAM,MAAW;GACxB,IAAM,IAAS,EAAQ,WACjB,IAAgB,MAAM,EAAc,oBACxC,GACA,IACA,GACA,EACD;AAUD,UATA,EAAc,QAAQ,SAAQ,MAAgB;AAC5C,MAAY,aACV,EAAW,wBACT,EAAa,UACb,EAAa,WACd,EACD,EACD;KACD,EACK;;EAET,kBAAkB,KAAA;EAClB,mBAAmB,GAAM,MAAa;GACpC,IAAM,IAA8B,EAAS,SAC3C,MAAQ,EAAK,QACd,CAAC;AACF,OAAI,EAAK,uBAAuB,EAC9B,QAAO;;EAIZ,CAAC;;AAGJ,SAAgB,EACd,GAGA;CACA,IAAM,IAAc,GAAgB,EAC9B,EAAE,gBAAa,kBAAe,GAAmB;AAEvD,QAAO,EAAqD;EAC1D,GAAG;EACH,aAAa,MACX,EAAc,iBAAiB,GAAa,EAAM;EACpD,WAAW,OAAO,GAAqB,GAAW,MAAQ;AAmBxD,GAlBA,MAAM,QAAQ,IAAI;IAChB,EAAY,kBAAkB,EAC5B,UAAU,EAAW,6BAA6B,EACnD,CAAC;IACF,EAAY,kBAAkB,EAC5B,UAAU,EAAW,wBACnB,EAAU,UACV,EAAU,WACX,EACF,CAAC;IACF,EAAY,kBAAkB,EAC5B,UAAU,EAAW,uBACnB,EAAU,UACV,EAAU,WACX,EACF,CAAC;IACH,CAAC,EAEE,GAAS,aACX,MAAM,EAAQ,UAAU,GAAqB,GAAW,EAAI;;EAGjE,CAAC;;AAGJ,SAAgB,EACd,GACA;CACA,IAAM,IAAc,GAAgB,EAC9B,EAAE,gBAAa,kBAAe,GAAmB;AAEvD,QAAO,EAAoD;EACzD,GAAG;EACH,aAAa,MACX,EAAc,mBACZ,GACA,EAAa,eACd;EACH,WAAW,OAAO,GAAqB,GAAW,MAAQ;AAmBxD,GAlBA,MAAM,QAAQ,IAAI;IAChB,EAAY,kBAAkB,EAC5B,UAAU,EAAW,6BAA6B,EACnD,CAAC;IACF,EAAY,kBAAkB,EAC5B,UAAU,EAAW,wBACnB,EAAU,UACV,EAAU,WACX,EACF,CAAC;IACF,EAAY,kBAAkB,EAC5B,UAAU,EAAW,uBACnB,EAAU,UACV,EAAU,WACX,EACF,CAAC;IACH,CAAC,EAEE,GAAS,aACX,MAAM,EAAQ,UAAU,GAAqB,GAAW,EAAI;;EAGjE,CAAC;;AAGJ,IAAa,KACX,GACA,MACG;CACH,IAAM,EAAE,MAAM,GAAc,WAAW,MAAiB,EACtD,GACA,EACD,EACK,EAAE,QAAQ,GAAkB,WAAW,MAC3C,GAAqB,EACjB,EAAE,QAAQ,GAAoB,WAAW,MAC7C,GAAuB;AAWzB,QAAO;EACL,WAVyB,KAAgB,KAAmB;EAW5D;EACA,kBAXuB,QAAkB;AACzC,GAAI,IACF,EAAmB,EAAa,GAEhC,EAAiB;IAAE;IAAU;IAAY,CAAC;KAE3C;GAAC;GAAoB;GAAU;GAAY;GAAkB;GAAa,
|
|
1
|
+
{"version":3,"file":"useSubscription.js","names":[],"sources":["../../../src/synapse-queries/subscription/useSubscription.ts"],"sourcesContent":["import SynapseClient from '@/synapse-client'\nimport { SynapseClientError, useSynapseContext } from '@/utils'\nimport {\n Direction,\n SortByType,\n SubscriberPagedResults,\n Subscription,\n SubscriptionObjectType,\n SubscriptionPagedResults,\n SubscriptionQuery,\n SubscriptionRequest,\n Topic,\n} from '@sage-bionetworks/synapse-types'\nimport {\n InfiniteData,\n QueryKey,\n useInfiniteQuery,\n UseInfiniteQueryOptions,\n useMutation,\n UseMutationOptions,\n useQuery,\n useQueryClient,\n UseQueryOptions,\n} from '@tanstack/react-query'\nimport { isEmpty } from 'lodash-es'\nimport { useCallback } from 'react'\n\nexport function useGetSubscribers(\n topic: Topic,\n options?: Partial<\n UseQueryOptions<SubscriberPagedResults, SynapseClientError>\n >,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n return useQuery({\n ...options,\n queryKey: keyFactory.getSubscribersQueryKey(\n topic.objectId,\n topic.objectType,\n ),\n queryFn: () => SynapseClient.getSubscribers(accessToken, topic),\n })\n}\n\nexport function useGetSubscription(\n objectId: string,\n objectType: SubscriptionObjectType,\n options?: Partial<UseQueryOptions<Subscription | null, SynapseClientError>>,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n const queryFn = async () => {\n const subscriptionRequest: SubscriptionRequest = {\n objectType: objectType,\n idList: [objectId],\n sortByType: SortByType.OBJECT_ID,\n sortDirection: Direction.ASC,\n }\n const subscriptionList = await SynapseClient.postSubscriptionList(\n accessToken,\n subscriptionRequest,\n )\n\n if (isEmpty(subscriptionList.results)) {\n return null\n }\n return subscriptionList.results[0]\n }\n return useQuery<Subscription | null, SynapseClientError>({\n ...options,\n queryKey: keyFactory.getSubscriptionQueryKey(objectId, objectType),\n queryFn,\n })\n}\n\nexport function useGetAllSubscriptions<\n TData = InfiniteData<SubscriptionPagedResults>,\n>(\n query: SubscriptionQuery,\n options?: Partial<\n UseInfiniteQueryOptions<\n SubscriptionPagedResults,\n SynapseClientError,\n TData,\n QueryKey,\n number | undefined\n >\n >,\n queryKeyOverride?: QueryKey,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n const queryClient = useQueryClient()\n\n return useInfiniteQuery<\n SubscriptionPagedResults,\n SynapseClientError,\n TData,\n QueryKey,\n number | undefined\n >({\n ...options,\n queryKey: queryKeyOverride ?? keyFactory.getAllSubscriptionsQueryKey(query),\n queryFn: async context => {\n const offset = context.pageParam\n const subscriptions = await SynapseClient.getAllSubscriptions(\n accessToken,\n 10,\n offset,\n query,\n )\n subscriptions.results.forEach(subscription => {\n queryClient.setQueryData(\n keyFactory.getSubscriptionQueryKey(\n subscription.objectId,\n subscription.objectType,\n ),\n subscription,\n )\n })\n return subscriptions\n },\n initialPageParam: undefined,\n getNextPageParam: (page, allPages) => {\n const totalNumberOfFetchedResults = allPages.flatMap(\n page => page.results,\n ).length\n if (page.totalNumberOfResults > totalNumberOfFetchedResults) {\n return totalNumberOfFetchedResults\n }\n return undefined\n },\n })\n}\n\nexport function usePostSubscription(\n options?: Partial<\n UseMutationOptions<Subscription, SynapseClientError, Topic>\n >,\n) {\n const queryClient = useQueryClient()\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useMutation<Subscription, SynapseClientError, Topic>({\n ...options,\n mutationFn: (topic: Topic) =>\n SynapseClient.postSubscription(accessToken, topic),\n onSuccess: async (updatedSubscription, variables, ctx) => {\n await Promise.all([\n queryClient.invalidateQueries({\n queryKey: keyFactory.getAllSubscriptionsQueryKey(),\n }),\n queryClient.invalidateQueries({\n queryKey: keyFactory.getSubscriptionQueryKey(\n variables.objectId,\n variables.objectType,\n ),\n }),\n queryClient.invalidateQueries({\n queryKey: keyFactory.getSubscribersQueryKey(\n variables.objectId,\n variables.objectType,\n ),\n }),\n ])\n\n if (options?.onSuccess) {\n await options.onSuccess(updatedSubscription, variables, ctx)\n }\n },\n })\n}\n\nexport function useDeleteSubscription(\n options?: Partial<UseMutationOptions<void, SynapseClientError, Subscription>>,\n) {\n const queryClient = useQueryClient()\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useMutation<void, SynapseClientError, Subscription>({\n ...options,\n mutationFn: (subscription: Subscription) =>\n SynapseClient.deleteSubscription(\n accessToken,\n subscription.subscriptionId,\n ),\n onSuccess: async (updatedSubscription, variables, ctx) => {\n await Promise.all([\n queryClient.invalidateQueries({\n queryKey: keyFactory.getAllSubscriptionsQueryKey(),\n }),\n queryClient.invalidateQueries({\n queryKey: keyFactory.getSubscriptionQueryKey(\n variables.objectId,\n variables.objectType,\n ),\n }),\n queryClient.invalidateQueries({\n queryKey: keyFactory.getSubscribersQueryKey(\n variables.objectId,\n variables.objectType,\n ),\n }),\n ])\n\n if (options?.onSuccess) {\n await options.onSuccess(updatedSubscription, variables, ctx)\n }\n },\n })\n}\n\nexport const useSubscription = (\n objectId: string,\n objectType: SubscriptionObjectType,\n) => {\n const { data: subscription, isLoading: isLoadingGet } = useGetSubscription(\n objectId,\n objectType,\n )\n const { mutate: postSubscription, isPending: isPendingCreate } =\n usePostSubscription()\n const { mutate: deleteSubscription, isPending: isPendingDelete } =\n useDeleteSubscription()\n\n const isLoading: boolean = isLoadingGet || isPendingCreate || isPendingDelete\n const toggleSubscribed = useCallback(() => {\n if (subscription) {\n deleteSubscription(subscription)\n } else {\n postSubscription({ objectId, objectType })\n }\n }, [deleteSubscription, objectId, objectType, postSubscription, subscription])\n\n return {\n isLoading,\n subscription,\n toggleSubscribed,\n isSubscribed: Boolean(subscription),\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGetCsvPreview.js","names":[],"sources":["../../../src/synapse-queries/table/useGetCsvPreview.ts"],"sourcesContent":["import { useSynapseContext } from '@/utils/index'\nimport {\n UploadToTablePreviewRequest,\n UploadToTablePreviewResult,\n waitForAsyncResult,\n} from '@sage-bionetworks/synapse-client'\nimport { skipToken, useQuery } from '@tanstack/react-query'\n\nexport function useGetCsvPreview(request: UploadToTablePreviewRequest) {\n const { synapseClient, keyFactory } = useSynapseContext()\n\n return useQuery({\n queryKey: keyFactory.getCsvPreviewQueryKey(request),\n queryFn: request?.uploadFileHandleId\n ? async () => {\n const asyncJobId =\n await synapseClient.tableServicesClient.postRepoV1TableUploadCsvPreviewAsyncStart(\n { uploadToTablePreviewRequest: request },\n )\n\n const asyncJobResponse = await waitForAsyncResult(() =>\n synapseClient.asynchronousJobServicesClient.getRepoV1AsynchronousJobJobId(\n {\n jobId: asyncJobId.token!,\n },\n ),\n )\n return asyncJobResponse.responseBody as UploadToTablePreviewResult\n }\n : skipToken,\n // This request is deterministic and the response will never change.\n staleTime: Infinity,\n gcTime: Infinity,\n })\n}\n"],"mappings":";;;;;AAQA,SAAgB,EAAiB,GAAsC;CACrE,IAAM,EAAE,kBAAe,kBAAe,GAAmB;AAEzD,QAAO,EAAS;EACd,UAAU,EAAW,sBAAsB,EAAQ;EACnD,SAAS,GAAS,qBACd,YAAY;GACV,IAAM,IACJ,MAAM,EAAc,oBAAoB,0CACtC,EAAE,6BAA6B,GAAS,CACzC;AASH,
|
|
1
|
+
{"version":3,"file":"useGetCsvPreview.js","names":[],"sources":["../../../src/synapse-queries/table/useGetCsvPreview.ts"],"sourcesContent":["import { useSynapseContext } from '@/utils/index'\nimport {\n UploadToTablePreviewRequest,\n UploadToTablePreviewResult,\n waitForAsyncResult,\n} from '@sage-bionetworks/synapse-client'\nimport { skipToken, useQuery } from '@tanstack/react-query'\n\nexport function useGetCsvPreview(request: UploadToTablePreviewRequest) {\n const { synapseClient, keyFactory } = useSynapseContext()\n\n return useQuery({\n queryKey: keyFactory.getCsvPreviewQueryKey(request),\n queryFn: request?.uploadFileHandleId\n ? async () => {\n const asyncJobId =\n await synapseClient.tableServicesClient.postRepoV1TableUploadCsvPreviewAsyncStart(\n { uploadToTablePreviewRequest: request },\n )\n\n const asyncJobResponse = await waitForAsyncResult(() =>\n synapseClient.asynchronousJobServicesClient.getRepoV1AsynchronousJobJobId(\n {\n jobId: asyncJobId.token!,\n },\n ),\n )\n return asyncJobResponse.responseBody as UploadToTablePreviewResult\n }\n : skipToken,\n // This request is deterministic and the response will never change.\n staleTime: Infinity,\n gcTime: Infinity,\n })\n}\n"],"mappings":";;;;;AAQA,SAAgB,EAAiB,GAAsC;CACrE,IAAM,EAAE,kBAAe,kBAAe,GAAmB;AAEzD,QAAO,EAAS;EACd,UAAU,EAAW,sBAAsB,EAAQ;EACnD,SAAS,GAAS,qBACd,YAAY;GACV,IAAM,IACJ,MAAM,EAAc,oBAAoB,0CACtC,EAAE,6BAA6B,GAAS,CACzC;AASH,WAAO,MAPwB,QAC7B,EAAc,8BAA8B,8BAC1C,EACE,OAAO,EAAW,OACnB,CACF,CACF,EACuB;MAE1B;EAEJ,WAAW;EACX,QAAQ;EACT,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTableUpdateTransaction.js","names":[],"sources":["../../../src/synapse-queries/table/useTableUpdateTransaction.ts"],"sourcesContent":["import { invalidateAllQueriesForEntity } from '@/synapse-queries/index'\nimport { useSynapseContext } from '@/utils/index'\nimport {\n SynapseClientError,\n TableUpdateTransactionRequest,\n TableUpdateTransactionResponse,\n waitForAsyncResult,\n} from '@sage-bionetworks/synapse-client'\nimport {\n useMutation,\n UseMutationOptions,\n useQueryClient,\n} from '@tanstack/react-query'\n\nexport function useTableUpdateTransaction(\n options?: Partial<\n UseMutationOptions<\n TableUpdateTransactionResponse,\n SynapseClientError,\n TableUpdateTransactionRequest\n >\n >,\n) {\n const { keyFactory, synapseClient } = useSynapseContext()\n const queryClient = useQueryClient()\n\n return useMutation<\n TableUpdateTransactionResponse,\n SynapseClientError,\n TableUpdateTransactionRequest\n >({\n ...options,\n mutationFn: async tableUpdateTransactionRequest => {\n const asyncJobId =\n await synapseClient.tableServicesClient.postRepoV1EntityIdTableTransactionAsyncStart(\n {\n id: tableUpdateTransactionRequest.entityId!,\n tableUpdateTransactionRequest,\n },\n )\n\n const response = await waitForAsyncResult(() =>\n synapseClient.asynchronousJobServicesClient.getRepoV1AsynchronousJobJobId(\n {\n jobId: asyncJobId.token!,\n },\n ),\n )\n\n return response.responseBody as TableUpdateTransactionResponse\n },\n onSuccess: async (response, variables, ctx) => {\n await invalidateAllQueriesForEntity(\n queryClient,\n keyFactory,\n variables.entityId!,\n )\n\n if (options?.onSuccess) {\n await options.onSuccess(response, variables, ctx)\n }\n },\n })\n}\n"],"mappings":";;;;;;;AAcA,SAAgB,EACd,GAOA;CACA,IAAM,EAAE,eAAY,qBAAkB,GAAmB,EACnD,IAAc,GAAgB;AAEpC,QAAO,EAIL;EACA,GAAG;EACH,YAAY,OAAM,MAAiC;GACjD,IAAM,IACJ,MAAM,EAAc,oBAAoB,6CACtC;IACE,IAAI,EAA8B;IAClC;IACD,CACF;AAUH,
|
|
1
|
+
{"version":3,"file":"useTableUpdateTransaction.js","names":[],"sources":["../../../src/synapse-queries/table/useTableUpdateTransaction.ts"],"sourcesContent":["import { invalidateAllQueriesForEntity } from '@/synapse-queries/index'\nimport { useSynapseContext } from '@/utils/index'\nimport {\n SynapseClientError,\n TableUpdateTransactionRequest,\n TableUpdateTransactionResponse,\n waitForAsyncResult,\n} from '@sage-bionetworks/synapse-client'\nimport {\n useMutation,\n UseMutationOptions,\n useQueryClient,\n} from '@tanstack/react-query'\n\nexport function useTableUpdateTransaction(\n options?: Partial<\n UseMutationOptions<\n TableUpdateTransactionResponse,\n SynapseClientError,\n TableUpdateTransactionRequest\n >\n >,\n) {\n const { keyFactory, synapseClient } = useSynapseContext()\n const queryClient = useQueryClient()\n\n return useMutation<\n TableUpdateTransactionResponse,\n SynapseClientError,\n TableUpdateTransactionRequest\n >({\n ...options,\n mutationFn: async tableUpdateTransactionRequest => {\n const asyncJobId =\n await synapseClient.tableServicesClient.postRepoV1EntityIdTableTransactionAsyncStart(\n {\n id: tableUpdateTransactionRequest.entityId!,\n tableUpdateTransactionRequest,\n },\n )\n\n const response = await waitForAsyncResult(() =>\n synapseClient.asynchronousJobServicesClient.getRepoV1AsynchronousJobJobId(\n {\n jobId: asyncJobId.token!,\n },\n ),\n )\n\n return response.responseBody as TableUpdateTransactionResponse\n },\n onSuccess: async (response, variables, ctx) => {\n await invalidateAllQueriesForEntity(\n queryClient,\n keyFactory,\n variables.entityId!,\n )\n\n if (options?.onSuccess) {\n await options.onSuccess(response, variables, ctx)\n }\n },\n })\n}\n"],"mappings":";;;;;;;AAcA,SAAgB,EACd,GAOA;CACA,IAAM,EAAE,eAAY,qBAAkB,GAAmB,EACnD,IAAc,GAAgB;AAEpC,QAAO,EAIL;EACA,GAAG;EACH,YAAY,OAAM,MAAiC;GACjD,IAAM,IACJ,MAAM,EAAc,oBAAoB,6CACtC;IACE,IAAI,EAA8B;IAClC;IACD,CACF;AAUH,WAAO,MARgB,QACrB,EAAc,8BAA8B,8BAC1C,EACE,OAAO,EAAW,OACnB,CACF,CACF,EAEe;;EAElB,WAAW,OAAO,GAAU,GAAW,MAAQ;AAO7C,GANA,MAAM,EACJ,GACA,GACA,EAAU,SACX,EAEG,GAAS,aACX,MAAM,EAAQ,UAAU,GAAU,GAAW,EAAI;;EAGtD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTeamMembers.js","names":[],"sources":["../../../src/synapse-queries/team/useTeamMembers.ts"],"sourcesContent":["import SynapseClient, { deleteMemberFromTeam } from '@/synapse-client'\nimport { SynapseClientError, useSynapseContext } from '@/utils'\nimport {\n Count,\n MembershipInvitation as MembershipInvitationGenerated,\n} from '@sage-bionetworks/synapse-client'\nimport {\n CreateMembershipInvitationRequest,\n CreateMembershipRequestRequest,\n MembershipInvitation,\n MembershipRequest,\n PaginatedResults,\n TeamMember,\n TeamMembershipStatus,\n} from '@sage-bionetworks/synapse-types'\nimport {\n queryOptions,\n useMutation,\n UseMutationOptions,\n useQuery,\n useQueryClient,\n UseQueryOptions,\n} from '@tanstack/react-query'\nimport { SynapseQueriesContext } from '../types'\nimport { getUserGroupHeaderQuery } from '../user'\n\nexport function useGetTeamMembers(\n teamId: string | number,\n options?: Partial<\n UseQueryOptions<PaginatedResults<TeamMember>, SynapseClientError>\n >,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n return useQuery({\n ...options,\n queryKey: keyFactory.getTeamMembersQueryKey(String(teamId)),\n queryFn: () => SynapseClient.getTeamMembers(accessToken, teamId, '', 50, 0),\n })\n}\n\nexport function useGetTeamMemberCount(\n teamId: string,\n options?: Partial<UseQueryOptions<Count, SynapseClientError>>,\n) {\n const { keyFactory, synapseClient } = useSynapseContext()\n return useQuery({\n ...options,\n queryKey: keyFactory.getTeamMemberCountQueryKey(String(teamId)),\n queryFn: () =>\n synapseClient.teamServicesClient.getRepoV1TeamMembersCountId({\n id: teamId,\n }),\n })\n}\n\nexport function getIsUserMemberOfTeamQuery(\n teamId: string,\n userId: string,\n context: SynapseQueriesContext,\n) {\n const { accessToken, keyFactory } = context\n return queryOptions<TeamMember | null, SynapseClientError>({\n queryKey: keyFactory.getIsUserMemberOfTeamQueryKey(teamId, userId),\n queryFn: () =>\n SynapseClient.getIsUserMemberOfTeam(teamId, userId, accessToken),\n })\n}\n\nexport function useGetIsUserMemberOfTeam(\n teamId: string,\n userId: string,\n options?: Partial<UseQueryOptions<TeamMember | null, SynapseClientError>>,\n) {\n const synapseContext = useSynapseContext()\n const queryClient = useQueryClient()\n\n return useQuery({\n ...options,\n ...getIsUserMemberOfTeamQuery(teamId, userId, {\n ...synapseContext,\n queryClient,\n }),\n })\n}\n\n/**\n * Checks if the passed principalId is either the userId or a team that the userId is a member of.\n *\n * @param userId the userId of the current user\n * @param principalId the principalId of the share (either a userId or a teamId)\n * @param context context required to issue the request(s)\n * @returns true if the principalId is either the userId or a team that the userId is a member of. Returns false otherwise.\n */\nexport function getIsPrincipalIdUserOrMemberOfTeamQuery(\n userId: string,\n principalId: string,\n context: SynapseQueriesContext,\n) {\n const { keyFactory, queryClient } = context\n return queryOptions<boolean, SynapseClientError>({\n queryKey: keyFactory.getIsPrincipalIdSelfOrTeamMemberQueryKey(\n principalId,\n userId,\n ),\n queryFn: async () => {\n // Is the principalId the userId?\n if (principalId.trim() === userId.trim()) {\n return true\n }\n // Is the principalId a team ID?\n const principalUserGroupResult = await queryClient.fetchQuery(\n getUserGroupHeaderQuery(principalId, context),\n )\n if (\n !principalUserGroupResult ||\n principalUserGroupResult?.isIndividual === true\n ) {\n return false\n }\n\n // Is the user a member of the team?\n const teamMembership = await queryClient.fetchQuery(\n getIsUserMemberOfTeamQuery(principalId, userId, context),\n )\n return teamMembership !== null\n },\n })\n}\n\n/**\n * Checks if the passed principalId is either the userId or a team that the userId is a member of.\n *\n * @param userId the userId of the current user\n * @param principalId the principalId of the share (either a userId or a teamId)\n * @param options react-query options\n * @returns true if the principalId is either the userId or a team that the userId is a member of. Returns false otherwise.\n */\nexport function useGetIsPrincipalIdUserOrMemberOfTeam(\n userId: string,\n principalId: string,\n options?: Partial<UseQueryOptions<boolean, SynapseClientError>>,\n) {\n const synapseContext = useSynapseContext()\n const queryClient = useQueryClient()\n\n return useQuery({\n ...options,\n ...getIsPrincipalIdUserOrMemberOfTeamQuery(userId, principalId, {\n ...synapseContext,\n queryClient,\n }),\n })\n}\n\nexport function useGetMembershipStatus(\n teamId: string,\n userId: string,\n options?: Partial<UseQueryOptions<TeamMembershipStatus, SynapseClientError>>,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useQuery({\n ...options,\n queryKey: keyFactory.getMembershipStatusQueryKey(teamId, userId),\n queryFn: () =>\n SynapseClient.getMembershipStatus(teamId, userId, accessToken),\n })\n}\n\nexport function useGetAllOpenMembershipInvitations(\n userId: string,\n options?: Partial<\n UseQueryOptions<MembershipInvitation[], SynapseClientError>\n >,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n return useQuery({\n ...options,\n queryKey: keyFactory.getAllOpenMembershipInvitationsForUserQueryKey(userId),\n queryFn: () =>\n SynapseClient.getAllOpenMembershipInvitationsForUser(\n userId,\n accessToken!,\n ),\n })\n}\n\nexport function useInviteUserToTeam(\n options?: Partial<\n UseMutationOptions<\n MembershipInvitation,\n SynapseClientError,\n CreateMembershipInvitationRequest\n >\n >,\n) {\n const { accessToken } = useSynapseContext()\n\n return useMutation<\n MembershipInvitation,\n SynapseClientError,\n CreateMembershipInvitationRequest\n >({\n ...options,\n mutationFn: invitation =>\n SynapseClient.createMembershipInvitation(invitation, accessToken),\n })\n}\n\nexport function useAddMemberToTeam(\n options?: Partial<\n UseMutationOptions<\n void,\n SynapseClientError,\n { teamId: string; userId: string }\n >\n >,\n) {\n const queryClient = useQueryClient()\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useMutation<\n void,\n SynapseClientError,\n { teamId: string; userId: string }\n >({\n ...options,\n mutationFn: ({ teamId, userId }) =>\n SynapseClient.addTeamMemberAsAuthenticatedUserOrAdmin(\n teamId,\n userId,\n accessToken!,\n ),\n onSuccess: async (data, variables, ctx) => {\n if (options?.onSuccess) {\n options.onSuccess(data, variables, ctx)\n }\n await Promise.all([\n queryClient.invalidateQueries({\n queryKey: keyFactory.getAllOpenMembershipInvitationsQueryKey(),\n }),\n queryClient.invalidateQueries({\n queryKey: keyFactory.getMembershipStatusQueryKey(\n variables.teamId,\n variables.userId,\n ),\n }),\n queryClient.invalidateQueries({\n queryKey: keyFactory.getIsUserMemberOfTeamQueryKey(\n variables.teamId,\n variables.userId,\n ),\n }),\n queryClient.invalidateQueries({\n queryKey: keyFactory.getTeamMembersQueryKey(variables.teamId),\n }),\n queryClient.invalidateQueries({\n queryKey: keyFactory.getAllSubmissionTeamsQueryKeys(),\n }),\n ])\n },\n })\n}\n\nexport function useRequestToJoinTeam(\n options: Partial<\n UseMutationOptions<\n MembershipRequest,\n SynapseClientError,\n CreateMembershipRequestRequest\n >\n >,\n) {\n const queryClient = useQueryClient()\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useMutation<\n MembershipRequest,\n SynapseClientError,\n CreateMembershipRequestRequest\n >({\n ...options,\n mutationFn: request =>\n SynapseClient.createMembershipRequest(request, accessToken),\n onSuccess: async (data, variables, ctx) => {\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getMembershipStatusQueryKey(\n variables.teamId,\n variables.userId,\n ),\n })\n if (options.onSuccess) {\n return options.onSuccess(data, variables, ctx)\n }\n return\n },\n })\n}\n\n/**\n * Delete an invitation.\n * Note: The client must be an administrator of the Team referenced by the invitation or the invitee to make this request.\n *\n * @see https://rest-docs.synapse.org/rest/DELETE/membershipInvitation/id.html\n */\nexport function useDeleteMembershipInvitation(\n options?: Partial<\n UseMutationOptions<\n void,\n SynapseClientError,\n { membershipInvitation: MembershipInvitationGenerated }\n >\n >,\n) {\n const queryClient = useQueryClient()\n const { keyFactory, synapseClient } = useSynapseContext()\n\n return useMutation<\n void,\n SynapseClientError,\n { membershipInvitation: MembershipInvitationGenerated }\n >({\n ...options,\n mutationFn: ({ membershipInvitation }) =>\n synapseClient.membershipInvitationServicesClient.deleteRepoV1MembershipInvitationId(\n { id: membershipInvitation.id! },\n ),\n onSuccess: async (data, variables, ctx) => {\n await Promise.all([\n queryClient.invalidateQueries({\n queryKey: keyFactory.getAllOpenMembershipInvitationsQueryKey(),\n }),\n // MembershipStatus includes `hasOpenInvitation`, which may change after deleting an invitation\n queryClient.invalidateQueries({\n queryKey: keyFactory.getMembershipStatusQueryKey(\n variables.membershipInvitation.teamId!,\n variables.membershipInvitation.inviteeId,\n ),\n }),\n ])\n if (options?.onSuccess) {\n await options.onSuccess(data, variables, ctx)\n }\n },\n })\n}\n\nexport type TeamMembershipParam = {\n teamId: string\n userId: string\n}\n\nexport function useDeleteTeamMembership(\n options?: Partial<\n UseMutationOptions<void, SynapseClientError, TeamMembershipParam>\n >,\n) {\n const queryClient = useQueryClient()\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useMutation<void, SynapseClientError, TeamMembershipParam>({\n ...options,\n mutationFn: variables =>\n deleteMemberFromTeam(variables.teamId, variables.userId, accessToken),\n onSuccess: async (data, variables, ctx) => {\n await Promise.all([\n queryClient.invalidateQueries({\n queryKey: keyFactory.getIsUserMemberOfTeamQueryKey(\n variables.teamId,\n variables.userId,\n ),\n }),\n queryClient.invalidateQueries({\n queryKey: keyFactory.getMembershipStatusQueryKey(\n variables.teamId,\n variables.userId,\n ),\n }),\n ])\n if (options?.onSuccess) {\n await options.onSuccess(data, variables, ctx)\n }\n },\n })\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useTeamMembers.js","names":[],"sources":["../../../src/synapse-queries/team/useTeamMembers.ts"],"sourcesContent":["import SynapseClient, { deleteMemberFromTeam } from '@/synapse-client'\nimport { SynapseClientError, useSynapseContext } from '@/utils'\nimport {\n Count,\n MembershipInvitation as MembershipInvitationGenerated,\n} from '@sage-bionetworks/synapse-client'\nimport {\n CreateMembershipInvitationRequest,\n CreateMembershipRequestRequest,\n MembershipInvitation,\n MembershipRequest,\n PaginatedResults,\n TeamMember,\n TeamMembershipStatus,\n} from '@sage-bionetworks/synapse-types'\nimport {\n queryOptions,\n useMutation,\n UseMutationOptions,\n useQuery,\n useQueryClient,\n UseQueryOptions,\n} from '@tanstack/react-query'\nimport { SynapseQueriesContext } from '../types'\nimport { getUserGroupHeaderQuery } from '../user'\n\nexport function useGetTeamMembers(\n teamId: string | number,\n options?: Partial<\n UseQueryOptions<PaginatedResults<TeamMember>, SynapseClientError>\n >,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n return useQuery({\n ...options,\n queryKey: keyFactory.getTeamMembersQueryKey(String(teamId)),\n queryFn: () => SynapseClient.getTeamMembers(accessToken, teamId, '', 50, 0),\n })\n}\n\nexport function useGetTeamMemberCount(\n teamId: string,\n options?: Partial<UseQueryOptions<Count, SynapseClientError>>,\n) {\n const { keyFactory, synapseClient } = useSynapseContext()\n return useQuery({\n ...options,\n queryKey: keyFactory.getTeamMemberCountQueryKey(String(teamId)),\n queryFn: () =>\n synapseClient.teamServicesClient.getRepoV1TeamMembersCountId({\n id: teamId,\n }),\n })\n}\n\nexport function getIsUserMemberOfTeamQuery(\n teamId: string,\n userId: string,\n context: SynapseQueriesContext,\n) {\n const { accessToken, keyFactory } = context\n return queryOptions<TeamMember | null, SynapseClientError>({\n queryKey: keyFactory.getIsUserMemberOfTeamQueryKey(teamId, userId),\n queryFn: () =>\n SynapseClient.getIsUserMemberOfTeam(teamId, userId, accessToken),\n })\n}\n\nexport function useGetIsUserMemberOfTeam(\n teamId: string,\n userId: string,\n options?: Partial<UseQueryOptions<TeamMember | null, SynapseClientError>>,\n) {\n const synapseContext = useSynapseContext()\n const queryClient = useQueryClient()\n\n return useQuery({\n ...options,\n ...getIsUserMemberOfTeamQuery(teamId, userId, {\n ...synapseContext,\n queryClient,\n }),\n })\n}\n\n/**\n * Checks if the passed principalId is either the userId or a team that the userId is a member of.\n *\n * @param userId the userId of the current user\n * @param principalId the principalId of the share (either a userId or a teamId)\n * @param context context required to issue the request(s)\n * @returns true if the principalId is either the userId or a team that the userId is a member of. Returns false otherwise.\n */\nexport function getIsPrincipalIdUserOrMemberOfTeamQuery(\n userId: string,\n principalId: string,\n context: SynapseQueriesContext,\n) {\n const { keyFactory, queryClient } = context\n return queryOptions<boolean, SynapseClientError>({\n queryKey: keyFactory.getIsPrincipalIdSelfOrTeamMemberQueryKey(\n principalId,\n userId,\n ),\n queryFn: async () => {\n // Is the principalId the userId?\n if (principalId.trim() === userId.trim()) {\n return true\n }\n // Is the principalId a team ID?\n const principalUserGroupResult = await queryClient.fetchQuery(\n getUserGroupHeaderQuery(principalId, context),\n )\n if (\n !principalUserGroupResult ||\n principalUserGroupResult?.isIndividual === true\n ) {\n return false\n }\n\n // Is the user a member of the team?\n const teamMembership = await queryClient.fetchQuery(\n getIsUserMemberOfTeamQuery(principalId, userId, context),\n )\n return teamMembership !== null\n },\n })\n}\n\n/**\n * Checks if the passed principalId is either the userId or a team that the userId is a member of.\n *\n * @param userId the userId of the current user\n * @param principalId the principalId of the share (either a userId or a teamId)\n * @param options react-query options\n * @returns true if the principalId is either the userId or a team that the userId is a member of. Returns false otherwise.\n */\nexport function useGetIsPrincipalIdUserOrMemberOfTeam(\n userId: string,\n principalId: string,\n options?: Partial<UseQueryOptions<boolean, SynapseClientError>>,\n) {\n const synapseContext = useSynapseContext()\n const queryClient = useQueryClient()\n\n return useQuery({\n ...options,\n ...getIsPrincipalIdUserOrMemberOfTeamQuery(userId, principalId, {\n ...synapseContext,\n queryClient,\n }),\n })\n}\n\nexport function useGetMembershipStatus(\n teamId: string,\n userId: string,\n options?: Partial<UseQueryOptions<TeamMembershipStatus, SynapseClientError>>,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useQuery({\n ...options,\n queryKey: keyFactory.getMembershipStatusQueryKey(teamId, userId),\n queryFn: () =>\n SynapseClient.getMembershipStatus(teamId, userId, accessToken),\n })\n}\n\nexport function useGetAllOpenMembershipInvitations(\n userId: string,\n options?: Partial<\n UseQueryOptions<MembershipInvitation[], SynapseClientError>\n >,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n return useQuery({\n ...options,\n queryKey: keyFactory.getAllOpenMembershipInvitationsForUserQueryKey(userId),\n queryFn: () =>\n SynapseClient.getAllOpenMembershipInvitationsForUser(\n userId,\n accessToken!,\n ),\n })\n}\n\nexport function useInviteUserToTeam(\n options?: Partial<\n UseMutationOptions<\n MembershipInvitation,\n SynapseClientError,\n CreateMembershipInvitationRequest\n >\n >,\n) {\n const { accessToken } = useSynapseContext()\n\n return useMutation<\n MembershipInvitation,\n SynapseClientError,\n CreateMembershipInvitationRequest\n >({\n ...options,\n mutationFn: invitation =>\n SynapseClient.createMembershipInvitation(invitation, accessToken),\n })\n}\n\nexport function useAddMemberToTeam(\n options?: Partial<\n UseMutationOptions<\n void,\n SynapseClientError,\n { teamId: string; userId: string }\n >\n >,\n) {\n const queryClient = useQueryClient()\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useMutation<\n void,\n SynapseClientError,\n { teamId: string; userId: string }\n >({\n ...options,\n mutationFn: ({ teamId, userId }) =>\n SynapseClient.addTeamMemberAsAuthenticatedUserOrAdmin(\n teamId,\n userId,\n accessToken!,\n ),\n onSuccess: async (data, variables, ctx) => {\n if (options?.onSuccess) {\n options.onSuccess(data, variables, ctx)\n }\n await Promise.all([\n queryClient.invalidateQueries({\n queryKey: keyFactory.getAllOpenMembershipInvitationsQueryKey(),\n }),\n queryClient.invalidateQueries({\n queryKey: keyFactory.getMembershipStatusQueryKey(\n variables.teamId,\n variables.userId,\n ),\n }),\n queryClient.invalidateQueries({\n queryKey: keyFactory.getIsUserMemberOfTeamQueryKey(\n variables.teamId,\n variables.userId,\n ),\n }),\n queryClient.invalidateQueries({\n queryKey: keyFactory.getTeamMembersQueryKey(variables.teamId),\n }),\n queryClient.invalidateQueries({\n queryKey: keyFactory.getAllSubmissionTeamsQueryKeys(),\n }),\n ])\n },\n })\n}\n\nexport function useRequestToJoinTeam(\n options: Partial<\n UseMutationOptions<\n MembershipRequest,\n SynapseClientError,\n CreateMembershipRequestRequest\n >\n >,\n) {\n const queryClient = useQueryClient()\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useMutation<\n MembershipRequest,\n SynapseClientError,\n CreateMembershipRequestRequest\n >({\n ...options,\n mutationFn: request =>\n SynapseClient.createMembershipRequest(request, accessToken),\n onSuccess: async (data, variables, ctx) => {\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getMembershipStatusQueryKey(\n variables.teamId,\n variables.userId,\n ),\n })\n if (options.onSuccess) {\n return options.onSuccess(data, variables, ctx)\n }\n return\n },\n })\n}\n\n/**\n * Delete an invitation.\n * Note: The client must be an administrator of the Team referenced by the invitation or the invitee to make this request.\n *\n * @see https://rest-docs.synapse.org/rest/DELETE/membershipInvitation/id.html\n */\nexport function useDeleteMembershipInvitation(\n options?: Partial<\n UseMutationOptions<\n void,\n SynapseClientError,\n { membershipInvitation: MembershipInvitationGenerated }\n >\n >,\n) {\n const queryClient = useQueryClient()\n const { keyFactory, synapseClient } = useSynapseContext()\n\n return useMutation<\n void,\n SynapseClientError,\n { membershipInvitation: MembershipInvitationGenerated }\n >({\n ...options,\n mutationFn: ({ membershipInvitation }) =>\n synapseClient.membershipInvitationServicesClient.deleteRepoV1MembershipInvitationId(\n { id: membershipInvitation.id! },\n ),\n onSuccess: async (data, variables, ctx) => {\n await Promise.all([\n queryClient.invalidateQueries({\n queryKey: keyFactory.getAllOpenMembershipInvitationsQueryKey(),\n }),\n // MembershipStatus includes `hasOpenInvitation`, which may change after deleting an invitation\n queryClient.invalidateQueries({\n queryKey: keyFactory.getMembershipStatusQueryKey(\n variables.membershipInvitation.teamId!,\n variables.membershipInvitation.inviteeId,\n ),\n }),\n ])\n if (options?.onSuccess) {\n await options.onSuccess(data, variables, ctx)\n }\n },\n })\n}\n\nexport type TeamMembershipParam = {\n teamId: string\n userId: string\n}\n\nexport function useDeleteTeamMembership(\n options?: Partial<\n UseMutationOptions<void, SynapseClientError, TeamMembershipParam>\n >,\n) {\n const queryClient = useQueryClient()\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useMutation<void, SynapseClientError, TeamMembershipParam>({\n ...options,\n mutationFn: variables =>\n deleteMemberFromTeam(variables.teamId, variables.userId, accessToken),\n onSuccess: async (data, variables, ctx) => {\n await Promise.all([\n queryClient.invalidateQueries({\n queryKey: keyFactory.getIsUserMemberOfTeamQueryKey(\n variables.teamId,\n variables.userId,\n ),\n }),\n queryClient.invalidateQueries({\n queryKey: keyFactory.getMembershipStatusQueryKey(\n variables.teamId,\n variables.userId,\n ),\n }),\n ])\n if (options?.onSuccess) {\n await options.onSuccess(data, variables, ctx)\n }\n },\n })\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGetUserChallenges.js","names":[],"sources":["../../../src/synapse-queries/user/useGetUserChallenges.ts"],"sourcesContent":["import SynapseClient from '@/synapse-client'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { SynapseClientError } from '@sage-bionetworks/synapse-client/util/SynapseClientError'\nimport {\n Challenge,\n ChallengeWithProjectHeaderPagedResults,\n PaginatedResults,\n} from '@sage-bionetworks/synapse-types'\nimport {\n InfiniteData,\n QueryKey,\n useInfiniteQuery,\n UseInfiniteQueryOptions,\n useQuery,\n UseQueryOptions,\n} from '@tanstack/react-query'\n\nexport function useGetUserChallenges(\n userId: string,\n limit?: number,\n options?: Partial<\n UseQueryOptions<PaginatedResults<Challenge>, SynapseClientError>\n >,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useQuery({\n ...options,\n queryKey: keyFactory.getUserChallengesQueryKey(userId),\n queryFn: () =>\n SynapseClient.getUserChallenges(accessToken, userId, 0, limit ?? 10),\n })\n}\n\nexport function useGetUserChallengesInfinite<\n TData = InfiniteData<ChallengeWithProjectHeaderPagedResults>,\n>(\n userId: string,\n options?: Partial<\n UseInfiniteQueryOptions<\n ChallengeWithProjectHeaderPagedResults,\n SynapseClientError,\n TData,\n QueryKey,\n number | undefined\n >\n >,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n return useInfiniteQuery<\n ChallengeWithProjectHeaderPagedResults,\n SynapseClientError,\n TData,\n QueryKey,\n number | undefined\n >({\n ...options,\n initialPageParam: undefined,\n queryKey: keyFactory.getUserChallengesQueryKey(userId),\n queryFn: async context => {\n const challenges = await SynapseClient.getUserChallenges(\n accessToken,\n userId,\n context.pageParam, // pass the context.pageParam for the new offset\n 10, // limit\n )\n // also look up the challenge project names (if there are challenges)\n if (challenges.results.length > 0) {\n const challengeProjectIds = Array.from(\n challenges.results,\n challenge => challenge.projectId,\n )\n const challengeProjects = await SynapseClient.getEntityHeadersByIds(\n challengeProjectIds,\n )\n const challengeWithProjectHeaderPagedResults: ChallengeWithProjectHeaderPagedResults =\n {\n results: Array.from(challenges.results, (challenge, index) => {\n return {\n challenge,\n projectHeader: challengeProjects.results[index],\n }\n }),\n totalNumberOfResults: challenges.totalNumberOfResults,\n }\n return challengeWithProjectHeaderPagedResults\n }\n return {\n results: [],\n totalNumberOfResults: challenges.totalNumberOfResults,\n }\n },\n getNextPageParam: (lastPage, pages) => {\n if (lastPage.results.length > 0)\n return pages.length * 10 //set the new offset to (page * limit)\n else return undefined\n },\n })\n}\n"],"mappings":";;;;AAiBA,SAAgB,EACd,GACA,GACA,GAGA;CACA,IAAM,EAAE,gBAAa,kBAAe,GAAmB;AAEvD,QAAO,EAAS;EACd,GAAG;EACH,UAAU,EAAW,0BAA0B,EAAO;EACtD,eACE,EAAc,kBAAkB,GAAa,GAAQ,GAAG,KAAS,GAAG;EACvE,CAAC;;AAGJ,SAAgB,EAGd,GACA,GASA;CACA,IAAM,EAAE,gBAAa,kBAAe,GAAmB;AACvD,QAAO,EAML;EACA,GAAG;EACH,kBAAkB,KAAA;EAClB,UAAU,EAAW,0BAA0B,EAAO;EACtD,SAAS,OAAM,MAAW;GACxB,IAAM,IAAa,MAAM,EAAc,kBACrC,GACA,GACA,EAAQ,WACR,GACD;AAED,OAAI,EAAW,QAAQ,SAAS,GAAG;IACjC,IAAM,IAAsB,MAAM,KAChC,EAAW,UACX,MAAa,EAAU,UACxB,EACK,IAAoB,MAAM,EAAc,sBAC5C,EACD;AAWD,
|
|
1
|
+
{"version":3,"file":"useGetUserChallenges.js","names":[],"sources":["../../../src/synapse-queries/user/useGetUserChallenges.ts"],"sourcesContent":["import SynapseClient from '@/synapse-client'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { SynapseClientError } from '@sage-bionetworks/synapse-client/util/SynapseClientError'\nimport {\n Challenge,\n ChallengeWithProjectHeaderPagedResults,\n PaginatedResults,\n} from '@sage-bionetworks/synapse-types'\nimport {\n InfiniteData,\n QueryKey,\n useInfiniteQuery,\n UseInfiniteQueryOptions,\n useQuery,\n UseQueryOptions,\n} from '@tanstack/react-query'\n\nexport function useGetUserChallenges(\n userId: string,\n limit?: number,\n options?: Partial<\n UseQueryOptions<PaginatedResults<Challenge>, SynapseClientError>\n >,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useQuery({\n ...options,\n queryKey: keyFactory.getUserChallengesQueryKey(userId),\n queryFn: () =>\n SynapseClient.getUserChallenges(accessToken, userId, 0, limit ?? 10),\n })\n}\n\nexport function useGetUserChallengesInfinite<\n TData = InfiniteData<ChallengeWithProjectHeaderPagedResults>,\n>(\n userId: string,\n options?: Partial<\n UseInfiniteQueryOptions<\n ChallengeWithProjectHeaderPagedResults,\n SynapseClientError,\n TData,\n QueryKey,\n number | undefined\n >\n >,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n return useInfiniteQuery<\n ChallengeWithProjectHeaderPagedResults,\n SynapseClientError,\n TData,\n QueryKey,\n number | undefined\n >({\n ...options,\n initialPageParam: undefined,\n queryKey: keyFactory.getUserChallengesQueryKey(userId),\n queryFn: async context => {\n const challenges = await SynapseClient.getUserChallenges(\n accessToken,\n userId,\n context.pageParam, // pass the context.pageParam for the new offset\n 10, // limit\n )\n // also look up the challenge project names (if there are challenges)\n if (challenges.results.length > 0) {\n const challengeProjectIds = Array.from(\n challenges.results,\n challenge => challenge.projectId,\n )\n const challengeProjects = await SynapseClient.getEntityHeadersByIds(\n challengeProjectIds,\n )\n const challengeWithProjectHeaderPagedResults: ChallengeWithProjectHeaderPagedResults =\n {\n results: Array.from(challenges.results, (challenge, index) => {\n return {\n challenge,\n projectHeader: challengeProjects.results[index],\n }\n }),\n totalNumberOfResults: challenges.totalNumberOfResults,\n }\n return challengeWithProjectHeaderPagedResults\n }\n return {\n results: [],\n totalNumberOfResults: challenges.totalNumberOfResults,\n }\n },\n getNextPageParam: (lastPage, pages) => {\n if (lastPage.results.length > 0)\n return pages.length * 10 //set the new offset to (page * limit)\n else return undefined\n },\n })\n}\n"],"mappings":";;;;AAiBA,SAAgB,EACd,GACA,GACA,GAGA;CACA,IAAM,EAAE,gBAAa,kBAAe,GAAmB;AAEvD,QAAO,EAAS;EACd,GAAG;EACH,UAAU,EAAW,0BAA0B,EAAO;EACtD,eACE,EAAc,kBAAkB,GAAa,GAAQ,GAAG,KAAS,GAAG;EACvE,CAAC;;AAGJ,SAAgB,EAGd,GACA,GASA;CACA,IAAM,EAAE,gBAAa,kBAAe,GAAmB;AACvD,QAAO,EAML;EACA,GAAG;EACH,kBAAkB,KAAA;EAClB,UAAU,EAAW,0BAA0B,EAAO;EACtD,SAAS,OAAM,MAAW;GACxB,IAAM,IAAa,MAAM,EAAc,kBACrC,GACA,GACA,EAAQ,WACR,GACD;AAED,OAAI,EAAW,QAAQ,SAAS,GAAG;IACjC,IAAM,IAAsB,MAAM,KAChC,EAAW,UACX,MAAa,EAAU,UACxB,EACK,IAAoB,MAAM,EAAc,sBAC5C,EACD;AAWD,WAAO;KARH,SAAS,MAAM,KAAK,EAAW,UAAU,GAAW,OAC3C;MACL;MACA,eAAe,EAAkB,QAAQ;MAC1C,EACD;KACF,sBAAsB,EAAW;KAE9B;;AAET,UAAO;IACL,SAAS,EAAE;IACX,sBAAsB,EAAW;IAClC;;EAEH,mBAAmB,GAAU,MAAU;AACrC,OAAI,EAAS,QAAQ,SAAS,EAC5B,QAAO,EAAM,SAAS;;EAG3B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useUserBundle.js","names":[],"sources":["../../../src/synapse-queries/user/useUserBundle.ts"],"sourcesContent":["import SynapseClient from '@/synapse-client'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport {\n USER_BUNDLE_MASK_IS_ACT_MEMBER,\n USER_BUNDLE_MASK_IS_AR_REVIEWER,\n USER_BUNDLE_MASK_IS_CERTIFIED,\n USER_BUNDLE_MASK_IS_VERIFIED,\n USER_BUNDLE_MASK_ORCID,\n USER_BUNDLE_MASK_USER_PROFILE,\n USER_BUNDLE_MASK_VERIFICATION_SUBMISSION,\n} from '@/utils/SynapseConstants'\nimport { SynapseClientError } from '@sage-bionetworks/synapse-client/util/SynapseClientError'\nimport {\n NotificationEmail,\n PrincipalAliasRequest,\n PrincipalAliasResponse,\n UserBundle,\n UserProfile,\n} from '@sage-bionetworks/synapse-types'\nimport {\n queryOptions,\n useQuery,\n UseQueryOptions,\n useSuspenseQuery,\n} from '@tanstack/react-query'\nimport type { SynapseQueriesContext } from '../types'\n\nexport function useGetNotificationEmail(\n options?: Partial<UseQueryOptions<NotificationEmail, SynapseClientError>>,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n return useQuery({\n ...options,\n queryKey: keyFactory.getNotificationEmailQueryKey(),\n queryFn: () => SynapseClient.getNotificationEmail(accessToken),\n })\n}\n\nfunction useGetCurrentUserProfileQueryOptions() {\n const { accessToken, keyFactory } = useSynapseContext()\n const queryKey = keyFactory.getCurrentUserProfileQueryKey()\n return {\n queryKey: queryKey,\n queryFn: () => SynapseClient.getUserProfile(accessToken),\n }\n}\n\nexport function useGetCurrentUserProfile(\n options?: Partial<UseQueryOptions<UserProfile, SynapseClientError>>,\n) {\n const queryOptions = useGetCurrentUserProfileQueryOptions()\n return useQuery({\n ...options,\n ...queryOptions,\n })\n}\n\nexport function useSuspenseGetCurrentUserProfile(\n options?: Partial<UseQueryOptions<UserProfile, SynapseClientError>>,\n) {\n const queryOptions = useGetCurrentUserProfileQueryOptions()\n\n return useSuspenseQuery({\n ...options,\n ...queryOptions,\n })\n}\n\nconst ALL_USER_BUNDLE_FIELDS =\n USER_BUNDLE_MASK_USER_PROFILE |\n USER_BUNDLE_MASK_ORCID |\n USER_BUNDLE_MASK_VERIFICATION_SUBMISSION |\n USER_BUNDLE_MASK_IS_CERTIFIED |\n USER_BUNDLE_MASK_IS_VERIFIED |\n USER_BUNDLE_MASK_IS_ACT_MEMBER |\n USER_BUNDLE_MASK_IS_AR_REVIEWER\n\nexport function useGetUserBundle(\n userId: string,\n mask: number = ALL_USER_BUNDLE_FIELDS,\n options?: Partial<UseQueryOptions<UserBundle, SynapseClientError>>,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n const queryKey = keyFactory.getUserBundleQueryKey(userId, mask)\n\n return useQuery({\n ...options,\n queryKey: queryKey,\n queryFn: () => SynapseClient.getUserBundle(userId, mask, accessToken),\n })\n}\n\nexport function useGetCurrentUserBundle<TData = UserBundle>(\n mask: number = ALL_USER_BUNDLE_FIELDS,\n options?: Partial<UseQueryOptions<UserBundle, SynapseClientError, TData>>,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n\n const queryKey = keyFactory.getUserBundleQueryKey('current', mask)\n\n return useQuery({\n ...options,\n queryKey: queryKey,\n queryFn: () => SynapseClient.getMyUserBundle(mask, accessToken),\n })\n}\n\nexport function getUserProfileQuery(\n principalId: string,\n context: Pick<SynapseQueriesContext, 'accessToken' | 'keyFactory'>,\n) {\n const { accessToken, keyFactory } = context\n return queryOptions<UserProfile, SynapseClientError>({\n queryKey: keyFactory.getUserProfileQueryKey(principalId),\n queryFn: () => SynapseClient.getUserProfileById(principalId, accessToken),\n })\n}\n\nexport function useGetUserProfile(\n principalId: string,\n options?: Partial<UseQueryOptions<UserProfile, SynapseClientError>>,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n // We store the profile in a session storage cache used by SWC\n const sessionStorageCacheKey = `${principalId}_USER_PROFILE`\n const cachedValue = sessionStorage.getItem(sessionStorageCacheKey)\n\n return useQuery({\n ...options,\n ...getUserProfileQuery(principalId, { accessToken, keyFactory }),\n queryFn: async () => {\n const userProfile = await SynapseClient.getUserProfileById(\n principalId,\n accessToken,\n )\n // If the profile is re-fetched, save it to sessionStorage\n sessionStorage.setItem(\n sessionStorageCacheKey,\n JSON.stringify(userProfile),\n )\n return userProfile\n },\n // Use the sessionStorage cache to pre-populate profile data.\n placeholderData: cachedValue\n ? (JSON.parse(cachedValue) as UserProfile)\n : options?.placeholderData,\n })\n}\n\nexport function useGetPrincipalIdForAlias(\n request: PrincipalAliasRequest,\n options?: Partial<\n UseQueryOptions<PrincipalAliasResponse['principalId'], SynapseClientError>\n >,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n\n const queryKey = keyFactory.getPrincipalAliasQueryKey(request)\n\n return useQuery({\n ...options,\n queryKey: queryKey,\n queryFn: async () => {\n return (\n await SynapseClient.getPrincipalAliasRequest(accessToken, request)\n ).principalId\n },\n })\n}\n\nexport function useIsCurrentUserACTMember() {\n return useGetCurrentUserBundle<boolean>(undefined, {\n select: data => data.isACTMember!,\n })\n}\n"],"mappings":";;;;;AA2BA,SAAgB,EACd,GACA;CACA,IAAM,EAAE,gBAAa,kBAAe,GAAmB;AACvD,QAAO,EAAS;EACd,GAAG;EACH,UAAU,EAAW,8BAA8B;EACnD,eAAe,EAAc,qBAAqB,EAAY;EAC/D,CAAC;;AAGJ,SAAS,IAAuC;CAC9C,IAAM,EAAE,gBAAa,kBAAe,GAAmB;AAEvD,QAAO;EACK,UAFK,EAAW,+
|
|
1
|
+
{"version":3,"file":"useUserBundle.js","names":[],"sources":["../../../src/synapse-queries/user/useUserBundle.ts"],"sourcesContent":["import SynapseClient from '@/synapse-client'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport {\n USER_BUNDLE_MASK_IS_ACT_MEMBER,\n USER_BUNDLE_MASK_IS_AR_REVIEWER,\n USER_BUNDLE_MASK_IS_CERTIFIED,\n USER_BUNDLE_MASK_IS_VERIFIED,\n USER_BUNDLE_MASK_ORCID,\n USER_BUNDLE_MASK_USER_PROFILE,\n USER_BUNDLE_MASK_VERIFICATION_SUBMISSION,\n} from '@/utils/SynapseConstants'\nimport { SynapseClientError } from '@sage-bionetworks/synapse-client/util/SynapseClientError'\nimport {\n NotificationEmail,\n PrincipalAliasRequest,\n PrincipalAliasResponse,\n UserBundle,\n UserProfile,\n} from '@sage-bionetworks/synapse-types'\nimport {\n queryOptions,\n useQuery,\n UseQueryOptions,\n useSuspenseQuery,\n} from '@tanstack/react-query'\nimport type { SynapseQueriesContext } from '../types'\n\nexport function useGetNotificationEmail(\n options?: Partial<UseQueryOptions<NotificationEmail, SynapseClientError>>,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n return useQuery({\n ...options,\n queryKey: keyFactory.getNotificationEmailQueryKey(),\n queryFn: () => SynapseClient.getNotificationEmail(accessToken),\n })\n}\n\nfunction useGetCurrentUserProfileQueryOptions() {\n const { accessToken, keyFactory } = useSynapseContext()\n const queryKey = keyFactory.getCurrentUserProfileQueryKey()\n return {\n queryKey: queryKey,\n queryFn: () => SynapseClient.getUserProfile(accessToken),\n }\n}\n\nexport function useGetCurrentUserProfile(\n options?: Partial<UseQueryOptions<UserProfile, SynapseClientError>>,\n) {\n const queryOptions = useGetCurrentUserProfileQueryOptions()\n return useQuery({\n ...options,\n ...queryOptions,\n })\n}\n\nexport function useSuspenseGetCurrentUserProfile(\n options?: Partial<UseQueryOptions<UserProfile, SynapseClientError>>,\n) {\n const queryOptions = useGetCurrentUserProfileQueryOptions()\n\n return useSuspenseQuery({\n ...options,\n ...queryOptions,\n })\n}\n\nconst ALL_USER_BUNDLE_FIELDS =\n USER_BUNDLE_MASK_USER_PROFILE |\n USER_BUNDLE_MASK_ORCID |\n USER_BUNDLE_MASK_VERIFICATION_SUBMISSION |\n USER_BUNDLE_MASK_IS_CERTIFIED |\n USER_BUNDLE_MASK_IS_VERIFIED |\n USER_BUNDLE_MASK_IS_ACT_MEMBER |\n USER_BUNDLE_MASK_IS_AR_REVIEWER\n\nexport function useGetUserBundle(\n userId: string,\n mask: number = ALL_USER_BUNDLE_FIELDS,\n options?: Partial<UseQueryOptions<UserBundle, SynapseClientError>>,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n const queryKey = keyFactory.getUserBundleQueryKey(userId, mask)\n\n return useQuery({\n ...options,\n queryKey: queryKey,\n queryFn: () => SynapseClient.getUserBundle(userId, mask, accessToken),\n })\n}\n\nexport function useGetCurrentUserBundle<TData = UserBundle>(\n mask: number = ALL_USER_BUNDLE_FIELDS,\n options?: Partial<UseQueryOptions<UserBundle, SynapseClientError, TData>>,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n\n const queryKey = keyFactory.getUserBundleQueryKey('current', mask)\n\n return useQuery({\n ...options,\n queryKey: queryKey,\n queryFn: () => SynapseClient.getMyUserBundle(mask, accessToken),\n })\n}\n\nexport function getUserProfileQuery(\n principalId: string,\n context: Pick<SynapseQueriesContext, 'accessToken' | 'keyFactory'>,\n) {\n const { accessToken, keyFactory } = context\n return queryOptions<UserProfile, SynapseClientError>({\n queryKey: keyFactory.getUserProfileQueryKey(principalId),\n queryFn: () => SynapseClient.getUserProfileById(principalId, accessToken),\n })\n}\n\nexport function useGetUserProfile(\n principalId: string,\n options?: Partial<UseQueryOptions<UserProfile, SynapseClientError>>,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n // We store the profile in a session storage cache used by SWC\n const sessionStorageCacheKey = `${principalId}_USER_PROFILE`\n const cachedValue = sessionStorage.getItem(sessionStorageCacheKey)\n\n return useQuery({\n ...options,\n ...getUserProfileQuery(principalId, { accessToken, keyFactory }),\n queryFn: async () => {\n const userProfile = await SynapseClient.getUserProfileById(\n principalId,\n accessToken,\n )\n // If the profile is re-fetched, save it to sessionStorage\n sessionStorage.setItem(\n sessionStorageCacheKey,\n JSON.stringify(userProfile),\n )\n return userProfile\n },\n // Use the sessionStorage cache to pre-populate profile data.\n placeholderData: cachedValue\n ? (JSON.parse(cachedValue) as UserProfile)\n : options?.placeholderData,\n })\n}\n\nexport function useGetPrincipalIdForAlias(\n request: PrincipalAliasRequest,\n options?: Partial<\n UseQueryOptions<PrincipalAliasResponse['principalId'], SynapseClientError>\n >,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n\n const queryKey = keyFactory.getPrincipalAliasQueryKey(request)\n\n return useQuery({\n ...options,\n queryKey: queryKey,\n queryFn: async () => {\n return (\n await SynapseClient.getPrincipalAliasRequest(accessToken, request)\n ).principalId\n },\n })\n}\n\nexport function useIsCurrentUserACTMember() {\n return useGetCurrentUserBundle<boolean>(undefined, {\n select: data => data.isACTMember!,\n })\n}\n"],"mappings":";;;;;AA2BA,SAAgB,EACd,GACA;CACA,IAAM,EAAE,gBAAa,kBAAe,GAAmB;AACvD,QAAO,EAAS;EACd,GAAG;EACH,UAAU,EAAW,8BAA8B;EACnD,eAAe,EAAc,qBAAqB,EAAY;EAC/D,CAAC;;AAGJ,SAAS,IAAuC;CAC9C,IAAM,EAAE,gBAAa,kBAAe,GAAmB;AAEvD,QAAO;EACK,UAFK,EAAW,+BAEhB;EACV,eAAe,EAAc,eAAe,EAAY;EACzD;;AAGH,SAAgB,EACd,GACA;CACA,IAAM,IAAe,GAAsC;AAC3D,QAAO,EAAS;EACd,GAAG;EACH,GAAG;EACJ,CAAC;;AAGJ,SAAgB,EACd,GACA;CACA,IAAM,IAAe,GAAsC;AAE3D,QAAO,EAAiB;EACtB,GAAG;EACH,GAAG;EACJ,CAAC;;AAGJ,IAAM,IAAA;AASN,SAAgB,EACd,GACA,IAAe,GACf,GACA;CACA,IAAM,EAAE,gBAAa,kBAAe,GAAmB,EACjD,IAAW,EAAW,sBAAsB,GAAQ,EAAK;AAE/D,QAAO,EAAS;EACd,GAAG;EACO;EACV,eAAe,EAAc,cAAc,GAAQ,GAAM,EAAY;EACtE,CAAC;;AAGJ,SAAgB,EACd,IAAe,GACf,GACA;CACA,IAAM,EAAE,gBAAa,kBAAe,GAAmB,EAEjD,IAAW,EAAW,sBAAsB,WAAW,EAAK;AAElE,QAAO,EAAS;EACd,GAAG;EACO;EACV,eAAe,EAAc,gBAAgB,GAAM,EAAY;EAChE,CAAC;;AAGJ,SAAgB,EACd,GACA,GACA;CACA,IAAM,EAAE,gBAAa,kBAAe;AACpC,QAAO,EAA8C;EACnD,UAAU,EAAW,uBAAuB,EAAY;EACxD,eAAe,EAAc,mBAAmB,GAAa,EAAY;EAC1E,CAAC;;AAGJ,SAAgB,EACd,GACA,GACA;CACA,IAAM,EAAE,gBAAa,kBAAe,GAAmB,EAEjD,IAAyB,GAAG,EAAY,gBACxC,IAAc,eAAe,QAAQ,EAAuB;AAElE,QAAO,EAAS;EACd,GAAG;EACH,GAAG,EAAoB,GAAa;GAAE;GAAa;GAAY,CAAC;EAChE,SAAS,YAAY;GACnB,IAAM,IAAc,MAAM,EAAc,mBACtC,GACA,EACD;AAMD,UAJA,eAAe,QACb,GACA,KAAK,UAAU,EAAY,CAC5B,EACM;;EAGT,iBAAiB,IACZ,KAAK,MAAM,EAAY,GACxB,GAAS;EACd,CAAC;;AAGJ,SAAgB,EACd,GACA,GAGA;CACA,IAAM,EAAE,gBAAa,kBAAe,GAAmB,EAEjD,IAAW,EAAW,0BAA0B,EAAQ;AAE9D,QAAO,EAAS;EACd,GAAG;EACO;EACV,SAAS,aAEL,MAAM,EAAc,yBAAyB,GAAa,EAAQ,EAClE;EAEL,CAAC;;AAGJ,SAAgB,IAA4B;AAC1C,QAAO,EAAiC,KAAA,GAAW,EACjD,SAAQ,MAAQ,EAAK,aACtB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useUserGroupHeader.js","names":[],"sources":["../../../src/synapse-queries/user/useUserGroupHeader.ts"],"sourcesContent":["import SynapseClient from '@/synapse-client'\nimport { SynapseClientError } from '@sage-bionetworks/synapse-client'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { TYPE_FILTER, UserGroupHeader } from '@sage-bionetworks/synapse-types'\nimport {\n useQuery,\n useQueryClient,\n UseQueryOptions,\n} from '@tanstack/react-query'\nimport { SynapseQueriesContext } from '../types'\n\nexport function getUserGroupHeaderQuery(\n principalId: string,\n context: SynapseQueriesContext,\n) {\n const { accessToken, keyFactory } = context\n return {\n queryKey: keyFactory.getUserGroupHeaderQueryKey(principalId),\n queryFn: async () => {\n const responsePage = await SynapseClient.getGroupHeadersBatch(\n [principalId],\n accessToken,\n )\n if (responsePage.children.length !== 1) {\n throw new Error(\n `Expected one response in getUserGroupHeaderQuery for id: ${principalId}, got ${responsePage.children.length}`,\n )\n }\n return responsePage.children[0]\n },\n }\n}\n\n/**\n * Get a single UserGroupHeader, utilizing a react-query cache. This is always an unauthenticated call\n * (the user's current email address will never be returned in the result).\n * @param principalId\n * @param options\n * @returns\n */\nexport function useGetUserGroupHeader(\n principalId: string,\n options?: Partial<UseQueryOptions<UserGroupHeader, SynapseClientError>>,\n) {\n const synapseContext = useSynapseContext()\n const queryClient = useQueryClient()\n\n return useQuery({\n ...options,\n ...getUserGroupHeaderQuery(principalId, { ...synapseContext, queryClient }),\n })\n}\n\n/**\n * Get an array of UserGroupHeaders, utilizing a react-query cache. This is always an unauthenticated call\n * (the users current email addresses will never be returned in the result).\n * @param principalIds\n * @param options\n * @returns\n */\nexport function useGetUserGroupHeaders(\n principalIds: string[],\n options?: Partial<UseQueryOptions<UserGroupHeader[], SynapseClientError>>,\n) {\n const { keyFactory, accessToken } = useSynapseContext()\n const queryClient = useQueryClient()\n const queryKey = keyFactory.getUserGroupHeaderBatchQueryKey(principalIds)\n const queryFn = async () => {\n const response = await SynapseClient.getGroupHeadersBatch(\n principalIds,\n accessToken,\n )\n\n // Update the cache with each individual header\n response.children.forEach(userGroupHeader => {\n queryClient.setQueryData(\n keyFactory.getUserGroupHeaderQueryKey(userGroupHeader.ownerId),\n userGroupHeader,\n )\n })\n\n return response.children\n }\n\n return useQuery<UserGroupHeader[], SynapseClientError>({\n ...options,\n queryKey,\n queryFn,\n })\n}\n\nexport function useSearchUserGroupHeaders(\n prefix: string,\n filter?: TYPE_FILTER,\n options?: Partial<UseQueryOptions<UserGroupHeader[], SynapseClientError>>,\n) {\n const { keyFactory, accessToken } = useSynapseContext()\n const queryKey = keyFactory.getUserGroupHeaderSearchQueryKey(prefix, filter)\n\n return useQuery({\n ...options,\n queryKey: queryKey,\n queryFn: async () => {\n const responsePage = await SynapseClient.getUserGroupHeaders(\n prefix,\n filter,\n undefined,\n undefined,\n accessToken,\n )\n return responsePage.children\n },\n })\n}\n\nexport function useGetUserGroupHeaderWithAlias(\n aliases: string[],\n options?: Partial<UseQueryOptions<UserGroupHeader[], SynapseClientError>>,\n) {\n const { keyFactory, accessToken } = useSynapseContext()\n\n const queryKey = keyFactory.getUserGroupHeaderWithAliasQueryKey(aliases)\n\n return useQuery({\n ...options,\n queryKey: queryKey,\n queryFn: async () => {\n const response = await SynapseClient.postUserGroupHeadersWithAlias(\n aliases,\n accessToken,\n )\n return response.list\n },\n })\n}\n"],"mappings":";;;;AAWA,SAAgB,EACd,GACA,GACA;CACA,IAAM,EAAE,gBAAa,kBAAe;AACpC,QAAO;EACL,UAAU,EAAW,2BAA2B,EAAY;EAC5D,SAAS,YAAY;GACnB,IAAM,IAAe,MAAM,EAAc,qBACvC,CAAC,EAAY,EACb,EACD;AACD,OAAI,EAAa,SAAS,WAAW,EACnC,OAAU,MACR,4DAA4D,EAAY,QAAQ,EAAa,SAAS,SACvG;AAEH,UAAO,EAAa,SAAS;;EAEhC;;AAUH,SAAgB,EACd,GACA,GACA;CACA,IAAM,IAAiB,GAAmB,EACpC,IAAc,GAAgB;AAEpC,QAAO,EAAS;EACd,GAAG;EACH,GAAG,EAAwB,GAAa;GAAE,GAAG;GAAgB;GAAa,CAAC;EAC5E,CAAC;;AAUJ,SAAgB,EACd,GACA,GACA;CACA,IAAM,EAAE,eAAY,mBAAgB,GAAmB,EACjD,IAAc,GAAgB,EAC9B,IAAW,EAAW,gCAAgC,EAAa,EACnE,IAAU,YAAY;EAC1B,IAAM,IAAW,MAAM,EAAc,qBACnC,GACA,EACD;AAUD,SAPA,EAAS,SAAS,SAAQ,MAAmB;AAC3C,KAAY,aACV,EAAW,2BAA2B,EAAgB,QAAQ,EAC9D,EACD;IACD,EAEK,EAAS;;AAGlB,QAAO,EAAgD;EACrD,GAAG;EACH;EACA;EACD,CAAC;;AAGJ,SAAgB,EACd,GACA,GACA,GACA;CACA,IAAM,EAAE,eAAY,mBAAgB,GAAmB,EACjD,IAAW,EAAW,iCAAiC,GAAQ,EAAO;AAE5E,QAAO,EAAS;EACd,GAAG;EACO;EACV,SAAS,
|
|
1
|
+
{"version":3,"file":"useUserGroupHeader.js","names":[],"sources":["../../../src/synapse-queries/user/useUserGroupHeader.ts"],"sourcesContent":["import SynapseClient from '@/synapse-client'\nimport { SynapseClientError } from '@sage-bionetworks/synapse-client'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { TYPE_FILTER, UserGroupHeader } from '@sage-bionetworks/synapse-types'\nimport {\n useQuery,\n useQueryClient,\n UseQueryOptions,\n} from '@tanstack/react-query'\nimport { SynapseQueriesContext } from '../types'\n\nexport function getUserGroupHeaderQuery(\n principalId: string,\n context: SynapseQueriesContext,\n) {\n const { accessToken, keyFactory } = context\n return {\n queryKey: keyFactory.getUserGroupHeaderQueryKey(principalId),\n queryFn: async () => {\n const responsePage = await SynapseClient.getGroupHeadersBatch(\n [principalId],\n accessToken,\n )\n if (responsePage.children.length !== 1) {\n throw new Error(\n `Expected one response in getUserGroupHeaderQuery for id: ${principalId}, got ${responsePage.children.length}`,\n )\n }\n return responsePage.children[0]\n },\n }\n}\n\n/**\n * Get a single UserGroupHeader, utilizing a react-query cache. This is always an unauthenticated call\n * (the user's current email address will never be returned in the result).\n * @param principalId\n * @param options\n * @returns\n */\nexport function useGetUserGroupHeader(\n principalId: string,\n options?: Partial<UseQueryOptions<UserGroupHeader, SynapseClientError>>,\n) {\n const synapseContext = useSynapseContext()\n const queryClient = useQueryClient()\n\n return useQuery({\n ...options,\n ...getUserGroupHeaderQuery(principalId, { ...synapseContext, queryClient }),\n })\n}\n\n/**\n * Get an array of UserGroupHeaders, utilizing a react-query cache. This is always an unauthenticated call\n * (the users current email addresses will never be returned in the result).\n * @param principalIds\n * @param options\n * @returns\n */\nexport function useGetUserGroupHeaders(\n principalIds: string[],\n options?: Partial<UseQueryOptions<UserGroupHeader[], SynapseClientError>>,\n) {\n const { keyFactory, accessToken } = useSynapseContext()\n const queryClient = useQueryClient()\n const queryKey = keyFactory.getUserGroupHeaderBatchQueryKey(principalIds)\n const queryFn = async () => {\n const response = await SynapseClient.getGroupHeadersBatch(\n principalIds,\n accessToken,\n )\n\n // Update the cache with each individual header\n response.children.forEach(userGroupHeader => {\n queryClient.setQueryData(\n keyFactory.getUserGroupHeaderQueryKey(userGroupHeader.ownerId),\n userGroupHeader,\n )\n })\n\n return response.children\n }\n\n return useQuery<UserGroupHeader[], SynapseClientError>({\n ...options,\n queryKey,\n queryFn,\n })\n}\n\nexport function useSearchUserGroupHeaders(\n prefix: string,\n filter?: TYPE_FILTER,\n options?: Partial<UseQueryOptions<UserGroupHeader[], SynapseClientError>>,\n) {\n const { keyFactory, accessToken } = useSynapseContext()\n const queryKey = keyFactory.getUserGroupHeaderSearchQueryKey(prefix, filter)\n\n return useQuery({\n ...options,\n queryKey: queryKey,\n queryFn: async () => {\n const responsePage = await SynapseClient.getUserGroupHeaders(\n prefix,\n filter,\n undefined,\n undefined,\n accessToken,\n )\n return responsePage.children\n },\n })\n}\n\nexport function useGetUserGroupHeaderWithAlias(\n aliases: string[],\n options?: Partial<UseQueryOptions<UserGroupHeader[], SynapseClientError>>,\n) {\n const { keyFactory, accessToken } = useSynapseContext()\n\n const queryKey = keyFactory.getUserGroupHeaderWithAliasQueryKey(aliases)\n\n return useQuery({\n ...options,\n queryKey: queryKey,\n queryFn: async () => {\n const response = await SynapseClient.postUserGroupHeadersWithAlias(\n aliases,\n accessToken,\n )\n return response.list\n },\n })\n}\n"],"mappings":";;;;AAWA,SAAgB,EACd,GACA,GACA;CACA,IAAM,EAAE,gBAAa,kBAAe;AACpC,QAAO;EACL,UAAU,EAAW,2BAA2B,EAAY;EAC5D,SAAS,YAAY;GACnB,IAAM,IAAe,MAAM,EAAc,qBACvC,CAAC,EAAY,EACb,EACD;AACD,OAAI,EAAa,SAAS,WAAW,EACnC,OAAU,MACR,4DAA4D,EAAY,QAAQ,EAAa,SAAS,SACvG;AAEH,UAAO,EAAa,SAAS;;EAEhC;;AAUH,SAAgB,EACd,GACA,GACA;CACA,IAAM,IAAiB,GAAmB,EACpC,IAAc,GAAgB;AAEpC,QAAO,EAAS;EACd,GAAG;EACH,GAAG,EAAwB,GAAa;GAAE,GAAG;GAAgB;GAAa,CAAC;EAC5E,CAAC;;AAUJ,SAAgB,EACd,GACA,GACA;CACA,IAAM,EAAE,eAAY,mBAAgB,GAAmB,EACjD,IAAc,GAAgB,EAC9B,IAAW,EAAW,gCAAgC,EAAa,EACnE,IAAU,YAAY;EAC1B,IAAM,IAAW,MAAM,EAAc,qBACnC,GACA,EACD;AAUD,SAPA,EAAS,SAAS,SAAQ,MAAmB;AAC3C,KAAY,aACV,EAAW,2BAA2B,EAAgB,QAAQ,EAC9D,EACD;IACD,EAEK,EAAS;;AAGlB,QAAO,EAAgD;EACrD,GAAG;EACH;EACA;EACD,CAAC;;AAGJ,SAAgB,EACd,GACA,GACA,GACA;CACA,IAAM,EAAE,eAAY,mBAAgB,GAAmB,EACjD,IAAW,EAAW,iCAAiC,GAAQ,EAAO;AAE5E,QAAO,EAAS;EACd,GAAG;EACO;EACV,SAAS,aAQA,MAPoB,EAAc,oBACvC,GACA,GACA,KAAA,GACA,KAAA,GACA,EACD,EACmB;EAEvB,CAAC;;AAGJ,SAAgB,EACd,GACA,GACA;CACA,IAAM,EAAE,eAAY,mBAAgB,GAAmB,EAEjD,IAAW,EAAW,oCAAoC,EAAQ;AAExE,QAAO,EAAS;EACd,GAAG;EACO;EACV,SAAS,aAKA,MAJgB,EAAc,8BACnC,GACA,EACD,EACe;EAEnB,CAAC"}
|