@itwin/saved-views-react 0.7.0 → 0.8.0

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.
@@ -123,10 +123,6 @@ export class ITwinSavedViewsClient {
123
123
  return groupResponseToSavedViewGroup(group);
124
124
  }
125
125
  async deleteGroup(args) {
126
- const savedViewPages = this.#client.getAllSavedViewsMinimal({ groupId: args.groupId, signal: args.signal });
127
- for await (const { savedViews } of savedViewPages) {
128
- await Promise.all(savedViews.map(({ id }) => this.#client.deleteSavedView({ savedViewId: id, signal: args.signal })));
129
- }
130
126
  await this.#client.deleteGroup({ groupId: args.groupId, signal: args.signal });
131
127
  }
132
128
  async createTag(args) {
@@ -184,7 +184,7 @@ export interface SavedViewsActions {
184
184
  *
185
185
  * return <MySavedViewsWidget savedViews={savedViews} onOpenSavedView={handleOpenSavedView} />;
186
186
  */
187
- export declare const useSavedViews: ((args: UseSavedViewsArgs) => UseSavedViewsResult) & ((args: UseSavedViewsArgs) => UseSavedViewsResult) & {
187
+ export declare const useSavedViews: ((args: UseSavedViewsArgs) => UseSavedViewsResult) & {
188
188
  /** Suggested initial state of custom Saved View stores. Immutable. */
189
189
  emptyState: SavedViewsState;
190
190
  };
@@ -132,94 +132,6 @@ export const useSavedViews = Object.assign((args) => {
132
132
  },
133
133
  });
134
134
  return useMemo(() => ({ ...events, store: state }), [events, state]);
135
- }, (args) => {
136
- const { iTwinId, iModelId, client } = args;
137
- const [state, setState] = useControlledState(args.state ?? emptyState, args.state, args.setState);
138
- const stateRef = useRef({ iTwinId, iModelId, client, state, setState });
139
- stateRef.current = { iTwinId, iModelId, client, state, setState };
140
- const [events] = useState({
141
- ...createActions(stateRef),
142
- startLoadingData: (callback) => {
143
- const { iTwinId, iModelId, client, setState } = stateRef.current;
144
- const abortController = new AbortController();
145
- const signal = abortController.signal;
146
- const observer = new CustomObserver((savedViewId) => {
147
- void (async () => {
148
- const loadSavedViewData = async () => {
149
- let savedViewData;
150
- try {
151
- savedViewData = await client.getSavedViewDataById({ savedViewId, signal });
152
- }
153
- catch {
154
- savedViewData = undefined;
155
- }
156
- if (savedViewData && !signal.aborted) {
157
- setState((prev) => {
158
- const newState = { ...prev };
159
- newState.savedViewData = new Map(prev.savedViewData);
160
- newState.savedViewData.set(savedViewId, savedViewData);
161
- return newState;
162
- });
163
- }
164
- };
165
- const loadThumbnail = async () => {
166
- let thumbnailUrl;
167
- try {
168
- thumbnailUrl = await client.getThumbnailUrl({ savedViewId, signal });
169
- }
170
- catch {
171
- thumbnailUrl = undefined;
172
- }
173
- if (!signal.aborted) {
174
- setState((prev) => {
175
- const newState = { ...prev };
176
- newState.thumbnails = new Map(prev.thumbnails);
177
- newState.thumbnails.set(savedViewId, thumbnailUrl && _jsx("img", { src: thumbnailUrl }));
178
- return newState;
179
- });
180
- }
181
- };
182
- await Promise.all([loadSavedViewData(), loadThumbnail()]);
183
- })();
184
- });
185
- void (async () => {
186
- try {
187
- const result = await getSavedViewInfo(client, iTwinId, iModelId, signal);
188
- signal.throwIfAborted();
189
- setState((prev) => {
190
- const newState = { ...prev };
191
- newState.savedViews = new Map(prev.savedViews);
192
- result.savedViews.forEach((savedView) => newState.savedViews.set(savedView.savedViewId, savedView));
193
- newState.groups = new Map(prev.groups);
194
- result.groups.forEach((group) => newState.groups.set(group.groupId, group));
195
- newState.tags = new Map(prev.tags);
196
- result.tags.forEach((tag) => newState.tags.set(tag.tagId, tag));
197
- newState.thumbnails = new Map(prev.thumbnails);
198
- result.savedViews
199
- .filter(({ savedViewId }) => !prev.thumbnails.has(savedViewId))
200
- .forEach(({ savedViewId }) => {
201
- newState.thumbnails.set(savedViewId, _jsx(ThumbnailPlaceholder, { savedViewId: savedViewId, observer: observer }));
202
- });
203
- return newState;
204
- });
205
- callback?.();
206
- }
207
- catch (error) {
208
- if (callback) {
209
- callback(error);
210
- }
211
- else {
212
- throw error;
213
- }
214
- }
215
- })();
216
- return () => {
217
- abortController.abort();
218
- observer.disconnect();
219
- };
220
- },
221
- });
222
- return useMemo(() => ({ ...events, store: state }), [events, state]);
223
135
  }, {
224
136
  /** Suggested initial state of custom Saved View stores. Immutable. */
225
137
  emptyState,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@itwin/saved-views-react",
3
- "version": "0.7.0",
3
+ "version": "0.8.0",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -29,12 +29,16 @@
29
29
  "./public"
30
30
  ],
31
31
  "devDependencies": {
32
- "@itwin/core-bentley": "^4.0.6",
33
- "@itwin/core-common": "^4.0.6",
34
- "@itwin/core-frontend": "^4.0.6",
35
- "@itwin/core-geometry": "^4.0.6",
36
- "@testing-library/react": "^12.1.5",
37
- "@types/react": "^17.0.39",
32
+ "@itwin/core-bentley": "^4.10.6",
33
+ "@itwin/core-common": "^4.10.6",
34
+ "@itwin/core-frontend": "^4.10.6",
35
+ "@itwin/core-geometry": "^4.10.6",
36
+ "@testing-library/react": "^16.2.0",
37
+ "@itwin/appui-abstract": "^4.10.6",
38
+ "@itwin/core-orbitgt": "^4.10.6",
39
+ "@itwin/core-quantity": "^4.10.6",
40
+ "@testing-library/dom": "^10.0.0",
41
+ "@types/react": "^18.0.0",
38
42
  "@types/recursive-readdir": "^2.2.2",
39
43
  "@vitejs/plugin-react-swc": "^3.5.0",
40
44
  "@vitest/coverage-v8": "^2.1.4",
@@ -43,25 +47,28 @@
43
47
  "npm-run-all": "^4.1.5",
44
48
  "postcss-cli": "^10.1.0",
45
49
  "postcss-modules": "^6.0.0",
46
- "react": "^17.0.0",
47
- "react-dom": "^17.0.0",
50
+ "react": "^18.0.0",
51
+ "react-dom": "^18.0.0",
48
52
  "recursive-readdir": "^2.2.3",
49
53
  "typescript": "^5.5.4",
50
54
  "vite": "^5.4.11",
51
55
  "vitest": "^2.1.4"
52
56
  },
53
57
  "peerDependencies": {
54
- "@itwin/core-common": "^4.0.6",
55
- "@itwin/core-frontend": "^4.0.6",
56
- "@itwin/core-geometry": "^4.0.6",
57
- "react": "^17.0.0 || ^18.0.0",
58
- "react-dom": "^17.0.0 || ^18.0.0"
58
+ "@itwin/core-common": "^4.10.6",
59
+ "@itwin/core-frontend": "^4.10.6",
60
+ "@itwin/core-geometry": "^4.10.6",
61
+ "@itwin/appui-abstract": "^4.10.6",
62
+ "@itwin/core-orbitgt": "^4.10.6",
63
+ "@itwin/core-quantity": "^4.10.6",
64
+ "react": "^18.0.0",
65
+ "react-dom": "^18.0.0"
59
66
  },
60
67
  "dependencies": {
61
68
  "@itwin/itwinui-icons-react": "^2.9.0",
62
- "@itwin/itwinui-react": "^3.8.1",
69
+ "@itwin/itwinui-react": "^3.15.0",
63
70
  "fuse.js": "^6.6.2",
64
- "@itwin/saved-views-client": "^0.4.0"
71
+ "@itwin/saved-views-client": "^0.5.0"
65
72
  },
66
73
  "scripts": {
67
74
  "build": "run-p build:*",