@searpent/react-image-annotate 2.0.45 → 2.0.47

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.
@@ -76,6 +76,7 @@ export var Annotator = function Annotator(_ref) {
76
76
  groupColors = _ref.groupColors,
77
77
  onRecalc = _ref.onRecalc,
78
78
  onSave = _ref.onSave,
79
+ onSelectedImageChange = _ref.onSelectedImageChange,
79
80
  albumMetadata = _ref.albumMetadata,
80
81
  metadataConfigs = _ref.metadataConfigs,
81
82
  _ref$lockedImages = _ref.lockedImages,
@@ -197,13 +198,51 @@ export var Annotator = function Annotator(_ref) {
197
198
  };
198
199
  }();
199
200
 
200
- var handleRecalcClick = function handleRecalcClick(e) {
201
- e.preventDefault();
201
+ var handleRecalcClick =
202
+ /*#__PURE__*/
203
+ function () {
204
+ var _ref3 = _asyncToGenerator(
205
+ /*#__PURE__*/
206
+ _regeneratorRuntime.mark(function _callee2(e) {
207
+ var createdAt;
208
+ return _regeneratorRuntime.wrap(function _callee2$(_context2) {
209
+ while (1) {
210
+ switch (_context2.prev = _context2.next) {
211
+ case 0:
212
+ createdAt = new Date();
213
+ e.preventDefault();
202
214
 
203
- if (onRecalc) {
204
- onRecalc();
205
- }
206
- };
215
+ if (!onRecalc) {
216
+ _context2.next = 6;
217
+ break;
218
+ }
219
+
220
+ _context2.next = 5;
221
+ return onRecalc({
222
+ images: state.images,
223
+ albumMetadata: state.albumMetadata,
224
+ createdAt: createdAt,
225
+ selectedImage: state === null || state === void 0 ? void 0 : state.selectedImage
226
+ });
227
+
228
+ case 5:
229
+ dispatchToReducer({
230
+ type: "IMAGES_RECALCULATED",
231
+ recalculatedAt: createdAt
232
+ });
233
+
234
+ case 6:
235
+ case "end":
236
+ return _context2.stop();
237
+ }
238
+ }
239
+ }, _callee2);
240
+ }));
241
+
242
+ return function handleRecalcClick(_x2) {
243
+ return _ref3.apply(this, arguments);
244
+ };
245
+ }();
207
246
 
208
247
  var handleMetadataChange = function handleMetadataChange(params) {
209
248
  dispatchToReducer(_objectSpread({
@@ -216,8 +255,24 @@ export var Annotator = function Annotator(_ref) {
216
255
  type: "ADD_GROUP",
217
256
  group: group
218
257
  });
219
- }; // trigger this on every BBox manipulation (there is currently no way to detect adding of new box!)
258
+ }; // trigger onSelectedImageChange() hook when image changed
259
+
220
260
 
261
+ useEffect(function () {
262
+ var _state$lastAction;
263
+
264
+ var createdAt = new Date();
265
+
266
+ if (typeof onSelectedImageChange === 'function' && ((_state$lastAction = state.lastAction) === null || _state$lastAction === void 0 ? void 0 : _state$lastAction.type) === 'SELECT_IMAGE' && (state === null || state === void 0 ? void 0 : state.selectedImage) !== state.previouslySelectedImage) {
267
+ onSelectedImageChange({
268
+ selectedImage: state === null || state === void 0 ? void 0 : state.selectedImage,
269
+ previouslySelectedImage: state.previouslySelectedImage,
270
+ images: state.images,
271
+ albumMetadata: state.albumMetadata,
272
+ createdAt: createdAt
273
+ });
274
+ }
275
+ }, [state.previouslySelectedImage, state.selectedImage, onSelectedImageChange, state.images, state.albumMetadata, state]); // trigger this on every BBox manipulation (there is currently no way to detect adding of new box!)
221
276
 
222
277
  useEffect(function () {
223
278
  if (!state.lastAction || !["BEGIN_BOX_TRANSFORM", "CHANGE_REGION", "DELETE_REGION", "DELETE_SELECTED_REGION", "UPDATE_METADATA", "SELECT_CLASSIFICATION"].includes(state.lastAction.type)) {
@@ -243,10 +298,10 @@ export var Annotator = function Annotator(_ref) {
243
298
  }, [onImagesChange, selectedImage]);
244
299
  if (!images && !videoSrc) return 'Missing required prop "images" or "videoSrc"';
245
300
 
246
- var _ref3 = state.imagesSavedAt < state.imagesUpdatedAt ? [true, true] : [false, false],
247
- _ref4 = _slicedToArray(_ref3, 2),
248
- recalcActive = _ref4[0],
249
- saveActive = _ref4[1];
301
+ var _ref4 = state.imagesSavedAt < state.imagesUpdatedAt ? [true, true] : [false, false],
302
+ _ref5 = _slicedToArray(_ref4, 2),
303
+ recalcActive = _ref5[0],
304
+ saveActive = _ref5[1];
250
305
 
251
306
  return React.createElement(SettingsProvider, {
252
307
  clsColors: clsColors,
@@ -114,6 +114,7 @@ export default (function (state, action) {
114
114
  src = _ref.src,
115
115
  frameTime = _ref.frameTime;
116
116
 
117
+ state = setIn(state, ["previouslySelectedImage"], state.selectedImage);
117
118
  return setIn(setIn(state, ["selectedImage"], index), ["selectedImageFrameTime"], frameTime);
118
119
  };
119
120
 
@@ -1155,6 +1156,12 @@ export default (function (state, action) {
1155
1156
  return setIn(state, ["imagesSavedAt"], savedAt);
1156
1157
  }
1157
1158
 
1159
+ case "IMAGES_RECALCULATED":
1160
+ {
1161
+ var recalculatedAt = action.recalculatedAt;
1162
+ return setIn(state, ["imagesSavedAt"], recalculatedAt);
1163
+ }
1164
+
1158
1165
  case "UPDATE_METADATA":
1159
1166
  {
1160
1167
  var name = action.name,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@searpent/react-image-annotate",
3
- "version": "2.0.45",
3
+ "version": "2.0.47",
4
4
  "dependencies": {
5
5
  "@editorjs/editorjs": "^2.25.0",
6
6
  "@editorjs/paragraph": "^2.8.0",