@ynput/ayon-frontend-shared 0.2.39 → 0.2.41
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/DetailsPanel.cjs.js +1 -1
- package/dist/DetailsPanel.es.js +24 -22
- package/dist/DetailsPanel.es.js.map +1 -1
- package/dist/api.cjs.js +1 -1
- package/dist/api.es.js +256 -248
- package/dist/api.es.js.map +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.es.js +11 -9
- package/dist/index.es.js.map +1 -1
- package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js +1 -1
- package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js +16 -16
- package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js.map +1 -1
- package/dist/shared/src/api/queries/config/getConfig.cjs.js +2 -0
- package/dist/shared/src/api/queries/config/getConfig.cjs.js.map +1 -0
- package/dist/shared/src/api/queries/config/getConfig.es.js +111 -0
- package/dist/shared/src/api/queries/config/getConfig.es.js.map +1 -0
- package/dist/shared/src/api/queries/config/updateConfig.cjs.js +2 -0
- package/dist/shared/src/api/queries/config/updateConfig.cjs.js.map +1 -0
- package/dist/shared/src/api/queries/config/updateConfig.es.js +13 -0
- package/dist/shared/src/api/queries/config/updateConfig.es.js.map +1 -0
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js +1 -1
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js +5 -3
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js.map +1 -1
- package/dist/shared/src/api/queries/entities/updateEntity.cjs.js +1 -1
- package/dist/shared/src/api/queries/entities/updateEntity.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/updateEntity.es.js +5 -3
- package/dist/shared/src/api/queries/entities/updateEntity.es.js.map +1 -1
- package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js +1 -1
- package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/links/getEntityLinks.es.js +106 -86
- package/dist/shared/src/api/queries/links/getEntityLinks.es.js.map +1 -1
- package/dist/shared/src/api/queries/overview/updateOverview.cjs.js +1 -1
- package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/overview/updateOverview.es.js +68 -66
- package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
- package/dist/shared/src/api/queries/users/getUsers.cjs.js +2 -2
- package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/users/getUsers.es.js +34 -32
- package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
- package/dist/shared/src/components/AddonLoadingScreen/AddonLoadingScreen.cjs.js +8 -7
- package/dist/shared/src/components/AddonLoadingScreen/AddonLoadingScreen.cjs.js.map +1 -1
- package/dist/shared/src/components/AddonLoadingScreen/AddonLoadingScreen.es.js +24 -20
- package/dist/shared/src/components/AddonLoadingScreen/AddonLoadingScreen.es.js.map +1 -1
- package/dist/shared/src/components/Chips/Chips.cjs.js +10 -6
- package/dist/shared/src/components/Chips/Chips.cjs.js.map +1 -1
- package/dist/shared/src/components/Chips/Chips.es.js +44 -38
- package/dist/shared/src/components/Chips/Chips.es.js.map +1 -1
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js +1 -1
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js +4 -2
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +4 -2
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js +4 -2
- package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js +4 -2
- package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js +4 -2
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js.map +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +4 -2
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
- package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js +1 -1
- package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js.map +1 -1
- package/dist/shared/src/components/Feedback/FeedbackContext.es.js +6 -4
- package/dist/shared/src/components/Feedback/FeedbackContext.es.js.map +1 -1
- package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js +1 -1
- package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js.map +1 -1
- package/dist/shared/src/components/LinksManager/AddNewLinks.es.js +4 -2
- package/dist/shared/src/components/LinksManager/AddNewLinks.es.js.map +1 -1
- package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js +1 -1
- package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js.map +1 -1
- package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js +28 -25
- package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js.map +1 -1
- package/dist/shared/src/components/LinksManager/LinksManager.cjs.js.map +1 -1
- package/dist/shared/src/components/LinksManager/LinksManager.es.js.map +1 -1
- package/dist/shared/src/components/LinksManager/LinksManager.styled.cjs.js +5 -0
- package/dist/shared/src/components/LinksManager/LinksManager.styled.cjs.js.map +1 -1
- package/dist/shared/src/components/LinksManager/LinksManager.styled.es.js +5 -0
- package/dist/shared/src/components/LinksManager/LinksManager.styled.es.js.map +1 -1
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +4 -2
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
- package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js +1 -1
- package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js.map +1 -1
- package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js +4 -2
- package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +4 -2
- package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +6 -4
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +4 -2
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
- package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
- package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
- package/dist/shared/src/components/RenameForm/RenameForm.es.js +4 -2
- package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js +4 -2
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +4 -2
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +5 -3
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +4 -2
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js +4 -2
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js.map +1 -1
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +8 -6
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +4 -2
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +4 -2
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +6 -4
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
- package/dist/shared/src/components/Watchers/Watchers.cjs.js +1 -1
- package/dist/shared/src/components/Watchers/Watchers.cjs.js.map +1 -1
- package/dist/shared/src/components/Watchers/Watchers.es.js +4 -2
- package/dist/shared/src/components/Watchers/Watchers.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +4 -2
- package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/Actions.cjs.js +1 -1
- package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/Actions.es.js +4 -2
- package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +4 -2
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +4 -2
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js +4 -2
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js +5 -3
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js +4 -2
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +4 -2
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.es.js +4 -2
- package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +4 -2
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +4 -2
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +4 -2
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +4 -2
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +4 -2
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js +4 -2
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +4 -2
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +4 -2
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +4 -2
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +4 -2
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/context/FeedContext.es.js +7 -5
- package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js +4 -2
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +6 -4
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +7 -5
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +30 -28
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +15 -13
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.es.js +34 -21
- package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +31 -28
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +4 -2
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +4 -2
- package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js +1 -1
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js +4 -2
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -1
- package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +1 -1
- package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/context/ViewsContext.es.js +6 -4
- package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +4 -2
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js +4 -2
- package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js +4 -2
- package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js +4 -2
- package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js.map +1 -1
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js +1 -1
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js +4 -2
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js.map +1 -1
- package/dist/shared/src/context/AddonProjectContext.cjs.js +1 -1
- package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
- package/dist/shared/src/context/AddonProjectContext.es.js +6 -4
- package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
- package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
- package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
- package/dist/shared/src/context/DetailsPanelContext.es.js +6 -4
- package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
- package/dist/shared/src/context/GlobalContext.cjs.js +1 -1
- package/dist/shared/src/context/GlobalContext.cjs.js.map +1 -1
- package/dist/shared/src/context/GlobalContext.es.js +6 -4
- package/dist/shared/src/context/GlobalContext.es.js.map +1 -1
- package/dist/shared/src/context/PowerpackContext.cjs.js +1 -1
- package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
- package/dist/shared/src/context/PowerpackContext.es.js +8 -6
- package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
- package/dist/shared/src/context/ProjectContext.cjs.js +1 -1
- package/dist/shared/src/context/ProjectContext.cjs.js.map +1 -1
- package/dist/shared/src/context/ProjectContext.es.js +44 -38
- package/dist/shared/src/context/ProjectContext.es.js.map +1 -1
- package/dist/shared/src/context/ProjectFoldersContext.cjs.js +1 -1
- package/dist/shared/src/context/ProjectFoldersContext.cjs.js.map +1 -1
- package/dist/shared/src/context/ProjectFoldersContext.es.js +6 -4
- package/dist/shared/src/context/ProjectFoldersContext.es.js.map +1 -1
- package/dist/shared/src/context/RemoteModulesContext.cjs.js +1 -1
- package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
- package/dist/shared/src/context/RemoteModulesContext.es.js +6 -4
- package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
- package/dist/shared/src/context/UriContext.cjs.js +1 -1
- package/dist/shared/src/context/UriContext.cjs.js.map +1 -1
- package/dist/shared/src/context/UriContext.es.js +7 -5
- package/dist/shared/src/context/UriContext.es.js.map +1 -1
- package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
- package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
- package/dist/shared/src/context/WebsocketContext.es.js +6 -4
- package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
- package/dist/shared/src/hooks/useActionTriggers.cjs.js +1 -1
- package/dist/shared/src/hooks/useActionTriggers.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useActionTriggers.es.js +4 -2
- package/dist/shared/src/hooks/useActionTriggers.es.js.map +1 -1
- package/dist/shared/src/hooks/useEntityUpdate.cjs.js +1 -1
- package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useEntityUpdate.es.js +4 -2
- package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
- package/dist/shared/src/hooks/useGetEntityGroups.cjs.js +1 -1
- package/dist/shared/src/hooks/useGetEntityGroups.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useGetEntityGroups.es.js +4 -2
- package/dist/shared/src/hooks/useGetEntityGroups.es.js.map +1 -1
- package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js +1 -1
- package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useGroupByRemoteModules.es.js +4 -2
- package/dist/shared/src/hooks/useGroupByRemoteModules.es.js.map +1 -1
- package/dist/shared/src/hooks/useScopedStatuses.cjs.js +1 -1
- package/dist/shared/src/hooks/useScopedStatuses.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useScopedStatuses.es.js +6 -4
- package/dist/shared/src/hooks/useScopedStatuses.es.js.map +1 -1
- package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +1 -1
- package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useUserProjectConfig.es.js +4 -2
- package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
- package/dist/types/api/queries/config/getConfig.d.ts +747 -0
- package/dist/types/api/queries/config/index.d.ts +2 -0
- package/dist/types/api/queries/config/updateConfig.d.ts +171 -0
- package/dist/types/api/queries/index.d.ts +1 -0
- package/dist/types/api/queries/links/getEntityLinks.d.ts +2 -1
- package/dist/types/components/AddonLoadingScreen/AddonLoadingScreen.d.ts +7 -2
- package/dist/types/components/Chips/Chips.d.ts +1 -0
- package/dist/types/components/LinksManager/LinksManager.d.ts +1 -0
- package/package.json +1 -1
|
@@ -55,6 +55,8 @@ import "../api/queries/attributes/getAttributes.es.js";
|
|
|
55
55
|
import "../api/queries/attributes/updateAttributes.es.js";
|
|
56
56
|
import "../api/queries/authentication/getAuthentication.es.js";
|
|
57
57
|
import "../api/queries/cloud/cloud.es.js";
|
|
58
|
+
import "../api/queries/config/getConfig.es.js";
|
|
59
|
+
import "../api/queries/config/updateConfig.es.js";
|
|
58
60
|
import "../api/queries/entities/getEntity.es.js";
|
|
59
61
|
import "../api/queries/entities/getEntityPanel.es.js";
|
|
60
62
|
import "../api/queries/entities/updateEntity.es.js";
|
|
@@ -88,7 +90,7 @@ import "../api/queries/views/getViews.es.js";
|
|
|
88
90
|
import "../api/queries/views/updateViews.es.js";
|
|
89
91
|
import "../api/queries/watchers/getWatchers.es.js";
|
|
90
92
|
import { useResolveUrisMutation as j } from "../api/queries/uris/getUris.es.js";
|
|
91
|
-
const
|
|
93
|
+
const lo = "uri", c = I(void 0), Uo = ({ children: i }) => {
|
|
92
94
|
const e = location.pathname, [o, r] = g(""), a = ["projects", "settings", "dashboard/tasks"];
|
|
93
95
|
w(() => {
|
|
94
96
|
a.some((p) => e.startsWith(`/${p}`)) || r("");
|
|
@@ -117,15 +119,15 @@ const ao = "uri", c = I(void 0), uo = ({ children: i }) => {
|
|
|
117
119
|
getUriEntities: R
|
|
118
120
|
};
|
|
119
121
|
return /* @__PURE__ */ y.jsx(c.Provider, { value: d, children: i });
|
|
120
|
-
},
|
|
122
|
+
}, Ro = () => {
|
|
121
123
|
const i = C(c);
|
|
122
124
|
if (i === void 0)
|
|
123
125
|
throw new Error("useURIContext must be used within a URIProvider");
|
|
124
126
|
return i;
|
|
125
127
|
};
|
|
126
128
|
export {
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
129
|
+
Uo as URIProvider,
|
|
130
|
+
lo as URL_PARAM_ID,
|
|
131
|
+
Ro as useURIContext
|
|
130
132
|
};
|
|
131
133
|
//# sourceMappingURL=UriContext.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UriContext.es.js","sources":["../../../../src/context/UriContext.tsx"],"sourcesContent":["// The URI is a unique AYON ID for entities and settings paths\n// Entity: ayon+entity://project_name/shots/000_logo/000_0010?task=lighting\n// Settings: ayon+settings://maya/ext_mapping/0/name\n\n// Components can update the URI when changing context, like opening the details panel or navigating to a settings page\n// Components state should not be directly synced to the URI, they should only read the URI on mount to set initial state\n\nimport { createContext, useContext, useEffect, ReactNode, FC, useCallback, useState } from 'react'\nimport { buildEntityUri, parseUri } from '../util'\nimport { ResolvedUriModel, useResolveUrisMutation } from '@shared/api'\n\nexport const URL_PARAM_ID = 'uri'\n\ntype SetEntityUriFunc = ({\n projectName,\n folderPath,\n taskName,\n productName,\n versionName,\n}: {\n projectName: string\n folderPath: string\n taskName?: string\n productName?: string\n versionName?: string\n}) => void\n\nexport type EntityUri = {\n projectName: string\n entityType: 'task' | 'folder' | 'product' | 'version'\n folderPath: string\n taskName?: string\n productName?: string\n versionName?: string\n}\n\nexport type SettingsUri = {\n addonName: string\n addonVersion: string\n settingsPath: string[]\n site: string | undefined\n project: string | undefined\n}\n\ninterface URIContextValue {\n uri: string\n uriType: 'settings' | 'entity' | undefined\n entity?: EntityUri\n settings?: SettingsUri\n setUri: (uri: string) => void\n setEntityUri: SetEntityUriFunc\n getUriEntities: () => Promise<ResolvedUriModel[]>\n}\n\ninterface URIProviderProps {\n children: ReactNode\n}\n\nconst URIContext = createContext<URIContextValue | undefined>(undefined)\n\nconst URIProvider: FC<URIProviderProps> = ({ children }) => {\n const pathname = location.pathname\n\n const [uri, setUri] = useState('')\n\n // when the scope is outside settings and project, set uri to null\n const scopes = ['projects', 'settings', 'dashboard/tasks']\n useEffect(() => {\n const matchingScope = scopes.some((scope) => pathname.startsWith(`/${scope}`))\n\n if (!matchingScope) {\n setUri('')\n }\n }, [pathname, setUri])\n\n const { type: uriType, entity, settings } = parseUri(uri)\n\n // helper function to set an entity URI\n const setEntityUri = useCallback<SetEntityUriFunc>(\n ({ projectName, folderPath, taskName, productName, versionName }) => {\n const uri = buildEntityUri({ projectName, folderPath, taskName, productName, versionName })\n setUri(uri)\n },\n [setUri],\n )\n\n // helper function to get entity ids from URI so that we can actually do something with it\n const [resolveUris] = useResolveUrisMutation()\n const getUriEntities = useCallback(async () => {\n if (uriType !== 'entity' || !uri) return []\n\n try {\n const entities = await resolveUris({ resolveRequestModel: { uris: [uri] } }).unwrap()\n // we could set more detailed entity info here if needed\n // for now we just log it\n console.log('Resolved entity from URI:', entities)\n\n return entities\n } catch (error) {\n console.warn('Failed to resolve URI:', error)\n return []\n }\n }, [resolveUris, uri, uriType])\n\n const contextValue: URIContextValue = {\n uri,\n uriType,\n entity,\n settings,\n setUri,\n setEntityUri,\n getUriEntities,\n }\n\n return <URIContext.Provider value={contextValue}>{children}</URIContext.Provider>\n}\n\nconst useURIContext = (): URIContextValue => {\n const context = useContext(URIContext)\n if (context === undefined) {\n throw new Error('useURIContext must be used within a URIProvider')\n }\n return context\n}\n\nexport { URIProvider, useURIContext }\n"],"names":["URL_PARAM_ID","URIContext","createContext","URIProvider","children","pathname","uri","setUri","useState","scopes","useEffect","scope","uriType","entity","settings","parseUri","setEntityUri","useCallback","projectName","folderPath","taskName","productName","versionName","buildEntityUri","resolveUris","useResolveUrisMutation","getUriEntities","entities","error","contextValue","useURIContext","context","useContext"],"mappings":"
|
|
1
|
+
{"version":3,"file":"UriContext.es.js","sources":["../../../../src/context/UriContext.tsx"],"sourcesContent":["// The URI is a unique AYON ID for entities and settings paths\n// Entity: ayon+entity://project_name/shots/000_logo/000_0010?task=lighting\n// Settings: ayon+settings://maya/ext_mapping/0/name\n\n// Components can update the URI when changing context, like opening the details panel or navigating to a settings page\n// Components state should not be directly synced to the URI, they should only read the URI on mount to set initial state\n\nimport { createContext, useContext, useEffect, ReactNode, FC, useCallback, useState } from 'react'\nimport { buildEntityUri, parseUri } from '../util'\nimport { ResolvedUriModel, useResolveUrisMutation } from '@shared/api'\n\nexport const URL_PARAM_ID = 'uri'\n\ntype SetEntityUriFunc = ({\n projectName,\n folderPath,\n taskName,\n productName,\n versionName,\n}: {\n projectName: string\n folderPath: string\n taskName?: string\n productName?: string\n versionName?: string\n}) => void\n\nexport type EntityUri = {\n projectName: string\n entityType: 'task' | 'folder' | 'product' | 'version'\n folderPath: string\n taskName?: string\n productName?: string\n versionName?: string\n}\n\nexport type SettingsUri = {\n addonName: string\n addonVersion: string\n settingsPath: string[]\n site: string | undefined\n project: string | undefined\n}\n\ninterface URIContextValue {\n uri: string\n uriType: 'settings' | 'entity' | undefined\n entity?: EntityUri\n settings?: SettingsUri\n setUri: (uri: string) => void\n setEntityUri: SetEntityUriFunc\n getUriEntities: () => Promise<ResolvedUriModel[]>\n}\n\ninterface URIProviderProps {\n children: ReactNode\n}\n\nconst URIContext = createContext<URIContextValue | undefined>(undefined)\n\nconst URIProvider: FC<URIProviderProps> = ({ children }) => {\n const pathname = location.pathname\n\n const [uri, setUri] = useState('')\n\n // when the scope is outside settings and project, set uri to null\n const scopes = ['projects', 'settings', 'dashboard/tasks']\n useEffect(() => {\n const matchingScope = scopes.some((scope) => pathname.startsWith(`/${scope}`))\n\n if (!matchingScope) {\n setUri('')\n }\n }, [pathname, setUri])\n\n const { type: uriType, entity, settings } = parseUri(uri)\n\n // helper function to set an entity URI\n const setEntityUri = useCallback<SetEntityUriFunc>(\n ({ projectName, folderPath, taskName, productName, versionName }) => {\n const uri = buildEntityUri({ projectName, folderPath, taskName, productName, versionName })\n setUri(uri)\n },\n [setUri],\n )\n\n // helper function to get entity ids from URI so that we can actually do something with it\n const [resolveUris] = useResolveUrisMutation()\n const getUriEntities = useCallback(async () => {\n if (uriType !== 'entity' || !uri) return []\n\n try {\n const entities = await resolveUris({ resolveRequestModel: { uris: [uri] } }).unwrap()\n // we could set more detailed entity info here if needed\n // for now we just log it\n console.log('Resolved entity from URI:', entities)\n\n return entities\n } catch (error) {\n console.warn('Failed to resolve URI:', error)\n return []\n }\n }, [resolveUris, uri, uriType])\n\n const contextValue: URIContextValue = {\n uri,\n uriType,\n entity,\n settings,\n setUri,\n setEntityUri,\n getUriEntities,\n }\n\n return <URIContext.Provider value={contextValue}>{children}</URIContext.Provider>\n}\n\nconst useURIContext = (): URIContextValue => {\n const context = useContext(URIContext)\n if (context === undefined) {\n throw new Error('useURIContext must be used within a URIProvider')\n }\n return context\n}\n\nexport { URIProvider, useURIContext }\n"],"names":["URL_PARAM_ID","URIContext","createContext","URIProvider","children","pathname","uri","setUri","useState","scopes","useEffect","scope","uriType","entity","settings","parseUri","setEntityUri","useCallback","projectName","folderPath","taskName","productName","versionName","buildEntityUri","resolveUris","useResolveUrisMutation","getUriEntities","entities","error","contextValue","useURIContext","context","useContext"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWO,MAAMA,KAAe,OA+CtBC,IAAaC,EAA2C,MAAS,GAEjEC,KAAoC,CAAC,EAAE,UAAAC,QAAe;AAC1D,QAAMC,IAAW,SAAS,UAEpB,CAACC,GAAKC,CAAM,IAAIC,EAAS,EAAE,GAG3BC,IAAS,CAAC,YAAY,YAAY,iBAAiB;AACzD,EAAAC,EAAU,MAAM;AAGd,IAFsBD,EAAO,KAAK,CAACE,MAAUN,EAAS,WAAW,IAAIM,CAAK,EAAE,CAAC,KAG3EJ,EAAO,EAAE;AAAA,EACX,GACC,CAACF,GAAUE,CAAM,CAAC;AAErB,QAAM,EAAE,MAAMK,GAAS,QAAAC,GAAQ,UAAAC,EAAS,IAAIC,EAAST,CAAG,GAGlDU,IAAeC;AAAA,IACnB,CAAC,EAAE,aAAAC,GAAa,YAAAC,GAAY,UAAAC,GAAU,aAAAC,GAAa,aAAAC,QAAkB;AAC7DhB,YAAAA,IAAMiB,EAAe,EAAE,aAAAL,GAAa,YAAAC,GAAY,UAAAC,GAAU,aAAAC,GAAa,aAAAC,GAAa;AAC1F,MAAAf,EAAOD,CAAG;AAAA,IACZ;AAAA,IACA,CAACC,CAAM;AAAA,EACT,GAGM,CAACiB,CAAW,IAAIC,EAAuB,GACvCC,IAAiBT,EAAY,YAAY;AAC7C,QAAIL,MAAY,YAAY,CAACN,UAAY,CAAC;AAEtC,QAAA;AACF,YAAMqB,IAAW,MAAMH,EAAY,EAAE,qBAAqB,EAAE,MAAM,CAAClB,CAAG,EAAA,GAAK,EAAE,OAAO;AAG5E,qBAAA,IAAI,6BAA6BqB,CAAQ,GAE1CA;AAAA,aACAC,GAAO;AACN,qBAAA,KAAK,0BAA0BA,CAAK,GACrC,CAAC;AAAA,IAAA;AAAA,EAET,GAAA,CAACJ,GAAalB,GAAKM,CAAO,CAAC,GAExBiB,IAAgC;AAAA,IACpC,KAAAvB;AAAA,IACA,SAAAM;AAAA,IACA,QAAAC;AAAA,IACA,UAAAC;AAAA,IACA,QAAAP;AAAA,IACA,cAAAS;AAAA,IACA,gBAAAU;AAAA,EACF;AAEA,+BAAQzB,EAAW,UAAX,EAAoB,OAAO4B,GAAe,UAAAzB,GAAS;AAC7D,GAEM0B,KAAgB,MAAuB;AACrC,QAAAC,IAAUC,EAAW/B,CAAU;AACrC,MAAI8B,MAAY;AACR,UAAA,IAAI,MAAM,iDAAiD;AAE5D,SAAAA;AACT;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const w=require("../../../_virtual/jsx-runtime.cjs.js"),e=require("react"),x=require("react-toastify"),C=require("lodash");require("uuid");const l=require("../util/pubsub.cjs.js"),k=require("../../../_virtual/index.cjs.js"),A=require("../api/base/client.cjs.js");require("../api/generated/graphql.cjs.js");require("../api/generated/graphqlLinks.cjs.js");require("../api/generated/access.cjs.js");require("../api/generated/actions.cjs.js");require("../api/generated/activityFeed.cjs.js");require("../api/generated/addons.cjs.js");require("../api/generated/anatomy.cjs.js");require("../api/generated/attributes.cjs.js");require("../api/generated/authentication.cjs.js");require("../api/generated/bundles.cjs.js");require("../api/generated/configuration.cjs.js");require("../api/generated/desktop.cjs.js");require("../api/generated/entityLists.cjs.js");require("../api/generated/events.cjs.js");require("../api/generated/files.cjs.js");require("../api/generated/folders.cjs.js");require("../api/generated/inbox.cjs.js");require("../api/generated/links.cjs.js");require("../api/generated/market.cjs.js");require("../api/generated/onboarding.cjs.js");require("../api/generated/operations.cjs.js");require("../api/generated/products.cjs.js");require("../api/generated/projectDashboard.cjs.js");require("../api/generated/projects.cjs.js");require("../api/generated/reviewables.cjs.js");require("../api/generated/services.cjs.js");require("../api/generated/system.cjs.js");require("../api/generated/tasks.cjs.js");require("../api/generated/teams.cjs.js");require("../api/generated/thumbnails.cjs.js");require("../api/generated/uRIs.cjs.js");require("../api/generated/users.cjs.js");require("../api/generated/versions.cjs.js");require("../api/generated/workfiles.cjs.js");require("../api/generated/ynputCloud.cjs.js");require("../api/generated/grouping.cjs.js");require("../api/generated/views.cjs.js");require("../api/queries/actions/getActions.cjs.js");require("../api/queries/activities/getActivities.cjs.js");require("../api/queries/activities/updateActivities.cjs.js");require("../api/queries/activities/updateReaction.cjs.js");require("../api/queries/activities/getMentions.cjs.js");require("../api/queries/activities/getCategories.cjs.js");require("../api/queries/addons/getAddons.cjs.js");require("../api/queries/addons/updateAddons.cjs.js");require("../api/queries/attributes/getAttributes.cjs.js");require("../api/queries/attributes/updateAttributes.cjs.js");require("../api/queries/authentication/getAuthentication.cjs.js");require("../api/queries/cloud/cloud.cjs.js");require("../api/queries/entities/getEntity.cjs.js");require("../api/queries/entities/getEntityPanel.cjs.js");require("../api/queries/entities/updateEntity.cjs.js");require("../api/queries/entityLists/getLists.cjs.js");require("../api/queries/entityLists/updateLists.cjs.js");require("../api/queries/entityLists/getListsAttributes.cjs.js");require("../api/queries/entityLists/updateListsAttributes.cjs.js");require("../api/queries/entityLists/listFolders.cjs.js");require("../api/queries/folders/getFolders.cjs.js");require("../api/queries/grouping/getGrouping.cjs.js");require("../api/queries/links/updateLinks.cjs.js");require("../api/queries/links/getLinks.cjs.js");require("../api/queries/links/getEntityLinks.cjs.js");require("../api/queries/overview/getOverview.cjs.js");require("../api/queries/overview/updateOverview.cjs.js");require("../api/queries/versions/getVersionsProducts.cjs.js");require("../api/queries/permissions/getPermissions.cjs.js");require("../api/queries/products/createProduct.cjs.js");require("../api/queries/project/getProject.cjs.js");require("../api/queries/project/updateProject.cjs.js");require("../api/queries/review/getReview.cjs.js");require("../api/queries/review/updateReview.cjs.js");require("../api/queries/share/share.cjs.js");const J=require("../api/queries/system/getSystem.cjs.js");require("../api/queries/userDashboard/getUserDashboard.cjs.js");require("../api/queries/users/getUsers.cjs.js");require("../api/queries/users/updateUsers.cjs.js");require("../api/queries/users/guests.cjs.js");require("../api/queries/versions/updateVersions.cjs.js");require("../api/queries/views/getViews.cjs.js");require("../api/queries/views/updateViews.cjs.js");require("../api/queries/watchers/getWatchers.cjs.js");require("../api/queries/uris/getUris.cjs.js");require("../components/AddonLoadingScreen/AddonLoadingScreen.cjs.js");require("@ynput/ayon-react-components");require("clsx");require("../components/ThumbnailSimple/ThumbnailSimple.cjs.js");require("../components/EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../components/ReviewablesList/ReviewablesList.styled.cjs.js");require("../containers/ContextMenu/ContextMenuContext.cjs.js");;/* empty css */require("../components/ReviewablesList/ReviewablesUpload.styled.cjs.js");require("axios");require("./RemoteModulesContext.cjs.js");require("./DetailsPanelContext.cjs.js");require("./ThumbnailUploaderContext.cjs.js");require("./SettingsPanelContext.cjs.js");require("./pip/PiPProvider.cjs.js");require("react-dom");require("./pip/PiPWrapper.cjs.js");require("./AddonProjectContext.cjs.js");require("./AddonContext.cjs.js");require("./PowerpackContext.cjs.js");require("./MoveEntityContext.cjs.js");require("./MenuContext.cjs.js");require("./GlobalContext.cjs.js");require("./ProjectContext.cjs.js");require("./ProjectFoldersContext.cjs.js");require("./UriContext.cjs.js");require("../components/ReviewableCard/ReviewableCard.cjs.js");require("../components/ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../components/FileThumbnail/FileThumbnail.cjs.js");require("../components/Thumbnail/Thumbnail.styled.cjs.js");require("../components/Thumbnail/StackedThumbnails.cjs.js");require("../containers/Feed/context/FeedContext.cjs.js");require("../containers/Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("../containers/Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../containers/Feed/components/FileUploadPreview/Mimes/TextMime.cjs.js");require("react-markdown");require("remark-emoji");require("remark-gfm");require("remark-directive");require("remark-directive-rehype");require("../containers/Feed/components/CommentInput/CommentInput.cjs.js");require("../containers/Feed/components/ReactionContainer/Reactions.styled.cjs.js");require("../containers/Feed/components/FilesGrid/FilesGrid.styled.cjs.js");require("../containers/Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js");require("../containers/Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../containers/Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("../containers/Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../containers/Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("react-router-dom");require("../containers/Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../containers/Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../containers/Feed/components/ActivityDate.cjs.js");require("../containers/Feed/components/ActivityCategorySelect/CategoryTag.cjs.js");require("../containers/Feed/components/ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../containers/Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../containers/Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../containers/Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../containers/Feed/Feed.styled.cjs.js");require("date-fns");require("../containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../containers/Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("../containers/ProjectTreeTable/ProjectTreeTable.cjs.js");require("../containers/ProjectTreeTable/context/CellEditingContext.cjs.js");require("short-uuid");require("@tanstack/react-table");require("../containers/ProjectTreeTable/widgets/CollapsedWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/DateWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/EnumWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/TextWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/CellWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js");require("../components/LinksManager/CellEditingDialog.cjs.js");require("../containers/ProjectTreeTable/context/DetailsPanelEntityContext.cjs.js");require("../containers/ProjectTreeTable/context/SelectedRowsContext.cjs.js");require("../components/LinksManager/LinksManager.styled.cjs.js");require("../containers/ProjectTreeTable/widgets/EmptyWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/ErrorWidget.cjs.js");require("../containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js");require("../containers/ProjectTreeTable/components/SelectionCell.cjs.js");require("../containers/ProjectTreeTable/components/RowSelectionHeader.cjs.js");require("../containers/ProjectTreeTable/context/SelectionCellsContext.cjs.js");require("../containers/ProjectTreeTable/widgets/LoadMoreWidget.cjs.js");require("../containers/ProjectTreeTable/context/ProjectTableQueriesContext.cjs.js");require("../containers/ProjectTreeTable/context/ProjectTableContext.cjs.js");require("../containers/ProjectTreeTable/context/ClipboardContext.cjs.js");require("../containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js");require("../containers/ProjectTreeTable/context/ProjectDataContext.cjs.js");require("../../../_virtual/runtime.cjs.js");require("../../../_virtual/semver.cjs.js");require("react-redux");require("custom-protocol-check");require("../containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js");require("../containers/ProjectTreeTable/components/HeaderActionButton.cjs.js");require("../containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js");require("../containers/DetailsPanel/DetailsPanel.styled.cjs.js");require("../containers/DetailsPanel/FeedFilters/FeedFilters.styled.cjs.js");require("../containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../components/PlayableIcon/PlayableIcon.cjs.js");require("../containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../containers/Actions/Actions.styled.cjs.js");require("../containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../containers/Actions/ActionIcon.cjs.js");require("../containers/Views/context/ViewsContext.cjs.js");require("../containers/Views/Views.styled.cjs.js");require("../containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../containers/Views/ViewsMenu/ViewsMenu.cjs.js");require("../components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("../components/SimpleFormDialog/SimpleFormDialog.cjs.js");require("../components/EntityPath/EntityPath.styled.cjs.js");require("../components/EntityPath/SegmentProvider.cjs.js");require("../components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../components/DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("../components/DetailsPanelDetails/DetailsSection.cjs.js");require("../components/DetailsPanelDetails/FieldLabel.cjs.js");require("../components/Watchers/Watchers.cjs.js");require("../components/ProjectTableSettings/ProjectTableSettings.cjs.js");require("../components/Powerpack/PowerpackButton.cjs.js");require("../components/Powerpack/PricingLink.cjs.js");require("../components/Powerpack/PowerpackDialog.styled.cjs.js");require("../components/Powerpack/CTAButton.cjs.js");require("../components/Powerpack/RequiredAddonVersion.cjs.js");require("../components/SizeSlider/SizeSlider.cjs.js");require("../components/SettingsPanel/SettingsPanel.cjs.js");require("../components/SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../components/AttributeEditor/components/MinMaxField.cjs.js");require("../components/EnumEditor/EnumEditor.styled.cjs.js");require("../components/SearchFilter/filterDates.cjs.js");require("../components/FeaturedVersionOrder/FeaturedVersionOrder.cjs.js");require("../components/Badge/Badge.cjs.js");require("../components/VersionUploader/components/UploadVersionDialog.cjs.js");require("../components/VersionUploader/context/VersionUploadContext.cjs.js");require("../components/Feedback/FeedbackContext.cjs.js");require("../components/Feedback/SupportBubble.cjs.js");require("../components/Chips/Chips.cjs.js");require("../containers/EntityPickerDialog/EntityPickerDialog.cjs.js");require("../components/StyledLink/StyledLink.cjs.js");require("../components/ShareOptionIcon/ShareOptionIcon.cjs.js");require("../components/AccessUser/AccessUser.cjs.js");require("../../../node_modules/match-sorter/dist/match-sorter.esm.cjs.js");require("../components/AccessSearchInput/AccessSearchInput.styled.cjs.js");const N=require("../components/RefreshToast/RefreshToast.cjs.js");require("../components/TableGridSwitch/TableGridSwitch.cjs.js");require("../components/SortingSetting/SortingSetting.styled.cjs.js");require("../components/EarlyPreview/EarlyPreview.cjs.js");require("../components/LegacyBadge/LegacyBadge.cjs.js");require("../components/Menu/Menu.styled.cjs.js");require("../components/Menu/MenuItem.cjs.js");const d=e.createContext(void 0),V=window.location.protocol.replace("http","ws"),W=`${V}//${window.location.host}/ws`,z=({children:q,userName:v,projectName:f,dispatch:m})=>{const[S,o]=e.useState(!1),[t,R]=e.useState([]),[y]=J.useLazyGetSiteInfoQuery(),T={shouldReconnect:()=>!v||!localStorage.getItem("accessToken")?!1:(y({full:!1}).unwrap(),!0)},{sendMessage:E,readyState:n,getWebSocket:c}=k.default(W,T),g=()=>{E(JSON.stringify({topic:"auth",token:localStorage.getItem("accessToken"),subscribe:t,project:f}))};e.useEffect(()=>{console.debug("Topics changed",t),g()},[t,f]);const O=C.debounce(r=>{C.isEqual(t,r)||(console.log("WS: Subscriptions changed"),R(r))},200);l.setOnSubscriptionsChange(r=>O(r));const[p,a]=e.useState(!1),[j,I]=e.useState(!1);e.useEffect(()=>(p&&(j||(x.toast.warning(w.jsxRuntimeExports.jsx(N.RefreshToast,{}),{autoClose:!1,closeButton:!1}),I(!0))),()=>{a(!1)}),[p,a]);const i=e.useRef({callCount:0,lastCall:Date.now()}),P=e.useCallback(r=>{var b;if(i.current.callCount>1e3)return a(!0),console.log("Overload: Over 1000 messages per second. Ignoring subsequent messages.");let u;try{u=JSON.parse(r.data)}catch($){console.error("Failed to parse websocket message:",$,r.data);return}const{topic:s,sender:D,summary:M}=u||{};if(s==="heartbeat"||(s==="server.restart_requested"&&o(!0),D===window.senderId))return;const h=Date.now();h-i.current.lastCall<1e3?i.current.callCount+=1:i.current.callCount=0,i.current.lastCall=h,s==="shout"&&((b=u==null?void 0:u.summary)!=null&&b.text)&&x.toast.info(M.text),console.log("Event RX",u),l.publish(s,u)},[o]);return e.useEffect(()=>{n===k.distExports.ReadyState.OPEN&&(S&&(o(!1),m(A.api.util.resetApiState())),c().onmessage=P,g(),l.publish("client.connected",{topic:"client.connected"}))},[n,c]),w.jsxRuntimeExports.jsx(d.Provider,{value:{getWebSocket:c,readyState:n,serverRestartingVisible:S},children:q})},B=()=>{const q=e.useContext(d);if(q===void 0)throw new Error("useSocketContext must be used within a SocketProvider");return q};exports.SocketContext=d;exports.SocketProvider=z;exports.useSocketContext=B;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const w=require("../../../_virtual/jsx-runtime.cjs.js"),e=require("react"),x=require("react-toastify"),C=require("lodash");require("uuid");const l=require("../util/pubsub.cjs.js"),k=require("../../../_virtual/index.cjs.js"),A=require("../api/base/client.cjs.js");require("../api/generated/graphql.cjs.js");require("../api/generated/graphqlLinks.cjs.js");require("../api/generated/access.cjs.js");require("../api/generated/actions.cjs.js");require("../api/generated/activityFeed.cjs.js");require("../api/generated/addons.cjs.js");require("../api/generated/anatomy.cjs.js");require("../api/generated/attributes.cjs.js");require("../api/generated/authentication.cjs.js");require("../api/generated/bundles.cjs.js");require("../api/generated/configuration.cjs.js");require("../api/generated/desktop.cjs.js");require("../api/generated/entityLists.cjs.js");require("../api/generated/events.cjs.js");require("../api/generated/files.cjs.js");require("../api/generated/folders.cjs.js");require("../api/generated/inbox.cjs.js");require("../api/generated/links.cjs.js");require("../api/generated/market.cjs.js");require("../api/generated/onboarding.cjs.js");require("../api/generated/operations.cjs.js");require("../api/generated/products.cjs.js");require("../api/generated/projectDashboard.cjs.js");require("../api/generated/projects.cjs.js");require("../api/generated/reviewables.cjs.js");require("../api/generated/services.cjs.js");require("../api/generated/system.cjs.js");require("../api/generated/tasks.cjs.js");require("../api/generated/teams.cjs.js");require("../api/generated/thumbnails.cjs.js");require("../api/generated/uRIs.cjs.js");require("../api/generated/users.cjs.js");require("../api/generated/versions.cjs.js");require("../api/generated/workfiles.cjs.js");require("../api/generated/ynputCloud.cjs.js");require("../api/generated/grouping.cjs.js");require("../api/generated/views.cjs.js");require("../api/queries/actions/getActions.cjs.js");require("../api/queries/activities/getActivities.cjs.js");require("../api/queries/activities/updateActivities.cjs.js");require("../api/queries/activities/updateReaction.cjs.js");require("../api/queries/activities/getMentions.cjs.js");require("../api/queries/activities/getCategories.cjs.js");require("../api/queries/addons/getAddons.cjs.js");require("../api/queries/addons/updateAddons.cjs.js");require("../api/queries/attributes/getAttributes.cjs.js");require("../api/queries/attributes/updateAttributes.cjs.js");require("../api/queries/authentication/getAuthentication.cjs.js");require("../api/queries/cloud/cloud.cjs.js");require("../api/queries/config/getConfig.cjs.js");require("../api/queries/config/updateConfig.cjs.js");require("../api/queries/entities/getEntity.cjs.js");require("../api/queries/entities/getEntityPanel.cjs.js");require("../api/queries/entities/updateEntity.cjs.js");require("../api/queries/entityLists/getLists.cjs.js");require("../api/queries/entityLists/updateLists.cjs.js");require("../api/queries/entityLists/getListsAttributes.cjs.js");require("../api/queries/entityLists/updateListsAttributes.cjs.js");require("../api/queries/entityLists/listFolders.cjs.js");require("../api/queries/folders/getFolders.cjs.js");require("../api/queries/grouping/getGrouping.cjs.js");require("../api/queries/links/updateLinks.cjs.js");require("../api/queries/links/getLinks.cjs.js");require("../api/queries/links/getEntityLinks.cjs.js");require("../api/queries/overview/getOverview.cjs.js");require("../api/queries/overview/updateOverview.cjs.js");require("../api/queries/versions/getVersionsProducts.cjs.js");require("../api/queries/permissions/getPermissions.cjs.js");require("../api/queries/products/createProduct.cjs.js");require("../api/queries/project/getProject.cjs.js");require("../api/queries/project/updateProject.cjs.js");require("../api/queries/review/getReview.cjs.js");require("../api/queries/review/updateReview.cjs.js");require("../api/queries/share/share.cjs.js");const J=require("../api/queries/system/getSystem.cjs.js");require("../api/queries/userDashboard/getUserDashboard.cjs.js");require("../api/queries/users/getUsers.cjs.js");require("../api/queries/users/updateUsers.cjs.js");require("../api/queries/users/guests.cjs.js");require("../api/queries/versions/updateVersions.cjs.js");require("../api/queries/views/getViews.cjs.js");require("../api/queries/views/updateViews.cjs.js");require("../api/queries/watchers/getWatchers.cjs.js");require("../api/queries/uris/getUris.cjs.js");require("../components/AddonLoadingScreen/AddonLoadingScreen.cjs.js");require("@ynput/ayon-react-components");require("clsx");require("../components/ThumbnailSimple/ThumbnailSimple.cjs.js");require("../components/EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../components/ReviewablesList/ReviewablesList.styled.cjs.js");require("../containers/ContextMenu/ContextMenuContext.cjs.js");;/* empty css */require("../components/ReviewablesList/ReviewablesUpload.styled.cjs.js");require("axios");require("./RemoteModulesContext.cjs.js");require("./DetailsPanelContext.cjs.js");require("./ThumbnailUploaderContext.cjs.js");require("./SettingsPanelContext.cjs.js");require("./pip/PiPProvider.cjs.js");require("react-dom");require("./pip/PiPWrapper.cjs.js");require("./AddonProjectContext.cjs.js");require("./AddonContext.cjs.js");require("./PowerpackContext.cjs.js");require("./MoveEntityContext.cjs.js");require("./MenuContext.cjs.js");require("./GlobalContext.cjs.js");require("./ProjectContext.cjs.js");require("./ProjectFoldersContext.cjs.js");require("./UriContext.cjs.js");require("../components/ReviewableCard/ReviewableCard.cjs.js");require("../components/ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../components/FileThumbnail/FileThumbnail.cjs.js");require("../components/Thumbnail/Thumbnail.styled.cjs.js");require("../components/Thumbnail/StackedThumbnails.cjs.js");require("../containers/Feed/context/FeedContext.cjs.js");require("../containers/Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("../containers/Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../containers/Feed/components/FileUploadPreview/Mimes/TextMime.cjs.js");require("react-markdown");require("remark-emoji");require("remark-gfm");require("remark-directive");require("remark-directive-rehype");require("../containers/Feed/components/CommentInput/CommentInput.cjs.js");require("../containers/Feed/components/ReactionContainer/Reactions.styled.cjs.js");require("../containers/Feed/components/FilesGrid/FilesGrid.styled.cjs.js");require("../containers/Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js");require("../containers/Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../containers/Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("../containers/Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../containers/Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("react-router-dom");require("../containers/Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../containers/Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../containers/Feed/components/ActivityDate.cjs.js");require("../containers/Feed/components/ActivityCategorySelect/CategoryTag.cjs.js");require("../containers/Feed/components/ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../containers/Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../containers/Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../containers/Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../containers/Feed/Feed.styled.cjs.js");require("date-fns");require("../containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../containers/Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("../containers/ProjectTreeTable/ProjectTreeTable.cjs.js");require("../containers/ProjectTreeTable/context/CellEditingContext.cjs.js");require("short-uuid");require("@tanstack/react-table");require("../containers/ProjectTreeTable/widgets/CollapsedWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/DateWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/EnumWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/TextWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/CellWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js");require("../components/LinksManager/CellEditingDialog.cjs.js");require("../containers/ProjectTreeTable/context/DetailsPanelEntityContext.cjs.js");require("../containers/ProjectTreeTable/context/SelectedRowsContext.cjs.js");require("../components/LinksManager/LinksManager.styled.cjs.js");require("../containers/ProjectTreeTable/widgets/EmptyWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/ErrorWidget.cjs.js");require("../containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js");require("../containers/ProjectTreeTable/components/SelectionCell.cjs.js");require("../containers/ProjectTreeTable/components/RowSelectionHeader.cjs.js");require("../containers/ProjectTreeTable/context/SelectionCellsContext.cjs.js");require("../containers/ProjectTreeTable/widgets/LoadMoreWidget.cjs.js");require("../containers/ProjectTreeTable/context/ProjectTableQueriesContext.cjs.js");require("../containers/ProjectTreeTable/context/ProjectTableContext.cjs.js");require("../containers/ProjectTreeTable/context/ClipboardContext.cjs.js");require("../containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js");require("../containers/ProjectTreeTable/context/ProjectDataContext.cjs.js");require("../../../_virtual/runtime.cjs.js");require("../../../_virtual/semver.cjs.js");require("react-redux");require("custom-protocol-check");require("../containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js");require("../containers/ProjectTreeTable/components/HeaderActionButton.cjs.js");require("../containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js");require("../containers/DetailsPanel/DetailsPanel.styled.cjs.js");require("../containers/DetailsPanel/FeedFilters/FeedFilters.styled.cjs.js");require("../containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../components/PlayableIcon/PlayableIcon.cjs.js");require("../containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../containers/Actions/Actions.styled.cjs.js");require("../containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../containers/Actions/ActionIcon.cjs.js");require("../containers/Views/context/ViewsContext.cjs.js");require("../containers/Views/Views.styled.cjs.js");require("../containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../containers/Views/ViewsMenu/ViewsMenu.cjs.js");require("../components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("../components/SimpleFormDialog/SimpleFormDialog.cjs.js");require("../components/EntityPath/EntityPath.styled.cjs.js");require("../components/EntityPath/SegmentProvider.cjs.js");require("../components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../components/DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("../components/DetailsPanelDetails/DetailsSection.cjs.js");require("../components/DetailsPanelDetails/FieldLabel.cjs.js");require("../components/Watchers/Watchers.cjs.js");require("../components/ProjectTableSettings/ProjectTableSettings.cjs.js");require("../components/Powerpack/PowerpackButton.cjs.js");require("../components/Powerpack/PricingLink.cjs.js");require("../components/Powerpack/PowerpackDialog.styled.cjs.js");require("../components/Powerpack/CTAButton.cjs.js");require("../components/Powerpack/RequiredAddonVersion.cjs.js");require("../components/SizeSlider/SizeSlider.cjs.js");require("../components/SettingsPanel/SettingsPanel.cjs.js");require("../components/SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../components/AttributeEditor/components/MinMaxField.cjs.js");require("../components/EnumEditor/EnumEditor.styled.cjs.js");require("../components/SearchFilter/filterDates.cjs.js");require("../components/FeaturedVersionOrder/FeaturedVersionOrder.cjs.js");require("../components/Badge/Badge.cjs.js");require("../components/VersionUploader/components/UploadVersionDialog.cjs.js");require("../components/VersionUploader/context/VersionUploadContext.cjs.js");require("../components/Feedback/FeedbackContext.cjs.js");require("../components/Feedback/SupportBubble.cjs.js");require("../components/Chips/Chips.cjs.js");require("../containers/EntityPickerDialog/EntityPickerDialog.cjs.js");require("../components/StyledLink/StyledLink.cjs.js");require("../components/ShareOptionIcon/ShareOptionIcon.cjs.js");require("../components/AccessUser/AccessUser.cjs.js");require("../../../node_modules/match-sorter/dist/match-sorter.esm.cjs.js");require("../components/AccessSearchInput/AccessSearchInput.styled.cjs.js");const N=require("../components/RefreshToast/RefreshToast.cjs.js");require("../components/TableGridSwitch/TableGridSwitch.cjs.js");require("../components/SortingSetting/SortingSetting.styled.cjs.js");require("../components/EarlyPreview/EarlyPreview.cjs.js");require("../components/LegacyBadge/LegacyBadge.cjs.js");require("../components/Menu/Menu.styled.cjs.js");require("../components/Menu/MenuItem.cjs.js");const d=e.createContext(void 0),V=window.location.protocol.replace("http","ws"),W=`${V}//${window.location.host}/ws`,z=({children:q,userName:v,projectName:f,dispatch:m})=>{const[S,o]=e.useState(!1),[t,R]=e.useState([]),[y]=J.useLazyGetSiteInfoQuery(),T={shouldReconnect:()=>!v||!localStorage.getItem("accessToken")?!1:(y({full:!1}).unwrap(),!0)},{sendMessage:E,readyState:n,getWebSocket:c}=k.default(W,T),g=()=>{E(JSON.stringify({topic:"auth",token:localStorage.getItem("accessToken"),subscribe:t,project:f}))};e.useEffect(()=>{console.debug("Topics changed",t),g()},[t,f]);const O=C.debounce(r=>{C.isEqual(t,r)||(console.log("WS: Subscriptions changed"),R(r))},200);l.setOnSubscriptionsChange(r=>O(r));const[p,a]=e.useState(!1),[j,I]=e.useState(!1);e.useEffect(()=>(p&&(j||(x.toast.warning(w.jsxRuntimeExports.jsx(N.RefreshToast,{}),{autoClose:!1,closeButton:!1}),I(!0))),()=>{a(!1)}),[p,a]);const i=e.useRef({callCount:0,lastCall:Date.now()}),P=e.useCallback(r=>{var b;if(i.current.callCount>1e3)return a(!0),console.log("Overload: Over 1000 messages per second. Ignoring subsequent messages.");let u;try{u=JSON.parse(r.data)}catch($){console.error("Failed to parse websocket message:",$,r.data);return}const{topic:s,sender:D,summary:M}=u||{};if(s==="heartbeat"||(s==="server.restart_requested"&&o(!0),D===window.senderId))return;const h=Date.now();h-i.current.lastCall<1e3?i.current.callCount+=1:i.current.callCount=0,i.current.lastCall=h,s==="shout"&&((b=u==null?void 0:u.summary)!=null&&b.text)&&x.toast.info(M.text),console.log("Event RX",u),l.publish(s,u)},[o]);return e.useEffect(()=>{n===k.distExports.ReadyState.OPEN&&(S&&(o(!1),m(A.api.util.resetApiState())),c().onmessage=P,g(),l.publish("client.connected",{topic:"client.connected"}))},[n,c]),w.jsxRuntimeExports.jsx(d.Provider,{value:{getWebSocket:c,readyState:n,serverRestartingVisible:S},children:q})},B=()=>{const q=e.useContext(d);if(q===void 0)throw new Error("useSocketContext must be used within a SocketProvider");return q};exports.SocketContext=d;exports.SocketProvider=z;exports.useSocketContext=B;
|
|
2
2
|
//# sourceMappingURL=WebsocketContext.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebsocketContext.cjs.js","sources":["../../../../src/context/WebsocketContext.tsx"],"sourcesContent":["import { useEffect, useState, createContext, useCallback, useRef, useContext } from 'react'\nimport { toast } from 'react-toastify'\nimport { PubSub } from '@shared/util'\nimport useWebSocket, { ReadyState } from 'react-use-websocket'\nimport { debounce, isEqual } from 'lodash'\nimport api from '@shared/api'\nimport { RefreshToast } from '@shared/components'\nimport { useLazyGetSiteInfoQuery } from '@shared/api'\nimport { WebSocketLike } from 'react-use-websocket/dist/lib/types'\n\nexport type WebsocketContextType = {\n getWebSocket: () => WebSocketLike | null\n readyState: ReadyState\n serverRestartingVisible: boolean\n}\n\nexport const SocketContext = createContext<WebsocketContextType | undefined>(undefined)\n\nconst proto = window.location.protocol.replace('http', 'ws')\nconst wsAddress = `${proto}//${window.location.host}/ws`\n\n// define global window senderId type\ndeclare global {\n interface Window {\n senderId: string\n }\n}\n\nexport type SocketProviderProps = {\n children: React.ReactNode\n userName?: string\n projectName?: string\n dispatch: any\n}\n\nexport const SocketProvider = ({\n children,\n userName,\n projectName,\n dispatch,\n}: SocketProviderProps) => {\n // get user logged in\n const [serverRestartingVisible, setServerRestartingVisible] = useState(false)\n const [topics, setTopics] = useState([])\n const [getInfo] = useLazyGetSiteInfoQuery()\n\n const wsOpts = {\n shouldReconnect: () => {\n if (!userName) return false\n // check if there is a token\n const accessToken = localStorage.getItem('accessToken')\n if (!accessToken) return false\n\n // test if the token is valid\n // if it's not then this will automatically log out the user\n getInfo({ full: false }).unwrap()\n\n return true\n },\n }\n\n const { sendMessage, readyState, getWebSocket } = useWebSocket(wsAddress, wsOpts)\n\n const subscribe = () => {\n sendMessage(\n JSON.stringify({\n topic: 'auth',\n token: localStorage.getItem('accessToken'),\n subscribe: topics,\n project: projectName,\n }),\n )\n }\n\n useEffect(() => {\n console.debug('Topics changed', topics)\n subscribe()\n }, [topics, projectName])\n\n const updateTopicsDebounce = debounce((newTopics) => {\n if (isEqual(topics, newTopics)) return\n console.log('WS: Subscriptions changed')\n setTopics(newTopics)\n }, 200)\n\n PubSub.setOnSubscriptionsChange((newTopics: string[]) => updateTopicsDebounce(newTopics))\n\n const [overloaded, setOverloaded] = useState(false)\n const [toastShown, setToastShown] = useState(false)\n\n // when overloaded is true, activate toast\n useEffect(() => {\n if (overloaded)\n if (!toastShown) {\n toast.warning(<RefreshToast />, {\n autoClose: false,\n closeButton: false,\n })\n setToastShown(true)\n }\n\n return () => {\n setOverloaded(false)\n }\n }, [overloaded, setOverloaded])\n\n // onMessage is a function that is called when a message comes in from the websocket\n // it is a closure that keeps track of the number of calls and the last call time\n // Using useRef to persist the closure state across renders\n const messageStatsRef = useRef({ callCount: 0, lastCall: Date.now() })\n\n const onMessage = useCallback(\n (message: any) => {\n // If the function is called more than 100 times per second, return early.\n const threshold = 1000\n if (messageStatsRef.current.callCount > threshold) {\n setOverloaded(true)\n return console.log(\n `Overload: Over ${threshold} messages per second. Ignoring subsequent messages.`,\n )\n }\n\n let data\n try {\n data = JSON.parse(message.data)\n } catch (error) {\n console.error('Failed to parse websocket message:', error, message.data)\n return\n }\n\n const { topic, sender, summary } = data || {}\n if (topic === 'heartbeat') return\n\n if (topic === 'server.restart_requested') setServerRestartingVisible(true)\n\n if (sender === window.senderId) {\n return // my own message. ignore\n }\n\n const now = Date.now()\n if (now - messageStatsRef.current.lastCall < 1000) {\n messageStatsRef.current.callCount += 1\n } else {\n messageStatsRef.current.callCount = 0\n }\n\n messageStatsRef.current.lastCall = now\n\n if (topic === 'shout' && data?.summary?.text) toast.info(summary.text)\n\n console.log('Event RX', data)\n PubSub.publish(topic, data)\n },\n [setServerRestartingVisible],\n )\n\n useEffect(() => {\n if (readyState === ReadyState.OPEN) {\n if (serverRestartingVisible) {\n setServerRestartingVisible(false)\n // clear ayonApi\n dispatch(api.util.resetApiState())\n }\n // @ts-ignore\n getWebSocket().onmessage = onMessage\n subscribe()\n // Dispatch a fake event to the frontend components\n // in case they depend on the event stream and may\n // miss some messages - this should force reloading\n // events using graphql\n PubSub.publish('client.connected', {\n topic: 'client.connected',\n })\n }\n }, [readyState, getWebSocket])\n\n return (\n <SocketContext.Provider\n value={{\n getWebSocket,\n readyState,\n serverRestartingVisible,\n }}\n >\n {children}\n </SocketContext.Provider>\n )\n}\n\nexport const useSocketContext = () => {\n const context = useContext(SocketContext)\n if (context === undefined) {\n throw new Error('useSocketContext must be used within a SocketProvider')\n }\n return context\n}\n"],"names":["SocketContext","createContext","proto","wsAddress","SocketProvider","children","userName","projectName","dispatch","serverRestartingVisible","setServerRestartingVisible","useState","topics","setTopics","getInfo","useLazyGetSiteInfoQuery","wsOpts","sendMessage","readyState","getWebSocket","useWebSocket","subscribe","useEffect","updateTopicsDebounce","debounce","newTopics","isEqual","PubSub","overloaded","setOverloaded","toastShown","setToastShown","toast","jsx","RefreshToast","messageStatsRef","useRef","onMessage","useCallback","message","data","error","topic","sender","summary","now","_a","ReadyState","api","useSocketContext","context","useContext"],"mappings":"
|
|
1
|
+
{"version":3,"file":"WebsocketContext.cjs.js","sources":["../../../../src/context/WebsocketContext.tsx"],"sourcesContent":["import { useEffect, useState, createContext, useCallback, useRef, useContext } from 'react'\nimport { toast } from 'react-toastify'\nimport { PubSub } from '@shared/util'\nimport useWebSocket, { ReadyState } from 'react-use-websocket'\nimport { debounce, isEqual } from 'lodash'\nimport api from '@shared/api'\nimport { RefreshToast } from '@shared/components'\nimport { useLazyGetSiteInfoQuery } from '@shared/api'\nimport { WebSocketLike } from 'react-use-websocket/dist/lib/types'\n\nexport type WebsocketContextType = {\n getWebSocket: () => WebSocketLike | null\n readyState: ReadyState\n serverRestartingVisible: boolean\n}\n\nexport const SocketContext = createContext<WebsocketContextType | undefined>(undefined)\n\nconst proto = window.location.protocol.replace('http', 'ws')\nconst wsAddress = `${proto}//${window.location.host}/ws`\n\n// define global window senderId type\ndeclare global {\n interface Window {\n senderId: string\n }\n}\n\nexport type SocketProviderProps = {\n children: React.ReactNode\n userName?: string\n projectName?: string\n dispatch: any\n}\n\nexport const SocketProvider = ({\n children,\n userName,\n projectName,\n dispatch,\n}: SocketProviderProps) => {\n // get user logged in\n const [serverRestartingVisible, setServerRestartingVisible] = useState(false)\n const [topics, setTopics] = useState([])\n const [getInfo] = useLazyGetSiteInfoQuery()\n\n const wsOpts = {\n shouldReconnect: () => {\n if (!userName) return false\n // check if there is a token\n const accessToken = localStorage.getItem('accessToken')\n if (!accessToken) return false\n\n // test if the token is valid\n // if it's not then this will automatically log out the user\n getInfo({ full: false }).unwrap()\n\n return true\n },\n }\n\n const { sendMessage, readyState, getWebSocket } = useWebSocket(wsAddress, wsOpts)\n\n const subscribe = () => {\n sendMessage(\n JSON.stringify({\n topic: 'auth',\n token: localStorage.getItem('accessToken'),\n subscribe: topics,\n project: projectName,\n }),\n )\n }\n\n useEffect(() => {\n console.debug('Topics changed', topics)\n subscribe()\n }, [topics, projectName])\n\n const updateTopicsDebounce = debounce((newTopics) => {\n if (isEqual(topics, newTopics)) return\n console.log('WS: Subscriptions changed')\n setTopics(newTopics)\n }, 200)\n\n PubSub.setOnSubscriptionsChange((newTopics: string[]) => updateTopicsDebounce(newTopics))\n\n const [overloaded, setOverloaded] = useState(false)\n const [toastShown, setToastShown] = useState(false)\n\n // when overloaded is true, activate toast\n useEffect(() => {\n if (overloaded)\n if (!toastShown) {\n toast.warning(<RefreshToast />, {\n autoClose: false,\n closeButton: false,\n })\n setToastShown(true)\n }\n\n return () => {\n setOverloaded(false)\n }\n }, [overloaded, setOverloaded])\n\n // onMessage is a function that is called when a message comes in from the websocket\n // it is a closure that keeps track of the number of calls and the last call time\n // Using useRef to persist the closure state across renders\n const messageStatsRef = useRef({ callCount: 0, lastCall: Date.now() })\n\n const onMessage = useCallback(\n (message: any) => {\n // If the function is called more than 100 times per second, return early.\n const threshold = 1000\n if (messageStatsRef.current.callCount > threshold) {\n setOverloaded(true)\n return console.log(\n `Overload: Over ${threshold} messages per second. Ignoring subsequent messages.`,\n )\n }\n\n let data\n try {\n data = JSON.parse(message.data)\n } catch (error) {\n console.error('Failed to parse websocket message:', error, message.data)\n return\n }\n\n const { topic, sender, summary } = data || {}\n if (topic === 'heartbeat') return\n\n if (topic === 'server.restart_requested') setServerRestartingVisible(true)\n\n if (sender === window.senderId) {\n return // my own message. ignore\n }\n\n const now = Date.now()\n if (now - messageStatsRef.current.lastCall < 1000) {\n messageStatsRef.current.callCount += 1\n } else {\n messageStatsRef.current.callCount = 0\n }\n\n messageStatsRef.current.lastCall = now\n\n if (topic === 'shout' && data?.summary?.text) toast.info(summary.text)\n\n console.log('Event RX', data)\n PubSub.publish(topic, data)\n },\n [setServerRestartingVisible],\n )\n\n useEffect(() => {\n if (readyState === ReadyState.OPEN) {\n if (serverRestartingVisible) {\n setServerRestartingVisible(false)\n // clear ayonApi\n dispatch(api.util.resetApiState())\n }\n // @ts-ignore\n getWebSocket().onmessage = onMessage\n subscribe()\n // Dispatch a fake event to the frontend components\n // in case they depend on the event stream and may\n // miss some messages - this should force reloading\n // events using graphql\n PubSub.publish('client.connected', {\n topic: 'client.connected',\n })\n }\n }, [readyState, getWebSocket])\n\n return (\n <SocketContext.Provider\n value={{\n getWebSocket,\n readyState,\n serverRestartingVisible,\n }}\n >\n {children}\n </SocketContext.Provider>\n )\n}\n\nexport const useSocketContext = () => {\n const context = useContext(SocketContext)\n if (context === undefined) {\n throw new Error('useSocketContext must be used within a SocketProvider')\n }\n return context\n}\n"],"names":["SocketContext","createContext","proto","wsAddress","SocketProvider","children","userName","projectName","dispatch","serverRestartingVisible","setServerRestartingVisible","useState","topics","setTopics","getInfo","useLazyGetSiteInfoQuery","wsOpts","sendMessage","readyState","getWebSocket","useWebSocket","subscribe","useEffect","updateTopicsDebounce","debounce","newTopics","isEqual","PubSub","overloaded","setOverloaded","toastShown","setToastShown","toast","jsx","RefreshToast","messageStatsRef","useRef","onMessage","useCallback","message","data","error","topic","sender","summary","now","_a","ReadyState","api","useSocketContext","context","useContext"],"mappings":"w6bAgBa,MAAAA,EAAgBC,gBAAgD,MAAS,EAEhFC,EAAQ,OAAO,SAAS,SAAS,QAAQ,OAAQ,IAAI,EACrDC,EAAY,GAAGD,CAAK,KAAK,OAAO,SAAS,IAAI,MAgBtCE,EAAiB,CAAC,CAC7B,SAAAC,EACA,SAAAC,EACA,YAAAC,EACA,SAAAC,CACF,IAA2B,CAEzB,KAAM,CAACC,EAAyBC,CAA0B,EAAIC,EAAAA,SAAS,EAAK,EACtE,CAACC,EAAQC,CAAS,EAAIF,EAAAA,SAAS,CAAA,CAAE,EACjC,CAACG,CAAO,EAAIC,0BAAwB,EAEpCC,EAAS,CACb,gBAAiB,IACX,CAACV,GAGD,CADgB,aAAa,QAAQ,aAAa,EAC7B,IAIzBQ,EAAQ,CAAE,KAAM,EAAO,CAAA,EAAE,OAAO,EAEzB,GAEX,EAEM,CAAE,YAAAG,EAAa,WAAAC,EAAY,aAAAC,CAAiB,EAAAC,EAAA,QAAajB,EAAWa,CAAM,EAE1EK,EAAY,IAAM,CACtBJ,EACE,KAAK,UAAU,CACb,MAAO,OACP,MAAO,aAAa,QAAQ,aAAa,EACzC,UAAWL,EACX,QAASL,CACV,CAAA,CACH,CACF,EAEAe,EAAAA,UAAU,IAAM,CACN,QAAA,MAAM,iBAAkBV,CAAM,EAC5BS,EAAA,CAAA,EACT,CAACT,EAAQL,CAAW,CAAC,EAElB,MAAAgB,EAAuBC,WAAUC,GAAc,CAC/CC,EAAA,QAAQd,EAAQa,CAAS,IAC7B,QAAQ,IAAI,2BAA2B,EACvCZ,EAAUY,CAAS,IAClB,GAAG,EAENE,EAAO,yBAA0BF,GAAwBF,EAAqBE,CAAS,CAAC,EAExF,KAAM,CAACG,EAAYC,CAAa,EAAIlB,EAAAA,SAAS,EAAK,EAC5C,CAACmB,EAAYC,CAAa,EAAIpB,EAAAA,SAAS,EAAK,EAGlDW,EAAAA,UAAU,KACJM,IACGE,IACGE,EAAAA,MAAA,QAASC,EAAAA,kBAAAA,IAAAC,EAAA,aAAA,CAAa,CAAA,EAAI,CAC9B,UAAW,GACX,YAAa,EAAA,CACd,EACDH,EAAc,EAAI,IAGf,IAAM,CACXF,EAAc,EAAK,CACrB,GACC,CAACD,EAAYC,CAAa,CAAC,EAKxB,MAAAM,EAAkBC,SAAO,CAAE,UAAW,EAAG,SAAU,KAAK,IAAI,EAAG,EAE/DC,EAAYC,EAAA,YACfC,GAAiB,OAGZ,GAAAJ,EAAgB,QAAQ,UAAY,IACtC,OAAAN,EAAc,EAAI,EACX,QAAQ,IACb,wEACF,EAGE,IAAAW,EACA,GAAA,CACKA,EAAA,KAAK,MAAMD,EAAQ,IAAI,QACvBE,EAAO,CACd,QAAQ,MAAM,qCAAsCA,EAAOF,EAAQ,IAAI,EACvE,MAAA,CAGF,KAAM,CAAE,MAAAG,EAAO,OAAAC,EAAQ,QAAAC,CAAQ,EAAIJ,GAAQ,CAAC,EAKxC,GAJAE,IAAU,cAEVA,IAAU,4BAA4BhC,EAA2B,EAAI,EAErEiC,IAAW,OAAO,UACpB,OAGI,MAAAE,EAAM,KAAK,IAAI,EACjBA,EAAMV,EAAgB,QAAQ,SAAW,IAC3CA,EAAgB,QAAQ,WAAa,EAErCA,EAAgB,QAAQ,UAAY,EAGtCA,EAAgB,QAAQ,SAAWU,EAE/BH,IAAU,WAAWI,EAAAN,GAAA,YAAAA,EAAM,UAAN,MAAAM,EAAe,OAAYd,QAAA,KAAKY,EAAQ,IAAI,EAE7D,QAAA,IAAI,WAAYJ,CAAI,EACrBb,EAAA,QAAQe,EAAOF,CAAI,CAC5B,EACA,CAAC9B,CAA0B,CAC7B,EAEAY,OAAAA,EAAAA,UAAU,IAAM,CACVJ,IAAe6B,yBAAW,OACxBtC,IACFC,EAA2B,EAAK,EAEvBF,EAAAwC,EAAA,IAAI,KAAK,eAAe,GAGnC7B,EAAA,EAAe,UAAYkB,EACjBhB,EAAA,EAKVM,EAAO,QAAQ,mBAAoB,CACjC,MAAO,kBAAA,CACR,EACH,EACC,CAACT,EAAYC,CAAY,CAAC,EAG3Bc,EAAA,kBAAA,IAACjC,EAAc,SAAd,CACC,MAAO,CACL,aAAAmB,EACA,WAAAD,EACA,wBAAAT,CACF,EAEC,SAAAJ,CAAA,CACH,CAEJ,EAEa4C,EAAmB,IAAM,CAC9B,MAAAC,EAAUC,aAAWnD,CAAa,EACxC,GAAIkD,IAAY,OACR,MAAA,IAAI,MAAM,uDAAuD,EAElE,OAAAA,CACT"}
|
|
@@ -55,6 +55,8 @@ import "../api/queries/attributes/getAttributes.es.js";
|
|
|
55
55
|
import "../api/queries/attributes/updateAttributes.es.js";
|
|
56
56
|
import "../api/queries/authentication/getAuthentication.es.js";
|
|
57
57
|
import "../api/queries/cloud/cloud.es.js";
|
|
58
|
+
import "../api/queries/config/getConfig.es.js";
|
|
59
|
+
import "../api/queries/config/updateConfig.es.js";
|
|
58
60
|
import "../api/queries/entities/getEntity.es.js";
|
|
59
61
|
import "../api/queries/entities/getEntityPanel.es.js";
|
|
60
62
|
import "../api/queries/entities/updateEntity.es.js";
|
|
@@ -244,7 +246,7 @@ import "../components/EarlyPreview/EarlyPreview.es.js";
|
|
|
244
246
|
import "../components/LegacyBadge/LegacyBadge.es.js";
|
|
245
247
|
import "../components/Menu/Menu.styled.es.js";
|
|
246
248
|
import "../components/Menu/MenuItem.es.js";
|
|
247
|
-
const k = $(void 0), Q = window.location.protocol.replace("http", "ws"), X = `${Q}//${window.location.host}/ws`,
|
|
249
|
+
const k = $(void 0), Q = window.location.protocol.replace("http", "ws"), X = `${Q}//${window.location.host}/ws`, Ep = ({
|
|
248
250
|
children: i,
|
|
249
251
|
userName: v,
|
|
250
252
|
projectName: f,
|
|
@@ -313,7 +315,7 @@ const k = $(void 0), Q = window.location.protocol.replace("http", "ws"), X = `${
|
|
|
313
315
|
children: i
|
|
314
316
|
}
|
|
315
317
|
);
|
|
316
|
-
},
|
|
318
|
+
}, Ip = () => {
|
|
317
319
|
const i = M(k);
|
|
318
320
|
if (i === void 0)
|
|
319
321
|
throw new Error("useSocketContext must be used within a SocketProvider");
|
|
@@ -321,7 +323,7 @@ const k = $(void 0), Q = window.location.protocol.replace("http", "ws"), X = `${
|
|
|
321
323
|
};
|
|
322
324
|
export {
|
|
323
325
|
k as SocketContext,
|
|
324
|
-
|
|
325
|
-
|
|
326
|
+
Ep as SocketProvider,
|
|
327
|
+
Ip as useSocketContext
|
|
326
328
|
};
|
|
327
329
|
//# sourceMappingURL=WebsocketContext.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebsocketContext.es.js","sources":["../../../../src/context/WebsocketContext.tsx"],"sourcesContent":["import { useEffect, useState, createContext, useCallback, useRef, useContext } from 'react'\nimport { toast } from 'react-toastify'\nimport { PubSub } from '@shared/util'\nimport useWebSocket, { ReadyState } from 'react-use-websocket'\nimport { debounce, isEqual } from 'lodash'\nimport api from '@shared/api'\nimport { RefreshToast } from '@shared/components'\nimport { useLazyGetSiteInfoQuery } from '@shared/api'\nimport { WebSocketLike } from 'react-use-websocket/dist/lib/types'\n\nexport type WebsocketContextType = {\n getWebSocket: () => WebSocketLike | null\n readyState: ReadyState\n serverRestartingVisible: boolean\n}\n\nexport const SocketContext = createContext<WebsocketContextType | undefined>(undefined)\n\nconst proto = window.location.protocol.replace('http', 'ws')\nconst wsAddress = `${proto}//${window.location.host}/ws`\n\n// define global window senderId type\ndeclare global {\n interface Window {\n senderId: string\n }\n}\n\nexport type SocketProviderProps = {\n children: React.ReactNode\n userName?: string\n projectName?: string\n dispatch: any\n}\n\nexport const SocketProvider = ({\n children,\n userName,\n projectName,\n dispatch,\n}: SocketProviderProps) => {\n // get user logged in\n const [serverRestartingVisible, setServerRestartingVisible] = useState(false)\n const [topics, setTopics] = useState([])\n const [getInfo] = useLazyGetSiteInfoQuery()\n\n const wsOpts = {\n shouldReconnect: () => {\n if (!userName) return false\n // check if there is a token\n const accessToken = localStorage.getItem('accessToken')\n if (!accessToken) return false\n\n // test if the token is valid\n // if it's not then this will automatically log out the user\n getInfo({ full: false }).unwrap()\n\n return true\n },\n }\n\n const { sendMessage, readyState, getWebSocket } = useWebSocket(wsAddress, wsOpts)\n\n const subscribe = () => {\n sendMessage(\n JSON.stringify({\n topic: 'auth',\n token: localStorage.getItem('accessToken'),\n subscribe: topics,\n project: projectName,\n }),\n )\n }\n\n useEffect(() => {\n console.debug('Topics changed', topics)\n subscribe()\n }, [topics, projectName])\n\n const updateTopicsDebounce = debounce((newTopics) => {\n if (isEqual(topics, newTopics)) return\n console.log('WS: Subscriptions changed')\n setTopics(newTopics)\n }, 200)\n\n PubSub.setOnSubscriptionsChange((newTopics: string[]) => updateTopicsDebounce(newTopics))\n\n const [overloaded, setOverloaded] = useState(false)\n const [toastShown, setToastShown] = useState(false)\n\n // when overloaded is true, activate toast\n useEffect(() => {\n if (overloaded)\n if (!toastShown) {\n toast.warning(<RefreshToast />, {\n autoClose: false,\n closeButton: false,\n })\n setToastShown(true)\n }\n\n return () => {\n setOverloaded(false)\n }\n }, [overloaded, setOverloaded])\n\n // onMessage is a function that is called when a message comes in from the websocket\n // it is a closure that keeps track of the number of calls and the last call time\n // Using useRef to persist the closure state across renders\n const messageStatsRef = useRef({ callCount: 0, lastCall: Date.now() })\n\n const onMessage = useCallback(\n (message: any) => {\n // If the function is called more than 100 times per second, return early.\n const threshold = 1000\n if (messageStatsRef.current.callCount > threshold) {\n setOverloaded(true)\n return console.log(\n `Overload: Over ${threshold} messages per second. Ignoring subsequent messages.`,\n )\n }\n\n let data\n try {\n data = JSON.parse(message.data)\n } catch (error) {\n console.error('Failed to parse websocket message:', error, message.data)\n return\n }\n\n const { topic, sender, summary } = data || {}\n if (topic === 'heartbeat') return\n\n if (topic === 'server.restart_requested') setServerRestartingVisible(true)\n\n if (sender === window.senderId) {\n return // my own message. ignore\n }\n\n const now = Date.now()\n if (now - messageStatsRef.current.lastCall < 1000) {\n messageStatsRef.current.callCount += 1\n } else {\n messageStatsRef.current.callCount = 0\n }\n\n messageStatsRef.current.lastCall = now\n\n if (topic === 'shout' && data?.summary?.text) toast.info(summary.text)\n\n console.log('Event RX', data)\n PubSub.publish(topic, data)\n },\n [setServerRestartingVisible],\n )\n\n useEffect(() => {\n if (readyState === ReadyState.OPEN) {\n if (serverRestartingVisible) {\n setServerRestartingVisible(false)\n // clear ayonApi\n dispatch(api.util.resetApiState())\n }\n // @ts-ignore\n getWebSocket().onmessage = onMessage\n subscribe()\n // Dispatch a fake event to the frontend components\n // in case they depend on the event stream and may\n // miss some messages - this should force reloading\n // events using graphql\n PubSub.publish('client.connected', {\n topic: 'client.connected',\n })\n }\n }, [readyState, getWebSocket])\n\n return (\n <SocketContext.Provider\n value={{\n getWebSocket,\n readyState,\n serverRestartingVisible,\n }}\n >\n {children}\n </SocketContext.Provider>\n )\n}\n\nexport const useSocketContext = () => {\n const context = useContext(SocketContext)\n if (context === undefined) {\n throw new Error('useSocketContext must be used within a SocketProvider')\n }\n return context\n}\n"],"names":["SocketContext","createContext","proto","wsAddress","SocketProvider","children","userName","projectName","dispatch","serverRestartingVisible","setServerRestartingVisible","useState","topics","setTopics","getInfo","useLazyGetSiteInfoQuery","wsOpts","sendMessage","readyState","getWebSocket","useWebSocket","subscribe","useEffect","updateTopicsDebounce","debounce","newTopics","isEqual","PubSub","overloaded","setOverloaded","toastShown","setToastShown","toast","jsx","RefreshToast","messageStatsRef","useRef","onMessage","useCallback","message","data","error","topic","sender","summary","now","_a","ReadyState","api","useSocketContext","context","useContext"],"mappings":"
|
|
1
|
+
{"version":3,"file":"WebsocketContext.es.js","sources":["../../../../src/context/WebsocketContext.tsx"],"sourcesContent":["import { useEffect, useState, createContext, useCallback, useRef, useContext } from 'react'\nimport { toast } from 'react-toastify'\nimport { PubSub } from '@shared/util'\nimport useWebSocket, { ReadyState } from 'react-use-websocket'\nimport { debounce, isEqual } from 'lodash'\nimport api from '@shared/api'\nimport { RefreshToast } from '@shared/components'\nimport { useLazyGetSiteInfoQuery } from '@shared/api'\nimport { WebSocketLike } from 'react-use-websocket/dist/lib/types'\n\nexport type WebsocketContextType = {\n getWebSocket: () => WebSocketLike | null\n readyState: ReadyState\n serverRestartingVisible: boolean\n}\n\nexport const SocketContext = createContext<WebsocketContextType | undefined>(undefined)\n\nconst proto = window.location.protocol.replace('http', 'ws')\nconst wsAddress = `${proto}//${window.location.host}/ws`\n\n// define global window senderId type\ndeclare global {\n interface Window {\n senderId: string\n }\n}\n\nexport type SocketProviderProps = {\n children: React.ReactNode\n userName?: string\n projectName?: string\n dispatch: any\n}\n\nexport const SocketProvider = ({\n children,\n userName,\n projectName,\n dispatch,\n}: SocketProviderProps) => {\n // get user logged in\n const [serverRestartingVisible, setServerRestartingVisible] = useState(false)\n const [topics, setTopics] = useState([])\n const [getInfo] = useLazyGetSiteInfoQuery()\n\n const wsOpts = {\n shouldReconnect: () => {\n if (!userName) return false\n // check if there is a token\n const accessToken = localStorage.getItem('accessToken')\n if (!accessToken) return false\n\n // test if the token is valid\n // if it's not then this will automatically log out the user\n getInfo({ full: false }).unwrap()\n\n return true\n },\n }\n\n const { sendMessage, readyState, getWebSocket } = useWebSocket(wsAddress, wsOpts)\n\n const subscribe = () => {\n sendMessage(\n JSON.stringify({\n topic: 'auth',\n token: localStorage.getItem('accessToken'),\n subscribe: topics,\n project: projectName,\n }),\n )\n }\n\n useEffect(() => {\n console.debug('Topics changed', topics)\n subscribe()\n }, [topics, projectName])\n\n const updateTopicsDebounce = debounce((newTopics) => {\n if (isEqual(topics, newTopics)) return\n console.log('WS: Subscriptions changed')\n setTopics(newTopics)\n }, 200)\n\n PubSub.setOnSubscriptionsChange((newTopics: string[]) => updateTopicsDebounce(newTopics))\n\n const [overloaded, setOverloaded] = useState(false)\n const [toastShown, setToastShown] = useState(false)\n\n // when overloaded is true, activate toast\n useEffect(() => {\n if (overloaded)\n if (!toastShown) {\n toast.warning(<RefreshToast />, {\n autoClose: false,\n closeButton: false,\n })\n setToastShown(true)\n }\n\n return () => {\n setOverloaded(false)\n }\n }, [overloaded, setOverloaded])\n\n // onMessage is a function that is called when a message comes in from the websocket\n // it is a closure that keeps track of the number of calls and the last call time\n // Using useRef to persist the closure state across renders\n const messageStatsRef = useRef({ callCount: 0, lastCall: Date.now() })\n\n const onMessage = useCallback(\n (message: any) => {\n // If the function is called more than 100 times per second, return early.\n const threshold = 1000\n if (messageStatsRef.current.callCount > threshold) {\n setOverloaded(true)\n return console.log(\n `Overload: Over ${threshold} messages per second. Ignoring subsequent messages.`,\n )\n }\n\n let data\n try {\n data = JSON.parse(message.data)\n } catch (error) {\n console.error('Failed to parse websocket message:', error, message.data)\n return\n }\n\n const { topic, sender, summary } = data || {}\n if (topic === 'heartbeat') return\n\n if (topic === 'server.restart_requested') setServerRestartingVisible(true)\n\n if (sender === window.senderId) {\n return // my own message. ignore\n }\n\n const now = Date.now()\n if (now - messageStatsRef.current.lastCall < 1000) {\n messageStatsRef.current.callCount += 1\n } else {\n messageStatsRef.current.callCount = 0\n }\n\n messageStatsRef.current.lastCall = now\n\n if (topic === 'shout' && data?.summary?.text) toast.info(summary.text)\n\n console.log('Event RX', data)\n PubSub.publish(topic, data)\n },\n [setServerRestartingVisible],\n )\n\n useEffect(() => {\n if (readyState === ReadyState.OPEN) {\n if (serverRestartingVisible) {\n setServerRestartingVisible(false)\n // clear ayonApi\n dispatch(api.util.resetApiState())\n }\n // @ts-ignore\n getWebSocket().onmessage = onMessage\n subscribe()\n // Dispatch a fake event to the frontend components\n // in case they depend on the event stream and may\n // miss some messages - this should force reloading\n // events using graphql\n PubSub.publish('client.connected', {\n topic: 'client.connected',\n })\n }\n }, [readyState, getWebSocket])\n\n return (\n <SocketContext.Provider\n value={{\n getWebSocket,\n readyState,\n serverRestartingVisible,\n }}\n >\n {children}\n </SocketContext.Provider>\n )\n}\n\nexport const useSocketContext = () => {\n const context = useContext(SocketContext)\n if (context === undefined) {\n throw new Error('useSocketContext must be used within a SocketProvider')\n }\n return context\n}\n"],"names":["SocketContext","createContext","proto","wsAddress","SocketProvider","children","userName","projectName","dispatch","serverRestartingVisible","setServerRestartingVisible","useState","topics","setTopics","getInfo","useLazyGetSiteInfoQuery","wsOpts","sendMessage","readyState","getWebSocket","useWebSocket","subscribe","useEffect","updateTopicsDebounce","debounce","newTopics","isEqual","PubSub","overloaded","setOverloaded","toastShown","setToastShown","toast","jsx","RefreshToast","messageStatsRef","useRef","onMessage","useCallback","message","data","error","topic","sender","summary","now","_a","ReadyState","api","useSocketContext","context","useContext"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBa,MAAAA,IAAgBC,EAAgD,MAAS,GAEhFC,IAAQ,OAAO,SAAS,SAAS,QAAQ,QAAQ,IAAI,GACrDC,IAAY,GAAGD,CAAK,KAAK,OAAO,SAAS,IAAI,OAgBtCE,KAAiB,CAAC;AAAA,EAC7B,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,aAAAC;AAAA,EACA,UAAAC;AACF,MAA2B;AAEzB,QAAM,CAACC,GAAyBC,CAA0B,IAAIC,EAAS,EAAK,GACtE,CAACC,GAAQC,CAAS,IAAIF,EAAS,CAAA,CAAE,GACjC,CAACG,CAAO,IAAIC,EAAwB,GAEpCC,IAAS;AAAA,IACb,iBAAiB,MACX,CAACV,KAGD,CADgB,aAAa,QAAQ,aAAa,IAC7B,MAIzBQ,EAAQ,EAAE,MAAM,GAAO,CAAA,EAAE,OAAO,GAEzB;AAAA,EAEX,GAEM,EAAE,aAAAG,GAAa,YAAAC,GAAY,cAAAC,EAAiB,IAAAC,EAAajB,GAAWa,CAAM,GAE1EK,IAAY,MAAM;AACtB,IAAAJ;AAAA,MACE,KAAK,UAAU;AAAA,QACb,OAAO;AAAA,QACP,OAAO,aAAa,QAAQ,aAAa;AAAA,QACzC,WAAWL;AAAA,QACX,SAASL;AAAA,MACV,CAAA;AAAA,IACH;AAAA,EACF;AAEA,EAAAe,EAAU,MAAM;AACN,YAAA,MAAM,kBAAkBV,CAAM,GAC5BS,EAAA;AAAA,EAAA,GACT,CAACT,GAAQL,CAAW,CAAC;AAElB,QAAAgB,IAAuBC,EAAS,CAACC,MAAc;AAC/C,IAAAC,EAAQd,GAAQa,CAAS,MAC7B,QAAQ,IAAI,2BAA2B,GACvCZ,EAAUY,CAAS;AAAA,KAClB,GAAG;AAEN,EAAAE,EAAO,yBAAyB,CAACF,MAAwBF,EAAqBE,CAAS,CAAC;AAExF,QAAM,CAACG,GAAYC,CAAa,IAAIlB,EAAS,EAAK,GAC5C,CAACmB,GAAYC,CAAa,IAAIpB,EAAS,EAAK;AAGlD,EAAAW,EAAU,OACJM,MACGE,MACGE,EAAA,QAASC,gBAAAA,EAAAA,IAAAC,GAAA,CAAa,CAAA,GAAI;AAAA,IAC9B,WAAW;AAAA,IACX,aAAa;AAAA,EAAA,CACd,GACDH,EAAc,EAAI,KAGf,MAAM;AACX,IAAAF,EAAc,EAAK;AAAA,EACrB,IACC,CAACD,GAAYC,CAAa,CAAC;AAKxB,QAAAM,IAAkBC,EAAO,EAAE,WAAW,GAAG,UAAU,KAAK,IAAI,GAAG,GAE/DC,IAAYC;AAAA,IAChB,CAACC,MAAiB;;AAGZ,UAAAJ,EAAgB,QAAQ,YAAY;AACtC,eAAAN,EAAc,EAAI,GACX,QAAQ;AAAA,UACb;AAAA,QACF;AAGE,UAAAW;AACA,UAAA;AACK,QAAAA,IAAA,KAAK,MAAMD,EAAQ,IAAI;AAAA,eACvBE,GAAO;AACd,gBAAQ,MAAM,sCAAsCA,GAAOF,EAAQ,IAAI;AACvE;AAAA,MAAA;AAGF,YAAM,EAAE,OAAAG,GAAO,QAAAC,GAAQ,SAAAC,EAAQ,IAAIJ,KAAQ,CAAC;AAKxC,UAJAE,MAAU,gBAEVA,MAAU,8BAA4BhC,EAA2B,EAAI,GAErEiC,MAAW,OAAO;AACpB;AAGI,YAAAE,IAAM,KAAK,IAAI;AACrB,MAAIA,IAAMV,EAAgB,QAAQ,WAAW,MAC3CA,EAAgB,QAAQ,aAAa,IAErCA,EAAgB,QAAQ,YAAY,GAGtCA,EAAgB,QAAQ,WAAWU,GAE/BH,MAAU,aAAWI,IAAAN,KAAA,gBAAAA,EAAM,YAAN,QAAAM,EAAe,SAAYd,EAAA,KAAKY,EAAQ,IAAI,GAE7D,QAAA,IAAI,YAAYJ,CAAI,GACrBb,EAAA,QAAQe,GAAOF,CAAI;AAAA,IAC5B;AAAA,IACA,CAAC9B,CAA0B;AAAA,EAC7B;AAEA,SAAAY,EAAU,MAAM;AACV,IAAAJ,MAAe6B,aAAW,SACxBtC,MACFC,EAA2B,EAAK,GAEvBF,EAAAwC,EAAI,KAAK,eAAe,IAGnC7B,EAAA,EAAe,YAAYkB,GACjBhB,EAAA,GAKVM,EAAO,QAAQ,oBAAoB;AAAA,MACjC,OAAO;AAAA,IAAA,CACR;AAAA,EACH,GACC,CAACT,GAAYC,CAAY,CAAC,GAG3Bc,gBAAAA,EAAA;AAAA,IAACjC,EAAc;AAAA,IAAd;AAAA,MACC,OAAO;AAAA,QACL,cAAAmB;AAAA,QACA,YAAAD;AAAA,QACA,yBAAAT;AAAA,MACF;AAAA,MAEC,UAAAJ;AAAA,IAAA;AAAA,EACH;AAEJ,GAEa4C,KAAmB,MAAM;AAC9B,QAAAC,IAAUC,EAAWnD,CAAa;AACxC,MAAIkD,MAAY;AACR,UAAA,IAAI,MAAM,uDAAuD;AAElE,SAAAA;AACT;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react-redux"),c=require("custom-protocol-check"),d=require("../api/base/client.cjs.js");require("../api/generated/graphql.cjs.js");require("../api/generated/graphqlLinks.cjs.js");require("../api/generated/access.cjs.js");require("../api/generated/actions.cjs.js");require("../api/generated/activityFeed.cjs.js");require("../api/generated/addons.cjs.js");require("../api/generated/anatomy.cjs.js");require("../api/generated/attributes.cjs.js");require("../api/generated/authentication.cjs.js");require("../api/generated/bundles.cjs.js");require("../api/generated/configuration.cjs.js");require("../api/generated/desktop.cjs.js");require("../api/generated/entityLists.cjs.js");require("../api/generated/events.cjs.js");require("../api/generated/files.cjs.js");require("../api/generated/folders.cjs.js");require("../api/generated/inbox.cjs.js");require("../api/generated/links.cjs.js");require("../api/generated/market.cjs.js");require("../api/generated/onboarding.cjs.js");require("../api/generated/operations.cjs.js");require("../api/generated/products.cjs.js");require("../api/generated/projectDashboard.cjs.js");require("../api/generated/projects.cjs.js");require("../api/generated/reviewables.cjs.js");require("../api/generated/services.cjs.js");require("../api/generated/system.cjs.js");require("../api/generated/tasks.cjs.js");require("../api/generated/teams.cjs.js");require("../api/generated/thumbnails.cjs.js");require("../api/generated/uRIs.cjs.js");require("../api/generated/users.cjs.js");require("../api/generated/versions.cjs.js");require("../api/generated/workfiles.cjs.js");require("../api/generated/ynputCloud.cjs.js");require("../api/generated/grouping.cjs.js");require("../api/generated/views.cjs.js");require("../api/queries/actions/getActions.cjs.js");require("../api/queries/activities/getActivities.cjs.js");require("../api/queries/activities/updateActivities.cjs.js");require("../api/queries/activities/updateReaction.cjs.js");require("../api/queries/activities/getMentions.cjs.js");require("../api/queries/activities/getCategories.cjs.js");require("../api/queries/addons/getAddons.cjs.js");require("../api/queries/addons/updateAddons.cjs.js");require("../api/queries/attributes/getAttributes.cjs.js");require("../api/queries/attributes/updateAttributes.cjs.js");require("../api/queries/authentication/getAuthentication.cjs.js");require("../api/queries/cloud/cloud.cjs.js");require("../api/queries/entities/getEntity.cjs.js");require("../api/queries/entities/getEntityPanel.cjs.js");require("../api/queries/entities/updateEntity.cjs.js");require("../api/queries/entityLists/getLists.cjs.js");require("../api/queries/entityLists/updateLists.cjs.js");require("../api/queries/entityLists/getListsAttributes.cjs.js");require("../api/queries/entityLists/updateListsAttributes.cjs.js");require("../api/queries/entityLists/listFolders.cjs.js");require("../api/queries/folders/getFolders.cjs.js");require("../api/queries/grouping/getGrouping.cjs.js");require("../api/queries/links/updateLinks.cjs.js");require("../api/queries/links/getLinks.cjs.js");require("../api/queries/links/getEntityLinks.cjs.js");require("../api/queries/overview/getOverview.cjs.js");require("../api/queries/overview/updateOverview.cjs.js");require("../api/queries/versions/getVersionsProducts.cjs.js");require("../api/queries/permissions/getPermissions.cjs.js");require("../api/queries/products/createProduct.cjs.js");require("../api/queries/project/getProject.cjs.js");require("../api/queries/project/updateProject.cjs.js");require("../api/queries/review/getReview.cjs.js");require("../api/queries/review/updateReview.cjs.js");require("../api/queries/share/share.cjs.js");require("../api/queries/system/getSystem.cjs.js");require("../api/queries/userDashboard/getUserDashboard.cjs.js");require("../api/queries/users/getUsers.cjs.js");require("../api/queries/users/updateUsers.cjs.js");require("../api/queries/users/guests.cjs.js");require("../api/queries/versions/updateVersions.cjs.js");require("../api/queries/views/getViews.cjs.js");require("../api/queries/views/updateViews.cjs.js");require("../api/queries/watchers/getWatchers.cjs.js");require("../api/queries/uris/getUris.cjs.js");const a=({searchParams:q,onSetSearchParams:t,onNavigate:n})=>{const o=s.useDispatch();return{handleActionPayload:(u,e)=>{if(e){if(u==="launcher")e!=null&&e.uri&&c(e.uri,()=>{},()=>{},2e3);else if(u==="query")if(Object.values(e.query).every(r=>typeof r=="string")){for(const[r,l]of Object.entries(e.query))q.set(r,l);t(q)}else throw new Error("Invalid payload: query");else if(u==="navigate"){if(typeof e.uri!="string")throw new Error("Invalid payload: navigate");n(e.uri)}else if(u==="redirect"){if(typeof e.uri!="string")throw new Error("Invalid payload: redirect");{const i=(e==null?void 0:e.new_tab)||!1;window.open(e.uri,i?"_blank":"_self")}}if("extra_download"in e){if(typeof e.extra_download!="string")throw new Error("Invalid payload: extra_download");{const i=new URL(e.extra_download,window.location.origin).href;console.log(i);const r=document.createElement("a");r.href=i,r.target="_blank",r.rel="noopener noreferrer",r.download="",document.body.appendChild(r),r.click(),document.body.removeChild(r)}}if("extra_clipboard"in e){if(typeof e.extra_clipboard!="string")throw new Error("Invalid payload: extra_clipboard");navigator.clipboard&&window.isSecureContext&&navigator.clipboard.writeText(e.extra_clipboard).catch(i=>{i.name!=="NotAllowedError"&&!i.message.includes("not allowed")&&console.error("Failed to copy text to clipboard:",i)})}if("extra_reload"in e){if(!Array.isArray(e.extra_reload))throw new Error("Invalid payload: extra_reload");e.extra_reload.length&&o(d.api.util.invalidateTags(e.extra_reload))}}}}};exports.useActionTriggers=a;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react-redux"),c=require("custom-protocol-check"),d=require("../api/base/client.cjs.js");require("../api/generated/graphql.cjs.js");require("../api/generated/graphqlLinks.cjs.js");require("../api/generated/access.cjs.js");require("../api/generated/actions.cjs.js");require("../api/generated/activityFeed.cjs.js");require("../api/generated/addons.cjs.js");require("../api/generated/anatomy.cjs.js");require("../api/generated/attributes.cjs.js");require("../api/generated/authentication.cjs.js");require("../api/generated/bundles.cjs.js");require("../api/generated/configuration.cjs.js");require("../api/generated/desktop.cjs.js");require("../api/generated/entityLists.cjs.js");require("../api/generated/events.cjs.js");require("../api/generated/files.cjs.js");require("../api/generated/folders.cjs.js");require("../api/generated/inbox.cjs.js");require("../api/generated/links.cjs.js");require("../api/generated/market.cjs.js");require("../api/generated/onboarding.cjs.js");require("../api/generated/operations.cjs.js");require("../api/generated/products.cjs.js");require("../api/generated/projectDashboard.cjs.js");require("../api/generated/projects.cjs.js");require("../api/generated/reviewables.cjs.js");require("../api/generated/services.cjs.js");require("../api/generated/system.cjs.js");require("../api/generated/tasks.cjs.js");require("../api/generated/teams.cjs.js");require("../api/generated/thumbnails.cjs.js");require("../api/generated/uRIs.cjs.js");require("../api/generated/users.cjs.js");require("../api/generated/versions.cjs.js");require("../api/generated/workfiles.cjs.js");require("../api/generated/ynputCloud.cjs.js");require("../api/generated/grouping.cjs.js");require("../api/generated/views.cjs.js");require("../api/queries/actions/getActions.cjs.js");require("../api/queries/activities/getActivities.cjs.js");require("../api/queries/activities/updateActivities.cjs.js");require("../api/queries/activities/updateReaction.cjs.js");require("../api/queries/activities/getMentions.cjs.js");require("../api/queries/activities/getCategories.cjs.js");require("../api/queries/addons/getAddons.cjs.js");require("../api/queries/addons/updateAddons.cjs.js");require("../api/queries/attributes/getAttributes.cjs.js");require("../api/queries/attributes/updateAttributes.cjs.js");require("../api/queries/authentication/getAuthentication.cjs.js");require("../api/queries/cloud/cloud.cjs.js");require("../api/queries/config/getConfig.cjs.js");require("../api/queries/config/updateConfig.cjs.js");require("../api/queries/entities/getEntity.cjs.js");require("../api/queries/entities/getEntityPanel.cjs.js");require("../api/queries/entities/updateEntity.cjs.js");require("../api/queries/entityLists/getLists.cjs.js");require("../api/queries/entityLists/updateLists.cjs.js");require("../api/queries/entityLists/getListsAttributes.cjs.js");require("../api/queries/entityLists/updateListsAttributes.cjs.js");require("../api/queries/entityLists/listFolders.cjs.js");require("../api/queries/folders/getFolders.cjs.js");require("../api/queries/grouping/getGrouping.cjs.js");require("../api/queries/links/updateLinks.cjs.js");require("../api/queries/links/getLinks.cjs.js");require("../api/queries/links/getEntityLinks.cjs.js");require("../api/queries/overview/getOverview.cjs.js");require("../api/queries/overview/updateOverview.cjs.js");require("../api/queries/versions/getVersionsProducts.cjs.js");require("../api/queries/permissions/getPermissions.cjs.js");require("../api/queries/products/createProduct.cjs.js");require("../api/queries/project/getProject.cjs.js");require("../api/queries/project/updateProject.cjs.js");require("../api/queries/review/getReview.cjs.js");require("../api/queries/review/updateReview.cjs.js");require("../api/queries/share/share.cjs.js");require("../api/queries/system/getSystem.cjs.js");require("../api/queries/userDashboard/getUserDashboard.cjs.js");require("../api/queries/users/getUsers.cjs.js");require("../api/queries/users/updateUsers.cjs.js");require("../api/queries/users/guests.cjs.js");require("../api/queries/versions/updateVersions.cjs.js");require("../api/queries/views/getViews.cjs.js");require("../api/queries/views/updateViews.cjs.js");require("../api/queries/watchers/getWatchers.cjs.js");require("../api/queries/uris/getUris.cjs.js");const a=({searchParams:q,onSetSearchParams:t,onNavigate:n})=>{const o=s.useDispatch();return{handleActionPayload:(u,e)=>{if(e){if(u==="launcher")e!=null&&e.uri&&c(e.uri,()=>{},()=>{},2e3);else if(u==="query")if(Object.values(e.query).every(r=>typeof r=="string")){for(const[r,l]of Object.entries(e.query))q.set(r,l);t(q)}else throw new Error("Invalid payload: query");else if(u==="navigate"){if(typeof e.uri!="string")throw new Error("Invalid payload: navigate");n(e.uri)}else if(u==="redirect"){if(typeof e.uri!="string")throw new Error("Invalid payload: redirect");{const i=(e==null?void 0:e.new_tab)||!1;window.open(e.uri,i?"_blank":"_self")}}if("extra_download"in e){if(typeof e.extra_download!="string")throw new Error("Invalid payload: extra_download");{const i=new URL(e.extra_download,window.location.origin).href;console.log(i);const r=document.createElement("a");r.href=i,r.target="_blank",r.rel="noopener noreferrer",r.download="",document.body.appendChild(r),r.click(),document.body.removeChild(r)}}if("extra_clipboard"in e){if(typeof e.extra_clipboard!="string")throw new Error("Invalid payload: extra_clipboard");navigator.clipboard&&window.isSecureContext&&navigator.clipboard.writeText(e.extra_clipboard).catch(i=>{i.name!=="NotAllowedError"&&!i.message.includes("not allowed")&&console.error("Failed to copy text to clipboard:",i)})}if("extra_reload"in e){if(!Array.isArray(e.extra_reload))throw new Error("Invalid payload: extra_reload");e.extra_reload.length&&o(d.api.util.invalidateTags(e.extra_reload))}}}}};exports.useActionTriggers=a;
|
|
2
2
|
//# sourceMappingURL=useActionTriggers.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useActionTriggers.cjs.js","sources":["../../../../src/hooks/useActionTriggers.ts"],"sourcesContent":["import { useDispatch } from 'react-redux'\nimport customProtocolCheck from 'custom-protocol-check'\nimport { api } from '@shared/api'\n\n\nexport type ActionTriggersProps = {\n searchParams: URLSearchParams\n onSetSearchParams: (params: URLSearchParams) => void\n onNavigate: (uri: string) => void\n}\n\ninterface QueryParams {\n [key: string]: string\n}\n\ninterface ActionPayload {\n query?: QueryParams // adds query params to the URL\n uri?: string // navigates to a different page\n new_tab?: boolean // opens a new tab\n extra_download?: string // triggers a file download from a URL\n extra_clipboard?: string // copies string content to clipboard\n extra_reload?: string[] // list of tags to invalidate\n [key: string]: any\n}\n\nexport const useActionTriggers = ({\n searchParams,\n onSetSearchParams,\n onNavigate,\n}: ActionTriggersProps) => {\n const dispatch = useDispatch()\n const handleActionPayload = (actionType: string, payload: ActionPayload | null): void => {\n if (!payload) return\n\n if (actionType === 'launcher') {\n if (payload?.uri) {\n customProtocolCheck(\n payload.uri,\n () => {},\n () => {},\n 2000,\n )\n }\n } else if (actionType === 'query') {\n // Validate it is an object of key:value pairs with value being string\n const isValid = Object.values(payload.query as QueryParams).every((value) => {\n return typeof value === 'string'\n })\n\n if (!isValid) {\n throw new Error('Invalid payload: query')\n } else {\n // Add query params to URL\n for (const [key, value] of Object.entries(payload.query as QueryParams)) {\n searchParams.set(key, value)\n }\n onSetSearchParams(searchParams)\n }\n } else if (actionType === 'navigate') {\n // Validate it is a string\n if (typeof payload.uri !== 'string') {\n throw new Error('Invalid payload: navigate')\n } else {\n // Navigate to the specified page\n onNavigate(payload.uri)\n }\n } else if (actionType === 'redirect') {\n // Validate it is a string\n if (typeof payload.uri !== 'string') {\n throw new Error('Invalid payload: redirect')\n } else {\n const newTab = payload?.new_tab || false\n window.open(payload.uri, newTab ? '_blank' : '_self')\n }\n }\n\n //\n // Sub-actions\n //\n\n if ('extra_download' in payload) {\n // Validate it is a string\n if (typeof payload.extra_download !== 'string') {\n throw new Error('Invalid payload: extra_download')\n } else {\n // Trigger file download from the URL\n const downloadUrl = new URL(payload.extra_download, window.location.origin).href\n console.log(downloadUrl)\n // Create a hidden anchor element\n const link = document.createElement('a')\n link.href = downloadUrl\n link.target = '_blank'\n link.rel = 'noopener noreferrer'\n // Set download attribute if it's a direct file download\n // If it's an API endpoint that handles the download, this is still good\n link.download = ''\n // Append to document, click and then remove\n document.body.appendChild(link)\n link.click()\n document.body.removeChild(link)\n }\n }\n\n if ('extra_clipboard' in payload) {\n // Validate it is a string\n if (typeof payload.extra_clipboard !== 'string') {\n throw new Error('Invalid payload: extra_clipboard')\n } else {\n // Copy content to clipboard\n if (navigator.clipboard && window.isSecureContext) {\n navigator.clipboard.writeText(payload.extra_clipboard).catch((err) => {\n // Only log unexpected errors, not permission denials\n if (err.name !== 'NotAllowedError' && !err.message.includes('not allowed')) {\n console.error('Failed to copy text to clipboard:', err)\n }\n })\n }\n }\n }\n\n if ('extra_reload' in payload) {\n if (!Array.isArray(payload.extra_reload)) {\n throw new Error('Invalid payload: extra_reload')\n }\n\n if (payload.extra_reload.length) {\n dispatch(api.util.invalidateTags(payload.extra_reload))\n }\n }\n\n }\n\n return { handleActionPayload }\n}"],"names":["useActionTriggers","searchParams","onSetSearchParams","onNavigate","dispatch","useDispatch","actionType","payload","customProtocolCheck","value","key","newTab","downloadUrl","link","err","api"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useActionTriggers.cjs.js","sources":["../../../../src/hooks/useActionTriggers.ts"],"sourcesContent":["import { useDispatch } from 'react-redux'\nimport customProtocolCheck from 'custom-protocol-check'\nimport { api } from '@shared/api'\n\n\nexport type ActionTriggersProps = {\n searchParams: URLSearchParams\n onSetSearchParams: (params: URLSearchParams) => void\n onNavigate: (uri: string) => void\n}\n\ninterface QueryParams {\n [key: string]: string\n}\n\ninterface ActionPayload {\n query?: QueryParams // adds query params to the URL\n uri?: string // navigates to a different page\n new_tab?: boolean // opens a new tab\n extra_download?: string // triggers a file download from a URL\n extra_clipboard?: string // copies string content to clipboard\n extra_reload?: string[] // list of tags to invalidate\n [key: string]: any\n}\n\nexport const useActionTriggers = ({\n searchParams,\n onSetSearchParams,\n onNavigate,\n}: ActionTriggersProps) => {\n const dispatch = useDispatch()\n const handleActionPayload = (actionType: string, payload: ActionPayload | null): void => {\n if (!payload) return\n\n if (actionType === 'launcher') {\n if (payload?.uri) {\n customProtocolCheck(\n payload.uri,\n () => {},\n () => {},\n 2000,\n )\n }\n } else if (actionType === 'query') {\n // Validate it is an object of key:value pairs with value being string\n const isValid = Object.values(payload.query as QueryParams).every((value) => {\n return typeof value === 'string'\n })\n\n if (!isValid) {\n throw new Error('Invalid payload: query')\n } else {\n // Add query params to URL\n for (const [key, value] of Object.entries(payload.query as QueryParams)) {\n searchParams.set(key, value)\n }\n onSetSearchParams(searchParams)\n }\n } else if (actionType === 'navigate') {\n // Validate it is a string\n if (typeof payload.uri !== 'string') {\n throw new Error('Invalid payload: navigate')\n } else {\n // Navigate to the specified page\n onNavigate(payload.uri)\n }\n } else if (actionType === 'redirect') {\n // Validate it is a string\n if (typeof payload.uri !== 'string') {\n throw new Error('Invalid payload: redirect')\n } else {\n const newTab = payload?.new_tab || false\n window.open(payload.uri, newTab ? '_blank' : '_self')\n }\n }\n\n //\n // Sub-actions\n //\n\n if ('extra_download' in payload) {\n // Validate it is a string\n if (typeof payload.extra_download !== 'string') {\n throw new Error('Invalid payload: extra_download')\n } else {\n // Trigger file download from the URL\n const downloadUrl = new URL(payload.extra_download, window.location.origin).href\n console.log(downloadUrl)\n // Create a hidden anchor element\n const link = document.createElement('a')\n link.href = downloadUrl\n link.target = '_blank'\n link.rel = 'noopener noreferrer'\n // Set download attribute if it's a direct file download\n // If it's an API endpoint that handles the download, this is still good\n link.download = ''\n // Append to document, click and then remove\n document.body.appendChild(link)\n link.click()\n document.body.removeChild(link)\n }\n }\n\n if ('extra_clipboard' in payload) {\n // Validate it is a string\n if (typeof payload.extra_clipboard !== 'string') {\n throw new Error('Invalid payload: extra_clipboard')\n } else {\n // Copy content to clipboard\n if (navigator.clipboard && window.isSecureContext) {\n navigator.clipboard.writeText(payload.extra_clipboard).catch((err) => {\n // Only log unexpected errors, not permission denials\n if (err.name !== 'NotAllowedError' && !err.message.includes('not allowed')) {\n console.error('Failed to copy text to clipboard:', err)\n }\n })\n }\n }\n }\n\n if ('extra_reload' in payload) {\n if (!Array.isArray(payload.extra_reload)) {\n throw new Error('Invalid payload: extra_reload')\n }\n\n if (payload.extra_reload.length) {\n dispatch(api.util.invalidateTags(payload.extra_reload))\n }\n }\n\n }\n\n return { handleActionPayload }\n}"],"names":["useActionTriggers","searchParams","onSetSearchParams","onNavigate","dispatch","useDispatch","actionType","payload","customProtocolCheck","value","key","newTab","downloadUrl","link","err","api"],"mappings":"yxIAyBO,MAAMA,EAAoB,CAAC,CAChC,aAAAC,EACA,kBAAAC,EACA,WAAAC,CACF,IAA2B,CACzB,MAAMC,EAAWC,EAAAA,YAAY,EAsG7B,MAAO,CAAE,oBArGmB,CAACC,EAAoBC,IAAwC,CACvF,GAAKA,EAEL,IAAID,IAAe,WACbC,GAAA,MAAAA,EAAS,KACXC,EACED,EAAQ,IACR,IAAM,CAAC,EACP,IAAM,CAAC,EACP,GACF,UAEOD,IAAe,QAMxB,GAJgB,OAAO,OAAOC,EAAQ,KAAoB,EAAE,MAAOE,GAC1D,OAAOA,GAAU,QACzB,EAIM,CAEM,SAAA,CAACC,EAAKD,CAAK,IAAK,OAAO,QAAQF,EAAQ,KAAoB,EACvDN,EAAA,IAAIS,EAAKD,CAAK,EAE7BP,EAAkBD,CAAY,CAAA,KANxB,OAAA,IAAI,MAAM,wBAAwB,UAQjCK,IAAe,WAAY,CAEhC,GAAA,OAAOC,EAAQ,KAAQ,SACnB,MAAA,IAAI,MAAM,2BAA2B,EAG3CJ,EAAWI,EAAQ,GAAG,CACxB,SACSD,IAAe,WAAY,CAEhC,GAAA,OAAOC,EAAQ,KAAQ,SACnB,MAAA,IAAI,MAAM,2BAA2B,EACtC,CACC,MAAAI,GAASJ,GAAA,YAAAA,EAAS,UAAW,GACnC,OAAO,KAAKA,EAAQ,IAAKI,EAAS,SAAW,OAAO,CAAA,CACtD,CAOF,GAAI,mBAAoBJ,EAAS,CAE3B,GAAA,OAAOA,EAAQ,gBAAmB,SAC9B,MAAA,IAAI,MAAM,iCAAiC,EAC5C,CAEC,MAAAK,EAAc,IAAI,IAAIL,EAAQ,eAAgB,OAAO,SAAS,MAAM,EAAE,KAC5E,QAAQ,IAAIK,CAAW,EAEjB,MAAAC,EAAO,SAAS,cAAc,GAAG,EACvCA,EAAK,KAAOD,EACZC,EAAK,OAAS,SACdA,EAAK,IAAM,sBAGXA,EAAK,SAAW,GAEP,SAAA,KAAK,YAAYA,CAAI,EAC9BA,EAAK,MAAM,EACF,SAAA,KAAK,YAAYA,CAAI,CAAA,CAChC,CAGF,GAAI,oBAAqBN,EAAS,CAE5B,GAAA,OAAOA,EAAQ,iBAAoB,SAC/B,MAAA,IAAI,MAAM,kCAAkC,EAG9C,UAAU,WAAa,OAAO,iBAChC,UAAU,UAAU,UAAUA,EAAQ,eAAe,EAAE,MAAOO,GAAQ,CAEhEA,EAAI,OAAS,mBAAqB,CAACA,EAAI,QAAQ,SAAS,aAAa,GAC/D,QAAA,MAAM,oCAAqCA,CAAG,CACxD,CACD,CAEL,CAGF,GAAI,iBAAkBP,EAAS,CAC7B,GAAI,CAAC,MAAM,QAAQA,EAAQ,YAAY,EAC/B,MAAA,IAAI,MAAM,+BAA+B,EAG7CA,EAAQ,aAAa,QACvBH,EAASW,EAAI,IAAA,KAAK,eAAeR,EAAQ,YAAY,CAAC,CACxD,EAGJ,CAE6B,CAC/B"}
|
|
@@ -50,6 +50,8 @@ import "../api/queries/attributes/getAttributes.es.js";
|
|
|
50
50
|
import "../api/queries/attributes/updateAttributes.es.js";
|
|
51
51
|
import "../api/queries/authentication/getAuthentication.es.js";
|
|
52
52
|
import "../api/queries/cloud/cloud.es.js";
|
|
53
|
+
import "../api/queries/config/getConfig.es.js";
|
|
54
|
+
import "../api/queries/config/updateConfig.es.js";
|
|
53
55
|
import "../api/queries/entities/getEntity.es.js";
|
|
54
56
|
import "../api/queries/entities/getEntityPanel.es.js";
|
|
55
57
|
import "../api/queries/entities/updateEntity.es.js";
|
|
@@ -83,7 +85,7 @@ import "../api/queries/views/getViews.es.js";
|
|
|
83
85
|
import "../api/queries/views/updateViews.es.js";
|
|
84
86
|
import "../api/queries/watchers/getWatchers.es.js";
|
|
85
87
|
import "../api/queries/uris/getUris.es.js";
|
|
86
|
-
const
|
|
88
|
+
const Mr = ({
|
|
87
89
|
searchParams: e,
|
|
88
90
|
onSetSearchParams: m,
|
|
89
91
|
onNavigate: p
|
|
@@ -145,6 +147,6 @@ const Jr = ({
|
|
|
145
147
|
} };
|
|
146
148
|
};
|
|
147
149
|
export {
|
|
148
|
-
|
|
150
|
+
Mr as useActionTriggers
|
|
149
151
|
};
|
|
150
152
|
//# sourceMappingURL=useActionTriggers.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useActionTriggers.es.js","sources":["../../../../src/hooks/useActionTriggers.ts"],"sourcesContent":["import { useDispatch } from 'react-redux'\nimport customProtocolCheck from 'custom-protocol-check'\nimport { api } from '@shared/api'\n\n\nexport type ActionTriggersProps = {\n searchParams: URLSearchParams\n onSetSearchParams: (params: URLSearchParams) => void\n onNavigate: (uri: string) => void\n}\n\ninterface QueryParams {\n [key: string]: string\n}\n\ninterface ActionPayload {\n query?: QueryParams // adds query params to the URL\n uri?: string // navigates to a different page\n new_tab?: boolean // opens a new tab\n extra_download?: string // triggers a file download from a URL\n extra_clipboard?: string // copies string content to clipboard\n extra_reload?: string[] // list of tags to invalidate\n [key: string]: any\n}\n\nexport const useActionTriggers = ({\n searchParams,\n onSetSearchParams,\n onNavigate,\n}: ActionTriggersProps) => {\n const dispatch = useDispatch()\n const handleActionPayload = (actionType: string, payload: ActionPayload | null): void => {\n if (!payload) return\n\n if (actionType === 'launcher') {\n if (payload?.uri) {\n customProtocolCheck(\n payload.uri,\n () => {},\n () => {},\n 2000,\n )\n }\n } else if (actionType === 'query') {\n // Validate it is an object of key:value pairs with value being string\n const isValid = Object.values(payload.query as QueryParams).every((value) => {\n return typeof value === 'string'\n })\n\n if (!isValid) {\n throw new Error('Invalid payload: query')\n } else {\n // Add query params to URL\n for (const [key, value] of Object.entries(payload.query as QueryParams)) {\n searchParams.set(key, value)\n }\n onSetSearchParams(searchParams)\n }\n } else if (actionType === 'navigate') {\n // Validate it is a string\n if (typeof payload.uri !== 'string') {\n throw new Error('Invalid payload: navigate')\n } else {\n // Navigate to the specified page\n onNavigate(payload.uri)\n }\n } else if (actionType === 'redirect') {\n // Validate it is a string\n if (typeof payload.uri !== 'string') {\n throw new Error('Invalid payload: redirect')\n } else {\n const newTab = payload?.new_tab || false\n window.open(payload.uri, newTab ? '_blank' : '_self')\n }\n }\n\n //\n // Sub-actions\n //\n\n if ('extra_download' in payload) {\n // Validate it is a string\n if (typeof payload.extra_download !== 'string') {\n throw new Error('Invalid payload: extra_download')\n } else {\n // Trigger file download from the URL\n const downloadUrl = new URL(payload.extra_download, window.location.origin).href\n console.log(downloadUrl)\n // Create a hidden anchor element\n const link = document.createElement('a')\n link.href = downloadUrl\n link.target = '_blank'\n link.rel = 'noopener noreferrer'\n // Set download attribute if it's a direct file download\n // If it's an API endpoint that handles the download, this is still good\n link.download = ''\n // Append to document, click and then remove\n document.body.appendChild(link)\n link.click()\n document.body.removeChild(link)\n }\n }\n\n if ('extra_clipboard' in payload) {\n // Validate it is a string\n if (typeof payload.extra_clipboard !== 'string') {\n throw new Error('Invalid payload: extra_clipboard')\n } else {\n // Copy content to clipboard\n if (navigator.clipboard && window.isSecureContext) {\n navigator.clipboard.writeText(payload.extra_clipboard).catch((err) => {\n // Only log unexpected errors, not permission denials\n if (err.name !== 'NotAllowedError' && !err.message.includes('not allowed')) {\n console.error('Failed to copy text to clipboard:', err)\n }\n })\n }\n }\n }\n\n if ('extra_reload' in payload) {\n if (!Array.isArray(payload.extra_reload)) {\n throw new Error('Invalid payload: extra_reload')\n }\n\n if (payload.extra_reload.length) {\n dispatch(api.util.invalidateTags(payload.extra_reload))\n }\n }\n\n }\n\n return { handleActionPayload }\n}"],"names":["useActionTriggers","searchParams","onSetSearchParams","onNavigate","dispatch","useDispatch","actionType","payload","customProtocolCheck","value","key","newTab","downloadUrl","link","err","api"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useActionTriggers.es.js","sources":["../../../../src/hooks/useActionTriggers.ts"],"sourcesContent":["import { useDispatch } from 'react-redux'\nimport customProtocolCheck from 'custom-protocol-check'\nimport { api } from '@shared/api'\n\n\nexport type ActionTriggersProps = {\n searchParams: URLSearchParams\n onSetSearchParams: (params: URLSearchParams) => void\n onNavigate: (uri: string) => void\n}\n\ninterface QueryParams {\n [key: string]: string\n}\n\ninterface ActionPayload {\n query?: QueryParams // adds query params to the URL\n uri?: string // navigates to a different page\n new_tab?: boolean // opens a new tab\n extra_download?: string // triggers a file download from a URL\n extra_clipboard?: string // copies string content to clipboard\n extra_reload?: string[] // list of tags to invalidate\n [key: string]: any\n}\n\nexport const useActionTriggers = ({\n searchParams,\n onSetSearchParams,\n onNavigate,\n}: ActionTriggersProps) => {\n const dispatch = useDispatch()\n const handleActionPayload = (actionType: string, payload: ActionPayload | null): void => {\n if (!payload) return\n\n if (actionType === 'launcher') {\n if (payload?.uri) {\n customProtocolCheck(\n payload.uri,\n () => {},\n () => {},\n 2000,\n )\n }\n } else if (actionType === 'query') {\n // Validate it is an object of key:value pairs with value being string\n const isValid = Object.values(payload.query as QueryParams).every((value) => {\n return typeof value === 'string'\n })\n\n if (!isValid) {\n throw new Error('Invalid payload: query')\n } else {\n // Add query params to URL\n for (const [key, value] of Object.entries(payload.query as QueryParams)) {\n searchParams.set(key, value)\n }\n onSetSearchParams(searchParams)\n }\n } else if (actionType === 'navigate') {\n // Validate it is a string\n if (typeof payload.uri !== 'string') {\n throw new Error('Invalid payload: navigate')\n } else {\n // Navigate to the specified page\n onNavigate(payload.uri)\n }\n } else if (actionType === 'redirect') {\n // Validate it is a string\n if (typeof payload.uri !== 'string') {\n throw new Error('Invalid payload: redirect')\n } else {\n const newTab = payload?.new_tab || false\n window.open(payload.uri, newTab ? '_blank' : '_self')\n }\n }\n\n //\n // Sub-actions\n //\n\n if ('extra_download' in payload) {\n // Validate it is a string\n if (typeof payload.extra_download !== 'string') {\n throw new Error('Invalid payload: extra_download')\n } else {\n // Trigger file download from the URL\n const downloadUrl = new URL(payload.extra_download, window.location.origin).href\n console.log(downloadUrl)\n // Create a hidden anchor element\n const link = document.createElement('a')\n link.href = downloadUrl\n link.target = '_blank'\n link.rel = 'noopener noreferrer'\n // Set download attribute if it's a direct file download\n // If it's an API endpoint that handles the download, this is still good\n link.download = ''\n // Append to document, click and then remove\n document.body.appendChild(link)\n link.click()\n document.body.removeChild(link)\n }\n }\n\n if ('extra_clipboard' in payload) {\n // Validate it is a string\n if (typeof payload.extra_clipboard !== 'string') {\n throw new Error('Invalid payload: extra_clipboard')\n } else {\n // Copy content to clipboard\n if (navigator.clipboard && window.isSecureContext) {\n navigator.clipboard.writeText(payload.extra_clipboard).catch((err) => {\n // Only log unexpected errors, not permission denials\n if (err.name !== 'NotAllowedError' && !err.message.includes('not allowed')) {\n console.error('Failed to copy text to clipboard:', err)\n }\n })\n }\n }\n }\n\n if ('extra_reload' in payload) {\n if (!Array.isArray(payload.extra_reload)) {\n throw new Error('Invalid payload: extra_reload')\n }\n\n if (payload.extra_reload.length) {\n dispatch(api.util.invalidateTags(payload.extra_reload))\n }\n }\n\n }\n\n return { handleActionPayload }\n}"],"names":["useActionTriggers","searchParams","onSetSearchParams","onNavigate","dispatch","useDispatch","actionType","payload","customProtocolCheck","value","key","newTab","downloadUrl","link","err","api"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBO,MAAMA,KAAoB,CAAC;AAAA,EAChC,cAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,YAAAC;AACF,MAA2B;AACzB,QAAMC,IAAWC,EAAY;AAsG7B,SAAO,EAAE,qBArGmB,CAACC,GAAoBC,MAAwC;AACvF,QAAKA,GAEL;AAAA,UAAID,MAAe;AACjB,QAAIC,KAAA,QAAAA,EAAS,OACXC;AAAA,UACED,EAAQ;AAAA,UACR,MAAM;AAAA,UAAC;AAAA,UACP,MAAM;AAAA,UAAC;AAAA,UACP;AAAA,QACF;AAAA,eAEOD,MAAe;AAMxB,YAJgB,OAAO,OAAOC,EAAQ,KAAoB,EAAE,MAAM,CAACE,MAC1D,OAAOA,KAAU,QACzB,GAIM;AAEM,qBAAA,CAACC,GAAKD,CAAK,KAAK,OAAO,QAAQF,EAAQ,KAAoB;AACvD,YAAAN,EAAA,IAAIS,GAAKD,CAAK;AAE7B,UAAAP,EAAkBD,CAAY;AAAA,QAAA;AANxB,gBAAA,IAAI,MAAM,wBAAwB;AAAA,eAQjCK,MAAe,YAAY;AAEhC,YAAA,OAAOC,EAAQ,OAAQ;AACnB,gBAAA,IAAI,MAAM,2BAA2B;AAG3C,QAAAJ,EAAWI,EAAQ,GAAG;AAAA,MACxB,WACSD,MAAe,YAAY;AAEhC,YAAA,OAAOC,EAAQ,OAAQ;AACnB,gBAAA,IAAI,MAAM,2BAA2B;AACtC;AACC,gBAAAI,KAASJ,KAAA,gBAAAA,EAAS,YAAW;AACnC,iBAAO,KAAKA,EAAQ,KAAKI,IAAS,WAAW,OAAO;AAAA,QAAA;AAAA,MACtD;AAOF,UAAI,oBAAoBJ,GAAS;AAE3B,YAAA,OAAOA,EAAQ,kBAAmB;AAC9B,gBAAA,IAAI,MAAM,iCAAiC;AAC5C;AAEC,gBAAAK,IAAc,IAAI,IAAIL,EAAQ,gBAAgB,OAAO,SAAS,MAAM,EAAE;AAC5E,kBAAQ,IAAIK,CAAW;AAEjB,gBAAAC,IAAO,SAAS,cAAc,GAAG;AACvC,UAAAA,EAAK,OAAOD,GACZC,EAAK,SAAS,UACdA,EAAK,MAAM,uBAGXA,EAAK,WAAW,IAEP,SAAA,KAAK,YAAYA,CAAI,GAC9BA,EAAK,MAAM,GACF,SAAA,KAAK,YAAYA,CAAI;AAAA,QAAA;AAAA,MAChC;AAGF,UAAI,qBAAqBN,GAAS;AAE5B,YAAA,OAAOA,EAAQ,mBAAoB;AAC/B,gBAAA,IAAI,MAAM,kCAAkC;AAG9C,QAAA,UAAU,aAAa,OAAO,mBAChC,UAAU,UAAU,UAAUA,EAAQ,eAAe,EAAE,MAAM,CAACO,MAAQ;AAEhE,UAAAA,EAAI,SAAS,qBAAqB,CAACA,EAAI,QAAQ,SAAS,aAAa,KAC/D,QAAA,MAAM,qCAAqCA,CAAG;AAAA,QACxD,CACD;AAAA,MAEL;AAGF,UAAI,kBAAkBP,GAAS;AAC7B,YAAI,CAAC,MAAM,QAAQA,EAAQ,YAAY;AAC/B,gBAAA,IAAI,MAAM,+BAA+B;AAG7C,QAAAA,EAAQ,aAAa,UACvBH,EAASW,EAAI,KAAK,eAAeR,EAAQ,YAAY,CAAC;AAAA,MACxD;AAAA;AAAA,EAGJ,EAE6B;AAC/B;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react-toastify");require("../api/base/client.cjs.js");require("../api/generated/graphql.cjs.js");require("../api/generated/graphqlLinks.cjs.js");require("../api/generated/access.cjs.js");require("../api/generated/actions.cjs.js");require("../api/generated/activityFeed.cjs.js");require("../api/generated/addons.cjs.js");require("../api/generated/anatomy.cjs.js");require("../api/generated/attributes.cjs.js");require("../api/generated/authentication.cjs.js");require("../api/generated/bundles.cjs.js");require("../api/generated/configuration.cjs.js");require("../api/generated/desktop.cjs.js");require("../api/generated/entityLists.cjs.js");require("../api/generated/events.cjs.js");require("../api/generated/files.cjs.js");require("../api/generated/folders.cjs.js");require("../api/generated/inbox.cjs.js");require("../api/generated/links.cjs.js");require("../api/generated/market.cjs.js");require("../api/generated/onboarding.cjs.js");require("../api/generated/operations.cjs.js");require("../api/generated/products.cjs.js");require("../api/generated/projectDashboard.cjs.js");require("../api/generated/projects.cjs.js");require("../api/generated/reviewables.cjs.js");require("../api/generated/services.cjs.js");require("../api/generated/system.cjs.js");require("../api/generated/tasks.cjs.js");require("../api/generated/teams.cjs.js");require("../api/generated/thumbnails.cjs.js");require("../api/generated/uRIs.cjs.js");require("../api/generated/users.cjs.js");require("../api/generated/versions.cjs.js");require("../api/generated/workfiles.cjs.js");require("../api/generated/ynputCloud.cjs.js");require("../api/generated/grouping.cjs.js");require("../api/generated/views.cjs.js");require("../api/queries/actions/getActions.cjs.js");require("../api/queries/activities/getActivities.cjs.js");require("../api/queries/activities/updateActivities.cjs.js");require("../api/queries/activities/updateReaction.cjs.js");require("../api/queries/activities/getMentions.cjs.js");require("../api/queries/activities/getCategories.cjs.js");require("../api/queries/addons/getAddons.cjs.js");require("../api/queries/addons/updateAddons.cjs.js");require("../api/queries/attributes/getAttributes.cjs.js");require("../api/queries/attributes/updateAttributes.cjs.js");require("../api/queries/authentication/getAuthentication.cjs.js");require("../api/queries/cloud/cloud.cjs.js");require("../api/queries/entities/getEntity.cjs.js");require("../api/queries/entities/getEntityPanel.cjs.js");const n=require("../api/queries/entities/updateEntity.cjs.js");require("../api/queries/entityLists/getLists.cjs.js");require("../api/queries/entityLists/updateLists.cjs.js");require("../api/queries/entityLists/getListsAttributes.cjs.js");require("../api/queries/entityLists/updateListsAttributes.cjs.js");require("../api/queries/entityLists/listFolders.cjs.js");require("../api/queries/folders/getFolders.cjs.js");require("../api/queries/grouping/getGrouping.cjs.js");require("../api/queries/links/updateLinks.cjs.js");require("../api/queries/links/getLinks.cjs.js");require("../api/queries/links/getEntityLinks.cjs.js");require("../api/queries/overview/getOverview.cjs.js");require("../api/queries/overview/updateOverview.cjs.js");require("../api/queries/versions/getVersionsProducts.cjs.js");require("../api/queries/permissions/getPermissions.cjs.js");require("../api/queries/products/createProduct.cjs.js");require("../api/queries/project/getProject.cjs.js");require("../api/queries/project/updateProject.cjs.js");require("../api/queries/review/getReview.cjs.js");require("../api/queries/review/updateReview.cjs.js");require("../api/queries/share/share.cjs.js");require("../api/queries/system/getSystem.cjs.js");require("../api/queries/userDashboard/getUserDashboard.cjs.js");require("../api/queries/users/getUsers.cjs.js");require("../api/queries/users/updateUsers.cjs.js");require("../api/queries/users/guests.cjs.js");require("../api/queries/versions/updateVersions.cjs.js");require("../api/queries/views/getViews.cjs.js");require("../api/queries/views/updateViews.cjs.js");require("../api/queries/watchers/getWatchers.cjs.js");require("../api/queries/uris/getUris.cjs.js");require("../context/RemoteModulesContext.cjs.js");const d=require("../context/DetailsPanelContext.cjs.js");require("../context/ThumbnailUploaderContext.cjs.js");require("../context/SettingsPanelContext.cjs.js");require("../context/pip/PiPProvider.cjs.js");require("react-dom");require("../context/pip/PiPWrapper.cjs.js");require("../context/AddonProjectContext.cjs.js");require("../context/AddonContext.cjs.js");require("../context/PowerpackContext.cjs.js");require("../context/MoveEntityContext.cjs.js");require("../context/MenuContext.cjs.js");require("../context/WebsocketContext.cjs.js");require("../context/GlobalContext.cjs.js");require("../context/ProjectContext.cjs.js");require("../context/ProjectFoldersContext.cjs.js");require("../context/UriContext.cjs.js");const c=({entities:t,entityType:r})=>{const[o]=n.useUpdateEntitiesMutation(),{onUpdateEntity:i}=d.useDetailsPanelContext();return{updateEntity:async(s,u)=>{if(u==null){console.error("value is null or undefined");return}try{const q=t.map(e=>({id:e.id,projectName:e.projectName,data:{[s]:u},currentAssignees:e.users,meta:{folderId:e.folderId}}));await o({operations:q,entityType:r}),i==null||i({operations:q,entityType:r})}catch{a.toast.error(`Error updating ${r}`)}}}};exports.useEntityUpdate=c;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react-toastify");require("../api/base/client.cjs.js");require("../api/generated/graphql.cjs.js");require("../api/generated/graphqlLinks.cjs.js");require("../api/generated/access.cjs.js");require("../api/generated/actions.cjs.js");require("../api/generated/activityFeed.cjs.js");require("../api/generated/addons.cjs.js");require("../api/generated/anatomy.cjs.js");require("../api/generated/attributes.cjs.js");require("../api/generated/authentication.cjs.js");require("../api/generated/bundles.cjs.js");require("../api/generated/configuration.cjs.js");require("../api/generated/desktop.cjs.js");require("../api/generated/entityLists.cjs.js");require("../api/generated/events.cjs.js");require("../api/generated/files.cjs.js");require("../api/generated/folders.cjs.js");require("../api/generated/inbox.cjs.js");require("../api/generated/links.cjs.js");require("../api/generated/market.cjs.js");require("../api/generated/onboarding.cjs.js");require("../api/generated/operations.cjs.js");require("../api/generated/products.cjs.js");require("../api/generated/projectDashboard.cjs.js");require("../api/generated/projects.cjs.js");require("../api/generated/reviewables.cjs.js");require("../api/generated/services.cjs.js");require("../api/generated/system.cjs.js");require("../api/generated/tasks.cjs.js");require("../api/generated/teams.cjs.js");require("../api/generated/thumbnails.cjs.js");require("../api/generated/uRIs.cjs.js");require("../api/generated/users.cjs.js");require("../api/generated/versions.cjs.js");require("../api/generated/workfiles.cjs.js");require("../api/generated/ynputCloud.cjs.js");require("../api/generated/grouping.cjs.js");require("../api/generated/views.cjs.js");require("../api/queries/actions/getActions.cjs.js");require("../api/queries/activities/getActivities.cjs.js");require("../api/queries/activities/updateActivities.cjs.js");require("../api/queries/activities/updateReaction.cjs.js");require("../api/queries/activities/getMentions.cjs.js");require("../api/queries/activities/getCategories.cjs.js");require("../api/queries/addons/getAddons.cjs.js");require("../api/queries/addons/updateAddons.cjs.js");require("../api/queries/attributes/getAttributes.cjs.js");require("../api/queries/attributes/updateAttributes.cjs.js");require("../api/queries/authentication/getAuthentication.cjs.js");require("../api/queries/cloud/cloud.cjs.js");require("../api/queries/config/getConfig.cjs.js");require("../api/queries/config/updateConfig.cjs.js");require("../api/queries/entities/getEntity.cjs.js");require("../api/queries/entities/getEntityPanel.cjs.js");const n=require("../api/queries/entities/updateEntity.cjs.js");require("../api/queries/entityLists/getLists.cjs.js");require("../api/queries/entityLists/updateLists.cjs.js");require("../api/queries/entityLists/getListsAttributes.cjs.js");require("../api/queries/entityLists/updateListsAttributes.cjs.js");require("../api/queries/entityLists/listFolders.cjs.js");require("../api/queries/folders/getFolders.cjs.js");require("../api/queries/grouping/getGrouping.cjs.js");require("../api/queries/links/updateLinks.cjs.js");require("../api/queries/links/getLinks.cjs.js");require("../api/queries/links/getEntityLinks.cjs.js");require("../api/queries/overview/getOverview.cjs.js");require("../api/queries/overview/updateOverview.cjs.js");require("../api/queries/versions/getVersionsProducts.cjs.js");require("../api/queries/permissions/getPermissions.cjs.js");require("../api/queries/products/createProduct.cjs.js");require("../api/queries/project/getProject.cjs.js");require("../api/queries/project/updateProject.cjs.js");require("../api/queries/review/getReview.cjs.js");require("../api/queries/review/updateReview.cjs.js");require("../api/queries/share/share.cjs.js");require("../api/queries/system/getSystem.cjs.js");require("../api/queries/userDashboard/getUserDashboard.cjs.js");require("../api/queries/users/getUsers.cjs.js");require("../api/queries/users/updateUsers.cjs.js");require("../api/queries/users/guests.cjs.js");require("../api/queries/versions/updateVersions.cjs.js");require("../api/queries/views/getViews.cjs.js");require("../api/queries/views/updateViews.cjs.js");require("../api/queries/watchers/getWatchers.cjs.js");require("../api/queries/uris/getUris.cjs.js");require("../context/RemoteModulesContext.cjs.js");const d=require("../context/DetailsPanelContext.cjs.js");require("../context/ThumbnailUploaderContext.cjs.js");require("../context/SettingsPanelContext.cjs.js");require("../context/pip/PiPProvider.cjs.js");require("react-dom");require("../context/pip/PiPWrapper.cjs.js");require("../context/AddonProjectContext.cjs.js");require("../context/AddonContext.cjs.js");require("../context/PowerpackContext.cjs.js");require("../context/MoveEntityContext.cjs.js");require("../context/MenuContext.cjs.js");require("../context/WebsocketContext.cjs.js");require("../context/GlobalContext.cjs.js");require("../context/ProjectContext.cjs.js");require("../context/ProjectFoldersContext.cjs.js");require("../context/UriContext.cjs.js");const c=({entities:t,entityType:r})=>{const[o]=n.useUpdateEntitiesMutation(),{onUpdateEntity:i}=d.useDetailsPanelContext();return{updateEntity:async(s,u)=>{if(u==null){console.error("value is null or undefined");return}try{const q=t.map(e=>({id:e.id,projectName:e.projectName,data:{[s]:u},currentAssignees:e.users,meta:{folderId:e.folderId}}));await o({operations:q,entityType:r}),i==null||i({operations:q,entityType:r})}catch{a.toast.error(`Error updating ${r}`)}}}};exports.useEntityUpdate=c;
|
|
2
2
|
//# sourceMappingURL=useEntityUpdate.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useEntityUpdate.cjs.js","sources":["../../../../src/hooks/useEntityUpdate.ts"],"sourcesContent":["import { toast } from 'react-toastify'\nimport { useUpdateEntitiesMutation } from '@shared/api'\nimport { useContext } from 'react'\nimport { useDetailsPanelContext } from '@shared/context'\n\ninterface Entity {\n id: string\n projectName: string\n users: string[]\n folderId?: string\n productId?: string\n}\n\nexport interface UseEntityUpdateParams {\n entities: Entity[]\n entityType: string\n}\n\n/**\n * Hook for updating entities with proper error handling and version-specific logic\n */\nexport const useEntityUpdate = ({ entities, entityType }: UseEntityUpdateParams) => {\n const [updateEntities] = useUpdateEntitiesMutation()\n const { onUpdateEntity } = useDetailsPanelContext()\n\n /**\n * Updates entities with the specified field and value\n * @param field The field to update\n * @param value The new value for the field\n * @returns Promise that resolves when the update is complete\n */\n const updateEntity = async (field: string, value: any): Promise<void> => {\n if (value === null || value === undefined) {\n console.error('value is null or undefined')\n return\n }\n\n try {\n // Build entities operations array\n const operations = entities.map((entity) => ({\n id: entity.id,\n projectName: entity.projectName,\n data: {\n [field]: value,\n },\n currentAssignees: entity.users,\n meta: {\n folderId: entity.folderId,\n },\n }))\n\n await updateEntities({ operations, entityType })\n onUpdateEntity?.({ operations, entityType })\n } catch (error) {\n toast.error(`Error updating ${entityType}`)\n }\n }\n\n return { updateEntity }\n}\n"],"names":["useEntityUpdate","entities","entityType","updateEntities","useUpdateEntitiesMutation","onUpdateEntity","useDetailsPanelContext","updateEntity","field","value","operations","entity","toast"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useEntityUpdate.cjs.js","sources":["../../../../src/hooks/useEntityUpdate.ts"],"sourcesContent":["import { toast } from 'react-toastify'\nimport { useUpdateEntitiesMutation } from '@shared/api'\nimport { useContext } from 'react'\nimport { useDetailsPanelContext } from '@shared/context'\n\ninterface Entity {\n id: string\n projectName: string\n users: string[]\n folderId?: string\n productId?: string\n}\n\nexport interface UseEntityUpdateParams {\n entities: Entity[]\n entityType: string\n}\n\n/**\n * Hook for updating entities with proper error handling and version-specific logic\n */\nexport const useEntityUpdate = ({ entities, entityType }: UseEntityUpdateParams) => {\n const [updateEntities] = useUpdateEntitiesMutation()\n const { onUpdateEntity } = useDetailsPanelContext()\n\n /**\n * Updates entities with the specified field and value\n * @param field The field to update\n * @param value The new value for the field\n * @returns Promise that resolves when the update is complete\n */\n const updateEntity = async (field: string, value: any): Promise<void> => {\n if (value === null || value === undefined) {\n console.error('value is null or undefined')\n return\n }\n\n try {\n // Build entities operations array\n const operations = entities.map((entity) => ({\n id: entity.id,\n projectName: entity.projectName,\n data: {\n [field]: value,\n },\n currentAssignees: entity.users,\n meta: {\n folderId: entity.folderId,\n },\n }))\n\n await updateEntities({ operations, entityType })\n onUpdateEntity?.({ operations, entityType })\n } catch (error) {\n toast.error(`Error updating ${entityType}`)\n }\n }\n\n return { updateEntity }\n}\n"],"names":["useEntityUpdate","entities","entityType","updateEntities","useUpdateEntitiesMutation","onUpdateEntity","useDetailsPanelContext","updateEntity","field","value","operations","entity","toast"],"mappings":"igKAqBO,MAAMA,EAAkB,CAAC,CAAE,SAAAC,EAAU,WAAAC,KAAwC,CAC5E,KAAA,CAACC,CAAc,EAAIC,4BAA0B,EAC7C,CAAE,eAAAC,CAAe,EAAIC,yBAAuB,EAmClD,MAAO,CAAEC,aA3BY,MAAOC,EAAeC,IAA8B,CACnE,GAAAA,GAAU,KAA6B,CACzC,QAAQ,MAAM,4BAA4B,EAC1C,MAAA,CAGE,GAAA,CAEF,MAAMC,EAAaT,EAAS,IAAKU,IAAY,CAC3C,GAAIA,EAAO,GACX,YAAaA,EAAO,YACpB,KAAM,CACJ,CAACH,CAAK,EAAGC,CACX,EACA,iBAAkBE,EAAO,MACzB,KAAM,CACJ,SAAUA,EAAO,QAAA,CACnB,EACA,EAEF,MAAMR,EAAe,CAAE,WAAAO,EAAY,WAAAR,EAAY,EAC9BG,GAAA,MAAAA,EAAA,CAAE,WAAAK,EAAY,WAAAR,SACjB,CACRU,EAAAA,MAAA,MAAM,kBAAkBV,CAAU,EAAE,CAAA,CAE9C,CAEsB,CACxB"}
|
|
@@ -49,6 +49,8 @@ import "../api/queries/attributes/getAttributes.es.js";
|
|
|
49
49
|
import "../api/queries/attributes/updateAttributes.es.js";
|
|
50
50
|
import "../api/queries/authentication/getAuthentication.es.js";
|
|
51
51
|
import "../api/queries/cloud/cloud.es.js";
|
|
52
|
+
import "../api/queries/config/getConfig.es.js";
|
|
53
|
+
import "../api/queries/config/updateConfig.es.js";
|
|
52
54
|
import "../api/queries/entities/getEntity.es.js";
|
|
53
55
|
import "../api/queries/entities/getEntityPanel.es.js";
|
|
54
56
|
import { useUpdateEntitiesMutation as n } from "../api/queries/entities/updateEntity.es.js";
|
|
@@ -99,7 +101,7 @@ import "../context/GlobalContext.es.js";
|
|
|
99
101
|
import "../context/ProjectContext.es.js";
|
|
100
102
|
import "../context/ProjectFoldersContext.es.js";
|
|
101
103
|
import "../context/UriContext.es.js";
|
|
102
|
-
const
|
|
104
|
+
const st = ({ entities: m, entityType: t }) => {
|
|
103
105
|
const [e] = n(), { onUpdateEntity: o } = d();
|
|
104
106
|
return { updateEntity: async (s, i) => {
|
|
105
107
|
if (i == null) {
|
|
@@ -125,6 +127,6 @@ const mt = ({ entities: m, entityType: t }) => {
|
|
|
125
127
|
} };
|
|
126
128
|
};
|
|
127
129
|
export {
|
|
128
|
-
|
|
130
|
+
st as useEntityUpdate
|
|
129
131
|
};
|
|
130
132
|
//# sourceMappingURL=useEntityUpdate.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useEntityUpdate.es.js","sources":["../../../../src/hooks/useEntityUpdate.ts"],"sourcesContent":["import { toast } from 'react-toastify'\nimport { useUpdateEntitiesMutation } from '@shared/api'\nimport { useContext } from 'react'\nimport { useDetailsPanelContext } from '@shared/context'\n\ninterface Entity {\n id: string\n projectName: string\n users: string[]\n folderId?: string\n productId?: string\n}\n\nexport interface UseEntityUpdateParams {\n entities: Entity[]\n entityType: string\n}\n\n/**\n * Hook for updating entities with proper error handling and version-specific logic\n */\nexport const useEntityUpdate = ({ entities, entityType }: UseEntityUpdateParams) => {\n const [updateEntities] = useUpdateEntitiesMutation()\n const { onUpdateEntity } = useDetailsPanelContext()\n\n /**\n * Updates entities with the specified field and value\n * @param field The field to update\n * @param value The new value for the field\n * @returns Promise that resolves when the update is complete\n */\n const updateEntity = async (field: string, value: any): Promise<void> => {\n if (value === null || value === undefined) {\n console.error('value is null or undefined')\n return\n }\n\n try {\n // Build entities operations array\n const operations = entities.map((entity) => ({\n id: entity.id,\n projectName: entity.projectName,\n data: {\n [field]: value,\n },\n currentAssignees: entity.users,\n meta: {\n folderId: entity.folderId,\n },\n }))\n\n await updateEntities({ operations, entityType })\n onUpdateEntity?.({ operations, entityType })\n } catch (error) {\n toast.error(`Error updating ${entityType}`)\n }\n }\n\n return { updateEntity }\n}\n"],"names":["useEntityUpdate","entities","entityType","updateEntities","useUpdateEntitiesMutation","onUpdateEntity","useDetailsPanelContext","field","value","operations","entity","toast"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useEntityUpdate.es.js","sources":["../../../../src/hooks/useEntityUpdate.ts"],"sourcesContent":["import { toast } from 'react-toastify'\nimport { useUpdateEntitiesMutation } from '@shared/api'\nimport { useContext } from 'react'\nimport { useDetailsPanelContext } from '@shared/context'\n\ninterface Entity {\n id: string\n projectName: string\n users: string[]\n folderId?: string\n productId?: string\n}\n\nexport interface UseEntityUpdateParams {\n entities: Entity[]\n entityType: string\n}\n\n/**\n * Hook for updating entities with proper error handling and version-specific logic\n */\nexport const useEntityUpdate = ({ entities, entityType }: UseEntityUpdateParams) => {\n const [updateEntities] = useUpdateEntitiesMutation()\n const { onUpdateEntity } = useDetailsPanelContext()\n\n /**\n * Updates entities with the specified field and value\n * @param field The field to update\n * @param value The new value for the field\n * @returns Promise that resolves when the update is complete\n */\n const updateEntity = async (field: string, value: any): Promise<void> => {\n if (value === null || value === undefined) {\n console.error('value is null or undefined')\n return\n }\n\n try {\n // Build entities operations array\n const operations = entities.map((entity) => ({\n id: entity.id,\n projectName: entity.projectName,\n data: {\n [field]: value,\n },\n currentAssignees: entity.users,\n meta: {\n folderId: entity.folderId,\n },\n }))\n\n await updateEntities({ operations, entityType })\n onUpdateEntity?.({ operations, entityType })\n } catch (error) {\n toast.error(`Error updating ${entityType}`)\n }\n }\n\n return { updateEntity }\n}\n"],"names":["useEntityUpdate","entities","entityType","updateEntities","useUpdateEntitiesMutation","onUpdateEntity","useDetailsPanelContext","field","value","operations","entity","toast"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBO,MAAMA,KAAkB,CAAC,EAAE,UAAAC,GAAU,YAAAC,QAAwC;AAC5E,QAAA,CAACC,CAAc,IAAIC,EAA0B,GAC7C,EAAE,gBAAAC,EAAe,IAAIC,EAAuB;AAmClD,SAAO,EAAE,cA3BY,OAAOC,GAAeC,MAA8B;AACnE,QAAAA,KAAU,MAA6B;AACzC,cAAQ,MAAM,4BAA4B;AAC1C;AAAA,IAAA;AAGE,QAAA;AAEF,YAAMC,IAAaR,EAAS,IAAI,CAACS,OAAY;AAAA,QAC3C,IAAIA,EAAO;AAAA,QACX,aAAaA,EAAO;AAAA,QACpB,MAAM;AAAA,UACJ,CAACH,CAAK,GAAGC;AAAA,QACX;AAAA,QACA,kBAAkBE,EAAO;AAAA,QACzB,MAAM;AAAA,UACJ,UAAUA,EAAO;AAAA,QAAA;AAAA,MACnB,EACA;AAEF,YAAMP,EAAe,EAAE,YAAAM,GAAY,YAAAP,GAAY,GAC9BG,KAAA,QAAAA,EAAA,EAAE,YAAAI,GAAY,YAAAP;YACjB;AACR,MAAAS,EAAA,MAAM,kBAAkBT,CAAU,EAAE;AAAA,IAAA;AAAA,EAE9C,EAEsB;AACxB;"}
|