@micromag/core 0.3.206 → 0.3.209

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 (3) hide show
  1. package/es/hooks.js +72 -66
  2. package/lib/hooks.js +72 -66
  3. package/package.json +2 -2
package/es/hooks.js CHANGED
@@ -6,8 +6,8 @@ import isString from 'lodash/isString';
6
6
  import dayjs from 'dayjs';
7
7
  import { EventsManager, MediasParser, StoryParser, ThemeParser } from '@micromag/core';
8
8
  import { createUseEvent, getMediaFilesAsArray } from '@micromag/core/utils';
9
- import { useDrag } from '@use-gesture/react';
10
9
  import { useSpring, useSprings } from '@react-spring/core';
10
+ import { useDrag } from '@use-gesture/react';
11
11
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
12
12
  import { useForm as useForm$1 } from '@folklore/forms';
13
13
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
@@ -196,39 +196,6 @@ var useFormattedTime = function useFormattedTime() {
196
196
  var eventsManager$1 = typeof document !== 'undefined' ? new EventsManager(document) : null;
197
197
  var useDocumentEvent = createUseEvent(eventsManager$1);
198
198
 
199
- var getValueFromSpring = function getValueFromSpring(s) {
200
- var _ref = s || {},
201
- _ref$value = _ref.value,
202
- v = _ref$value === void 0 ? null : _ref$value;
203
-
204
- var _ref2 = v || {},
205
- p = _ref2.progress;
206
-
207
- return p;
208
- };
209
-
210
- function useSpringValue(wantedProgress, immediate, params) {
211
- var _useState = useState(wantedProgress),
212
- _useState2 = _slicedToArray(_useState, 2),
213
- progress = _useState2[0],
214
- setProgress = _useState2[1];
215
-
216
- var onChange = useCallback(function (spring) {
217
- return setProgress(getValueFromSpring(spring));
218
- }, [setProgress]);
219
- useSpring(_objectSpread({
220
- progress: wantedProgress,
221
- onChange: onChange,
222
- immediate: immediate
223
- }, params)); // useEffect(() => {
224
- // if (wantedProgress !== null) {
225
- // api.start({ progress: wantedProgress, immediate, ...params });
226
- // }
227
- // }, [wantedProgress, immediate, params, api]);
228
-
229
- return immediate ? wantedProgress : progress;
230
- }
231
-
232
199
  function useDragProgress() {
233
200
  var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
234
201
  wantedProgress = _ref.progress,
@@ -251,16 +218,24 @@ function useDragProgress() {
251
218
  } : _ref$dragOptions;
252
219
 
253
220
  var refDragging = useRef(false);
221
+ var refProgress = useRef(wantedProgress);
254
222
 
255
- var _useState = useState({
256
- dragging: false,
257
- progress: wantedProgress
258
- }),
223
+ var _useState = useState(false),
259
224
  _useState2 = _slicedToArray(_useState, 2),
260
- _useState2$ = _useState2[0],
261
- dragging = _useState2$.dragging,
262
- progress = _useState2$.progress,
263
- setDragState = _useState2[1];
225
+ dragging = _useState2[0],
226
+ setDragging = _useState2[1];
227
+
228
+ var spring = useCallback(function () {
229
+ return _objectSpread({
230
+ progress: wantedProgress,
231
+ immediate: dragging || disabled
232
+ }, springParams);
233
+ }, []);
234
+
235
+ var _useSpring = useSpring(spring),
236
+ _useSpring2 = _slicedToArray(_useSpring, 2),
237
+ progress = _useSpring2[0].progress,
238
+ api = _useSpring2[1];
264
239
 
265
240
  var onDrag = useCallback(function (gestureState) {
266
241
  if (disabled) {
@@ -281,29 +256,35 @@ function useDragProgress() {
281
256
 
282
257
  var newProgress = computeProgress(gestureState);
283
258
  refDragging.current = active;
284
- setDragState({
285
- dragging: active,
286
- progress: newProgress
259
+ refProgress.current = newProgress;
260
+
261
+ if (active !== dragging) {
262
+ setDragging(active);
263
+ }
264
+
265
+ api.start({
266
+ progress: newProgress,
267
+ immediate: active
287
268
  });
288
269
 
289
270
  if (onProgress !== null) {
290
271
  onProgress(newProgress, gestureState);
291
272
  }
292
- }, [setDragState, disabled, onTap, computeProgress, setDragState, onProgress]);
273
+ }, [setDragging, disabled, onTap, computeProgress, dragging, onProgress]);
293
274
  var bind = useDrag(onDrag, dragOptions);
294
- var springedProgress = useSpringValue(progress, dragging || disabled, springParams);
295
275
  useEffect(function () {
296
- if (wantedProgress !== progress && !refDragging.current) {
297
- setDragState({
298
- dragging: refDragging.current,
299
- progress: wantedProgress
276
+ if (!refDragging.current && wantedProgress !== refProgress.current) {
277
+ refProgress.current = wantedProgress;
278
+ api.start({
279
+ progress: wantedProgress,
280
+ immediate: false
300
281
  });
301
282
  }
302
283
  }, [wantedProgress]);
303
284
  return {
304
285
  bind: bind,
305
286
  dragging: dragging,
306
- progress: springedProgress
287
+ progress: progress
307
288
  };
308
289
  }
309
290
 
@@ -1489,16 +1470,17 @@ function useMediaProgress(media) {
1489
1470
  var _useState = useState(!disabled),
1490
1471
  _useState2 = _slicedToArray(_useState, 2),
1491
1472
  playing = _useState2[0],
1492
- setPlaying = _useState2[1];
1473
+ setPlaying = _useState2[1]; // const currentTime = useMediaCurrentTime(media, {
1474
+ // disabled: disabled || !playing,
1475
+ // ...props,
1476
+ // });
1477
+
1493
1478
 
1494
- var currentTime = useMediaCurrentTime(media, _objectSpread({
1495
- disabled: disabled || !playing
1496
- }, props));
1497
1479
  var duration = useMediaDuration(media, _objectSpread({
1498
1480
  disabled: disabled || !playing
1499
1481
  }, props));
1500
1482
 
1501
- var _useState3 = useState(currentTime > 0 && duration > 0 ? currentTime / duration : 0),
1483
+ var _useState3 = useState(media !== null && (media.currentTime || 0) > 0 && duration > 0 ? media.currentTime / duration : 0),
1502
1484
  _useState4 = _slicedToArray(_useState3, 2),
1503
1485
  progress = _useState4[0],
1504
1486
  setProgress = _useState4[1];
@@ -1533,8 +1515,8 @@ function useMediaProgress(media) {
1533
1515
 
1534
1516
  media.addEventListener('play', onResume);
1535
1517
  media.addEventListener('seeked', onResume);
1536
- media.addEventListener('playing', onResume);
1537
- media.addEventListener('timeupdate', onResume);
1518
+ media.addEventListener('playing', onResume); // media.addEventListener('timeupdate', onResume);
1519
+
1538
1520
  media.addEventListener('pause', onPause);
1539
1521
  media.addEventListener('ended', onPause);
1540
1522
  media.addEventListener('waiting', onPause);
@@ -1549,8 +1531,8 @@ function useMediaProgress(media) {
1549
1531
  return function () {
1550
1532
  media.removeEventListener('play', onResume);
1551
1533
  media.removeEventListener('seeked', onResume);
1552
- media.removeEventListener('playing', onResume);
1553
- media.removeEventListener('timeupdate', onResume);
1534
+ media.removeEventListener('playing', onResume); // media.removeEventListener('timeupdate', onResume);
1535
+
1554
1536
  media.removeEventListener('pause', onPause);
1555
1537
  media.removeEventListener('ended', onPause);
1556
1538
  media.removeEventListener('waiting', onPause);
@@ -1559,11 +1541,7 @@ function useMediaProgress(media) {
1559
1541
  };
1560
1542
  }, [media, updateProgress, setPlaying, playing]);
1561
1543
  useEffect(function () {
1562
- if (media === null) {
1563
- return function () {};
1564
- }
1565
-
1566
- if (!playing || disabled) {
1544
+ if (media === null || !playing || disabled) {
1567
1545
  return function () {};
1568
1546
  }
1569
1547
 
@@ -2012,6 +1990,34 @@ var useScreenSizeFromWindow = function useScreenSizeFromWindow(opts) {
2012
1990
  return useScreenSize(_objectSpread(_objectSpread({}, opts), windowSize));
2013
1991
  };
2014
1992
 
1993
+ var getValueFromSpring = function getValueFromSpring(s) {
1994
+ var _ref = s || {},
1995
+ _ref$value = _ref.value,
1996
+ v = _ref$value === void 0 ? null : _ref$value;
1997
+
1998
+ var _ref2 = v || {},
1999
+ p = _ref2.progress;
2000
+
2001
+ return p;
2002
+ };
2003
+
2004
+ function useSpringValue(wantedProgress, immediate, params) {
2005
+ var _useState = useState(wantedProgress),
2006
+ _useState2 = _slicedToArray(_useState, 2),
2007
+ progress = _useState2[0],
2008
+ setProgress = _useState2[1];
2009
+
2010
+ var onChange = useCallback(function (spring) {
2011
+ return setProgress(getValueFromSpring(spring));
2012
+ }, [setProgress]);
2013
+ useSpring(_objectSpread({
2014
+ progress: wantedProgress,
2015
+ onChange: onChange,
2016
+ immediate: immediate
2017
+ }, params));
2018
+ return immediate ? wantedProgress : progress;
2019
+ }
2020
+
2015
2021
  var useSwipe = function useSwipe() {
2016
2022
  var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
2017
2023
  _ref$width = _ref.width,
package/lib/hooks.js CHANGED
@@ -10,8 +10,8 @@ var isString = require('lodash/isString');
10
10
  var dayjs = require('dayjs');
11
11
  var core = require('@micromag/core');
12
12
  var utils = require('@micromag/core/utils');
13
- var react$1 = require('@use-gesture/react');
14
13
  var core$1 = require('@react-spring/core');
14
+ var react$1 = require('@use-gesture/react');
15
15
  var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
16
16
  var forms = require('@folklore/forms');
17
17
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
@@ -234,39 +234,6 @@ var useFormattedTime = function useFormattedTime() {
234
234
  var eventsManager$1 = typeof document !== 'undefined' ? new core.EventsManager(document) : null;
235
235
  var useDocumentEvent = utils.createUseEvent(eventsManager$1);
236
236
 
237
- var getValueFromSpring = function getValueFromSpring(s) {
238
- var _ref = s || {},
239
- _ref$value = _ref.value,
240
- v = _ref$value === void 0 ? null : _ref$value;
241
-
242
- var _ref2 = v || {},
243
- p = _ref2.progress;
244
-
245
- return p;
246
- };
247
-
248
- function useSpringValue(wantedProgress, immediate, params) {
249
- var _useState = react.useState(wantedProgress),
250
- _useState2 = _slicedToArray__default["default"](_useState, 2),
251
- progress = _useState2[0],
252
- setProgress = _useState2[1];
253
-
254
- var onChange = react.useCallback(function (spring) {
255
- return setProgress(getValueFromSpring(spring));
256
- }, [setProgress]);
257
- core$1.useSpring(_objectSpread__default["default"]({
258
- progress: wantedProgress,
259
- onChange: onChange,
260
- immediate: immediate
261
- }, params)); // useEffect(() => {
262
- // if (wantedProgress !== null) {
263
- // api.start({ progress: wantedProgress, immediate, ...params });
264
- // }
265
- // }, [wantedProgress, immediate, params, api]);
266
-
267
- return immediate ? wantedProgress : progress;
268
- }
269
-
270
237
  function useDragProgress() {
271
238
  var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
272
239
  wantedProgress = _ref.progress,
@@ -289,16 +256,24 @@ function useDragProgress() {
289
256
  } : _ref$dragOptions;
290
257
 
291
258
  var refDragging = react.useRef(false);
259
+ var refProgress = react.useRef(wantedProgress);
292
260
 
293
- var _useState = react.useState({
294
- dragging: false,
295
- progress: wantedProgress
296
- }),
261
+ var _useState = react.useState(false),
297
262
  _useState2 = _slicedToArray__default["default"](_useState, 2),
298
- _useState2$ = _useState2[0],
299
- dragging = _useState2$.dragging,
300
- progress = _useState2$.progress,
301
- setDragState = _useState2[1];
263
+ dragging = _useState2[0],
264
+ setDragging = _useState2[1];
265
+
266
+ var spring = react.useCallback(function () {
267
+ return _objectSpread__default["default"]({
268
+ progress: wantedProgress,
269
+ immediate: dragging || disabled
270
+ }, springParams);
271
+ }, []);
272
+
273
+ var _useSpring = core$1.useSpring(spring),
274
+ _useSpring2 = _slicedToArray__default["default"](_useSpring, 2),
275
+ progress = _useSpring2[0].progress,
276
+ api = _useSpring2[1];
302
277
 
303
278
  var onDrag = react.useCallback(function (gestureState) {
304
279
  if (disabled) {
@@ -319,29 +294,35 @@ function useDragProgress() {
319
294
 
320
295
  var newProgress = computeProgress(gestureState);
321
296
  refDragging.current = active;
322
- setDragState({
323
- dragging: active,
324
- progress: newProgress
297
+ refProgress.current = newProgress;
298
+
299
+ if (active !== dragging) {
300
+ setDragging(active);
301
+ }
302
+
303
+ api.start({
304
+ progress: newProgress,
305
+ immediate: active
325
306
  });
326
307
 
327
308
  if (onProgress !== null) {
328
309
  onProgress(newProgress, gestureState);
329
310
  }
330
- }, [setDragState, disabled, onTap, computeProgress, setDragState, onProgress]);
311
+ }, [setDragging, disabled, onTap, computeProgress, dragging, onProgress]);
331
312
  var bind = react$1.useDrag(onDrag, dragOptions);
332
- var springedProgress = useSpringValue(progress, dragging || disabled, springParams);
333
313
  react.useEffect(function () {
334
- if (wantedProgress !== progress && !refDragging.current) {
335
- setDragState({
336
- dragging: refDragging.current,
337
- progress: wantedProgress
314
+ if (!refDragging.current && wantedProgress !== refProgress.current) {
315
+ refProgress.current = wantedProgress;
316
+ api.start({
317
+ progress: wantedProgress,
318
+ immediate: false
338
319
  });
339
320
  }
340
321
  }, [wantedProgress]);
341
322
  return {
342
323
  bind: bind,
343
324
  dragging: dragging,
344
- progress: springedProgress
325
+ progress: progress
345
326
  };
346
327
  }
347
328
 
@@ -1527,16 +1508,17 @@ function useMediaProgress(media) {
1527
1508
  var _useState = react.useState(!disabled),
1528
1509
  _useState2 = _slicedToArray__default["default"](_useState, 2),
1529
1510
  playing = _useState2[0],
1530
- setPlaying = _useState2[1];
1511
+ setPlaying = _useState2[1]; // const currentTime = useMediaCurrentTime(media, {
1512
+ // disabled: disabled || !playing,
1513
+ // ...props,
1514
+ // });
1515
+
1531
1516
 
1532
- var currentTime = useMediaCurrentTime(media, _objectSpread__default["default"]({
1533
- disabled: disabled || !playing
1534
- }, props));
1535
1517
  var duration = useMediaDuration(media, _objectSpread__default["default"]({
1536
1518
  disabled: disabled || !playing
1537
1519
  }, props));
1538
1520
 
1539
- var _useState3 = react.useState(currentTime > 0 && duration > 0 ? currentTime / duration : 0),
1521
+ var _useState3 = react.useState(media !== null && (media.currentTime || 0) > 0 && duration > 0 ? media.currentTime / duration : 0),
1540
1522
  _useState4 = _slicedToArray__default["default"](_useState3, 2),
1541
1523
  progress = _useState4[0],
1542
1524
  setProgress = _useState4[1];
@@ -1571,8 +1553,8 @@ function useMediaProgress(media) {
1571
1553
 
1572
1554
  media.addEventListener('play', onResume);
1573
1555
  media.addEventListener('seeked', onResume);
1574
- media.addEventListener('playing', onResume);
1575
- media.addEventListener('timeupdate', onResume);
1556
+ media.addEventListener('playing', onResume); // media.addEventListener('timeupdate', onResume);
1557
+
1576
1558
  media.addEventListener('pause', onPause);
1577
1559
  media.addEventListener('ended', onPause);
1578
1560
  media.addEventListener('waiting', onPause);
@@ -1587,8 +1569,8 @@ function useMediaProgress(media) {
1587
1569
  return function () {
1588
1570
  media.removeEventListener('play', onResume);
1589
1571
  media.removeEventListener('seeked', onResume);
1590
- media.removeEventListener('playing', onResume);
1591
- media.removeEventListener('timeupdate', onResume);
1572
+ media.removeEventListener('playing', onResume); // media.removeEventListener('timeupdate', onResume);
1573
+
1592
1574
  media.removeEventListener('pause', onPause);
1593
1575
  media.removeEventListener('ended', onPause);
1594
1576
  media.removeEventListener('waiting', onPause);
@@ -1597,11 +1579,7 @@ function useMediaProgress(media) {
1597
1579
  };
1598
1580
  }, [media, updateProgress, setPlaying, playing]);
1599
1581
  react.useEffect(function () {
1600
- if (media === null) {
1601
- return function () {};
1602
- }
1603
-
1604
- if (!playing || disabled) {
1582
+ if (media === null || !playing || disabled) {
1605
1583
  return function () {};
1606
1584
  }
1607
1585
 
@@ -2050,6 +2028,34 @@ var useScreenSizeFromWindow = function useScreenSizeFromWindow(opts) {
2050
2028
  return useScreenSize(_objectSpread__default["default"](_objectSpread__default["default"]({}, opts), windowSize));
2051
2029
  };
2052
2030
 
2031
+ var getValueFromSpring = function getValueFromSpring(s) {
2032
+ var _ref = s || {},
2033
+ _ref$value = _ref.value,
2034
+ v = _ref$value === void 0 ? null : _ref$value;
2035
+
2036
+ var _ref2 = v || {},
2037
+ p = _ref2.progress;
2038
+
2039
+ return p;
2040
+ };
2041
+
2042
+ function useSpringValue(wantedProgress, immediate, params) {
2043
+ var _useState = react.useState(wantedProgress),
2044
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
2045
+ progress = _useState2[0],
2046
+ setProgress = _useState2[1];
2047
+
2048
+ var onChange = react.useCallback(function (spring) {
2049
+ return setProgress(getValueFromSpring(spring));
2050
+ }, [setProgress]);
2051
+ core$1.useSpring(_objectSpread__default["default"]({
2052
+ progress: wantedProgress,
2053
+ onChange: onChange,
2054
+ immediate: immediate
2055
+ }, params));
2056
+ return immediate ? wantedProgress : progress;
2057
+ }
2058
+
2053
2059
  var useSwipe = function useSwipe() {
2054
2060
  var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
2055
2061
  _ref$width = _ref.width,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@micromag/core",
3
- "version": "0.3.206",
3
+ "version": "0.3.209",
4
4
  "description": "",
5
5
  "keywords": [
6
6
  "javascript"
@@ -133,5 +133,5 @@
133
133
  "publishConfig": {
134
134
  "access": "public"
135
135
  },
136
- "gitHead": "ed021987825fdacbf30fa486cc4f9f55b414ae47"
136
+ "gitHead": "909d9ff44ec6bf543db9c75186cd223391a5f0cd"
137
137
  }