@ynput/ayon-frontend-shared 0.2.25 → 0.2.26

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.
Files changed (56) hide show
  1. package/dist/Views.cjs.js +1 -1
  2. package/dist/Views.es.js +14 -14
  3. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  4. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
  5. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +33 -25
  6. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
  7. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  8. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
  9. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +10 -10
  10. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
  11. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  12. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
  13. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +229 -68
  14. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
  15. package/dist/shared/src/containers/Slicer/createFilterFromSlicer.cjs.js +1 -1
  16. package/dist/shared/src/containers/Slicer/createFilterFromSlicer.cjs.js.map +1 -1
  17. package/dist/shared/src/containers/Slicer/createFilterFromSlicer.es.js +21 -25
  18. package/dist/shared/src/containers/Slicer/createFilterFromSlicer.es.js.map +1 -1
  19. package/dist/shared/src/containers/Views/ViewItem/ViewItem.cjs.js +1 -1
  20. package/dist/shared/src/containers/Views/ViewItem/ViewItem.cjs.js.map +1 -1
  21. package/dist/shared/src/containers/Views/ViewItem/ViewItem.es.js +64 -54
  22. package/dist/shared/src/containers/Views/ViewItem/ViewItem.es.js.map +1 -1
  23. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.cjs.js.map +1 -1
  24. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.es.js.map +1 -1
  25. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js +1 -1
  26. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js.map +1 -1
  27. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js +22 -20
  28. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -1
  29. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +1 -1
  30. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
  31. package/dist/shared/src/containers/Views/context/ViewsContext.es.js +60 -59
  32. package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
  33. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js +1 -1
  34. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js.map +1 -1
  35. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js +14 -14
  36. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js.map +1 -1
  37. package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js +1 -1
  38. package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js.map +1 -1
  39. package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js +17 -18
  40. package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js.map +1 -1
  41. package/dist/shared/src/hooks/useActionTriggers.cjs.js +1 -1
  42. package/dist/shared/src/hooks/useActionTriggers.cjs.js.map +1 -1
  43. package/dist/shared/src/hooks/useActionTriggers.es.js +38 -33
  44. package/dist/shared/src/hooks/useActionTriggers.es.js.map +1 -1
  45. package/dist/shared/src/hooks/useCustomProtocolCheck.cjs.js +2 -0
  46. package/dist/shared/src/hooks/useCustomProtocolCheck.cjs.js.map +1 -0
  47. package/dist/shared/src/hooks/useCustomProtocolCheck.es.js +43 -0
  48. package/dist/shared/src/hooks/useCustomProtocolCheck.es.js.map +1 -0
  49. package/dist/types/containers/Slicer/createFilterFromSlicer.d.ts +3 -1
  50. package/dist/types/containers/Slicer/types.d.ts +1 -1
  51. package/dist/types/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.d.ts +1 -0
  52. package/dist/types/containers/Views/context/ViewsContext.d.ts +2 -1
  53. package/dist/types/containers/Views/hooks/useViewsMutations.d.ts +3 -3
  54. package/dist/types/hooks/useActionTriggers.d.ts +1 -1
  55. package/dist/types/hooks/useCustomProtocolCheck.d.ts +10 -0
  56. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
- import { j as z } from "../../../../../_virtual/jsx-runtime.es.js";
2
- import { createContext as H, useState as O, useMemo as J, useCallback as X, useContext as Y } from "react";
3
- import { viewTypes as Z } from "../../../../../Views.es.js";
1
+ import { j as H } from "../../../../../_virtual/jsx-runtime.es.js";
2
+ import { createContext as J, useState as E, useMemo as X, useCallback as Y, useContext as Z } from "react";
3
+ import { viewTypes as $ } from "../../../../../Views.es.js";
4
4
  import "../../../api/base/client.es.js";
5
5
  import "../../../api/generated/graphql.es.js";
6
6
  import "../../../api/generated/graphqlLinks.es.js";
@@ -70,16 +70,16 @@ import "../../../api/queries/project/getProject.es.js";
70
70
  import "../../../api/queries/project/updateProject.es.js";
71
71
  import "../../../api/queries/review/getReview.es.js";
72
72
  import "../../../api/queries/review/updateReview.es.js";
73
- import { useGetShareOptionsQuery as $ } from "../../../api/queries/share/share.es.js";
73
+ import { useGetShareOptionsQuery as b } from "../../../api/queries/share/share.es.js";
74
74
  import "../../../api/queries/system/getSystem.es.js";
75
75
  import "../../../api/queries/userDashboard/getUserDashboard.es.js";
76
- import { useGetCurrentUserQuery as b } from "../../../api/queries/users/getUsers.es.js";
76
+ import { useGetCurrentUserQuery as j } from "../../../api/queries/users/getUsers.es.js";
77
77
  import "../../../api/queries/users/updateUsers.es.js";
78
78
  import "../../../api/queries/versions/updateVersions.es.js";
79
- import { useListViewsQuery as j, useGetWorkingViewQuery as N, useGetViewQuery as tt } from "../../../api/queries/views/getViews.es.js";
80
- import { viewsQueries as it } from "../../../api/queries/views/updateViews.es.js";
79
+ import { useListViewsQuery as N, useGetWorkingViewQuery as tt, useGetViewQuery as it } from "../../../api/queries/views/getViews.es.js";
80
+ import { viewsQueries as ot } from "../../../api/queries/views/updateViews.es.js";
81
81
  import "../../../api/queries/watchers/getWatchers.es.js";
82
- import ot from "../hooks/useBuildViewMenuItems.es.js";
82
+ import rt from "../hooks/useBuildViewMenuItems.es.js";
83
83
  import "../../../context/RemoteModulesContext.es.js";
84
84
  import "../../../context/DetailsPanelContext.es.js";
85
85
  import "../../../context/ThumbnailUploaderContext.es.js";
@@ -89,13 +89,13 @@ import "react-dom";
89
89
  import "../../../context/pip/PiPWrapper.es.js";
90
90
  import "../../../context/AddonProjectContext.es.js";
91
91
  import "../../../context/AddonContext.es.js";
92
- import { usePowerpack as rt } from "../../../context/PowerpackContext.es.js";
92
+ import { usePowerpack as et } from "../../../context/PowerpackContext.es.js";
93
93
  import "../../../context/MoveEntityContext.es.js";
94
- import { useSelectedView as et } from "../hooks/useSelectedView.es.js";
95
- import { useViewsMutations as st } from "../hooks/useViewsMutations.es.js";
96
- import { useSaveViewFromCurrent as pt } from "../hooks/useSaveViewFromCurrent.es.js";
97
- import { useViewSettingsChanged as mt } from "../hooks/useViewSettingsChanged.es.js";
98
- import { useLocalStorage as nt } from "../../../hooks/useLocalStorage.es.js";
94
+ import { useSelectedView as st } from "../hooks/useSelectedView.es.js";
95
+ import { useViewsMutations as pt } from "../hooks/useViewsMutations.es.js";
96
+ import { useSaveViewFromCurrent as mt } from "../hooks/useSaveViewFromCurrent.es.js";
97
+ import { useViewSettingsChanged as nt } from "../hooks/useViewSettingsChanged.es.js";
98
+ import { useLocalStorage as at } from "../../../hooks/useLocalStorage.es.js";
99
99
  import "../../../../../_virtual/runtime.es.js";
100
100
  import "../../../../../_virtual/semver.es.js";
101
101
  import "lodash";
@@ -103,60 +103,60 @@ import "react-toastify";
103
103
  import "react-redux";
104
104
  import "custom-protocol-check";
105
105
  import { WORKING_VIEW_ID as ct } from "../ViewsMenuContainer/ViewsMenuContainer.es.js";
106
- const Q = H(null), no = ({
106
+ const O = J(null), ao = ({
107
107
  children: s,
108
- viewType: c,
108
+ viewType: a,
109
109
  projectName: o,
110
110
  dispatch: l,
111
111
  debug: m
112
112
  }) => {
113
- const r = Z.includes(c) ? c : void 0;
114
- let { powerLicense: a } = rt();
115
- (m == null ? void 0 : m.powerLicense) !== void 0 && (console.warn("Using debug power license:", m.powerLicense), a = m.powerLicense);
116
- const { data: V } = b(), [E, C] = O(!1), [p, g] = O(null), G = "viewsMenuCollapsed", [f, y] = nt(
117
- G,
113
+ const r = $.includes(a) ? a : void 0;
114
+ let { powerLicense: c } = et();
115
+ (m == null ? void 0 : m.powerLicense) !== void 0 && (console.warn("Using debug power license:", m.powerLicense), c = m.powerLicense);
116
+ const { data: V } = j(), [Q, g] = E(!1), [p, C] = E(null), D = "viewsMenuCollapsed", [f, y] = at(
117
+ D,
118
118
  {}
119
- ), D = (e) => {
119
+ ), G = (e) => {
120
120
  const k = e.visibility === "private" ? "myViews" : "sharedViews";
121
121
  if (f[k]) {
122
122
  const M = { ...f };
123
123
  M[k] = !1, y(M);
124
124
  }
125
- }, { onCreateView: P, onDeleteView: U, onUpdateView: h, onResetWorkingView: v } = st({
125
+ }, { onCreateView: F, onDeleteView: U, onUpdateView: h, onResetWorkingView: v } = pt({
126
126
  viewType: r,
127
127
  projectName: o,
128
- onCreate: D
129
- }), { data: F } = $(
128
+ onCreate: G
129
+ }), { data: P } = b(
130
130
  { projectName: o },
131
- { skip: !a || !p }
132
- ), [t, u, S] = et({
131
+ { skip: !c || !p }
132
+ ), [t, u, S] = st({
133
133
  viewType: r,
134
134
  projectName: o
135
- }), [R, d] = mt({
135
+ }), [R, d] = nt({
136
136
  viewType: r
137
- }), { currentData: w = [], isLoading: K } = j(
137
+ }), { currentData: w = [], isLoading: K } = N(
138
138
  { projectName: o, viewType: r },
139
139
  { skip: !r }
140
- ), { currentData: i } = N(
140
+ ), { currentData: i } = tt(
141
141
  { projectName: o, viewType: r },
142
142
  { skip: !r }
143
- ), x = i == null ? void 0 : i.settings, I = !t || t.id === ct ? x : t == null ? void 0 : t.settings, L = (t == null ? void 0 : t.id) === (i == null ? void 0 : i.id), W = R && L && S && S !== (i == null ? void 0 : i.id) ? S : void 0, { currentData: n } = tt(
143
+ ), x = i == null ? void 0 : i.settings, I = !t || t.id === ct ? x : t == null ? void 0 : t.settings, L = (t == null ? void 0 : t.id) === (i == null ? void 0 : i.id), W = R && L && S && S !== (i == null ? void 0 : i.id) ? S : void 0, { currentData: n, isFetching: T } = it(
144
144
  {
145
145
  viewId: p,
146
- projectName: at(p, w) ? o : void 0,
146
+ projectName: ut(p, w) ? void 0 : o,
147
147
  viewType: r
148
148
  },
149
- { skip: typeof p != "string" || !a }
150
- ), T = J(
149
+ { skip: typeof p != "string" || !c }
150
+ ), _ = X(
151
151
  () => p === (n == null ? void 0 : n.id) ? n : void 0,
152
152
  [p, n]
153
- ), { onSaveViewFromCurrent: _ } = pt({
153
+ ), { onSaveViewFromCurrent: A } = mt({
154
154
  viewType: r,
155
155
  projectName: o,
156
156
  viewsList: w,
157
157
  sourceSettings: I,
158
158
  onUpdateView: h
159
- }), A = X(async () => {
159
+ }), B = Y(async () => {
160
160
  try {
161
161
  await v({
162
162
  existingWorkingViewId: i == null ? void 0 : i.id,
@@ -168,69 +168,70 @@ const Q = H(null), no = ({
168
168
  } catch (e) {
169
169
  console.error("Failed to reset view:", e);
170
170
  }
171
- }, [i, v, t, u, d]), B = ot({
171
+ }, [i, v, t, u, d]), q = rt({
172
172
  viewsList: w,
173
173
  workingView: i,
174
174
  viewType: r,
175
175
  projectName: o,
176
176
  currentUser: V,
177
- useWorkingView: !a,
177
+ useWorkingView: !c,
178
178
  editingViewId: W,
179
179
  selectedId: t == null ? void 0 : t.id,
180
180
  collapsed: f,
181
181
  setCollapsed: y,
182
182
  onResetWorkingView: v,
183
183
  onSelect: (e) => {
184
- u(e), d(!1), C(!1);
184
+ u(e), d(!1), g(!1);
185
185
  },
186
- onEdit: (e) => g(e),
187
- onSave: async (e) => _(e)
188
- }), q = {
186
+ onEdit: (e) => C(e),
187
+ onSave: async (e) => A(e)
188
+ }), z = {
189
189
  viewType: r,
190
190
  projectName: o,
191
- isMenuOpen: E,
191
+ isMenuOpen: Q,
192
192
  editingView: p,
193
193
  currentUser: V,
194
194
  selectedView: t,
195
195
  viewSettings: I,
196
196
  workingSettings: x,
197
- editingViewData: T,
197
+ editingViewData: _,
198
+ isLoadingEditingViewData: T,
198
199
  viewsList: w,
199
200
  workingView: i,
200
201
  editingViewId: W,
201
- viewMenuItems: B,
202
+ viewMenuItems: q,
202
203
  isLoadingViews: K,
203
204
  isViewWorking: L,
204
205
  // data
205
- shareOptions: F,
206
- setIsMenuOpen: C,
207
- setEditingView: g,
206
+ shareOptions: P,
207
+ setIsMenuOpen: g,
208
+ setEditingView: C,
208
209
  setSelectedView: u,
209
210
  onSettingsChanged: d,
210
211
  // mutations
211
- onCreateView: P,
212
+ onCreateView: F,
212
213
  onUpdateView: h,
213
214
  onDeleteView: U,
214
215
  // shared actions
215
- resetWorkingView: A,
216
+ resetWorkingView: B,
216
217
  // api
217
- api: it,
218
+ api: ot,
218
219
  dispatch: l
219
220
  };
220
- return /* @__PURE__ */ z.jsx(Q.Provider, { value: q, children: s });
221
+ return /* @__PURE__ */ H.jsx(O.Provider, { value: z, children: s });
221
222
  }, co = () => {
222
- const s = Y(Q);
223
+ const s = Z(O);
223
224
  if (!s)
224
225
  throw new Error("useViewsContext must be used within a ViewsProvider");
225
226
  return s;
226
- }, at = (s, c) => {
227
- if (!s) return !1;
228
- const o = c.find((l) => l.id === s);
229
- return (o == null ? void 0 : o.scope) === "project";
227
+ }, ut = (s, a) => {
228
+ if (!s) return !0;
229
+ const o = a.find((l) => l.id === s);
230
+ return (o == null ? void 0 : o.scope) === "studio";
230
231
  };
231
232
  export {
232
- no as ViewsProvider,
233
- at as isViewProjectScope,
233
+ ao as ViewsProvider,
234
+ ut as isViewStudioScope,
234
235
  co as useViewsContext
235
236
  };
236
237
  //# sourceMappingURL=ViewsContext.es.js.map
@@ -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, viewTypes, 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'\nimport { useLocalStorage } from '@shared/hooks'\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\nexport type CollapsedViewState = Record<string, boolean>\n\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 [isMenuOpen, setIsMenuOpen] = useState(false)\n const [editingView, setEditingView] = useState<EditingViewState>(null)\n // Collapsed state persisted globally across all viewTypes and projects\n const stateKey = 'viewsMenuCollapsed'\n\n const [collapsedSections, setCollapsedSections] = useLocalStorage<CollapsedViewState>(\n stateKey,\n {},\n )\n\n // anything extra to do when a view is created successfully\n const handleOnViewCreated = (view: ViewData) => {\n const key = view.visibility === 'private' ? 'myViews' : 'sharedViews'\n // if the section is collapsed, expand it\n if (collapsedSections[key]) {\n const newCollapsedSections = { ...collapsedSections }\n newCollapsedSections[key] = false\n setCollapsedSections(newCollapsedSections)\n }\n }\n\n const { onCreateView, onDeleteView, onUpdateView, onResetWorkingView } = useViewsMutations({\n viewType,\n projectName,\n onCreate: handleOnViewCreated,\n })\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 {\n viewId: editingView as string,\n projectName: isViewProjectScope(editingView as string, viewsList) ? projectName : undefined,\n viewType: viewType as string,\n },\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 viewsList,\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 selectedId: selectedView?.id,\n collapsed: collapsedSections,\n setCollapsed: setCollapsedSections,\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\nexport const isViewProjectScope = (viewId: string | undefined, viewsList: ViewListItemModel[]) => {\n if (!viewId) return false\n const view = viewsList.find((v) => v.id === viewId)\n return view?.scope === 'project'\n}\n"],"names":["ViewsContext","createContext","ViewsProvider","children","viewTypeProp","projectName","dispatch","debug","viewType","viewTypes","powerLicense","usePowerpack","currentUser","useGetCurrentUserQuery","isMenuOpen","setIsMenuOpen","useState","editingView","setEditingView","stateKey","collapsedSections","setCollapsedSections","useLocalStorage","handleOnViewCreated","view","key","newCollapsedSections","onCreateView","onDeleteView","onUpdateView","onResetWorkingView","useViewsMutations","shareOptions","useGetShareOptionsQuery","selectedView","setSelectedView","previousSelectedViewId","useSelectedView","viewSettingsChanged","setViewSettingsChanged","useViewSettingsChanged","viewsList","isLoadingViews","useListViewsQuery","workingView","useGetWorkingViewQuery","workingSettings","viewSettings","WORKING_VIEW_ID","isViewWorking","editingViewId","editingViewDataData","useGetViewQuery","isViewProjectScope","editingViewData","useMemo","onSaveViewFromCurrent","useSaveViewFromCurrent","resetWorkingView","useCallback","error","viewMenuItems","useBuildViewMenuItems","viewId","value","viewsQueries","jsx","useViewsContext","context","useContext","v"],"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, viewTypes, 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'\nimport { useLocalStorage } from '@shared/hooks'\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\nexport type CollapsedViewState = Record<string, boolean>\n\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 isLoadingEditingViewData: boolean\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 [isMenuOpen, setIsMenuOpen] = useState(false)\n const [editingView, setEditingView] = useState<EditingViewState>(null)\n // Collapsed state persisted globally across all viewTypes and projects\n const stateKey = 'viewsMenuCollapsed'\n\n const [collapsedSections, setCollapsedSections] = useLocalStorage<CollapsedViewState>(\n stateKey,\n {},\n )\n\n // anything extra to do when a view is created successfully\n const handleOnViewCreated = (view: ViewData) => {\n const key = view.visibility === 'private' ? 'myViews' : 'sharedViews'\n // if the section is collapsed, expand it\n if (collapsedSections[key]) {\n const newCollapsedSections = { ...collapsedSections }\n newCollapsedSections[key] = false\n setCollapsedSections(newCollapsedSections)\n }\n }\n\n const { onCreateView, onDeleteView, onUpdateView, onResetWorkingView } = useViewsMutations({\n viewType,\n projectName,\n onCreate: handleOnViewCreated,\n })\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, isFetching: isLoadingEditingViewData } =\n useGetViewQuery(\n {\n viewId: editingView as string,\n projectName: isViewStudioScope(editingView as string, viewsList) ? undefined : projectName,\n viewType: viewType as string,\n },\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 viewsList,\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 selectedId: selectedView?.id,\n collapsed: collapsedSections,\n setCollapsed: setCollapsedSections,\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 isLoadingEditingViewData,\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\nexport const isViewStudioScope = (viewId: string | undefined, viewsList: ViewListItemModel[]) => {\n if (!viewId) return true\n const view = viewsList.find((v) => v.id === viewId)\n return view?.scope === 'studio'\n}\n"],"names":["ViewsContext","createContext","ViewsProvider","children","viewTypeProp","projectName","dispatch","debug","viewType","viewTypes","powerLicense","usePowerpack","currentUser","useGetCurrentUserQuery","isMenuOpen","setIsMenuOpen","useState","editingView","setEditingView","stateKey","collapsedSections","setCollapsedSections","useLocalStorage","handleOnViewCreated","view","key","newCollapsedSections","onCreateView","onDeleteView","onUpdateView","onResetWorkingView","useViewsMutations","shareOptions","useGetShareOptionsQuery","selectedView","setSelectedView","previousSelectedViewId","useSelectedView","viewSettingsChanged","setViewSettingsChanged","useViewSettingsChanged","viewsList","isLoadingViews","useListViewsQuery","workingView","useGetWorkingViewQuery","workingSettings","viewSettings","WORKING_VIEW_ID","isViewWorking","editingViewId","editingViewDataData","isLoadingEditingViewData","useGetViewQuery","isViewStudioScope","editingViewData","useMemo","onSaveViewFromCurrent","useSaveViewFromCurrent","resetWorkingView","useCallback","error","viewMenuItems","useBuildViewMenuItems","viewId","value","viewsQueries","jsx","useViewsContext","context","useContext","v"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react");require("../../../../../_virtual/jsx-runtime.cjs.js");require("react-dom");const n=require("../context/ViewsContext.cjs.js");require("../Views.styled.cjs.js");require("clsx");require("../ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../../../context/RemoteModulesContext.cjs.js");require("../../../../../_virtual/runtime.cjs.js");require("../../../../../_virtual/semver.cjs.js");require("../../../api/base/client.cjs.js");require("../../../api/generated/graphql.cjs.js");require("../../../api/generated/graphqlLinks.cjs.js");require("../../../api/generated/access.cjs.js");require("../../../api/generated/actions.cjs.js");require("../../../api/generated/activityFeed.cjs.js");require("../../../api/generated/addons.cjs.js");require("../../../api/generated/anatomy.cjs.js");require("../../../api/generated/attributes.cjs.js");require("../../../api/generated/authentication.cjs.js");require("../../../api/generated/bundles.cjs.js");require("../../../api/generated/configuration.cjs.js");require("../../../api/generated/desktop.cjs.js");require("../../../api/generated/entityLists.cjs.js");require("../../../api/generated/events.cjs.js");require("../../../api/generated/files.cjs.js");require("../../../api/generated/folders.cjs.js");require("../../../api/generated/inbox.cjs.js");require("../../../api/generated/links.cjs.js");require("../../../api/generated/market.cjs.js");require("../../../api/generated/onboarding.cjs.js");require("../../../api/generated/operations.cjs.js");require("../../../api/generated/products.cjs.js");require("../../../api/generated/projectDashboard.cjs.js");require("../../../api/generated/projects.cjs.js");require("../../../api/generated/reviewables.cjs.js");require("../../../api/generated/services.cjs.js");require("../../../api/generated/system.cjs.js");require("../../../api/generated/tasks.cjs.js");require("../../../api/generated/teams.cjs.js");require("../../../api/generated/thumbnails.cjs.js");require("../../../api/generated/uRIs.cjs.js");require("../../../api/generated/users.cjs.js");require("../../../api/generated/versions.cjs.js");require("../../../api/generated/workfiles.cjs.js");require("../../../api/generated/ynputCloud.cjs.js");require("../../../api/generated/grouping.cjs.js");require("../../../api/generated/views.cjs.js");require("../../../api/queries/actions/getActions.cjs.js");require("../../../api/queries/activities/getActivities.cjs.js");require("../../../api/queries/activities/updateActivities.cjs.js");require("../../../api/queries/activities/updateReaction.cjs.js");require("../../../api/queries/activities/getMentions.cjs.js");require("../../../api/queries/addons/getAddons.cjs.js");require("../../../api/queries/addons/updateAddons.cjs.js");require("../../../api/queries/attributes/getAttributes.cjs.js");require("../../../api/queries/attributes/updateAttributes.cjs.js");require("../../../api/queries/authentication/getAuthentication.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/entities/getEntity.cjs.js");require("../../../api/queries/entities/getEntityPanel.cjs.js");require("../../../api/queries/entities/updateEntity.cjs.js");require("../../../api/queries/entityLists/getLists.cjs.js");require("../../../api/queries/entityLists/updateLists.cjs.js");require("../../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../../api/queries/folders/getFolders.cjs.js");require("../../../api/queries/grouping/getGrouping.cjs.js");require("../../../api/queries/links/updateLinks.cjs.js");require("../../../api/queries/links/getLinks.cjs.js");require("../../../api/queries/links/getEntityLinks.cjs.js");require("../../../api/queries/overview/getOverview.cjs.js");require("../../../api/queries/overview/updateOverview.cjs.js");require("../../../api/queries/permissions/getPermissions.cjs.js");require("../../../api/queries/products/createProduct.cjs.js");require("../../../api/queries/project/getProject.cjs.js");require("../../../api/queries/project/updateProject.cjs.js");require("../../../api/queries/review/getReview.cjs.js");require("../../../api/queries/review/updateReview.cjs.js");require("../../../api/queries/share/share.cjs.js");require("../../../api/queries/system/getSystem.cjs.js");require("../../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../../api/queries/users/getUsers.cjs.js");require("../../../api/queries/users/updateUsers.cjs.js");require("../../../api/queries/versions/updateVersions.cjs.js");require("../../../api/queries/views/getViews.cjs.js");require("../../../api/queries/views/updateViews.cjs.js");require("../../../api/queries/watchers/getWatchers.cjs.js");require("lodash");require("react-toastify");require("../../../context/DetailsPanelContext.cjs.js");require("../../../context/ThumbnailUploaderContext.cjs.js");require("../../../context/SettingsPanelContext.cjs.js");require("../../../context/pip/PiPProvider.cjs.js");require("../../../context/pip/PiPWrapper.cjs.js");require("../../../context/AddonProjectContext.cjs.js");require("../../../context/AddonContext.cjs.js");require("../../../context/PowerpackContext.cjs.js");require("../../../context/MoveEntityContext.cjs.js");require("react-redux");require("custom-protocol-check");require("@ynput/ayon-react-components");require("../ViewsMenu/ViewsMenu.cjs.js");require("uuid");require("../../../util/pubsub.cjs.js");const w=({viewType:r,projectName:o,viewsList:t,sourceSettings:e,onUpdateView:a})=>({onSaveViewFromCurrent:s.useCallback(async i=>{if(!r)throw"viewType are required for saving a view from another view";if(!e)throw"sourceView is required for saving a view from another view";try{await a(i,{settings:e},n.isViewProjectScope(i,t))}catch(u){const q=typeof u=="string"?"Failed to save view settings: "+u:"Failed to save view settings";throw console.error(q),q}},[r,o,e])});exports.useSaveViewFromCurrent=w;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react");require("../../../../../_virtual/jsx-runtime.cjs.js");require("react-dom");const n=require("../context/ViewsContext.cjs.js");require("../Views.styled.cjs.js");require("clsx");require("../ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../../../context/RemoteModulesContext.cjs.js");require("../../../../../_virtual/runtime.cjs.js");require("../../../../../_virtual/semver.cjs.js");require("../../../api/base/client.cjs.js");require("../../../api/generated/graphql.cjs.js");require("../../../api/generated/graphqlLinks.cjs.js");require("../../../api/generated/access.cjs.js");require("../../../api/generated/actions.cjs.js");require("../../../api/generated/activityFeed.cjs.js");require("../../../api/generated/addons.cjs.js");require("../../../api/generated/anatomy.cjs.js");require("../../../api/generated/attributes.cjs.js");require("../../../api/generated/authentication.cjs.js");require("../../../api/generated/bundles.cjs.js");require("../../../api/generated/configuration.cjs.js");require("../../../api/generated/desktop.cjs.js");require("../../../api/generated/entityLists.cjs.js");require("../../../api/generated/events.cjs.js");require("../../../api/generated/files.cjs.js");require("../../../api/generated/folders.cjs.js");require("../../../api/generated/inbox.cjs.js");require("../../../api/generated/links.cjs.js");require("../../../api/generated/market.cjs.js");require("../../../api/generated/onboarding.cjs.js");require("../../../api/generated/operations.cjs.js");require("../../../api/generated/products.cjs.js");require("../../../api/generated/projectDashboard.cjs.js");require("../../../api/generated/projects.cjs.js");require("../../../api/generated/reviewables.cjs.js");require("../../../api/generated/services.cjs.js");require("../../../api/generated/system.cjs.js");require("../../../api/generated/tasks.cjs.js");require("../../../api/generated/teams.cjs.js");require("../../../api/generated/thumbnails.cjs.js");require("../../../api/generated/uRIs.cjs.js");require("../../../api/generated/users.cjs.js");require("../../../api/generated/versions.cjs.js");require("../../../api/generated/workfiles.cjs.js");require("../../../api/generated/ynputCloud.cjs.js");require("../../../api/generated/grouping.cjs.js");require("../../../api/generated/views.cjs.js");require("../../../api/queries/actions/getActions.cjs.js");require("../../../api/queries/activities/getActivities.cjs.js");require("../../../api/queries/activities/updateActivities.cjs.js");require("../../../api/queries/activities/updateReaction.cjs.js");require("../../../api/queries/activities/getMentions.cjs.js");require("../../../api/queries/addons/getAddons.cjs.js");require("../../../api/queries/addons/updateAddons.cjs.js");require("../../../api/queries/attributes/getAttributes.cjs.js");require("../../../api/queries/attributes/updateAttributes.cjs.js");require("../../../api/queries/authentication/getAuthentication.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/entities/getEntity.cjs.js");require("../../../api/queries/entities/getEntityPanel.cjs.js");require("../../../api/queries/entities/updateEntity.cjs.js");require("../../../api/queries/entityLists/getLists.cjs.js");require("../../../api/queries/entityLists/updateLists.cjs.js");require("../../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../../api/queries/folders/getFolders.cjs.js");require("../../../api/queries/grouping/getGrouping.cjs.js");require("../../../api/queries/links/updateLinks.cjs.js");require("../../../api/queries/links/getLinks.cjs.js");require("../../../api/queries/links/getEntityLinks.cjs.js");require("../../../api/queries/overview/getOverview.cjs.js");require("../../../api/queries/overview/updateOverview.cjs.js");require("../../../api/queries/permissions/getPermissions.cjs.js");require("../../../api/queries/products/createProduct.cjs.js");require("../../../api/queries/project/getProject.cjs.js");require("../../../api/queries/project/updateProject.cjs.js");require("../../../api/queries/review/getReview.cjs.js");require("../../../api/queries/review/updateReview.cjs.js");require("../../../api/queries/share/share.cjs.js");require("../../../api/queries/system/getSystem.cjs.js");require("../../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../../api/queries/users/getUsers.cjs.js");require("../../../api/queries/users/updateUsers.cjs.js");require("../../../api/queries/versions/updateVersions.cjs.js");require("../../../api/queries/views/getViews.cjs.js");require("../../../api/queries/views/updateViews.cjs.js");require("../../../api/queries/watchers/getWatchers.cjs.js");require("lodash");const c=require("react-toastify");require("../../../context/DetailsPanelContext.cjs.js");require("../../../context/ThumbnailUploaderContext.cjs.js");require("../../../context/SettingsPanelContext.cjs.js");require("../../../context/pip/PiPProvider.cjs.js");require("../../../context/pip/PiPWrapper.cjs.js");require("../../../context/AddonProjectContext.cjs.js");require("../../../context/AddonContext.cjs.js");require("../../../context/PowerpackContext.cjs.js");require("../../../context/MoveEntityContext.cjs.js");require("react-redux");require("custom-protocol-check");require("@ynput/ayon-react-components");require("../ViewsMenu/ViewsMenu.cjs.js");require("uuid");require("../../../util/pubsub.cjs.js");const w=({viewType:r,projectName:t,viewsList:o,sourceSettings:e,onUpdateView:s})=>({onSaveViewFromCurrent:a.useCallback(async i=>{if(!r)throw"viewType are required for saving a view from another view";if(!e)throw"sourceView is required for saving a view from another view";try{await s(i,{settings:e},n.isViewStudioScope(i,o)),c.toast.success("View settings saved")}catch(u){const q=typeof u=="string"?"Failed to save view settings: "+u:"Failed to save view settings";throw console.error(q),q}},[r,t,e])});exports.useSaveViewFromCurrent=w;
2
2
  //# sourceMappingURL=useSaveViewFromCurrent.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSaveViewFromCurrent.cjs.js","sources":["../../../../../../src/containers/Views/hooks/useSaveViewFromCurrent.ts"],"sourcesContent":["import { useCallback } from 'react'\nimport { isViewProjectScope, ViewData, ViewSettings, ViewType } from '..'\nimport { UseViewMutations } from './useViewsMutations'\nimport { ViewListItemModel } from '@shared/api'\n\ntype Props = {\n viewType?: ViewType\n projectName?: string\n viewsList: ViewListItemModel[]\n sourceSettings?: ViewSettings\n onUpdateView: UseViewMutations['onUpdateView']\n}\n\nexport const useSaveViewFromCurrent = ({\n viewType,\n projectName,\n viewsList,\n sourceSettings,\n onUpdateView,\n}: Props) => {\n // save the views settings from another views settings (uses update)\n const onSaveViewFromCurrent = useCallback(\n async (viewId: string) => {\n if (!viewType) {\n throw 'viewType are required for saving a view from another view'\n }\n\n // get the fromView settings\n if (!sourceSettings) {\n throw 'sourceView is required for saving a view from another view'\n }\n\n try {\n await onUpdateView(\n viewId,\n {\n settings: sourceSettings,\n },\n isViewProjectScope(viewId, viewsList),\n )\n } catch (error) {\n const errorMessage =\n typeof error === 'string'\n ? 'Failed to save view settings: ' + error\n : 'Failed to save view settings'\n console.error(errorMessage)\n throw errorMessage\n }\n },\n [viewType, projectName, sourceSettings],\n )\n\n return { onSaveViewFromCurrent }\n}\n"],"names":["useSaveViewFromCurrent","viewType","projectName","viewsList","sourceSettings","onUpdateView","useCallback","viewId","isViewProjectScope","error","errorMessage"],"mappings":"+5KAaO,MAAMA,EAAyB,CAAC,CACrC,SAAAC,EACA,YAAAC,EACA,UAAAC,EACA,eAAAC,EACA,aAAAC,CACF,KAiCS,CAAE,sBA/BqBC,EAAA,YAC5B,MAAOC,GAAmB,CACxB,GAAI,CAACN,EACG,KAAA,4DAIR,GAAI,CAACG,EACG,KAAA,6DAGJ,GAAA,CACI,MAAAC,EACJE,EACA,CACE,SAAUH,CACZ,EACAI,EAAA,mBAAmBD,EAAQJ,CAAS,CACtC,QACOM,EAAO,CACd,MAAMC,EACJ,OAAOD,GAAU,SACb,iCAAmCA,EACnC,+BACN,cAAQ,MAAMC,CAAY,EACpBA,CAAA,CAEV,EACA,CAACT,EAAUC,EAAaE,CAAc,CACxC,CAE+B"}
1
+ {"version":3,"file":"useSaveViewFromCurrent.cjs.js","sources":["../../../../../../src/containers/Views/hooks/useSaveViewFromCurrent.ts"],"sourcesContent":["import { useCallback } from 'react'\nimport { isViewStudioScope, ViewData, ViewSettings, ViewType } from '..'\nimport { UseViewMutations } from './useViewsMutations'\nimport { ViewListItemModel } from '@shared/api'\nimport { toast } from 'react-toastify'\n\ntype Props = {\n viewType?: ViewType\n projectName?: string\n viewsList: ViewListItemModel[]\n sourceSettings?: ViewSettings\n onUpdateView: UseViewMutations['onUpdateView']\n}\n\nexport const useSaveViewFromCurrent = ({\n viewType,\n projectName,\n viewsList,\n sourceSettings,\n onUpdateView,\n}: Props) => {\n // save the views settings from another views settings (uses update)\n const onSaveViewFromCurrent = useCallback(\n async (viewId: string) => {\n if (!viewType) {\n throw 'viewType are required for saving a view from another view'\n }\n\n // get the fromView settings\n if (!sourceSettings) {\n throw 'sourceView is required for saving a view from another view'\n }\n\n try {\n await onUpdateView(\n viewId,\n {\n settings: sourceSettings,\n },\n isViewStudioScope(viewId, viewsList),\n )\n\n toast.success('View settings saved')\n } catch (error) {\n const errorMessage =\n typeof error === 'string'\n ? 'Failed to save view settings: ' + error\n : 'Failed to save view settings'\n console.error(errorMessage)\n throw errorMessage\n }\n },\n [viewType, projectName, sourceSettings],\n )\n\n return { onSaveViewFromCurrent }\n}\n"],"names":["useSaveViewFromCurrent","viewType","projectName","viewsList","sourceSettings","onUpdateView","useCallback","viewId","isViewStudioScope","toast","error","errorMessage"],"mappings":"u6KAcO,MAAMA,EAAyB,CAAC,CACrC,SAAAC,EACA,YAAAC,EACA,UAAAC,EACA,eAAAC,EACA,aAAAC,CACF,KAmCS,CAAE,sBAjCqBC,EAAA,YAC5B,MAAOC,GAAmB,CACxB,GAAI,CAACN,EACG,KAAA,4DAIR,GAAI,CAACG,EACG,KAAA,6DAGJ,GAAA,CACI,MAAAC,EACJE,EACA,CACE,SAAUH,CACZ,EACAI,EAAA,kBAAkBD,EAAQJ,CAAS,CACrC,EAEAM,EAAA,MAAM,QAAQ,qBAAqB,QAC5BC,EAAO,CACd,MAAMC,EACJ,OAAOD,GAAU,SACb,iCAAmCA,EACnC,+BACN,cAAQ,MAAMC,CAAY,EACpBA,CAAA,CAEV,EACA,CAACV,EAAUC,EAAaE,CAAc,CACxC,CAE+B"}
@@ -1,7 +1,7 @@
1
- import { useCallback as s } from "react";
1
+ import { useCallback as a } from "react";
2
2
  import "../../../../../_virtual/jsx-runtime.es.js";
3
3
  import "react-dom";
4
- import { isViewProjectScope as n } from "../context/ViewsContext.es.js";
4
+ import { isViewStudioScope as n } from "../context/ViewsContext.es.js";
5
5
  import "../Views.styled.es.js";
6
6
  import "clsx";
7
7
  import "../ViewsMenuContainer/ViewsMenuContainer.es.js";
@@ -87,7 +87,7 @@ import "../../../api/queries/views/getViews.es.js";
87
87
  import "../../../api/queries/views/updateViews.es.js";
88
88
  import "../../../api/queries/watchers/getWatchers.es.js";
89
89
  import "lodash";
90
- import "react-toastify";
90
+ import { toast as w } from "react-toastify";
91
91
  import "../../../context/DetailsPanelContext.es.js";
92
92
  import "../../../context/ThumbnailUploaderContext.es.js";
93
93
  import "../../../context/SettingsPanelContext.es.js";
@@ -103,34 +103,34 @@ import "@ynput/ayon-react-components";
103
103
  import "../ViewsMenu/ViewsMenu.es.js";
104
104
  import "uuid";
105
105
  import "../../../util/pubsub.es.js";
106
- const so = ({
106
+ const no = ({
107
107
  viewType: o,
108
108
  projectName: p,
109
109
  viewsList: e,
110
110
  sourceSettings: r,
111
- onUpdateView: a
112
- }) => ({ onSaveViewFromCurrent: s(
113
- async (i) => {
111
+ onUpdateView: s
112
+ }) => ({ onSaveViewFromCurrent: a(
113
+ async (t) => {
114
114
  if (!o)
115
115
  throw "viewType are required for saving a view from another view";
116
116
  if (!r)
117
117
  throw "sourceView is required for saving a view from another view";
118
118
  try {
119
- await a(
120
- i,
119
+ await s(
120
+ t,
121
121
  {
122
122
  settings: r
123
123
  },
124
- n(i, e)
125
- );
126
- } catch (t) {
127
- const m = typeof t == "string" ? "Failed to save view settings: " + t : "Failed to save view settings";
124
+ n(t, e)
125
+ ), w.success("View settings saved");
126
+ } catch (i) {
127
+ const m = typeof i == "string" ? "Failed to save view settings: " + i : "Failed to save view settings";
128
128
  throw console.error(m), m;
129
129
  }
130
130
  },
131
131
  [o, p, r]
132
132
  ) });
133
133
  export {
134
- so as useSaveViewFromCurrent
134
+ no as useSaveViewFromCurrent
135
135
  };
136
136
  //# sourceMappingURL=useSaveViewFromCurrent.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSaveViewFromCurrent.es.js","sources":["../../../../../../src/containers/Views/hooks/useSaveViewFromCurrent.ts"],"sourcesContent":["import { useCallback } from 'react'\nimport { isViewProjectScope, ViewData, ViewSettings, ViewType } from '..'\nimport { UseViewMutations } from './useViewsMutations'\nimport { ViewListItemModel } from '@shared/api'\n\ntype Props = {\n viewType?: ViewType\n projectName?: string\n viewsList: ViewListItemModel[]\n sourceSettings?: ViewSettings\n onUpdateView: UseViewMutations['onUpdateView']\n}\n\nexport const useSaveViewFromCurrent = ({\n viewType,\n projectName,\n viewsList,\n sourceSettings,\n onUpdateView,\n}: Props) => {\n // save the views settings from another views settings (uses update)\n const onSaveViewFromCurrent = useCallback(\n async (viewId: string) => {\n if (!viewType) {\n throw 'viewType are required for saving a view from another view'\n }\n\n // get the fromView settings\n if (!sourceSettings) {\n throw 'sourceView is required for saving a view from another view'\n }\n\n try {\n await onUpdateView(\n viewId,\n {\n settings: sourceSettings,\n },\n isViewProjectScope(viewId, viewsList),\n )\n } catch (error) {\n const errorMessage =\n typeof error === 'string'\n ? 'Failed to save view settings: ' + error\n : 'Failed to save view settings'\n console.error(errorMessage)\n throw errorMessage\n }\n },\n [viewType, projectName, sourceSettings],\n )\n\n return { onSaveViewFromCurrent }\n}\n"],"names":["useSaveViewFromCurrent","viewType","projectName","viewsList","sourceSettings","onUpdateView","useCallback","viewId","isViewProjectScope","error","errorMessage"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaO,MAAMA,KAAyB,CAAC;AAAA,EACrC,UAAAC;AAAA,EACA,aAAAC;AAAA,EACA,WAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,cAAAC;AACF,OAiCS,EAAE,uBA/BqBC;AAAA,EAC5B,OAAOC,MAAmB;AACxB,QAAI,CAACN;AACG,YAAA;AAIR,QAAI,CAACG;AACG,YAAA;AAGJ,QAAA;AACI,YAAAC;AAAA,QACJE;AAAA,QACA;AAAA,UACE,UAAUH;AAAA,QACZ;AAAA,QACAI,EAAmBD,GAAQJ,CAAS;AAAA,MACtC;AAAA,aACOM,GAAO;AACd,YAAMC,IACJ,OAAOD,KAAU,WACb,mCAAmCA,IACnC;AACN,oBAAQ,MAAMC,CAAY,GACpBA;AAAA,IAAA;AAAA,EAEV;AAAA,EACA,CAACT,GAAUC,GAAaE,CAAc;AACxC,EAE+B;"}
1
+ {"version":3,"file":"useSaveViewFromCurrent.es.js","sources":["../../../../../../src/containers/Views/hooks/useSaveViewFromCurrent.ts"],"sourcesContent":["import { useCallback } from 'react'\nimport { isViewStudioScope, ViewData, ViewSettings, ViewType } from '..'\nimport { UseViewMutations } from './useViewsMutations'\nimport { ViewListItemModel } from '@shared/api'\nimport { toast } from 'react-toastify'\n\ntype Props = {\n viewType?: ViewType\n projectName?: string\n viewsList: ViewListItemModel[]\n sourceSettings?: ViewSettings\n onUpdateView: UseViewMutations['onUpdateView']\n}\n\nexport const useSaveViewFromCurrent = ({\n viewType,\n projectName,\n viewsList,\n sourceSettings,\n onUpdateView,\n}: Props) => {\n // save the views settings from another views settings (uses update)\n const onSaveViewFromCurrent = useCallback(\n async (viewId: string) => {\n if (!viewType) {\n throw 'viewType are required for saving a view from another view'\n }\n\n // get the fromView settings\n if (!sourceSettings) {\n throw 'sourceView is required for saving a view from another view'\n }\n\n try {\n await onUpdateView(\n viewId,\n {\n settings: sourceSettings,\n },\n isViewStudioScope(viewId, viewsList),\n )\n\n toast.success('View settings saved')\n } catch (error) {\n const errorMessage =\n typeof error === 'string'\n ? 'Failed to save view settings: ' + error\n : 'Failed to save view settings'\n console.error(errorMessage)\n throw errorMessage\n }\n },\n [viewType, projectName, sourceSettings],\n )\n\n return { onSaveViewFromCurrent }\n}\n"],"names":["useSaveViewFromCurrent","viewType","projectName","viewsList","sourceSettings","onUpdateView","useCallback","viewId","isViewStudioScope","toast","error","errorMessage"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcO,MAAMA,KAAyB,CAAC;AAAA,EACrC,UAAAC;AAAA,EACA,aAAAC;AAAA,EACA,WAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,cAAAC;AACF,OAmCS,EAAE,uBAjCqBC;AAAA,EAC5B,OAAOC,MAAmB;AACxB,QAAI,CAACN;AACG,YAAA;AAIR,QAAI,CAACG;AACG,YAAA;AAGJ,QAAA;AACI,YAAAC;AAAA,QACJE;AAAA,QACA;AAAA,UACE,UAAUH;AAAA,QACZ;AAAA,QACAI,EAAkBD,GAAQJ,CAAS;AAAA,MACrC,GAEAM,EAAM,QAAQ,qBAAqB;AAAA,aAC5BC,GAAO;AACd,YAAMC,IACJ,OAAOD,KAAU,WACb,mCAAmCA,IACnC;AACN,oBAAQ,MAAMC,CAAY,GACpBA;AAAA,IAAA;AAAA,EAEV;AAAA,EACA,CAACV,GAAUC,GAAaE,CAAc;AACxC,EAE+B;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../../api/base/client.cjs.js");require("../../../api/generated/graphql.cjs.js");require("../../../api/generated/graphqlLinks.cjs.js");require("../../../api/generated/access.cjs.js");require("../../../api/generated/actions.cjs.js");require("../../../api/generated/activityFeed.cjs.js");require("../../../api/generated/addons.cjs.js");require("../../../api/generated/anatomy.cjs.js");require("../../../api/generated/attributes.cjs.js");require("../../../api/generated/authentication.cjs.js");require("../../../api/generated/bundles.cjs.js");require("../../../api/generated/configuration.cjs.js");require("../../../api/generated/desktop.cjs.js");require("../../../api/generated/entityLists.cjs.js");require("../../../api/generated/events.cjs.js");require("../../../api/generated/files.cjs.js");require("../../../api/generated/folders.cjs.js");require("../../../api/generated/inbox.cjs.js");require("../../../api/generated/links.cjs.js");require("../../../api/generated/market.cjs.js");require("../../../api/generated/onboarding.cjs.js");require("../../../api/generated/operations.cjs.js");require("../../../api/generated/products.cjs.js");require("../../../api/generated/projectDashboard.cjs.js");require("../../../api/generated/projects.cjs.js");require("../../../api/generated/reviewables.cjs.js");require("../../../api/generated/services.cjs.js");require("../../../api/generated/system.cjs.js");require("../../../api/generated/tasks.cjs.js");require("../../../api/generated/teams.cjs.js");require("../../../api/generated/thumbnails.cjs.js");require("../../../api/generated/uRIs.cjs.js");require("../../../api/generated/users.cjs.js");require("../../../api/generated/versions.cjs.js");require("../../../api/generated/workfiles.cjs.js");require("../../../api/generated/ynputCloud.cjs.js");require("../../../api/generated/grouping.cjs.js");require("../../../api/generated/views.cjs.js");require("../../../api/queries/actions/getActions.cjs.js");require("../../../api/queries/activities/getActivities.cjs.js");require("../../../api/queries/activities/updateActivities.cjs.js");require("../../../api/queries/activities/updateReaction.cjs.js");require("../../../api/queries/activities/getMentions.cjs.js");require("../../../api/queries/addons/getAddons.cjs.js");require("../../../api/queries/addons/updateAddons.cjs.js");require("../../../api/queries/attributes/getAttributes.cjs.js");require("../../../api/queries/attributes/updateAttributes.cjs.js");require("../../../api/queries/authentication/getAuthentication.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/entities/getEntity.cjs.js");require("../../../api/queries/entities/getEntityPanel.cjs.js");require("../../../api/queries/entities/updateEntity.cjs.js");require("../../../api/queries/entityLists/getLists.cjs.js");require("../../../api/queries/entityLists/updateLists.cjs.js");require("../../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../../api/queries/folders/getFolders.cjs.js");require("../../../api/queries/grouping/getGrouping.cjs.js");require("../../../api/queries/links/updateLinks.cjs.js");require("../../../api/queries/links/getLinks.cjs.js");require("../../../api/queries/links/getEntityLinks.cjs.js");require("../../../api/queries/overview/getOverview.cjs.js");require("../../../api/queries/overview/updateOverview.cjs.js");require("../../../api/queries/permissions/getPermissions.cjs.js");require("../../../api/queries/products/createProduct.cjs.js");require("../../../api/queries/project/getProject.cjs.js");require("../../../api/queries/project/updateProject.cjs.js");require("../../../api/queries/review/getReview.cjs.js");require("../../../api/queries/review/updateReview.cjs.js");require("../../../api/queries/share/share.cjs.js");require("../../../api/queries/system/getSystem.cjs.js");require("../../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../../api/queries/users/getUsers.cjs.js");require("../../../api/queries/users/updateUsers.cjs.js");require("../../../api/queries/versions/updateVersions.cjs.js");require("../../../api/queries/views/getViews.cjs.js");const l=require("../../../api/queries/views/updateViews.cjs.js");require("../../../api/queries/watchers/getWatchers.cjs.js");const a=require("react"),W=require("../utils/generateWorkingView.cjs.js"),h=require("react-toastify"),v=({viewType:e,projectName:t,onCreate:n,onDelete:w,onUpdate:c})=>{const[q]=l.useCreateViewMutation(),[f]=l.useDeleteViewMutation(),[k]=l.useUpdateViewMutation(),b=a.useCallback(async(i,r)=>{if(!e)throw new Error("viewType are required for creating a view");console.log(i,r);try{await q({viewType:e,projectName:r?t:void 0,payload:i}).unwrap(),n&&n(i)}catch(u){throw console.error("Failed to create view:",u),u}},[q,e,t,n]),M=a.useCallback(async(i,r,u)=>{if(!e)throw new Error("viewType are required for updating a view");try{await k({viewId:i,viewType:e,projectName:u?t:void 0,payload:r}).unwrap(),c&&c({...r,id:i})}catch(o){throw console.error("Failed to update view:",o),o}},[q,e,t,c]),C=a.useCallback(async(i,r)=>{if(!e)throw new Error("viewType are required for deleting a view");try{await f({viewType:e,projectName:r?t:void 0,viewId:i}).unwrap(),w&&w(i)}catch(u){throw console.error("Failed to delete view:",u),u}},[f,e,t,w]),F=a.useCallback(async i=>{const{existingWorkingViewId:r,selectedViewId:u,setSelectedView:o,setSettingsChanged:V,notify:g}=i||{};if(!e)throw new Error("viewType are required for resetting a view");const d=W.generateWorkingView({});r&&(d.id=r);try{await q({viewType:e,projectName:t,payload:d}).unwrap();const s=d.id;return o&&V&&u&&r&&u!==r&&(o(s),V(!0)),g&&h.toast.success("View reset to default settings"),s}catch(s){throw console.error("Failed to reset working view:",s),g&&h.toast.error("Failed to reset view to default"),s}},[q,e,t]);return{onCreateView:b,onUpdateView:M,onDeleteView:C,onResetWorkingView:F}};exports.useViewsMutations=v;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../../api/base/client.cjs.js");require("../../../api/generated/graphql.cjs.js");require("../../../api/generated/graphqlLinks.cjs.js");require("../../../api/generated/access.cjs.js");require("../../../api/generated/actions.cjs.js");require("../../../api/generated/activityFeed.cjs.js");require("../../../api/generated/addons.cjs.js");require("../../../api/generated/anatomy.cjs.js");require("../../../api/generated/attributes.cjs.js");require("../../../api/generated/authentication.cjs.js");require("../../../api/generated/bundles.cjs.js");require("../../../api/generated/configuration.cjs.js");require("../../../api/generated/desktop.cjs.js");require("../../../api/generated/entityLists.cjs.js");require("../../../api/generated/events.cjs.js");require("../../../api/generated/files.cjs.js");require("../../../api/generated/folders.cjs.js");require("../../../api/generated/inbox.cjs.js");require("../../../api/generated/links.cjs.js");require("../../../api/generated/market.cjs.js");require("../../../api/generated/onboarding.cjs.js");require("../../../api/generated/operations.cjs.js");require("../../../api/generated/products.cjs.js");require("../../../api/generated/projectDashboard.cjs.js");require("../../../api/generated/projects.cjs.js");require("../../../api/generated/reviewables.cjs.js");require("../../../api/generated/services.cjs.js");require("../../../api/generated/system.cjs.js");require("../../../api/generated/tasks.cjs.js");require("../../../api/generated/teams.cjs.js");require("../../../api/generated/thumbnails.cjs.js");require("../../../api/generated/uRIs.cjs.js");require("../../../api/generated/users.cjs.js");require("../../../api/generated/versions.cjs.js");require("../../../api/generated/workfiles.cjs.js");require("../../../api/generated/ynputCloud.cjs.js");require("../../../api/generated/grouping.cjs.js");require("../../../api/generated/views.cjs.js");require("../../../api/queries/actions/getActions.cjs.js");require("../../../api/queries/activities/getActivities.cjs.js");require("../../../api/queries/activities/updateActivities.cjs.js");require("../../../api/queries/activities/updateReaction.cjs.js");require("../../../api/queries/activities/getMentions.cjs.js");require("../../../api/queries/addons/getAddons.cjs.js");require("../../../api/queries/addons/updateAddons.cjs.js");require("../../../api/queries/attributes/getAttributes.cjs.js");require("../../../api/queries/attributes/updateAttributes.cjs.js");require("../../../api/queries/authentication/getAuthentication.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/entities/getEntity.cjs.js");require("../../../api/queries/entities/getEntityPanel.cjs.js");require("../../../api/queries/entities/updateEntity.cjs.js");require("../../../api/queries/entityLists/getLists.cjs.js");require("../../../api/queries/entityLists/updateLists.cjs.js");require("../../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../../api/queries/folders/getFolders.cjs.js");require("../../../api/queries/grouping/getGrouping.cjs.js");require("../../../api/queries/links/updateLinks.cjs.js");require("../../../api/queries/links/getLinks.cjs.js");require("../../../api/queries/links/getEntityLinks.cjs.js");require("../../../api/queries/overview/getOverview.cjs.js");require("../../../api/queries/overview/updateOverview.cjs.js");require("../../../api/queries/permissions/getPermissions.cjs.js");require("../../../api/queries/products/createProduct.cjs.js");require("../../../api/queries/project/getProject.cjs.js");require("../../../api/queries/project/updateProject.cjs.js");require("../../../api/queries/review/getReview.cjs.js");require("../../../api/queries/review/updateReview.cjs.js");require("../../../api/queries/share/share.cjs.js");require("../../../api/queries/system/getSystem.cjs.js");require("../../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../../api/queries/users/getUsers.cjs.js");require("../../../api/queries/users/updateUsers.cjs.js");require("../../../api/queries/versions/updateVersions.cjs.js");require("../../../api/queries/views/getViews.cjs.js");const l=require("../../../api/queries/views/updateViews.cjs.js");require("../../../api/queries/watchers/getWatchers.cjs.js");const s=require("react"),W=require("../utils/generateWorkingView.cjs.js"),h=require("react-toastify"),v=({viewType:e,projectName:t,onCreate:n,onDelete:c,onUpdate:w})=>{const[q]=l.useCreateViewMutation(),[f]=l.useDeleteViewMutation(),[k]=l.useUpdateViewMutation(),b=s.useCallback(async(i,r)=>{if(!e)throw new Error("viewType are required for creating a view");try{await q({viewType:e,projectName:r?void 0:t,payload:i}).unwrap(),n&&n(i)}catch(u){throw console.error("Failed to create view:",u),u}},[q,e,t,n]),M=s.useCallback(async(i,r,u)=>{if(!e)throw new Error("viewType are required for updating a view");try{await k({viewId:i,viewType:e,projectName:u?void 0:t,payload:r}).unwrap(),w&&w({...r,id:i})}catch(o){throw console.error("Failed to update view:",o),o}},[q,e,t,w]),C=s.useCallback(async(i,r)=>{if(!e)throw new Error("viewType are required for deleting a view");try{await f({viewType:e,projectName:r?void 0:t,viewId:i}).unwrap(),c&&c(i)}catch(u){throw console.error("Failed to delete view:",u),u}},[f,e,t,c]),F=s.useCallback(async i=>{const{existingWorkingViewId:r,selectedViewId:u,setSelectedView:o,setSettingsChanged:V,notify:g}=i||{};if(!e)throw new Error("viewType are required for resetting a view");const d=W.generateWorkingView({});r&&(d.id=r);try{await q({viewType:e,projectName:t,payload:d}).unwrap();const a=d.id;return o&&V&&u&&r&&u!==r&&(o(a),V(!0)),g&&h.toast.success("View reset to default settings"),a}catch(a){throw console.error("Failed to reset working view:",a),g&&h.toast.error("Failed to reset view to default"),a}},[q,e,t]);return{onCreateView:b,onUpdateView:M,onDeleteView:C,onResetWorkingView:F}};exports.useViewsMutations=v;
2
2
  //# sourceMappingURL=useViewsMutations.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useViewsMutations.cjs.js","sources":["../../../../../../src/containers/Views/hooks/useViewsMutations.ts"],"sourcesContent":["import {\n CreateViewApiArg,\n useCreateViewMutation,\n useDeleteViewMutation,\n useUpdateViewMutation,\n} from '@shared/api'\nimport { useCallback } from 'react'\nimport { ViewData } from '../context/ViewsContext'\nimport { generateWorkingView } from '../utils/generateWorkingView'\nimport { toast } from 'react-toastify'\n\ntype Props = {\n viewType?: string\n projectName?: string\n onCreate?: (view: ViewData) => void\n onUpdate?: (view: ViewData) => void\n onDelete?: (viewId: string) => void\n}\n\nexport type UseViewMutations = {\n onCreateView: (payload: CreateViewApiArg['payload'], isProjectScope: boolean) => Promise<void>\n onDeleteView: (viewId: string, isProjectScope: boolean) => Promise<void>\n onUpdateView: (\n viewId: string,\n payload: Partial<ViewData>,\n isProjectScope: boolean,\n ) => Promise<void>\n onResetWorkingView: (args?: {\n existingWorkingViewId?: string\n selectedViewId?: string\n setSelectedView?: (id: string) => void\n setSettingsChanged?: (changed: boolean) => void\n notify?: boolean\n }) => Promise<string>\n}\ntype R = UseViewMutations\n\nexport const useViewsMutations = ({\n viewType,\n projectName,\n onCreate,\n onDelete,\n onUpdate,\n}: Props): UseViewMutations => {\n // forward mutations to the dialog\n const [createView] = useCreateViewMutation()\n const [deleteView] = useDeleteViewMutation()\n const [updateView] = useUpdateViewMutation()\n\n const onCreateView = useCallback<R['onCreateView']>(\n async (payload, isProjectScope) => {\n if (!viewType) {\n throw new Error('viewType are required for creating a view')\n }\n\n console.log(payload, isProjectScope)\n\n try {\n await createView({\n viewType: viewType,\n projectName: isProjectScope ? projectName : undefined,\n payload,\n }).unwrap()\n\n if (onCreate) {\n onCreate(payload as ViewData)\n }\n } catch (error) {\n console.error('Failed to create view:', error)\n throw error\n }\n },\n [createView, viewType, projectName, onCreate],\n )\n\n const onUpdateView = useCallback<R['onUpdateView']>(\n async (viewId, payload, isProjectScope) => {\n if (!viewType) {\n throw new Error('viewType are required for updating a view')\n }\n\n try {\n await updateView({\n viewId,\n viewType,\n projectName: isProjectScope ? projectName : undefined,\n payload,\n }).unwrap()\n\n if (onUpdate) {\n onUpdate({ ...payload, id: viewId } as ViewData)\n }\n } catch (error) {\n console.error('Failed to update view:', error)\n throw error\n }\n },\n [createView, viewType, projectName, onUpdate],\n )\n\n const onDeleteView = useCallback<R['onDeleteView']>(\n async (viewId, isProjectScope) => {\n if (!viewType) {\n throw new Error('viewType are required for deleting a view')\n }\n\n try {\n await deleteView({\n viewType: viewType,\n projectName: isProjectScope ? projectName : undefined,\n viewId,\n }).unwrap()\n\n if (onDelete) {\n onDelete(viewId)\n }\n } catch (error) {\n console.error('Failed to delete view:', error)\n throw error\n }\n },\n [deleteView, viewType, projectName, onDelete],\n )\n\n const onResetWorkingView = useCallback<R['onResetWorkingView']>(\n async (args) => {\n const { existingWorkingViewId, selectedViewId, setSelectedView, setSettingsChanged, notify } =\n args || {}\n if (!viewType) {\n throw new Error('viewType are required for resetting a view')\n }\n\n const freshWorkingView = generateWorkingView({})\n if (existingWorkingViewId) {\n freshWorkingView.id = existingWorkingViewId\n }\n\n try {\n await createView({\n viewType,\n projectName,\n payload: freshWorkingView,\n }).unwrap()\n const newId = freshWorkingView.id as string\n\n // If we're not currently on the working view, switch to it and mark settings as changed\n if (setSelectedView && setSettingsChanged && selectedViewId && existingWorkingViewId) {\n if (selectedViewId !== existingWorkingViewId) {\n setSelectedView(newId)\n setSettingsChanged(true)\n }\n }\n\n if (notify) {\n toast.success('View reset to default settings')\n }\n\n return newId\n } catch (error) {\n console.error('Failed to reset working view:', error)\n if (notify) toast.error('Failed to reset view to default')\n throw error\n }\n },\n [createView, viewType, projectName],\n )\n\n return {\n onCreateView,\n onUpdateView,\n onDeleteView,\n onResetWorkingView,\n }\n}\n"],"names":["useViewsMutations","viewType","projectName","onCreate","onDelete","onUpdate","createView","useCreateViewMutation","deleteView","useDeleteViewMutation","updateView","useUpdateViewMutation","onCreateView","useCallback","payload","isProjectScope","error","onUpdateView","viewId","onDeleteView","onResetWorkingView","args","existingWorkingViewId","selectedViewId","setSelectedView","setSettingsChanged","notify","freshWorkingView","generateWorkingView","newId","toast"],"mappings":"m6IAqCaA,EAAoB,CAAC,CAChC,SAAAC,EACA,YAAAC,EACA,SAAAC,EACA,SAAAC,EACA,SAAAC,CACF,IAA+B,CAEvB,KAAA,CAACC,CAAU,EAAIC,wBAAsB,EACrC,CAACC,CAAU,EAAIC,wBAAsB,EACrC,CAACC,CAAU,EAAIC,wBAAsB,EAErCC,EAAeC,EAAA,YACnB,MAAOC,EAASC,IAAmB,CACjC,GAAI,CAACd,EACG,MAAA,IAAI,MAAM,2CAA2C,EAGrD,QAAA,IAAIa,EAASC,CAAc,EAE/B,GAAA,CACF,MAAMT,EAAW,CACf,SAAAL,EACA,YAAac,EAAiBb,EAAc,OAC5C,QAAAY,CACD,CAAA,EAAE,OAAO,EAENX,GACFA,EAASW,CAAmB,QAEvBE,EAAO,CACN,cAAA,MAAM,yBAA0BA,CAAK,EACvCA,CAAA,CAEV,EACA,CAACV,EAAYL,EAAUC,EAAaC,CAAQ,CAC9C,EAEMc,EAAeJ,EAAA,YACnB,MAAOK,EAAQJ,EAASC,IAAmB,CACzC,GAAI,CAACd,EACG,MAAA,IAAI,MAAM,2CAA2C,EAGzD,GAAA,CACF,MAAMS,EAAW,CACf,OAAAQ,EACA,SAAAjB,EACA,YAAac,EAAiBb,EAAc,OAC5C,QAAAY,CACD,CAAA,EAAE,OAAO,EAENT,GACFA,EAAS,CAAE,GAAGS,EAAS,GAAII,EAAoB,QAE1CF,EAAO,CACN,cAAA,MAAM,yBAA0BA,CAAK,EACvCA,CAAA,CAEV,EACA,CAACV,EAAYL,EAAUC,EAAaG,CAAQ,CAC9C,EAEMc,EAAeN,EAAA,YACnB,MAAOK,EAAQH,IAAmB,CAChC,GAAI,CAACd,EACG,MAAA,IAAI,MAAM,2CAA2C,EAGzD,GAAA,CACF,MAAMO,EAAW,CACf,SAAAP,EACA,YAAac,EAAiBb,EAAc,OAC5C,OAAAgB,CACD,CAAA,EAAE,OAAO,EAENd,GACFA,EAASc,CAAM,QAEVF,EAAO,CACN,cAAA,MAAM,yBAA0BA,CAAK,EACvCA,CAAA,CAEV,EACA,CAACR,EAAYP,EAAUC,EAAaE,CAAQ,CAC9C,EAEMgB,EAAqBP,EAAA,YACzB,MAAOQ,GAAS,CACR,KAAA,CAAE,sBAAAC,EAAuB,eAAAC,EAAgB,gBAAAC,EAAiB,mBAAAC,EAAoB,OAAAC,CAAO,EACzFL,GAAQ,CAAC,EACX,GAAI,CAACpB,EACG,MAAA,IAAI,MAAM,4CAA4C,EAGxD,MAAA0B,EAAmBC,EAAoB,oBAAA,EAAE,EAC3CN,IACFK,EAAiB,GAAKL,GAGpB,GAAA,CACF,MAAMhB,EAAW,CACf,SAAAL,EACA,YAAAC,EACA,QAASyB,CACV,CAAA,EAAE,OAAO,EACV,MAAME,EAAQF,EAAiB,GAG3B,OAAAH,GAAmBC,GAAsBF,GAAkBD,GACzDC,IAAmBD,IACrBE,EAAgBK,CAAK,EACrBJ,EAAmB,EAAI,GAIvBC,GACFI,EAAA,MAAM,QAAQ,gCAAgC,EAGzCD,QACAb,EAAO,CACN,cAAA,MAAM,gCAAiCA,CAAK,EAChDU,GAAcI,EAAAA,MAAA,MAAM,iCAAiC,EACnDd,CAAA,CAEV,EACA,CAACV,EAAYL,EAAUC,CAAW,CACpC,EAEO,MAAA,CACL,aAAAU,EACA,aAAAK,EACA,aAAAE,EACA,mBAAAC,CACF,CACF"}
1
+ {"version":3,"file":"useViewsMutations.cjs.js","sources":["../../../../../../src/containers/Views/hooks/useViewsMutations.ts"],"sourcesContent":["import {\n CreateViewApiArg,\n useCreateViewMutation,\n useDeleteViewMutation,\n useUpdateViewMutation,\n} from '@shared/api'\nimport { useCallback } from 'react'\nimport { ViewData } from '../context/ViewsContext'\nimport { generateWorkingView } from '../utils/generateWorkingView'\nimport { toast } from 'react-toastify'\n\ntype Props = {\n viewType?: string\n projectName?: string\n onCreate?: (view: ViewData) => void\n onUpdate?: (view: ViewData) => void\n onDelete?: (viewId: string) => void\n}\n\nexport type UseViewMutations = {\n onCreateView: (payload: CreateViewApiArg['payload'], isStudioScope: boolean) => Promise<void>\n onDeleteView: (viewId: string, isStudioScope: boolean) => Promise<void>\n onUpdateView: (\n viewId: string,\n payload: Partial<ViewData>,\n isStudioScope: boolean,\n ) => Promise<void>\n onResetWorkingView: (args?: {\n existingWorkingViewId?: string\n selectedViewId?: string\n setSelectedView?: (id: string) => void\n setSettingsChanged?: (changed: boolean) => void\n notify?: boolean\n }) => Promise<string>\n}\ntype R = UseViewMutations\n\nexport const useViewsMutations = ({\n viewType,\n projectName,\n onCreate,\n onDelete,\n onUpdate,\n}: Props): UseViewMutations => {\n // forward mutations to the dialog\n const [createView] = useCreateViewMutation()\n const [deleteView] = useDeleteViewMutation()\n const [updateView] = useUpdateViewMutation()\n\n const onCreateView = useCallback<R['onCreateView']>(\n async (payload, isStudioScope) => {\n if (!viewType) {\n throw new Error('viewType are required for creating a view')\n }\n\n try {\n await createView({\n viewType: viewType,\n projectName: isStudioScope ? undefined : projectName,\n payload,\n }).unwrap()\n\n if (onCreate) {\n onCreate(payload as ViewData)\n }\n } catch (error) {\n console.error('Failed to create view:', error)\n throw error\n }\n },\n [createView, viewType, projectName, onCreate],\n )\n\n const onUpdateView = useCallback<R['onUpdateView']>(\n async (viewId, payload, isStudioScope) => {\n if (!viewType) {\n throw new Error('viewType are required for updating a view')\n }\n\n try {\n await updateView({\n viewId,\n viewType,\n projectName: isStudioScope ? undefined : projectName,\n payload,\n }).unwrap()\n\n if (onUpdate) {\n onUpdate({ ...payload, id: viewId } as ViewData)\n }\n } catch (error) {\n console.error('Failed to update view:', error)\n throw error\n }\n },\n [createView, viewType, projectName, onUpdate],\n )\n\n const onDeleteView = useCallback<R['onDeleteView']>(\n async (viewId, isStudioScope) => {\n if (!viewType) {\n throw new Error('viewType are required for deleting a view')\n }\n\n try {\n await deleteView({\n viewType: viewType,\n projectName: isStudioScope ? undefined : projectName,\n viewId,\n }).unwrap()\n\n if (onDelete) {\n onDelete(viewId)\n }\n } catch (error) {\n console.error('Failed to delete view:', error)\n throw error\n }\n },\n [deleteView, viewType, projectName, onDelete],\n )\n\n const onResetWorkingView = useCallback<R['onResetWorkingView']>(\n async (args) => {\n const { existingWorkingViewId, selectedViewId, setSelectedView, setSettingsChanged, notify } =\n args || {}\n if (!viewType) {\n throw new Error('viewType are required for resetting a view')\n }\n\n const freshWorkingView = generateWorkingView({})\n if (existingWorkingViewId) {\n freshWorkingView.id = existingWorkingViewId\n }\n\n try {\n await createView({\n viewType,\n projectName,\n payload: freshWorkingView,\n }).unwrap()\n const newId = freshWorkingView.id as string\n\n // If we're not currently on the working view, switch to it and mark settings as changed\n if (setSelectedView && setSettingsChanged && selectedViewId && existingWorkingViewId) {\n if (selectedViewId !== existingWorkingViewId) {\n setSelectedView(newId)\n setSettingsChanged(true)\n }\n }\n\n if (notify) {\n toast.success('View reset to default settings')\n }\n\n return newId\n } catch (error) {\n console.error('Failed to reset working view:', error)\n if (notify) toast.error('Failed to reset view to default')\n throw error\n }\n },\n [createView, viewType, projectName],\n )\n\n return {\n onCreateView,\n onUpdateView,\n onDeleteView,\n onResetWorkingView,\n }\n}\n"],"names":["useViewsMutations","viewType","projectName","onCreate","onDelete","onUpdate","createView","useCreateViewMutation","deleteView","useDeleteViewMutation","updateView","useUpdateViewMutation","onCreateView","useCallback","payload","isStudioScope","error","onUpdateView","viewId","onDeleteView","onResetWorkingView","args","existingWorkingViewId","selectedViewId","setSelectedView","setSettingsChanged","notify","freshWorkingView","generateWorkingView","newId","toast"],"mappings":"m6IAqCaA,EAAoB,CAAC,CAChC,SAAAC,EACA,YAAAC,EACA,SAAAC,EACA,SAAAC,EACA,SAAAC,CACF,IAA+B,CAEvB,KAAA,CAACC,CAAU,EAAIC,wBAAsB,EACrC,CAACC,CAAU,EAAIC,wBAAsB,EACrC,CAACC,CAAU,EAAIC,wBAAsB,EAErCC,EAAeC,EAAA,YACnB,MAAOC,EAASC,IAAkB,CAChC,GAAI,CAACd,EACG,MAAA,IAAI,MAAM,2CAA2C,EAGzD,GAAA,CACF,MAAMK,EAAW,CACf,SAAAL,EACA,YAAac,EAAgB,OAAYb,EACzC,QAAAY,CACD,CAAA,EAAE,OAAO,EAENX,GACFA,EAASW,CAAmB,QAEvBE,EAAO,CACN,cAAA,MAAM,yBAA0BA,CAAK,EACvCA,CAAA,CAEV,EACA,CAACV,EAAYL,EAAUC,EAAaC,CAAQ,CAC9C,EAEMc,EAAeJ,EAAA,YACnB,MAAOK,EAAQJ,EAASC,IAAkB,CACxC,GAAI,CAACd,EACG,MAAA,IAAI,MAAM,2CAA2C,EAGzD,GAAA,CACF,MAAMS,EAAW,CACf,OAAAQ,EACA,SAAAjB,EACA,YAAac,EAAgB,OAAYb,EACzC,QAAAY,CACD,CAAA,EAAE,OAAO,EAENT,GACFA,EAAS,CAAE,GAAGS,EAAS,GAAII,EAAoB,QAE1CF,EAAO,CACN,cAAA,MAAM,yBAA0BA,CAAK,EACvCA,CAAA,CAEV,EACA,CAACV,EAAYL,EAAUC,EAAaG,CAAQ,CAC9C,EAEMc,EAAeN,EAAA,YACnB,MAAOK,EAAQH,IAAkB,CAC/B,GAAI,CAACd,EACG,MAAA,IAAI,MAAM,2CAA2C,EAGzD,GAAA,CACF,MAAMO,EAAW,CACf,SAAAP,EACA,YAAac,EAAgB,OAAYb,EACzC,OAAAgB,CACD,CAAA,EAAE,OAAO,EAENd,GACFA,EAASc,CAAM,QAEVF,EAAO,CACN,cAAA,MAAM,yBAA0BA,CAAK,EACvCA,CAAA,CAEV,EACA,CAACR,EAAYP,EAAUC,EAAaE,CAAQ,CAC9C,EAEMgB,EAAqBP,EAAA,YACzB,MAAOQ,GAAS,CACR,KAAA,CAAE,sBAAAC,EAAuB,eAAAC,EAAgB,gBAAAC,EAAiB,mBAAAC,EAAoB,OAAAC,CAAO,EACzFL,GAAQ,CAAC,EACX,GAAI,CAACpB,EACG,MAAA,IAAI,MAAM,4CAA4C,EAGxD,MAAA0B,EAAmBC,EAAoB,oBAAA,EAAE,EAC3CN,IACFK,EAAiB,GAAKL,GAGpB,GAAA,CACF,MAAMhB,EAAW,CACf,SAAAL,EACA,YAAAC,EACA,QAASyB,CACV,CAAA,EAAE,OAAO,EACV,MAAME,EAAQF,EAAiB,GAG3B,OAAAH,GAAmBC,GAAsBF,GAAkBD,GACzDC,IAAmBD,IACrBE,EAAgBK,CAAK,EACrBJ,EAAmB,EAAI,GAIvBC,GACFI,EAAA,MAAM,QAAQ,gCAAgC,EAGzCD,QACAb,EAAO,CACN,cAAA,MAAM,gCAAiCA,CAAK,EAChDU,GAAcI,EAAAA,MAAA,MAAM,iCAAiC,EACnDd,CAAA,CAEV,EACA,CAACV,EAAYL,EAAUC,CAAW,CACpC,EAEO,MAAA,CACL,aAAAU,EACA,aAAAK,EACA,aAAAE,EACA,mBAAAC,CACF,CACF"}