@ynput/ayon-frontend-shared 0.2.21 → 0.2.22
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 +6 -5
- package/dist/DetailsPanel.cjs.js.map +1 -1
- package/dist/DetailsPanel.es.js +6 -5
- package/dist/DetailsPanel.es.js.map +1 -1
- package/dist/_virtual/index.cjs4.js +4 -4
- package/dist/_virtual/index.cjs5.js +4 -4
- package/dist/_virtual/index.cjs6.js +2 -2
- package/dist/_virtual/index.cjs7.js +2 -2
- package/dist/_virtual/index.es4.js +4 -4
- package/dist/_virtual/index.es5.js +4 -4
- package/dist/_virtual/index.es6.js +2 -2
- package/dist/_virtual/index.es7.js +2 -2
- package/dist/api.cjs.js +22 -19
- package/dist/api.cjs.js.map +1 -1
- package/dist/api.es.js +8 -5
- package/dist/api.es.js.map +1 -1
- package/dist/index.cjs.js +6 -5
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.es.js +6 -5
- package/dist/index.es.js.map +1 -1
- package/dist/node_modules/match-sorter/dist/match-sorter.esm.cjs.js +1 -1
- package/dist/node_modules/match-sorter/dist/match-sorter.esm.es.js +1 -1
- package/dist/node_modules/parse-numeric-range/index.cjs.js +1 -1
- package/dist/node_modules/parse-numeric-range/index.es.js +1 -1
- package/dist/node_modules/rehype-prism-plus/dist/index.es.cjs.js +1 -1
- package/dist/node_modules/rehype-prism-plus/dist/index.es.es.js +1 -1
- package/dist/node_modules/remove-accents/index.cjs.js +1 -1
- package/dist/node_modules/remove-accents/index.es.js +1 -1
- package/dist/shared/src/api/base/client.cjs.js +20 -19
- package/dist/shared/src/api/base/client.cjs.js.map +1 -1
- package/dist/shared/src/api/base/client.es.js +20 -19
- package/dist/shared/src/api/base/client.es.js.map +1 -1
- package/dist/shared/src/api/generated/access.cjs.js +8 -0
- package/dist/shared/src/api/generated/access.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/access.es.js +8 -0
- package/dist/shared/src/api/generated/access.es.js.map +1 -1
- package/dist/shared/src/api/generated/views.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/views.es.js.map +1 -1
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js +6 -5
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js +6 -5
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js.map +1 -1
- package/dist/shared/src/api/queries/entities/updateEntity.cjs.js +6 -5
- package/dist/shared/src/api/queries/entities/updateEntity.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/updateEntity.es.js +6 -5
- package/dist/shared/src/api/queries/entities/updateEntity.es.js.map +1 -1
- package/dist/shared/src/api/queries/overview/updateOverview.cjs.js +6 -5
- package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/overview/updateOverview.es.js +6 -5
- package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
- package/dist/shared/src/api/queries/share/share.cjs.js +66 -0
- package/dist/shared/src/api/queries/share/share.cjs.js.map +1 -0
- package/dist/shared/src/api/queries/share/share.es.js +66 -0
- package/dist/shared/src/api/queries/share/share.es.js.map +1 -0
- package/dist/shared/src/api/queries/users/getUsers.cjs.js +6 -5
- package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/users/getUsers.es.js +6 -5
- package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
- package/dist/shared/src/api/queries/views/getViews.cjs.js +5 -1
- package/dist/shared/src/api/queries/views/getViews.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/views/getViews.es.js +5 -1
- package/dist/shared/src/api/queries/views/getViews.es.js.map +1 -1
- package/dist/shared/src/api/queries/views/updateViews.cjs.js +0 -2
- package/dist/shared/src/api/queries/views/updateViews.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/views/updateViews.es.js +0 -2
- package/dist/shared/src/api/queries/views/updateViews.es.js.map +1 -1
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js +6 -5
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js +6 -5
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.cjs.js +6 -5
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.es.js +6 -5
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.es.js.map +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +6 -5
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +6 -5
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
- package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js +6 -5
- package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js.map +1 -1
- package/dist/shared/src/components/Feedback/FeedbackContext.es.js +6 -5
- package/dist/shared/src/components/Feedback/FeedbackContext.es.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +6 -5
- package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +6 -5
- package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +6 -5
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +6 -5
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +6 -5
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +6 -5
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js +6 -5
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js +6 -5
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +6 -5
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +6 -5
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +6 -5
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +6 -5
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +6 -5
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +6 -5
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js +6 -5
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js +6 -5
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js.map +1 -1
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +6 -5
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +6 -5
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +6 -5
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +6 -5
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +6 -5
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +6 -5
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +6 -5
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +6 -5
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
- package/dist/shared/src/components/Watchers/Watchers.cjs.js +6 -5
- package/dist/shared/src/components/Watchers/Watchers.cjs.js.map +1 -1
- package/dist/shared/src/components/Watchers/Watchers.es.js +6 -5
- package/dist/shared/src/components/Watchers/Watchers.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +6 -5
- package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +6 -5
- package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/Actions.cjs.js +6 -5
- package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/Actions.es.js +6 -5
- package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +6 -5
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +6 -5
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +6 -5
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +6 -5
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js +6 -5
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js +6 -5
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js +6 -5
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js +6 -5
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js +6 -5
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js +6 -5
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +6 -5
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +6 -5
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +6 -5
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +6 -5
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +6 -5
- package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/context/FeedContext.es.js +6 -5
- package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js +6 -5
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js +6 -5
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +15 -9
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +15 -9
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +6 -5
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +6 -5
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +52 -77
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +52 -77
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +6 -5
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +6 -5
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +6 -5
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +6 -5
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js +6 -5
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js +6 -5
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +6 -5
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +6 -5
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +6 -5
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +6 -5
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +6 -5
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +6 -5
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.cjs.js +6 -5
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.es.js +6 -5
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.cjs.js +14 -8
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.es.js +14 -8
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +6 -5
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +6 -5
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +6 -5
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +6 -5
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +6 -5
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +6 -5
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewItem/ViewItem.cjs.js +17 -1
- package/dist/shared/src/containers/Views/ViewItem/ViewItem.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewItem/ViewItem.es.js +17 -1
- package/dist/shared/src/containers/Views/ViewItem/ViewItem.es.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewItem/ViewItem.styled.cjs.js +4 -2
- package/dist/shared/src/containers/Views/ViewItem/ViewItem.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewItem/ViewItem.styled.es.js +4 -2
- package/dist/shared/src/containers/Views/ViewItem/ViewItem.styled.es.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.es.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js +12 -7
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js +12 -7
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -1
- package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +33 -6
- package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/context/ViewsContext.es.js +34 -7
- package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js +31 -5
- package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js +31 -5
- package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +16 -10
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +16 -10
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js +6 -5
- package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js +6 -5
- package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js +45 -6
- package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js +45 -6
- package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useViewsShortcuts.cjs.js +3 -40
- package/dist/shared/src/containers/Views/hooks/useViewsShortcuts.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useViewsShortcuts.es.js +3 -40
- package/dist/shared/src/containers/Views/hooks/useViewsShortcuts.es.js.map +1 -1
- package/dist/shared/src/containers/Views/utils/getCustomViewsFallback.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/utils/getCustomViewsFallback.es.js.map +1 -1
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js +6 -5
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js +6 -5
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js.map +1 -1
- package/dist/shared/src/context/AddonProjectContext.cjs.js +6 -5
- package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
- package/dist/shared/src/context/AddonProjectContext.es.js +6 -5
- package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
- package/dist/shared/src/context/DetailsPanelContext.cjs.js +6 -5
- package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
- package/dist/shared/src/context/DetailsPanelContext.es.js +6 -5
- package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
- package/dist/shared/src/context/PowerpackContext.cjs.js +6 -5
- package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
- package/dist/shared/src/context/PowerpackContext.es.js +6 -5
- package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
- package/dist/shared/src/context/RemoteModulesContext.cjs.js +6 -5
- package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
- package/dist/shared/src/context/RemoteModulesContext.es.js +6 -5
- package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
- package/dist/shared/src/hooks/useActionTriggers.cjs.js +6 -5
- package/dist/shared/src/hooks/useActionTriggers.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useActionTriggers.es.js +6 -5
- package/dist/shared/src/hooks/useActionTriggers.es.js.map +1 -1
- package/dist/shared/src/hooks/useEntityUpdate.cjs.js +6 -5
- package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useEntityUpdate.es.js +6 -5
- package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
- package/dist/shared/src/hooks/useLoadModule.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useLoadModule.es.js.map +1 -1
- package/dist/shared/src/hooks/useScopedStatuses.cjs.js +6 -5
- package/dist/shared/src/hooks/useScopedStatuses.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useScopedStatuses.es.js +6 -5
- package/dist/shared/src/hooks/useScopedStatuses.es.js.map +1 -1
- package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +6 -5
- package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useUserProjectConfig.es.js +6 -5
- package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
- package/dist/types/api/generated/access.d.ts +15 -0
- package/dist/types/api/generated/views.d.ts +4 -4
- package/dist/types/api/queries/index.d.ts +6 -5
- package/dist/types/api/queries/share/index.d.ts +1 -0
- package/dist/types/api/queries/share/share.d.ts +150 -0
- package/dist/types/containers/ProjectTreeTable/context/ColumnSettingsContext.d.ts +10 -15
- package/dist/types/containers/Views/ViewItem/ViewItem.d.ts +1 -0
- package/dist/types/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.d.ts +2 -1
- package/dist/types/containers/Views/context/ViewsContext.d.ts +3 -1
- package/dist/types/containers/Views/hooks/useBuildViewMenuItems.d.ts +2 -1
- package/dist/types/containers/Views/hooks/useViewsMutations.d.ts +7 -0
- package/dist/types/containers/Views/index.d.ts +1 -1
- package/dist/types/containers/Views/utils/getCustomViewsFallback.d.ts +3 -3
- package/package.json +1 -1
- package/dist/types/api/generated/powerPack1.1.1Views.d.ts +0 -25
- package/dist/types/containers/Views/hooks/useOverviewViewSettings.d.ts +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { j as jsxRuntimeExports } from "../../../../../_virtual/jsx-runtime.es.js";
|
|
2
|
-
import { createContext, useState, useMemo, useContext } from "react";
|
|
2
|
+
import { createContext, useState, useMemo, useCallback, useContext } from "react";
|
|
3
3
|
import "react-dom";
|
|
4
4
|
import "../Views.styled.es.js";
|
|
5
5
|
import "clsx";
|
|
@@ -54,6 +54,7 @@ import "../../../api/queries/addons/updateAddons.es.js";
|
|
|
54
54
|
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
|
+
import "../../../api/queries/cloud/cloud.es.js";
|
|
57
58
|
import "../../../api/queries/entities/getEntity.es.js";
|
|
58
59
|
import "../../../api/queries/entities/getEntityPanel.es.js";
|
|
59
60
|
import "../../../api/queries/entities/updateEntity.es.js";
|
|
@@ -62,24 +63,24 @@ import "../../../api/queries/entityLists/updateLists.es.js";
|
|
|
62
63
|
import "../../../api/queries/entityLists/getListsAttributes.es.js";
|
|
63
64
|
import "../../../api/queries/entityLists/updateListsAttributes.es.js";
|
|
64
65
|
import "../../../api/queries/folders/getFolders.es.js";
|
|
66
|
+
import "../../../api/queries/grouping/getGrouping.es.js";
|
|
65
67
|
import "../../../api/queries/overview/getOverview.es.js";
|
|
66
68
|
import "../../../api/queries/overview/updateOverview.es.js";
|
|
69
|
+
import "../../../api/queries/permissions/getPermissions.es.js";
|
|
70
|
+
import "../../../api/queries/products/createProduct.es.js";
|
|
67
71
|
import "../../../api/queries/project/getProject.es.js";
|
|
68
72
|
import "../../../api/queries/project/updateProject.es.js";
|
|
69
73
|
import "../../../api/queries/review/getReview.es.js";
|
|
70
74
|
import "../../../api/queries/review/updateReview.es.js";
|
|
75
|
+
import { useGetShareOptionsQuery } from "../../../api/queries/share/share.es.js";
|
|
71
76
|
import "../../../api/queries/system/getSystem.es.js";
|
|
72
77
|
import "../../../api/queries/userDashboard/getUserDashboard.es.js";
|
|
73
78
|
import { useGetCurrentUserQuery } from "../../../api/queries/users/getUsers.es.js";
|
|
74
79
|
import "../../../api/queries/users/updateUsers.es.js";
|
|
75
|
-
import "../../../api/queries/watchers/getWatchers.es.js";
|
|
76
|
-
import "../../../api/queries/permissions/getPermissions.es.js";
|
|
77
|
-
import "../../../api/queries/grouping/getGrouping.es.js";
|
|
78
80
|
import "../../../api/queries/versions/updateVersions.es.js";
|
|
79
|
-
import "../../../api/queries/products/createProduct.es.js";
|
|
80
|
-
import "../../../api/queries/cloud/cloud.es.js";
|
|
81
81
|
import { useListViewsQuery, useGetWorkingViewQuery, useGetViewQuery } from "../../../api/queries/views/getViews.es.js";
|
|
82
82
|
import { viewsQueries as updateViewsApi } from "../../../api/queries/views/updateViews.es.js";
|
|
83
|
+
import "../../../api/queries/watchers/getWatchers.es.js";
|
|
83
84
|
import "lodash";
|
|
84
85
|
import "react-toastify";
|
|
85
86
|
import "../../../context/DetailsPanelContext.es.js";
|
|
@@ -116,9 +117,16 @@ const ViewsProvider = ({
|
|
|
116
117
|
powerLicense = debug.powerLicense;
|
|
117
118
|
}
|
|
118
119
|
const { data: currentUser } = useGetCurrentUserQuery();
|
|
119
|
-
const { onCreateView, onDeleteView, onUpdateView } = useViewsMutations({
|
|
120
|
+
const { onCreateView, onDeleteView, onUpdateView, onResetWorkingView } = useViewsMutations({
|
|
121
|
+
viewType,
|
|
122
|
+
projectName
|
|
123
|
+
});
|
|
120
124
|
const [isMenuOpen, setIsMenuOpen] = useState(false);
|
|
121
125
|
const [editingView, setEditingView] = useState(null);
|
|
126
|
+
const { data: shareOptions } = useGetShareOptionsQuery(
|
|
127
|
+
{ projectName },
|
|
128
|
+
{ skip: !powerLicense || !editingView }
|
|
129
|
+
);
|
|
122
130
|
const [selectedView, setSelectedView, previousSelectedViewId] = useSelectedView({
|
|
123
131
|
viewType,
|
|
124
132
|
projectName
|
|
@@ -152,6 +160,19 @@ const ViewsProvider = ({
|
|
|
152
160
|
sourceSettings: viewSettings,
|
|
153
161
|
onUpdateView
|
|
154
162
|
});
|
|
163
|
+
const resetWorkingView = useCallback(async () => {
|
|
164
|
+
try {
|
|
165
|
+
await onResetWorkingView({
|
|
166
|
+
existingWorkingViewId: workingView == null ? void 0 : workingView.id,
|
|
167
|
+
selectedViewId: selectedView == null ? void 0 : selectedView.id,
|
|
168
|
+
setSelectedView,
|
|
169
|
+
setSettingsChanged: setViewSettingsChanged,
|
|
170
|
+
notify: true
|
|
171
|
+
});
|
|
172
|
+
} catch (error) {
|
|
173
|
+
console.error("Failed to reset view:", error);
|
|
174
|
+
}
|
|
175
|
+
}, [workingView, onResetWorkingView, selectedView, setSelectedView, setViewSettingsChanged]);
|
|
155
176
|
const viewMenuItems = useBuildViewMenuItems({
|
|
156
177
|
viewsList,
|
|
157
178
|
workingView,
|
|
@@ -160,9 +181,11 @@ const ViewsProvider = ({
|
|
|
160
181
|
currentUser,
|
|
161
182
|
useWorkingView: !powerLicense,
|
|
162
183
|
editingViewId,
|
|
184
|
+
onResetWorkingView,
|
|
163
185
|
onSelect: (viewId) => {
|
|
164
186
|
setSelectedView(viewId);
|
|
165
187
|
setViewSettingsChanged(false);
|
|
188
|
+
setIsMenuOpen(false);
|
|
166
189
|
},
|
|
167
190
|
onEdit: (viewId) => setEditingView(viewId),
|
|
168
191
|
onSave: async (viewId) => onSaveViewFromCurrent(viewId)
|
|
@@ -183,6 +206,8 @@ const ViewsProvider = ({
|
|
|
183
206
|
viewMenuItems,
|
|
184
207
|
isLoadingViews,
|
|
185
208
|
isViewWorking,
|
|
209
|
+
// data
|
|
210
|
+
shareOptions,
|
|
186
211
|
setIsMenuOpen,
|
|
187
212
|
setEditingView,
|
|
188
213
|
setSelectedView,
|
|
@@ -191,6 +216,8 @@ const ViewsProvider = ({
|
|
|
191
216
|
onCreateView,
|
|
192
217
|
onUpdateView,
|
|
193
218
|
onDeleteView,
|
|
219
|
+
// shared actions
|
|
220
|
+
resetWorkingView,
|
|
194
221
|
// api
|
|
195
222
|
api: updateViewsApi,
|
|
196
223
|
dispatch
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewsContext.es.js","sources":["../../../../../../src/containers/Views/context/ViewsContext.tsx"],"sourcesContent":["import { createContext, useContext, FC, ReactNode, useState, useMemo, useCallback } from 'react'\nimport { ViewType, WORKING_VIEW_ID } from '../index'\nimport {\n GetDefaultViewApiResponse,\n useGetCurrentUserQuery,\n useGetWorkingViewQuery,\n useGetViewQuery,\n useListViewsQuery,\n UserModel,\n ViewListItemModel,\n viewsQueries,\n} from '@shared/api'\nimport useBuildViewMenuItems from '../hooks/useBuildViewMenuItems'\nimport { ViewMenuItem } from '../ViewsMenu/ViewsMenu'\nimport { usePowerpack } from '@shared/context'\nimport { useSelectedView } from '../hooks/useSelectedView'\nimport { UseViewMutations, useViewsMutations } from '../hooks/useViewsMutations'\nimport { useSaveViewFromCurrent } from '../hooks/useSaveViewFromCurrent'\nimport { useViewSettingsChanged } from '../hooks/useViewSettingsChanged'\n\nexport type ViewData = GetDefaultViewApiResponse\nexport type ViewSettings = GetDefaultViewApiResponse['settings']\nexport type SelectedViewState = ViewData | undefined // id of view otherwise null with use working\nexport type EditingViewState = string | true | null // id of view being edited otherwise null\n\nconst viewTypes = ['overview', 'taskProgress', 'lists'] as const\nexport interface ViewsContextValue {\n // State\n viewType?: ViewType\n projectName?: string\n currentUser?: UserModel\n isMenuOpen: boolean\n editingView: EditingViewState\n selectedView: SelectedViewState\n\n // Views data\n viewsList: ViewListItemModel[]\n viewSettings: ViewSettings | undefined\n workingSettings: ViewSettings | undefined\n workingView: ViewListItemModel | undefined\n editingViewId: string | undefined\n viewMenuItems: ViewMenuItem[]\n editingViewData?: ViewData\n isLoadingViews: boolean\n isViewWorking: boolean\n\n // Actions\n setIsMenuOpen: (open: boolean) => void\n setEditingView: (editing: EditingViewState) => void\n setSelectedView: (viewId: string) => void\n onSettingsChanged: (changed: boolean) => void\n\n // Mutations\n onCreateView: UseViewMutations['onCreateView']\n onDeleteView: UseViewMutations['onDeleteView']\n onUpdateView: UseViewMutations['onUpdateView']\n\n // api\n api: typeof viewsQueries\n dispatch: any\n}\n\nconst ViewsContext = createContext<ViewsContextValue | null>(null)\n\nexport interface ViewsProviderProps {\n children: ReactNode\n viewType?: string\n projectName?: string\n dispatch?: any\n debug?: {\n powerLicense?: boolean\n }\n}\n\nexport const ViewsProvider: FC<ViewsProviderProps> = ({\n children,\n viewType: viewTypeProp,\n projectName,\n dispatch,\n debug,\n}) => {\n // validate viewType\n const viewType = viewTypes.includes(viewTypeProp as ViewType)\n ? (viewTypeProp as ViewType)\n : undefined\n\n let { powerLicense } = usePowerpack()\n if (debug?.powerLicense !== undefined) {\n console.warn('Using debug power license:', debug.powerLicense)\n powerLicense = debug.powerLicense\n }\n\n const { data: currentUser } = useGetCurrentUserQuery()\n\n const { onCreateView, onDeleteView, onUpdateView } = useViewsMutations({ viewType, projectName })\n\n const [isMenuOpen, setIsMenuOpen] = useState(false)\n const [editingView, setEditingView] = useState<EditingViewState>(null)\n\n // setting of default views\n const [selectedView, setSelectedView, previousSelectedViewId] = useSelectedView({\n viewType: viewType as string,\n projectName: projectName,\n })\n\n const [viewSettingsChanged, setViewSettingsChanged] = useViewSettingsChanged({\n viewType: viewType as ViewType,\n })\n\n // Fetch views data\n const { currentData: viewsList = [], isLoading: isLoadingViews } = useListViewsQuery(\n { projectName: projectName, viewType: viewType as string },\n { skip: !viewType },\n )\n\n // always get your working view\n const { currentData: workingView } = useGetWorkingViewQuery(\n { projectName: projectName, viewType: viewType as string },\n { skip: !viewType },\n )\n\n const workingSettings = workingView?.settings\n\n // which settings to use for the view\n const viewSettings =\n !selectedView || selectedView.id === WORKING_VIEW_ID ? workingSettings : selectedView?.settings\n\n // is the working view selected?\n const isViewWorking = selectedView?.id === workingView?.id\n // were we just on a custom view and then edited it and ended up on the working view\n const editingViewId =\n viewSettingsChanged &&\n isViewWorking &&\n !!previousSelectedViewId &&\n previousSelectedViewId !== workingView?.id\n ? previousSelectedViewId\n : undefined\n\n // get data for the view we are editing\n const { currentData: editingViewDataData } = useGetViewQuery(\n { viewId: editingView as string, projectName: projectName, viewType: viewType as string },\n { skip: !(typeof editingView === 'string') || !powerLicense },\n )\n\n const editingViewData = useMemo(\n () => (editingView === editingViewDataData?.id ? editingViewDataData : undefined),\n [editingView, editingViewDataData],\n )\n\n const { onSaveViewFromCurrent } = useSaveViewFromCurrent({\n viewType: viewType,\n projectName,\n sourceSettings: viewSettings,\n onUpdateView: onUpdateView,\n })\n\n // build the menu items for the views\n const viewMenuItems = useBuildViewMenuItems({\n viewsList,\n workingView,\n viewType,\n projectName,\n currentUser,\n useWorkingView: !powerLicense,\n editingViewId,\n onSelect: (viewId) => {\n setSelectedView(viewId)\n // reset the settings changed state when switching views\n setViewSettingsChanged(false)\n },\n onEdit: (viewId) => setEditingView(viewId),\n onSave: async (viewId) => onSaveViewFromCurrent(viewId),\n })\n\n const value: ViewsContextValue = {\n viewType,\n projectName,\n isMenuOpen,\n editingView,\n currentUser,\n selectedView,\n viewSettings,\n workingSettings,\n editingViewData,\n viewsList,\n workingView,\n editingViewId,\n viewMenuItems,\n isLoadingViews,\n isViewWorking,\n setIsMenuOpen,\n setEditingView,\n setSelectedView,\n onSettingsChanged: setViewSettingsChanged,\n // mutations\n onCreateView,\n onUpdateView,\n onDeleteView,\n // api\n api: viewsQueries,\n dispatch,\n }\n\n return <ViewsContext.Provider value={value}>{children}</ViewsContext.Provider>\n}\n\nexport const useViewsContext = (): ViewsContextValue => {\n const context = useContext(ViewsContext)\n if (!context) {\n throw new Error('useViewsContext must be used within a ViewsProvider')\n }\n return context\n}\n"],"names":["viewsQueries","jsx"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ViewsContext.es.js","sources":["../../../../../../src/containers/Views/context/ViewsContext.tsx"],"sourcesContent":["import { createContext, useContext, FC, ReactNode, useState, useMemo, useCallback } from 'react'\nimport { ViewType, WORKING_VIEW_ID } from '../index'\nimport {\n GetDefaultViewApiResponse,\n useGetCurrentUserQuery,\n useGetWorkingViewQuery,\n useGetViewQuery,\n useListViewsQuery,\n UserModel,\n ViewListItemModel,\n viewsQueries,\n useGetShareOptionsQuery,\n ShareOption,\n} from '@shared/api'\nimport useBuildViewMenuItems from '../hooks/useBuildViewMenuItems'\nimport { ViewMenuItem } from '../ViewsMenu/ViewsMenu'\nimport { usePowerpack } from '@shared/context'\nimport { useSelectedView } from '../hooks/useSelectedView'\nimport { UseViewMutations, useViewsMutations } from '../hooks/useViewsMutations'\nimport { useSaveViewFromCurrent } from '../hooks/useSaveViewFromCurrent'\nimport { useViewSettingsChanged } from '../hooks/useViewSettingsChanged'\n\nexport type ViewData = GetDefaultViewApiResponse\nexport type ViewSettings = GetDefaultViewApiResponse['settings']\nexport type SelectedViewState = ViewData | undefined // id of view otherwise null with use working\nexport type EditingViewState = string | true | null // id of view being edited otherwise null\n\nconst viewTypes = ['overview', 'taskProgress', 'lists'] as const\nexport interface ViewsContextValue {\n // State\n viewType?: ViewType\n projectName?: string\n currentUser?: UserModel\n isMenuOpen: boolean\n editingView: EditingViewState\n selectedView: SelectedViewState\n\n // Views data\n viewsList: ViewListItemModel[]\n viewSettings: ViewSettings | undefined\n workingSettings: ViewSettings | undefined\n workingView: ViewListItemModel | undefined\n editingViewId: string | undefined\n viewMenuItems: ViewMenuItem[]\n editingViewData?: ViewData\n isLoadingViews: boolean\n isViewWorking: boolean\n\n // Data\n shareOptions?: ShareOption[] // available users to share with (undefined means loading)\n\n // Actions\n setIsMenuOpen: (open: boolean) => void\n setEditingView: (editing: EditingViewState) => void\n setSelectedView: (viewId: string) => void\n onSettingsChanged: (changed: boolean) => void\n\n // Mutations\n onCreateView: UseViewMutations['onCreateView']\n onDeleteView: UseViewMutations['onDeleteView']\n onUpdateView: UseViewMutations['onUpdateView']\n\n // Actions (shared)\n resetWorkingView: () => Promise<void>\n\n // api\n api: typeof viewsQueries\n dispatch: any\n}\n\nconst ViewsContext = createContext<ViewsContextValue | null>(null)\n\nexport interface ViewsProviderProps {\n children: ReactNode\n viewType?: string\n projectName?: string\n dispatch?: any\n debug?: {\n powerLicense?: boolean\n }\n}\n\nexport const ViewsProvider: FC<ViewsProviderProps> = ({\n children,\n viewType: viewTypeProp,\n projectName,\n dispatch,\n debug,\n}) => {\n // validate viewType\n const viewType = viewTypes.includes(viewTypeProp as ViewType)\n ? (viewTypeProp as ViewType)\n : undefined\n\n let { powerLicense } = usePowerpack()\n if (debug?.powerLicense !== undefined) {\n console.warn('Using debug power license:', debug.powerLicense)\n powerLicense = debug.powerLicense\n }\n\n const { data: currentUser } = useGetCurrentUserQuery()\n\n const { onCreateView, onDeleteView, onUpdateView, onResetWorkingView } = useViewsMutations({\n viewType,\n projectName,\n })\n\n const [isMenuOpen, setIsMenuOpen] = useState(false)\n const [editingView, setEditingView] = useState<EditingViewState>(null)\n\n // when editing the view, get all users that can be shared to that view\n const { data: shareOptions } = useGetShareOptionsQuery(\n { projectName },\n { skip: !powerLicense || !editingView },\n )\n\n // setting of default views\n const [selectedView, setSelectedView, previousSelectedViewId] = useSelectedView({\n viewType: viewType as string,\n projectName: projectName,\n })\n\n const [viewSettingsChanged, setViewSettingsChanged] = useViewSettingsChanged({\n viewType: viewType as ViewType,\n })\n\n // Fetch views data\n const { currentData: viewsList = [], isLoading: isLoadingViews } = useListViewsQuery(\n { projectName: projectName, viewType: viewType as string },\n { skip: !viewType },\n )\n\n // always get your working view\n const { currentData: workingView } = useGetWorkingViewQuery(\n { projectName: projectName, viewType: viewType as string },\n { skip: !viewType },\n )\n\n const workingSettings = workingView?.settings\n\n // which settings to use for the view\n const viewSettings =\n !selectedView || selectedView.id === WORKING_VIEW_ID ? workingSettings : selectedView?.settings\n\n // is the working view selected?\n const isViewWorking = selectedView?.id === workingView?.id\n // were we just on a custom view and then edited it and ended up on the working view\n const editingViewId =\n viewSettingsChanged &&\n isViewWorking &&\n !!previousSelectedViewId &&\n previousSelectedViewId !== workingView?.id\n ? previousSelectedViewId\n : undefined\n\n // get data for the view we are editing\n const { currentData: editingViewDataData } = useGetViewQuery(\n { viewId: editingView as string, projectName: projectName, viewType: viewType as string },\n { skip: !(typeof editingView === 'string') || !powerLicense },\n )\n\n const editingViewData = useMemo(\n () => (editingView === editingViewDataData?.id ? editingViewDataData : undefined),\n [editingView, editingViewDataData],\n )\n\n const { onSaveViewFromCurrent } = useSaveViewFromCurrent({\n viewType: viewType,\n projectName,\n sourceSettings: viewSettings,\n onUpdateView: onUpdateView,\n })\n\n // Reset working view to default (empty) settings\n const resetWorkingView = useCallback(async () => {\n try {\n await onResetWorkingView({\n existingWorkingViewId: workingView?.id,\n selectedViewId: selectedView?.id,\n setSelectedView,\n setSettingsChanged: setViewSettingsChanged,\n notify: true,\n })\n } catch (error) {\n console.error('Failed to reset view:', error)\n }\n }, [workingView, onResetWorkingView, selectedView, setSelectedView, setViewSettingsChanged])\n\n // build the menu items for the views\n const viewMenuItems = useBuildViewMenuItems({\n viewsList,\n workingView,\n viewType,\n projectName,\n currentUser,\n useWorkingView: !powerLicense,\n editingViewId,\n onResetWorkingView,\n onSelect: (viewId) => {\n setSelectedView(viewId)\n // reset the settings changed state when switching views\n setViewSettingsChanged(false)\n // close the menu when selecting a view\n setIsMenuOpen(false)\n },\n onEdit: (viewId) => setEditingView(viewId),\n onSave: async (viewId) => onSaveViewFromCurrent(viewId),\n })\n\n const value: ViewsContextValue = {\n viewType,\n projectName,\n isMenuOpen,\n editingView,\n currentUser,\n selectedView,\n viewSettings,\n workingSettings,\n editingViewData,\n viewsList,\n workingView,\n editingViewId,\n viewMenuItems,\n isLoadingViews,\n isViewWorking,\n // data\n shareOptions,\n setIsMenuOpen,\n setEditingView,\n setSelectedView,\n onSettingsChanged: setViewSettingsChanged,\n // mutations\n onCreateView,\n onUpdateView,\n onDeleteView,\n // shared actions\n resetWorkingView,\n // api\n api: viewsQueries,\n dispatch,\n }\n\n return <ViewsContext.Provider value={value}>{children}</ViewsContext.Provider>\n}\n\nexport const useViewsContext = (): ViewsContextValue => {\n const context = useContext(ViewsContext)\n if (!context) {\n throw new Error('useViewsContext must be used within a ViewsProvider')\n }\n return context\n}\n"],"names":["viewsQueries","jsx"],"mappings":"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"}
|
|
@@ -38,6 +38,18 @@ const useOverviewViewSettings = () => {
|
|
|
38
38
|
);
|
|
39
39
|
const onUpdateHierarchy = React.useCallback(
|
|
40
40
|
async (newShowHierarchy) => {
|
|
41
|
+
if (newShowHierarchy && (columns == null ? void 0 : columns.groupBy)) {
|
|
42
|
+
const clearedColumns = { ...columns, groupBy: void 0 };
|
|
43
|
+
setLocalColumns(clearedColumns);
|
|
44
|
+
const settings = columnConfigConverter.convertTanstackStatesToColumnConfig(clearedColumns);
|
|
45
|
+
await updateViewSettings(
|
|
46
|
+
{ ...settings, showHierarchy: true },
|
|
47
|
+
setLocalHierarchy,
|
|
48
|
+
newShowHierarchy,
|
|
49
|
+
{ errorMessage: "Failed to update hierarchy setting" }
|
|
50
|
+
);
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
41
53
|
await updateViewSettings(
|
|
42
54
|
{ showHierarchy: newShowHierarchy },
|
|
43
55
|
setLocalHierarchy,
|
|
@@ -45,14 +57,28 @@ const useOverviewViewSettings = () => {
|
|
|
45
57
|
{ errorMessage: "Failed to update hierarchy setting" }
|
|
46
58
|
);
|
|
47
59
|
},
|
|
48
|
-
[updateViewSettings]
|
|
60
|
+
[updateViewSettings, columns]
|
|
49
61
|
);
|
|
50
62
|
const onUpdateColumns = React.useCallback(
|
|
51
63
|
async (tableSettings, allColumnIds) => {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
64
|
+
var _a, _b;
|
|
65
|
+
const derivedAll = allColumnIds || [
|
|
66
|
+
...tableSettings.columnOrder || [],
|
|
67
|
+
...Object.keys(tableSettings.columnVisibility || {}),
|
|
68
|
+
...((_a = tableSettings.columnPinning) == null ? void 0 : _a.left) || [],
|
|
69
|
+
...((_b = tableSettings.columnPinning) == null ? void 0 : _b.right) || []
|
|
70
|
+
].filter(Boolean).filter((v, i, a) => a.indexOf(v) === i);
|
|
71
|
+
const settings = columnConfigConverter.convertTanstackStatesToColumnConfig(tableSettings, derivedAll);
|
|
72
|
+
const hasGroupBy = !!tableSettings.groupBy;
|
|
73
|
+
if (hasGroupBy) {
|
|
74
|
+
setLocalHierarchy(false);
|
|
75
|
+
}
|
|
76
|
+
await updateViewSettings(
|
|
77
|
+
hasGroupBy ? { ...settings, showHierarchy: false } : settings,
|
|
78
|
+
setLocalColumns,
|
|
79
|
+
tableSettings,
|
|
80
|
+
{ errorMessage: "Failed to update columns" }
|
|
81
|
+
);
|
|
56
82
|
},
|
|
57
83
|
[updateViewSettings]
|
|
58
84
|
);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useOverviewViewSettings.cjs.js","sources":["../../../../../../../src/containers/Views/hooks/pages/useOverviewViewSettings.ts"],"sourcesContent":["/**\n * Unified hook for managing all overview page view settings.\n *\n * The hook handles:\n * - Filter settings (QueryFilter format)\n * - Hierarchy visibility toggle\n * - Column configurations (ColumnsConfig format)\n *\n * Must be used within a ViewsProvider context.\n */\n\nimport { useViewsContext } from '../../context/ViewsContext'\nimport { OverviewSettings } from '@shared/api'\nimport { ColumnsConfig } from '@shared/containers/ProjectTreeTable'\nimport {\n convertColumnConfigToTanstackStates,\n convertTanstackStatesToColumnConfig,\n} from '@shared/util'\nimport { useViewUpdateHelper } from '../../utils/viewUpdateHelper'\nimport { useState, useEffect, useCallback, useMemo } from 'react'\n\n// Import the internal QueryFilter type that the app uses\nimport { QueryFilter } from '@shared/containers/ProjectTreeTable/types/operations'\n\ntype Return = {\n // Filter management\n filters: QueryFilter\n onUpdateFilters: (filters: QueryFilter) => void\n\n // Hierarchy management\n showHierarchy: boolean\n onUpdateHierarchy: (showHierarchy: boolean) => void\n\n // Column management\n columns: ColumnsConfig\n onUpdateColumns: (columns: ColumnsConfig, allColumnIds?: string[]) => void\n}\n\nexport const useOverviewViewSettings = (): Return => {\n // this views context is per page/project\n const { viewSettings } = useViewsContext()\n\n // Local state for immediate updates\n const [localFilters, setLocalFilters] = useState<QueryFilter | null>(null)\n const [localHierarchy, setLocalHierarchy] = useState<boolean | null>(null)\n const [localColumns, setLocalColumns] = useState<ColumnsConfig | null>(null)\n\n // Get view update helper\n const { updateViewSettings } = useViewUpdateHelper()\n\n // Get server settings\n const overviewSettings = viewSettings as OverviewSettings\n const serverFilters = (overviewSettings?.filter as any) ?? {}\n const serverHierarchy = overviewSettings?.showHierarchy ?? true\n const serverColumns = useMemo(\n () => convertColumnConfigToTanstackStates(overviewSettings),\n [JSON.stringify(viewSettings)],\n )\n\n // Sync local state with server when viewSettings change\n useEffect(() => {\n setLocalFilters(null)\n setLocalHierarchy(null)\n setLocalColumns(null)\n }, [JSON.stringify(viewSettings)])\n\n // Use local state if available, otherwise use server state\n const filters = localFilters !== null ? localFilters : serverFilters\n const showHierarchy = localHierarchy !== null ? localHierarchy : serverHierarchy\n const columns = localColumns || serverColumns\n\n // Filter update handler\n const onUpdateFilters = useCallback(\n async (newFilters: QueryFilter) => {\n await updateViewSettings({ filter: newFilters as any }, setLocalFilters, newFilters, {\n errorMessage: 'Failed to update filter settings',\n })\n },\n [updateViewSettings],\n )\n\n // Hierarchy update handler\n const onUpdateHierarchy = useCallback(\n async (newShowHierarchy: boolean) => {\n await updateViewSettings(\n { showHierarchy: newShowHierarchy },\n setLocalHierarchy,\n newShowHierarchy,\n { errorMessage: 'Failed to update hierarchy setting' },\n )\n },\n [updateViewSettings],\n )\n\n // Column update handler\n const onUpdateColumns = useCallback(\n async (tableSettings: ColumnsConfig, allColumnIds?: string[]) => {\n const settings = convertTanstackStatesToColumnConfig(tableSettings,
|
|
1
|
+
{"version":3,"file":"useOverviewViewSettings.cjs.js","sources":["../../../../../../../src/containers/Views/hooks/pages/useOverviewViewSettings.ts"],"sourcesContent":["/**\n * Unified hook for managing all overview page view settings.\n *\n * The hook handles:\n * - Filter settings (QueryFilter format)\n * - Hierarchy visibility toggle\n * - Column configurations (ColumnsConfig format)\n *\n * Must be used within a ViewsProvider context.\n */\n\nimport { useViewsContext } from '../../context/ViewsContext'\nimport { OverviewSettings } from '@shared/api'\nimport { ColumnsConfig } from '@shared/containers/ProjectTreeTable'\nimport {\n convertColumnConfigToTanstackStates,\n convertTanstackStatesToColumnConfig,\n} from '@shared/util'\nimport { useViewUpdateHelper } from '../../utils/viewUpdateHelper'\nimport { useState, useEffect, useCallback, useMemo } from 'react'\n\n// Import the internal QueryFilter type that the app uses\nimport { QueryFilter } from '@shared/containers/ProjectTreeTable/types/operations'\n\ntype Return = {\n // Filter management\n filters: QueryFilter\n onUpdateFilters: (filters: QueryFilter) => void\n\n // Hierarchy management\n showHierarchy: boolean\n onUpdateHierarchy: (showHierarchy: boolean) => void\n\n // Column management\n columns: ColumnsConfig\n onUpdateColumns: (columns: ColumnsConfig, allColumnIds?: string[]) => void\n}\n\nexport const useOverviewViewSettings = (): Return => {\n // this views context is per page/project\n const { viewSettings } = useViewsContext()\n\n // Local state for immediate updates\n const [localFilters, setLocalFilters] = useState<QueryFilter | null>(null)\n const [localHierarchy, setLocalHierarchy] = useState<boolean | null>(null)\n const [localColumns, setLocalColumns] = useState<ColumnsConfig | null>(null)\n\n // Get view update helper\n const { updateViewSettings } = useViewUpdateHelper()\n\n // Get server settings\n const overviewSettings = viewSettings as OverviewSettings\n const serverFilters = (overviewSettings?.filter as any) ?? {}\n const serverHierarchy = overviewSettings?.showHierarchy ?? true\n\n const serverColumns = useMemo(\n () => convertColumnConfigToTanstackStates(overviewSettings),\n [JSON.stringify(viewSettings)],\n )\n\n // Sync local state with server when viewSettings change\n useEffect(() => {\n setLocalFilters(null)\n setLocalHierarchy(null)\n setLocalColumns(null)\n }, [JSON.stringify(viewSettings)])\n\n // Use local state if available, otherwise use server state\n const filters = localFilters !== null ? localFilters : serverFilters\n const showHierarchy = localHierarchy !== null ? localHierarchy : serverHierarchy\n const columns = localColumns || serverColumns\n\n // Filter update handler\n const onUpdateFilters = useCallback(\n async (newFilters: QueryFilter) => {\n await updateViewSettings({ filter: newFilters as any }, setLocalFilters, newFilters, {\n errorMessage: 'Failed to update filter settings',\n })\n },\n [updateViewSettings],\n )\n\n // Hierarchy update handler\n const onUpdateHierarchy = useCallback(\n async (newShowHierarchy: boolean) => {\n // If turning hierarchy ON while grouped, clear groupBy in the same update\n if (newShowHierarchy && (columns as ColumnsConfig)?.groupBy) {\n const clearedColumns: ColumnsConfig = { ...columns, groupBy: undefined }\n // Optimistically update local columns to remove grouping\n setLocalColumns(clearedColumns)\n const settings = convertTanstackStatesToColumnConfig(clearedColumns)\n await updateViewSettings(\n { ...settings, showHierarchy: true },\n setLocalHierarchy,\n newShowHierarchy,\n { errorMessage: 'Failed to update hierarchy setting' },\n )\n return\n }\n\n await updateViewSettings(\n { showHierarchy: newShowHierarchy },\n setLocalHierarchy,\n newShowHierarchy,\n { errorMessage: 'Failed to update hierarchy setting' },\n )\n },\n [updateViewSettings, columns],\n )\n\n // Column update handler\n const onUpdateColumns = useCallback(\n async (tableSettings: ColumnsConfig, allColumnIds?: string[]) => {\n // Derive a stable allColumnIds if not provided to preserve order and grouping on server\n const derivedAll =\n allColumnIds ||\n [\n ...(tableSettings.columnOrder || []),\n ...Object.keys(tableSettings.columnVisibility || {}),\n ...((tableSettings.columnPinning?.left as string[]) || []),\n ...((tableSettings.columnPinning?.right as string[]) || []),\n ]\n .filter(Boolean)\n .filter((v, i, a) => a.indexOf(v) === i)\n\n const settings = convertTanstackStatesToColumnConfig(tableSettings, derivedAll)\n const hasGroupBy = !!tableSettings.groupBy\n\n // If grouping is being set, turn off hierarchy in the same update for consistency\n if (hasGroupBy) {\n // Optimistically reflect hierarchy off\n setLocalHierarchy(false)\n }\n\n await updateViewSettings(\n hasGroupBy ? { ...settings, showHierarchy: false } : settings,\n setLocalColumns,\n tableSettings,\n { errorMessage: 'Failed to update columns' },\n )\n },\n [updateViewSettings],\n )\n\n return {\n filters,\n onUpdateFilters,\n showHierarchy,\n onUpdateHierarchy,\n columns,\n onUpdateColumns,\n }\n}\n"],"names":["useViewsContext","useState","useViewUpdateHelper","useMemo","convertColumnConfigToTanstackStates","useEffect","useCallback","convertTanstackStatesToColumnConfig"],"mappings":";;;;;;;;;AAsCO,MAAM,0BAA0B,MAAc;AAE7C,QAAA,EAAE,aAAa,IAAIA,6BAAgB;AAGzC,QAAM,CAAC,cAAc,eAAe,IAAIC,MAAAA,SAA6B,IAAI;AACzE,QAAM,CAAC,gBAAgB,iBAAiB,IAAIA,MAAAA,SAAyB,IAAI;AACzE,QAAM,CAAC,cAAc,eAAe,IAAIA,MAAAA,SAA+B,IAAI;AAGrE,QAAA,EAAE,mBAAmB,IAAIC,qCAAoB;AAGnD,QAAM,mBAAmB;AACnB,QAAA,iBAAiB,qDAAkB,WAAkB,CAAC;AACtD,QAAA,mBAAkB,qDAAkB,kBAAiB;AAE3D,QAAM,gBAAgBC,MAAA;AAAA,IACpB,MAAMC,sBAAAA,oCAAoC,gBAAgB;AAAA,IAC1D,CAAC,KAAK,UAAU,YAAY,CAAC;AAAA,EAC/B;AAGAC,QAAAA,UAAU,MAAM;AACd,oBAAgB,IAAI;AACpB,sBAAkB,IAAI;AACtB,oBAAgB,IAAI;AAAA,KACnB,CAAC,KAAK,UAAU,YAAY,CAAC,CAAC;AAG3B,QAAA,UAAU,iBAAiB,OAAO,eAAe;AACjD,QAAA,gBAAgB,mBAAmB,OAAO,iBAAiB;AACjE,QAAM,UAAU,gBAAgB;AAGhC,QAAM,kBAAkBC,MAAA;AAAA,IACtB,OAAO,eAA4B;AACjC,YAAM,mBAAmB,EAAE,QAAQ,WAAkB,GAAG,iBAAiB,YAAY;AAAA,QACnF,cAAc;AAAA,MAAA,CACf;AAAA,IACH;AAAA,IACA,CAAC,kBAAkB;AAAA,EACrB;AAGA,QAAM,oBAAoBA,MAAA;AAAA,IACxB,OAAO,qBAA8B;AAE/B,UAAA,qBAAqB,mCAA2B,UAAS;AAC3D,cAAM,iBAAgC,EAAE,GAAG,SAAS,SAAS,OAAU;AAEvE,wBAAgB,cAAc;AACxB,cAAA,WAAWC,0DAAoC,cAAc;AAC7D,cAAA;AAAA,UACJ,EAAE,GAAG,UAAU,eAAe,KAAK;AAAA,UACnC;AAAA,UACA;AAAA,UACA,EAAE,cAAc,qCAAqC;AAAA,QACvD;AACA;AAAA,MAAA;AAGI,YAAA;AAAA,QACJ,EAAE,eAAe,iBAAiB;AAAA,QAClC;AAAA,QACA;AAAA,QACA,EAAE,cAAc,qCAAqC;AAAA,MACvD;AAAA,IACF;AAAA,IACA,CAAC,oBAAoB,OAAO;AAAA,EAC9B;AAGA,QAAM,kBAAkBD,MAAA;AAAA,IACtB,OAAO,eAA8B,iBAA4B;;AAE/D,YAAM,aACJ,gBACA;AAAA,QACE,GAAI,cAAc,eAAe,CAAC;AAAA,QAClC,GAAG,OAAO,KAAK,cAAc,oBAAoB,CAAA,CAAE;AAAA,QACnD,KAAK,mBAAc,kBAAd,mBAA6B,SAAqB,CAAC;AAAA,QACxD,KAAK,mBAAc,kBAAd,mBAA6B,UAAsB,CAAA;AAAA,MAEvD,EAAA,OAAO,OAAO,EACd,OAAO,CAAC,GAAG,GAAG,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC;AAErC,YAAA,WAAWC,sBAAAA,oCAAoC,eAAe,UAAU;AACxE,YAAA,aAAa,CAAC,CAAC,cAAc;AAGnC,UAAI,YAAY;AAEd,0BAAkB,KAAK;AAAA,MAAA;AAGnB,YAAA;AAAA,QACJ,aAAa,EAAE,GAAG,UAAU,eAAe,MAAU,IAAA;AAAA,QACrD;AAAA,QACA;AAAA,QACA,EAAE,cAAc,2BAA2B;AAAA,MAC7C;AAAA,IACF;AAAA,IACA,CAAC,kBAAkB;AAAA,EACrB;AAEO,SAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;;"}
|
|
@@ -36,6 +36,18 @@ const useOverviewViewSettings = () => {
|
|
|
36
36
|
);
|
|
37
37
|
const onUpdateHierarchy = useCallback(
|
|
38
38
|
async (newShowHierarchy) => {
|
|
39
|
+
if (newShowHierarchy && (columns == null ? void 0 : columns.groupBy)) {
|
|
40
|
+
const clearedColumns = { ...columns, groupBy: void 0 };
|
|
41
|
+
setLocalColumns(clearedColumns);
|
|
42
|
+
const settings = convertTanstackStatesToColumnConfig(clearedColumns);
|
|
43
|
+
await updateViewSettings(
|
|
44
|
+
{ ...settings, showHierarchy: true },
|
|
45
|
+
setLocalHierarchy,
|
|
46
|
+
newShowHierarchy,
|
|
47
|
+
{ errorMessage: "Failed to update hierarchy setting" }
|
|
48
|
+
);
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
39
51
|
await updateViewSettings(
|
|
40
52
|
{ showHierarchy: newShowHierarchy },
|
|
41
53
|
setLocalHierarchy,
|
|
@@ -43,14 +55,28 @@ const useOverviewViewSettings = () => {
|
|
|
43
55
|
{ errorMessage: "Failed to update hierarchy setting" }
|
|
44
56
|
);
|
|
45
57
|
},
|
|
46
|
-
[updateViewSettings]
|
|
58
|
+
[updateViewSettings, columns]
|
|
47
59
|
);
|
|
48
60
|
const onUpdateColumns = useCallback(
|
|
49
61
|
async (tableSettings, allColumnIds) => {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
62
|
+
var _a, _b;
|
|
63
|
+
const derivedAll = allColumnIds || [
|
|
64
|
+
...tableSettings.columnOrder || [],
|
|
65
|
+
...Object.keys(tableSettings.columnVisibility || {}),
|
|
66
|
+
...((_a = tableSettings.columnPinning) == null ? void 0 : _a.left) || [],
|
|
67
|
+
...((_b = tableSettings.columnPinning) == null ? void 0 : _b.right) || []
|
|
68
|
+
].filter(Boolean).filter((v, i, a) => a.indexOf(v) === i);
|
|
69
|
+
const settings = convertTanstackStatesToColumnConfig(tableSettings, derivedAll);
|
|
70
|
+
const hasGroupBy = !!tableSettings.groupBy;
|
|
71
|
+
if (hasGroupBy) {
|
|
72
|
+
setLocalHierarchy(false);
|
|
73
|
+
}
|
|
74
|
+
await updateViewSettings(
|
|
75
|
+
hasGroupBy ? { ...settings, showHierarchy: false } : settings,
|
|
76
|
+
setLocalColumns,
|
|
77
|
+
tableSettings,
|
|
78
|
+
{ errorMessage: "Failed to update columns" }
|
|
79
|
+
);
|
|
54
80
|
},
|
|
55
81
|
[updateViewSettings]
|
|
56
82
|
);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useOverviewViewSettings.es.js","sources":["../../../../../../../src/containers/Views/hooks/pages/useOverviewViewSettings.ts"],"sourcesContent":["/**\n * Unified hook for managing all overview page view settings.\n *\n * The hook handles:\n * - Filter settings (QueryFilter format)\n * - Hierarchy visibility toggle\n * - Column configurations (ColumnsConfig format)\n *\n * Must be used within a ViewsProvider context.\n */\n\nimport { useViewsContext } from '../../context/ViewsContext'\nimport { OverviewSettings } from '@shared/api'\nimport { ColumnsConfig } from '@shared/containers/ProjectTreeTable'\nimport {\n convertColumnConfigToTanstackStates,\n convertTanstackStatesToColumnConfig,\n} from '@shared/util'\nimport { useViewUpdateHelper } from '../../utils/viewUpdateHelper'\nimport { useState, useEffect, useCallback, useMemo } from 'react'\n\n// Import the internal QueryFilter type that the app uses\nimport { QueryFilter } from '@shared/containers/ProjectTreeTable/types/operations'\n\ntype Return = {\n // Filter management\n filters: QueryFilter\n onUpdateFilters: (filters: QueryFilter) => void\n\n // Hierarchy management\n showHierarchy: boolean\n onUpdateHierarchy: (showHierarchy: boolean) => void\n\n // Column management\n columns: ColumnsConfig\n onUpdateColumns: (columns: ColumnsConfig, allColumnIds?: string[]) => void\n}\n\nexport const useOverviewViewSettings = (): Return => {\n // this views context is per page/project\n const { viewSettings } = useViewsContext()\n\n // Local state for immediate updates\n const [localFilters, setLocalFilters] = useState<QueryFilter | null>(null)\n const [localHierarchy, setLocalHierarchy] = useState<boolean | null>(null)\n const [localColumns, setLocalColumns] = useState<ColumnsConfig | null>(null)\n\n // Get view update helper\n const { updateViewSettings } = useViewUpdateHelper()\n\n // Get server settings\n const overviewSettings = viewSettings as OverviewSettings\n const serverFilters = (overviewSettings?.filter as any) ?? {}\n const serverHierarchy = overviewSettings?.showHierarchy ?? true\n const serverColumns = useMemo(\n () => convertColumnConfigToTanstackStates(overviewSettings),\n [JSON.stringify(viewSettings)],\n )\n\n // Sync local state with server when viewSettings change\n useEffect(() => {\n setLocalFilters(null)\n setLocalHierarchy(null)\n setLocalColumns(null)\n }, [JSON.stringify(viewSettings)])\n\n // Use local state if available, otherwise use server state\n const filters = localFilters !== null ? localFilters : serverFilters\n const showHierarchy = localHierarchy !== null ? localHierarchy : serverHierarchy\n const columns = localColumns || serverColumns\n\n // Filter update handler\n const onUpdateFilters = useCallback(\n async (newFilters: QueryFilter) => {\n await updateViewSettings({ filter: newFilters as any }, setLocalFilters, newFilters, {\n errorMessage: 'Failed to update filter settings',\n })\n },\n [updateViewSettings],\n )\n\n // Hierarchy update handler\n const onUpdateHierarchy = useCallback(\n async (newShowHierarchy: boolean) => {\n await updateViewSettings(\n { showHierarchy: newShowHierarchy },\n setLocalHierarchy,\n newShowHierarchy,\n { errorMessage: 'Failed to update hierarchy setting' },\n )\n },\n [updateViewSettings],\n )\n\n // Column update handler\n const onUpdateColumns = useCallback(\n async (tableSettings: ColumnsConfig, allColumnIds?: string[]) => {\n const settings = convertTanstackStatesToColumnConfig(tableSettings,
|
|
1
|
+
{"version":3,"file":"useOverviewViewSettings.es.js","sources":["../../../../../../../src/containers/Views/hooks/pages/useOverviewViewSettings.ts"],"sourcesContent":["/**\n * Unified hook for managing all overview page view settings.\n *\n * The hook handles:\n * - Filter settings (QueryFilter format)\n * - Hierarchy visibility toggle\n * - Column configurations (ColumnsConfig format)\n *\n * Must be used within a ViewsProvider context.\n */\n\nimport { useViewsContext } from '../../context/ViewsContext'\nimport { OverviewSettings } from '@shared/api'\nimport { ColumnsConfig } from '@shared/containers/ProjectTreeTable'\nimport {\n convertColumnConfigToTanstackStates,\n convertTanstackStatesToColumnConfig,\n} from '@shared/util'\nimport { useViewUpdateHelper } from '../../utils/viewUpdateHelper'\nimport { useState, useEffect, useCallback, useMemo } from 'react'\n\n// Import the internal QueryFilter type that the app uses\nimport { QueryFilter } from '@shared/containers/ProjectTreeTable/types/operations'\n\ntype Return = {\n // Filter management\n filters: QueryFilter\n onUpdateFilters: (filters: QueryFilter) => void\n\n // Hierarchy management\n showHierarchy: boolean\n onUpdateHierarchy: (showHierarchy: boolean) => void\n\n // Column management\n columns: ColumnsConfig\n onUpdateColumns: (columns: ColumnsConfig, allColumnIds?: string[]) => void\n}\n\nexport const useOverviewViewSettings = (): Return => {\n // this views context is per page/project\n const { viewSettings } = useViewsContext()\n\n // Local state for immediate updates\n const [localFilters, setLocalFilters] = useState<QueryFilter | null>(null)\n const [localHierarchy, setLocalHierarchy] = useState<boolean | null>(null)\n const [localColumns, setLocalColumns] = useState<ColumnsConfig | null>(null)\n\n // Get view update helper\n const { updateViewSettings } = useViewUpdateHelper()\n\n // Get server settings\n const overviewSettings = viewSettings as OverviewSettings\n const serverFilters = (overviewSettings?.filter as any) ?? {}\n const serverHierarchy = overviewSettings?.showHierarchy ?? true\n\n const serverColumns = useMemo(\n () => convertColumnConfigToTanstackStates(overviewSettings),\n [JSON.stringify(viewSettings)],\n )\n\n // Sync local state with server when viewSettings change\n useEffect(() => {\n setLocalFilters(null)\n setLocalHierarchy(null)\n setLocalColumns(null)\n }, [JSON.stringify(viewSettings)])\n\n // Use local state if available, otherwise use server state\n const filters = localFilters !== null ? localFilters : serverFilters\n const showHierarchy = localHierarchy !== null ? localHierarchy : serverHierarchy\n const columns = localColumns || serverColumns\n\n // Filter update handler\n const onUpdateFilters = useCallback(\n async (newFilters: QueryFilter) => {\n await updateViewSettings({ filter: newFilters as any }, setLocalFilters, newFilters, {\n errorMessage: 'Failed to update filter settings',\n })\n },\n [updateViewSettings],\n )\n\n // Hierarchy update handler\n const onUpdateHierarchy = useCallback(\n async (newShowHierarchy: boolean) => {\n // If turning hierarchy ON while grouped, clear groupBy in the same update\n if (newShowHierarchy && (columns as ColumnsConfig)?.groupBy) {\n const clearedColumns: ColumnsConfig = { ...columns, groupBy: undefined }\n // Optimistically update local columns to remove grouping\n setLocalColumns(clearedColumns)\n const settings = convertTanstackStatesToColumnConfig(clearedColumns)\n await updateViewSettings(\n { ...settings, showHierarchy: true },\n setLocalHierarchy,\n newShowHierarchy,\n { errorMessage: 'Failed to update hierarchy setting' },\n )\n return\n }\n\n await updateViewSettings(\n { showHierarchy: newShowHierarchy },\n setLocalHierarchy,\n newShowHierarchy,\n { errorMessage: 'Failed to update hierarchy setting' },\n )\n },\n [updateViewSettings, columns],\n )\n\n // Column update handler\n const onUpdateColumns = useCallback(\n async (tableSettings: ColumnsConfig, allColumnIds?: string[]) => {\n // Derive a stable allColumnIds if not provided to preserve order and grouping on server\n const derivedAll =\n allColumnIds ||\n [\n ...(tableSettings.columnOrder || []),\n ...Object.keys(tableSettings.columnVisibility || {}),\n ...((tableSettings.columnPinning?.left as string[]) || []),\n ...((tableSettings.columnPinning?.right as string[]) || []),\n ]\n .filter(Boolean)\n .filter((v, i, a) => a.indexOf(v) === i)\n\n const settings = convertTanstackStatesToColumnConfig(tableSettings, derivedAll)\n const hasGroupBy = !!tableSettings.groupBy\n\n // If grouping is being set, turn off hierarchy in the same update for consistency\n if (hasGroupBy) {\n // Optimistically reflect hierarchy off\n setLocalHierarchy(false)\n }\n\n await updateViewSettings(\n hasGroupBy ? { ...settings, showHierarchy: false } : settings,\n setLocalColumns,\n tableSettings,\n { errorMessage: 'Failed to update columns' },\n )\n },\n [updateViewSettings],\n )\n\n return {\n filters,\n onUpdateFilters,\n showHierarchy,\n onUpdateHierarchy,\n columns,\n onUpdateColumns,\n }\n}\n"],"names":[],"mappings":";;;;;;;AAsCO,MAAM,0BAA0B,MAAc;AAE7C,QAAA,EAAE,aAAa,IAAI,gBAAgB;AAGzC,QAAM,CAAC,cAAc,eAAe,IAAI,SAA6B,IAAI;AACzE,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,SAAyB,IAAI;AACzE,QAAM,CAAC,cAAc,eAAe,IAAI,SAA+B,IAAI;AAGrE,QAAA,EAAE,mBAAmB,IAAI,oBAAoB;AAGnD,QAAM,mBAAmB;AACnB,QAAA,iBAAiB,qDAAkB,WAAkB,CAAC;AACtD,QAAA,mBAAkB,qDAAkB,kBAAiB;AAE3D,QAAM,gBAAgB;AAAA,IACpB,MAAM,oCAAoC,gBAAgB;AAAA,IAC1D,CAAC,KAAK,UAAU,YAAY,CAAC;AAAA,EAC/B;AAGA,YAAU,MAAM;AACd,oBAAgB,IAAI;AACpB,sBAAkB,IAAI;AACtB,oBAAgB,IAAI;AAAA,KACnB,CAAC,KAAK,UAAU,YAAY,CAAC,CAAC;AAG3B,QAAA,UAAU,iBAAiB,OAAO,eAAe;AACjD,QAAA,gBAAgB,mBAAmB,OAAO,iBAAiB;AACjE,QAAM,UAAU,gBAAgB;AAGhC,QAAM,kBAAkB;AAAA,IACtB,OAAO,eAA4B;AACjC,YAAM,mBAAmB,EAAE,QAAQ,WAAkB,GAAG,iBAAiB,YAAY;AAAA,QACnF,cAAc;AAAA,MAAA,CACf;AAAA,IACH;AAAA,IACA,CAAC,kBAAkB;AAAA,EACrB;AAGA,QAAM,oBAAoB;AAAA,IACxB,OAAO,qBAA8B;AAE/B,UAAA,qBAAqB,mCAA2B,UAAS;AAC3D,cAAM,iBAAgC,EAAE,GAAG,SAAS,SAAS,OAAU;AAEvE,wBAAgB,cAAc;AACxB,cAAA,WAAW,oCAAoC,cAAc;AAC7D,cAAA;AAAA,UACJ,EAAE,GAAG,UAAU,eAAe,KAAK;AAAA,UACnC;AAAA,UACA;AAAA,UACA,EAAE,cAAc,qCAAqC;AAAA,QACvD;AACA;AAAA,MAAA;AAGI,YAAA;AAAA,QACJ,EAAE,eAAe,iBAAiB;AAAA,QAClC;AAAA,QACA;AAAA,QACA,EAAE,cAAc,qCAAqC;AAAA,MACvD;AAAA,IACF;AAAA,IACA,CAAC,oBAAoB,OAAO;AAAA,EAC9B;AAGA,QAAM,kBAAkB;AAAA,IACtB,OAAO,eAA8B,iBAA4B;;AAE/D,YAAM,aACJ,gBACA;AAAA,QACE,GAAI,cAAc,eAAe,CAAC;AAAA,QAClC,GAAG,OAAO,KAAK,cAAc,oBAAoB,CAAA,CAAE;AAAA,QACnD,KAAK,mBAAc,kBAAd,mBAA6B,SAAqB,CAAC;AAAA,QACxD,KAAK,mBAAc,kBAAd,mBAA6B,UAAsB,CAAA;AAAA,MAEvD,EAAA,OAAO,OAAO,EACd,OAAO,CAAC,GAAG,GAAG,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC;AAErC,YAAA,WAAW,oCAAoC,eAAe,UAAU;AACxE,YAAA,aAAa,CAAC,CAAC,cAAc;AAGnC,UAAI,YAAY;AAEd,0BAAkB,KAAK;AAAA,MAAA;AAGnB,YAAA;AAAA,QACJ,aAAa,EAAE,GAAG,UAAU,eAAe,MAAU,IAAA;AAAA,QACrD;AAAA,QACA;AAAA,QACA,EAAE,cAAc,2BAA2B;AAAA,MAC7C;AAAA,IACF;AAAA,IACA,CAAC,kBAAkB;AAAA,EACrB;AAEO,SAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;"}
|
|
@@ -48,6 +48,7 @@ require("../../../api/queries/addons/updateAddons.cjs.js");
|
|
|
48
48
|
require("../../../api/queries/attributes/getAttributes.cjs.js");
|
|
49
49
|
require("../../../api/queries/attributes/updateAttributes.cjs.js");
|
|
50
50
|
require("../../../api/queries/authentication/getAuthentication.cjs.js");
|
|
51
|
+
require("../../../api/queries/cloud/cloud.cjs.js");
|
|
51
52
|
require("../../../api/queries/entities/getEntity.cjs.js");
|
|
52
53
|
require("../../../api/queries/entities/getEntityPanel.cjs.js");
|
|
53
54
|
require("../../../api/queries/entities/updateEntity.cjs.js");
|
|
@@ -56,24 +57,24 @@ require("../../../api/queries/entityLists/updateLists.cjs.js");
|
|
|
56
57
|
require("../../../api/queries/entityLists/getListsAttributes.cjs.js");
|
|
57
58
|
require("../../../api/queries/entityLists/updateListsAttributes.cjs.js");
|
|
58
59
|
require("../../../api/queries/folders/getFolders.cjs.js");
|
|
60
|
+
require("../../../api/queries/grouping/getGrouping.cjs.js");
|
|
59
61
|
require("../../../api/queries/overview/getOverview.cjs.js");
|
|
60
62
|
require("../../../api/queries/overview/updateOverview.cjs.js");
|
|
63
|
+
require("../../../api/queries/permissions/getPermissions.cjs.js");
|
|
64
|
+
require("../../../api/queries/products/createProduct.cjs.js");
|
|
61
65
|
require("../../../api/queries/project/getProject.cjs.js");
|
|
62
66
|
require("../../../api/queries/project/updateProject.cjs.js");
|
|
63
67
|
require("../../../api/queries/review/getReview.cjs.js");
|
|
64
68
|
require("../../../api/queries/review/updateReview.cjs.js");
|
|
69
|
+
require("../../../api/queries/share/share.cjs.js");
|
|
65
70
|
require("../../../api/queries/system/getSystem.cjs.js");
|
|
66
71
|
require("../../../api/queries/userDashboard/getUserDashboard.cjs.js");
|
|
67
72
|
require("../../../api/queries/users/getUsers.cjs.js");
|
|
68
73
|
require("../../../api/queries/users/updateUsers.cjs.js");
|
|
69
|
-
require("../../../api/queries/watchers/getWatchers.cjs.js");
|
|
70
|
-
require("../../../api/queries/permissions/getPermissions.cjs.js");
|
|
71
|
-
require("../../../api/queries/grouping/getGrouping.cjs.js");
|
|
72
74
|
require("../../../api/queries/versions/updateVersions.cjs.js");
|
|
73
|
-
require("../../../api/queries/products/createProduct.cjs.js");
|
|
74
|
-
require("../../../api/queries/cloud/cloud.cjs.js");
|
|
75
75
|
require("../../../api/queries/views/getViews.cjs.js");
|
|
76
76
|
const updateViews = require("../../../api/queries/views/updateViews.cjs.js");
|
|
77
|
+
require("../../../api/queries/watchers/getWatchers.cjs.js");
|
|
77
78
|
const React = require("react");
|
|
78
79
|
const ViewsMenu = require("../ViewsMenu/ViewsMenu.cjs.js");
|
|
79
80
|
const ayonReactComponents = require("@ynput/ayon-react-components");
|
|
@@ -92,7 +93,7 @@ require("react-dom");
|
|
|
92
93
|
require("../../../context/pip/PiPWrapper.cjs.js");
|
|
93
94
|
require("../../../context/AddonProjectContext.cjs.js");
|
|
94
95
|
require("../../../context/AddonContext.cjs.js");
|
|
95
|
-
require("../../../context/PowerpackContext.cjs.js");
|
|
96
|
+
const PowerpackContext = require("../../../context/PowerpackContext.cjs.js");
|
|
96
97
|
require("react-redux");
|
|
97
98
|
require("custom-protocol-check");
|
|
98
99
|
const getCustomViewsFallback = require("../utils/getCustomViewsFallback.cjs.js");
|
|
@@ -107,8 +108,10 @@ const useBuildViewMenuItems = ({
|
|
|
107
108
|
editingViewId,
|
|
108
109
|
onSelect,
|
|
109
110
|
onEdit,
|
|
110
|
-
onSave
|
|
111
|
+
onSave,
|
|
112
|
+
onResetWorkingView
|
|
111
113
|
}) => {
|
|
114
|
+
const { powerLicense } = PowerpackContext.usePowerpack();
|
|
112
115
|
const [createView] = updateViews.useCreateViewMutation();
|
|
113
116
|
const extendedViewsList = React.useMemo(
|
|
114
117
|
() => viewsList.map((view) => ({
|
|
@@ -156,7 +159,7 @@ const useBuildViewMenuItems = ({
|
|
|
156
159
|
module: "getCustomViews",
|
|
157
160
|
fallback: getCustomViewsFallback.getCustomViewsFallback,
|
|
158
161
|
// minVersion: minVersion,
|
|
159
|
-
skip: !viewType
|
|
162
|
+
skip: !viewType || !powerLicense
|
|
160
163
|
});
|
|
161
164
|
const { myViews, sharedViews } = React.useMemo(
|
|
162
165
|
() => getCustomViews({
|
|
@@ -171,9 +174,12 @@ const useBuildViewMenuItems = ({
|
|
|
171
174
|
const workingViewItem = React.useMemo(
|
|
172
175
|
() => ({
|
|
173
176
|
...workingBaseView,
|
|
174
|
-
onClick: handleWorkingViewChange
|
|
177
|
+
onClick: handleWorkingViewChange,
|
|
178
|
+
// expose reset button when handler is provided
|
|
179
|
+
isEditable: Boolean(onResetWorkingView),
|
|
180
|
+
onResetView: onResetWorkingView
|
|
175
181
|
}),
|
|
176
|
-
[handleWorkingViewChange]
|
|
182
|
+
[handleWorkingViewChange, onResetWorkingView]
|
|
177
183
|
);
|
|
178
184
|
const viewItems = React.useMemo(
|
|
179
185
|
() => [workingViewItem, ...dividers, ...myViews, ...sharedViews, ...dividers],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBuildViewMenuItems.cjs.js","sources":["../../../../../../src/containers/Views/hooks/useBuildViewMenuItems.tsx"],"sourcesContent":["import { useCreateViewMutation, UserModel, ViewListItemModel } from '@shared/api'\nimport { useCallback, useMemo } from 'react'\nimport { VIEW_DIVIDER, ViewMenuItem } from '../ViewsMenu/ViewsMenu'\nimport { ViewItem } from '../ViewItem/ViewItem'\nimport { Icon } from '@ynput/ayon-react-components'\nimport { generateWorkingView } from '../utils/generateWorkingView'\nimport { toast } from 'react-toastify'\nimport { useLoadModule } from '@shared/hooks'\nimport { getCustomViewsFallback } from '../utils/getCustomViewsFallback'\nimport {
|
|
1
|
+
{"version":3,"file":"useBuildViewMenuItems.cjs.js","sources":["../../../../../../src/containers/Views/hooks/useBuildViewMenuItems.tsx"],"sourcesContent":["import { useCreateViewMutation, UserModel, ViewListItemModel } from '@shared/api'\nimport { useCallback, useMemo } from 'react'\nimport { VIEW_DIVIDER, ViewMenuItem } from '../ViewsMenu/ViewsMenu'\nimport { ViewItem } from '../ViewItem/ViewItem'\nimport { Icon } from '@ynput/ayon-react-components'\nimport { generateWorkingView } from '../utils/generateWorkingView'\nimport { toast } from 'react-toastify'\nimport { useLoadModule } from '@shared/hooks'\nimport { getCustomViewsFallback } from '../utils/getCustomViewsFallback'\nimport { usePowerpack } from '@shared/context'\n\n// constants\nexport const WORKING_VIEW_ID = '_working_' as const\nexport const NEW_VIEW_ID = '_new_view_' as const\nexport type ViewListItemModelExtended = ViewListItemModel & {\n isOwner: boolean\n highlighted?: 'save' | 'edit'\n}\n\ntype Props = {\n viewsList: ViewListItemModel[]\n workingView?: ViewListItemModel\n viewType?: string\n projectName?: string\n currentUser?: UserModel\n useWorkingView?: boolean\n editingViewId?: string // the preview id of the view being edited\n onEdit: (viewId: string) => void\n onSelect: (viewId: string) => void\n onSave: (viewId: string) => Promise<void>\n onResetWorkingView?: () => void\n}\n\nconst useBuildViewMenuItems = ({\n viewsList,\n workingView,\n viewType,\n projectName,\n currentUser,\n useWorkingView,\n editingViewId,\n onSelect,\n onEdit,\n onSave,\n onResetWorkingView,\n}: Props): ViewMenuItem[] => {\n const { powerLicense } = usePowerpack()\n\n // MUTATIONS\n const [createView] = useCreateViewMutation()\n\n const extendedViewsList: ViewListItemModelExtended[] = useMemo(\n () =>\n viewsList.map((view) => ({\n ...view,\n isOwner: view.owner === currentUser?.name,\n highlighted: editingViewId === view.id ? 'save' : undefined,\n })),\n [viewsList, currentUser, editingViewId],\n )\n\n const workingBaseView: ViewItem = {\n id: WORKING_VIEW_ID,\n label: useWorkingView ? 'Personal view' : 'Working view',\n startContent: useWorkingView && <Icon icon=\"person\" />,\n isEditable: false,\n }\n\n // if we have a working view, we use it, otherwise we create one\n const handleWorkingViewChange = useCallback(async () => {\n let workingViewId = workingView?.id\n if (!workingView) {\n // no working view found, create one\n try {\n console.warn('No working view found, creating a new one')\n const workingView = generateWorkingView()\n await createView({\n payload: workingView,\n viewType: viewType as string,\n projectName: projectName,\n }).unwrap()\n // set id of the new view\n workingViewId = workingView.id\n } catch (error: any) {\n toast.error(`Failed to create working view: ${error}`)\n }\n }\n // select the working view\n onSelect(workingViewId as string)\n }, [workingView, viewType, createView, projectName, onSelect])\n\n const handleEditView = async (viewId: string) => {\n // save the view and then selected it\n try {\n await onSave(viewId)\n onSelect(viewId)\n } catch (error: any) {\n toast.error(error)\n }\n }\n\n const [getCustomViews, { isLoading: isLoadingQueries }] = useLoadModule({\n addon: 'powerpack',\n remote: 'views',\n module: 'getCustomViews',\n fallback: getCustomViewsFallback,\n // minVersion: minVersion,\n skip: !viewType || !powerLicense,\n })\n\n const { myViews, sharedViews } = useMemo(\n () =>\n getCustomViews({\n viewsList: extendedViewsList,\n onEdit,\n onSelect,\n onSave: handleEditView,\n }),\n [viewsList, onEdit, onSelect, handleEditView],\n )\n\n const dividers = myViews.length || sharedViews.length ? [VIEW_DIVIDER] : []\n\n const workingViewItem: ViewMenuItem = useMemo(\n () => ({\n ...workingBaseView,\n onClick: handleWorkingViewChange,\n // expose reset button when handler is provided\n isEditable: Boolean(onResetWorkingView),\n onResetView: onResetWorkingView,\n }),\n [handleWorkingViewChange, onResetWorkingView],\n )\n\n const viewItems: ViewMenuItem[] = useMemo(\n () => [workingViewItem, ...dividers, ...myViews, ...sharedViews, ...dividers],\n [workingView, myViews, sharedViews, workingViewItem],\n )\n\n return viewItems\n}\n\nexport default useBuildViewMenuItems\n"],"names":["usePowerpack","useCreateViewMutation","useMemo","jsx","Icon","useCallback","workingView","generateWorkingView","toast","useLoadModule","getCustomViewsFallback","VIEW_DIVIDER"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYO,MAAM,kBAAkB;AAqB/B,MAAM,wBAAwB,CAAC;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA6B;AACrB,QAAA,EAAE,aAAa,IAAIA,8BAAa;AAGhC,QAAA,CAAC,UAAU,IAAIC,kCAAsB;AAE3C,QAAM,oBAAiDC,MAAA;AAAA,IACrD,MACE,UAAU,IAAI,CAAC,UAAU;AAAA,MACvB,GAAG;AAAA,MACH,SAAS,KAAK,WAAU,2CAAa;AAAA,MACrC,aAAa,kBAAkB,KAAK,KAAK,SAAS;AAAA,IAAA,EAClD;AAAA,IACJ,CAAC,WAAW,aAAa,aAAa;AAAA,EACxC;AAEA,QAAM,kBAA4B;AAAA,IAChC,IAAI;AAAA,IACJ,OAAO,iBAAiB,kBAAkB;AAAA,IAC1C,cAAc,kBAAmBC,2BAAA,kBAAA,IAAAC,oBAAA,MAAA,EAAK,MAAK,UAAS;AAAA,IACpD,YAAY;AAAA,EACd;AAGM,QAAA,0BAA0BC,MAAAA,YAAY,YAAY;AACtD,QAAI,gBAAgB,2CAAa;AACjC,QAAI,CAAC,aAAa;AAEZ,UAAA;AACF,gBAAQ,KAAK,2CAA2C;AACxD,cAAMC,eAAcC,oBAAAA,oBAAoB;AACxC,cAAM,WAAW;AAAA,UACf,SAASD;AAAAA,UACT;AAAA,UACA;AAAA,QACD,CAAA,EAAE,OAAO;AAEV,wBAAgBA,aAAY;AAAA,eACrB,OAAY;AACbE,sBAAAA,MAAA,MAAM,kCAAkC,KAAK,EAAE;AAAA,MAAA;AAAA,IACvD;AAGF,aAAS,aAAuB;AAAA,EAAA,GAC/B,CAAC,aAAa,UAAU,YAAY,aAAa,QAAQ,CAAC;AAEvD,QAAA,iBAAiB,OAAO,WAAmB;AAE3C,QAAA;AACF,YAAM,OAAO,MAAM;AACnB,eAAS,MAAM;AAAA,aACR,OAAY;AACnBA,oBAAA,MAAM,MAAM,KAAK;AAAA,IAAA;AAAA,EAErB;AAEA,QAAM,CAAC,gBAAgB,EAAE,WAAW,iBAAkB,CAAA,IAAIC,cAAAA,cAAc;AAAA,IACtE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,UAAUC,uBAAA;AAAA;AAAA,IAEV,MAAM,CAAC,YAAY,CAAC;AAAA,EAAA,CACrB;AAEK,QAAA,EAAE,SAAS,YAAA,IAAgBR,MAAA;AAAA,IAC/B,MACE,eAAe;AAAA,MACb,WAAW;AAAA,MACX;AAAA,MACA;AAAA,MACA,QAAQ;AAAA,IAAA,CACT;AAAA,IACH,CAAC,WAAW,QAAQ,UAAU,cAAc;AAAA,EAC9C;AAEM,QAAA,WAAW,QAAQ,UAAU,YAAY,SAAS,CAACS,UAAY,YAAA,IAAI,CAAC;AAE1E,QAAM,kBAAgCT,MAAA;AAAA,IACpC,OAAO;AAAA,MACL,GAAG;AAAA,MACH,SAAS;AAAA;AAAA,MAET,YAAY,QAAQ,kBAAkB;AAAA,MACtC,aAAa;AAAA,IAAA;AAAA,IAEf,CAAC,yBAAyB,kBAAkB;AAAA,EAC9C;AAEA,QAAM,YAA4BA,MAAA;AAAA,IAChC,MAAM,CAAC,iBAAiB,GAAG,UAAU,GAAG,SAAS,GAAG,aAAa,GAAG,QAAQ;AAAA,IAC5E,CAAC,aAAa,SAAS,aAAa,eAAe;AAAA,EACrD;AAEO,SAAA;AACT;;;"}
|
|
@@ -46,6 +46,7 @@ import "../../../api/queries/addons/updateAddons.es.js";
|
|
|
46
46
|
import "../../../api/queries/attributes/getAttributes.es.js";
|
|
47
47
|
import "../../../api/queries/attributes/updateAttributes.es.js";
|
|
48
48
|
import "../../../api/queries/authentication/getAuthentication.es.js";
|
|
49
|
+
import "../../../api/queries/cloud/cloud.es.js";
|
|
49
50
|
import "../../../api/queries/entities/getEntity.es.js";
|
|
50
51
|
import "../../../api/queries/entities/getEntityPanel.es.js";
|
|
51
52
|
import "../../../api/queries/entities/updateEntity.es.js";
|
|
@@ -54,24 +55,24 @@ import "../../../api/queries/entityLists/updateLists.es.js";
|
|
|
54
55
|
import "../../../api/queries/entityLists/getListsAttributes.es.js";
|
|
55
56
|
import "../../../api/queries/entityLists/updateListsAttributes.es.js";
|
|
56
57
|
import "../../../api/queries/folders/getFolders.es.js";
|
|
58
|
+
import "../../../api/queries/grouping/getGrouping.es.js";
|
|
57
59
|
import "../../../api/queries/overview/getOverview.es.js";
|
|
58
60
|
import "../../../api/queries/overview/updateOverview.es.js";
|
|
61
|
+
import "../../../api/queries/permissions/getPermissions.es.js";
|
|
62
|
+
import "../../../api/queries/products/createProduct.es.js";
|
|
59
63
|
import "../../../api/queries/project/getProject.es.js";
|
|
60
64
|
import "../../../api/queries/project/updateProject.es.js";
|
|
61
65
|
import "../../../api/queries/review/getReview.es.js";
|
|
62
66
|
import "../../../api/queries/review/updateReview.es.js";
|
|
67
|
+
import "../../../api/queries/share/share.es.js";
|
|
63
68
|
import "../../../api/queries/system/getSystem.es.js";
|
|
64
69
|
import "../../../api/queries/userDashboard/getUserDashboard.es.js";
|
|
65
70
|
import "../../../api/queries/users/getUsers.es.js";
|
|
66
71
|
import "../../../api/queries/users/updateUsers.es.js";
|
|
67
|
-
import "../../../api/queries/watchers/getWatchers.es.js";
|
|
68
|
-
import "../../../api/queries/permissions/getPermissions.es.js";
|
|
69
|
-
import "../../../api/queries/grouping/getGrouping.es.js";
|
|
70
72
|
import "../../../api/queries/versions/updateVersions.es.js";
|
|
71
|
-
import "../../../api/queries/products/createProduct.es.js";
|
|
72
|
-
import "../../../api/queries/cloud/cloud.es.js";
|
|
73
73
|
import "../../../api/queries/views/getViews.es.js";
|
|
74
74
|
import { useCreateViewMutation } from "../../../api/queries/views/updateViews.es.js";
|
|
75
|
+
import "../../../api/queries/watchers/getWatchers.es.js";
|
|
75
76
|
import { useMemo, useCallback } from "react";
|
|
76
77
|
import { VIEW_DIVIDER } from "../ViewsMenu/ViewsMenu.es.js";
|
|
77
78
|
import { Icon } from "@ynput/ayon-react-components";
|
|
@@ -90,7 +91,7 @@ import "react-dom";
|
|
|
90
91
|
import "../../../context/pip/PiPWrapper.es.js";
|
|
91
92
|
import "../../../context/AddonProjectContext.es.js";
|
|
92
93
|
import "../../../context/AddonContext.es.js";
|
|
93
|
-
import "../../../context/PowerpackContext.es.js";
|
|
94
|
+
import { usePowerpack } from "../../../context/PowerpackContext.es.js";
|
|
94
95
|
import "react-redux";
|
|
95
96
|
import "custom-protocol-check";
|
|
96
97
|
import { getCustomViewsFallback } from "../utils/getCustomViewsFallback.es.js";
|
|
@@ -105,8 +106,10 @@ const useBuildViewMenuItems = ({
|
|
|
105
106
|
editingViewId,
|
|
106
107
|
onSelect,
|
|
107
108
|
onEdit,
|
|
108
|
-
onSave
|
|
109
|
+
onSave,
|
|
110
|
+
onResetWorkingView
|
|
109
111
|
}) => {
|
|
112
|
+
const { powerLicense } = usePowerpack();
|
|
110
113
|
const [createView] = useCreateViewMutation();
|
|
111
114
|
const extendedViewsList = useMemo(
|
|
112
115
|
() => viewsList.map((view) => ({
|
|
@@ -154,7 +157,7 @@ const useBuildViewMenuItems = ({
|
|
|
154
157
|
module: "getCustomViews",
|
|
155
158
|
fallback: getCustomViewsFallback,
|
|
156
159
|
// minVersion: minVersion,
|
|
157
|
-
skip: !viewType
|
|
160
|
+
skip: !viewType || !powerLicense
|
|
158
161
|
});
|
|
159
162
|
const { myViews, sharedViews } = useMemo(
|
|
160
163
|
() => getCustomViews({
|
|
@@ -169,9 +172,12 @@ const useBuildViewMenuItems = ({
|
|
|
169
172
|
const workingViewItem = useMemo(
|
|
170
173
|
() => ({
|
|
171
174
|
...workingBaseView,
|
|
172
|
-
onClick: handleWorkingViewChange
|
|
175
|
+
onClick: handleWorkingViewChange,
|
|
176
|
+
// expose reset button when handler is provided
|
|
177
|
+
isEditable: Boolean(onResetWorkingView),
|
|
178
|
+
onResetView: onResetWorkingView
|
|
173
179
|
}),
|
|
174
|
-
[handleWorkingViewChange]
|
|
180
|
+
[handleWorkingViewChange, onResetWorkingView]
|
|
175
181
|
);
|
|
176
182
|
const viewItems = useMemo(
|
|
177
183
|
() => [workingViewItem, ...dividers, ...myViews, ...sharedViews, ...dividers],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBuildViewMenuItems.es.js","sources":["../../../../../../src/containers/Views/hooks/useBuildViewMenuItems.tsx"],"sourcesContent":["import { useCreateViewMutation, UserModel, ViewListItemModel } from '@shared/api'\nimport { useCallback, useMemo } from 'react'\nimport { VIEW_DIVIDER, ViewMenuItem } from '../ViewsMenu/ViewsMenu'\nimport { ViewItem } from '../ViewItem/ViewItem'\nimport { Icon } from '@ynput/ayon-react-components'\nimport { generateWorkingView } from '../utils/generateWorkingView'\nimport { toast } from 'react-toastify'\nimport { useLoadModule } from '@shared/hooks'\nimport { getCustomViewsFallback } from '../utils/getCustomViewsFallback'\nimport {
|
|
1
|
+
{"version":3,"file":"useBuildViewMenuItems.es.js","sources":["../../../../../../src/containers/Views/hooks/useBuildViewMenuItems.tsx"],"sourcesContent":["import { useCreateViewMutation, UserModel, ViewListItemModel } from '@shared/api'\nimport { useCallback, useMemo } from 'react'\nimport { VIEW_DIVIDER, ViewMenuItem } from '../ViewsMenu/ViewsMenu'\nimport { ViewItem } from '../ViewItem/ViewItem'\nimport { Icon } from '@ynput/ayon-react-components'\nimport { generateWorkingView } from '../utils/generateWorkingView'\nimport { toast } from 'react-toastify'\nimport { useLoadModule } from '@shared/hooks'\nimport { getCustomViewsFallback } from '../utils/getCustomViewsFallback'\nimport { usePowerpack } from '@shared/context'\n\n// constants\nexport const WORKING_VIEW_ID = '_working_' as const\nexport const NEW_VIEW_ID = '_new_view_' as const\nexport type ViewListItemModelExtended = ViewListItemModel & {\n isOwner: boolean\n highlighted?: 'save' | 'edit'\n}\n\ntype Props = {\n viewsList: ViewListItemModel[]\n workingView?: ViewListItemModel\n viewType?: string\n projectName?: string\n currentUser?: UserModel\n useWorkingView?: boolean\n editingViewId?: string // the preview id of the view being edited\n onEdit: (viewId: string) => void\n onSelect: (viewId: string) => void\n onSave: (viewId: string) => Promise<void>\n onResetWorkingView?: () => void\n}\n\nconst useBuildViewMenuItems = ({\n viewsList,\n workingView,\n viewType,\n projectName,\n currentUser,\n useWorkingView,\n editingViewId,\n onSelect,\n onEdit,\n onSave,\n onResetWorkingView,\n}: Props): ViewMenuItem[] => {\n const { powerLicense } = usePowerpack()\n\n // MUTATIONS\n const [createView] = useCreateViewMutation()\n\n const extendedViewsList: ViewListItemModelExtended[] = useMemo(\n () =>\n viewsList.map((view) => ({\n ...view,\n isOwner: view.owner === currentUser?.name,\n highlighted: editingViewId === view.id ? 'save' : undefined,\n })),\n [viewsList, currentUser, editingViewId],\n )\n\n const workingBaseView: ViewItem = {\n id: WORKING_VIEW_ID,\n label: useWorkingView ? 'Personal view' : 'Working view',\n startContent: useWorkingView && <Icon icon=\"person\" />,\n isEditable: false,\n }\n\n // if we have a working view, we use it, otherwise we create one\n const handleWorkingViewChange = useCallback(async () => {\n let workingViewId = workingView?.id\n if (!workingView) {\n // no working view found, create one\n try {\n console.warn('No working view found, creating a new one')\n const workingView = generateWorkingView()\n await createView({\n payload: workingView,\n viewType: viewType as string,\n projectName: projectName,\n }).unwrap()\n // set id of the new view\n workingViewId = workingView.id\n } catch (error: any) {\n toast.error(`Failed to create working view: ${error}`)\n }\n }\n // select the working view\n onSelect(workingViewId as string)\n }, [workingView, viewType, createView, projectName, onSelect])\n\n const handleEditView = async (viewId: string) => {\n // save the view and then selected it\n try {\n await onSave(viewId)\n onSelect(viewId)\n } catch (error: any) {\n toast.error(error)\n }\n }\n\n const [getCustomViews, { isLoading: isLoadingQueries }] = useLoadModule({\n addon: 'powerpack',\n remote: 'views',\n module: 'getCustomViews',\n fallback: getCustomViewsFallback,\n // minVersion: minVersion,\n skip: !viewType || !powerLicense,\n })\n\n const { myViews, sharedViews } = useMemo(\n () =>\n getCustomViews({\n viewsList: extendedViewsList,\n onEdit,\n onSelect,\n onSave: handleEditView,\n }),\n [viewsList, onEdit, onSelect, handleEditView],\n )\n\n const dividers = myViews.length || sharedViews.length ? [VIEW_DIVIDER] : []\n\n const workingViewItem: ViewMenuItem = useMemo(\n () => ({\n ...workingBaseView,\n onClick: handleWorkingViewChange,\n // expose reset button when handler is provided\n isEditable: Boolean(onResetWorkingView),\n onResetView: onResetWorkingView,\n }),\n [handleWorkingViewChange, onResetWorkingView],\n )\n\n const viewItems: ViewMenuItem[] = useMemo(\n () => [workingViewItem, ...dividers, ...myViews, ...sharedViews, ...dividers],\n [workingView, myViews, sharedViews, workingViewItem],\n )\n\n return viewItems\n}\n\nexport default useBuildViewMenuItems\n"],"names":["jsx","workingView"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYO,MAAM,kBAAkB;AAqB/B,MAAM,wBAAwB,CAAC;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA6B;AACrB,QAAA,EAAE,aAAa,IAAI,aAAa;AAGhC,QAAA,CAAC,UAAU,IAAI,sBAAsB;AAE3C,QAAM,oBAAiD;AAAA,IACrD,MACE,UAAU,IAAI,CAAC,UAAU;AAAA,MACvB,GAAG;AAAA,MACH,SAAS,KAAK,WAAU,2CAAa;AAAA,MACrC,aAAa,kBAAkB,KAAK,KAAK,SAAS;AAAA,IAAA,EAClD;AAAA,IACJ,CAAC,WAAW,aAAa,aAAa;AAAA,EACxC;AAEA,QAAM,kBAA4B;AAAA,IAChC,IAAI;AAAA,IACJ,OAAO,iBAAiB,kBAAkB;AAAA,IAC1C,cAAc,kBAAmBA,kCAAA,IAAA,MAAA,EAAK,MAAK,UAAS;AAAA,IACpD,YAAY;AAAA,EACd;AAGM,QAAA,0BAA0B,YAAY,YAAY;AACtD,QAAI,gBAAgB,2CAAa;AACjC,QAAI,CAAC,aAAa;AAEZ,UAAA;AACF,gBAAQ,KAAK,2CAA2C;AACxD,cAAMC,eAAc,oBAAoB;AACxC,cAAM,WAAW;AAAA,UACf,SAASA;AAAAA,UACT;AAAA,UACA;AAAA,QACD,CAAA,EAAE,OAAO;AAEV,wBAAgBA,aAAY;AAAA,eACrB,OAAY;AACb,cAAA,MAAM,kCAAkC,KAAK,EAAE;AAAA,MAAA;AAAA,IACvD;AAGF,aAAS,aAAuB;AAAA,EAAA,GAC/B,CAAC,aAAa,UAAU,YAAY,aAAa,QAAQ,CAAC;AAEvD,QAAA,iBAAiB,OAAO,WAAmB;AAE3C,QAAA;AACF,YAAM,OAAO,MAAM;AACnB,eAAS,MAAM;AAAA,aACR,OAAY;AACnB,YAAM,MAAM,KAAK;AAAA,IAAA;AAAA,EAErB;AAEA,QAAM,CAAC,gBAAgB,EAAE,WAAW,iBAAkB,CAAA,IAAI,cAAc;AAAA,IACtE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,UAAU;AAAA;AAAA,IAEV,MAAM,CAAC,YAAY,CAAC;AAAA,EAAA,CACrB;AAEK,QAAA,EAAE,SAAS,YAAA,IAAgB;AAAA,IAC/B,MACE,eAAe;AAAA,MACb,WAAW;AAAA,MACX;AAAA,MACA;AAAA,MACA,QAAQ;AAAA,IAAA,CACT;AAAA,IACH,CAAC,WAAW,QAAQ,UAAU,cAAc;AAAA,EAC9C;AAEM,QAAA,WAAW,QAAQ,UAAU,YAAY,SAAS,CAAC,YAAY,IAAI,CAAC;AAE1E,QAAM,kBAAgC;AAAA,IACpC,OAAO;AAAA,MACL,GAAG;AAAA,MACH,SAAS;AAAA;AAAA,MAET,YAAY,QAAQ,kBAAkB;AAAA,MACtC,aAAa;AAAA,IAAA;AAAA,IAEf,CAAC,yBAAyB,kBAAkB;AAAA,EAC9C;AAEA,QAAM,YAA4B;AAAA,IAChC,MAAM,CAAC,iBAAiB,GAAG,UAAU,GAAG,SAAS,GAAG,aAAa,GAAG,QAAQ;AAAA,IAC5E,CAAC,aAAa,SAAS,aAAa,eAAe;AAAA,EACrD;AAEO,SAAA;AACT;"}
|
|
@@ -47,6 +47,7 @@ require("../../../api/queries/addons/updateAddons.cjs.js");
|
|
|
47
47
|
require("../../../api/queries/attributes/getAttributes.cjs.js");
|
|
48
48
|
require("../../../api/queries/attributes/updateAttributes.cjs.js");
|
|
49
49
|
require("../../../api/queries/authentication/getAuthentication.cjs.js");
|
|
50
|
+
require("../../../api/queries/cloud/cloud.cjs.js");
|
|
50
51
|
require("../../../api/queries/entities/getEntity.cjs.js");
|
|
51
52
|
require("../../../api/queries/entities/getEntityPanel.cjs.js");
|
|
52
53
|
require("../../../api/queries/entities/updateEntity.cjs.js");
|
|
@@ -55,24 +56,24 @@ require("../../../api/queries/entityLists/updateLists.cjs.js");
|
|
|
55
56
|
require("../../../api/queries/entityLists/getListsAttributes.cjs.js");
|
|
56
57
|
require("../../../api/queries/entityLists/updateListsAttributes.cjs.js");
|
|
57
58
|
require("../../../api/queries/folders/getFolders.cjs.js");
|
|
59
|
+
require("../../../api/queries/grouping/getGrouping.cjs.js");
|
|
58
60
|
require("../../../api/queries/overview/getOverview.cjs.js");
|
|
59
61
|
require("../../../api/queries/overview/updateOverview.cjs.js");
|
|
62
|
+
require("../../../api/queries/permissions/getPermissions.cjs.js");
|
|
63
|
+
require("../../../api/queries/products/createProduct.cjs.js");
|
|
60
64
|
require("../../../api/queries/project/getProject.cjs.js");
|
|
61
65
|
require("../../../api/queries/project/updateProject.cjs.js");
|
|
62
66
|
require("../../../api/queries/review/getReview.cjs.js");
|
|
63
67
|
require("../../../api/queries/review/updateReview.cjs.js");
|
|
68
|
+
require("../../../api/queries/share/share.cjs.js");
|
|
64
69
|
require("../../../api/queries/system/getSystem.cjs.js");
|
|
65
70
|
require("../../../api/queries/userDashboard/getUserDashboard.cjs.js");
|
|
66
71
|
require("../../../api/queries/users/getUsers.cjs.js");
|
|
67
72
|
require("../../../api/queries/users/updateUsers.cjs.js");
|
|
68
|
-
require("../../../api/queries/watchers/getWatchers.cjs.js");
|
|
69
|
-
require("../../../api/queries/permissions/getPermissions.cjs.js");
|
|
70
|
-
require("../../../api/queries/grouping/getGrouping.cjs.js");
|
|
71
73
|
require("../../../api/queries/versions/updateVersions.cjs.js");
|
|
72
|
-
require("../../../api/queries/products/createProduct.cjs.js");
|
|
73
|
-
require("../../../api/queries/cloud/cloud.cjs.js");
|
|
74
74
|
const getViews = require("../../../api/queries/views/getViews.cjs.js");
|
|
75
75
|
const updateViews = require("../../../api/queries/views/updateViews.cjs.js");
|
|
76
|
+
require("../../../api/queries/watchers/getWatchers.cjs.js");
|
|
76
77
|
const reactToastify = require("react-toastify");
|
|
77
78
|
const React = require("react");
|
|
78
79
|
const useSelectedView = ({ viewType, projectName }) => {
|