@react-hive/honey-layout 10.7.0 → 10.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.
@@ -14194,7 +14194,7 @@ __webpack_require__.r(__webpack_exports__);
14194
14194
  *
14195
14195
  * Features:
14196
14196
  * - Explicit RAF lifecycle control (`start` / `stop`)
14197
- * - Delta time (`dt`) calculation with frame clamping
14197
+ * - Delta time calculation with frame clamping
14198
14198
  * - Automatic cleanup on unmounting
14199
14199
  * - Conservative handling of tab visibility changes (mobile-safe)
14200
14200
  * - Safe error handling (stops loop on exception)
@@ -14248,7 +14248,7 @@ onError, } = {}) => {
14248
14248
  const onFrameRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(onFrame);
14249
14249
  // Always keep the latest callback without restarting RAF
14250
14250
  onFrameRef.current = onFrame;
14251
- const [isRafLoopRunning, setIsRafLoopRunning] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
14251
+ const [isRunning, setIsRunning] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
14252
14252
  const loop = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(timeMs => {
14253
14253
  if (lastTimeMsRef.current === null) {
14254
14254
  lastTimeMsRef.current = timeMs;
@@ -14261,57 +14261,57 @@ onError, } = {}) => {
14261
14261
  }
14262
14262
  try {
14263
14263
  onFrameRef.current(deltaTimeMs, {
14264
- stopRafLoop,
14264
+ stop,
14265
14265
  });
14266
14266
  rafIdRef.current = requestAnimationFrame(loop);
14267
14267
  }
14268
14268
  catch (e) {
14269
- stopRafLoop();
14269
+ stop();
14270
14270
  onError?.(e);
14271
14271
  }
14272
14272
  }, [maxDeltaMs, onError]);
14273
- const startRafLoop = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {
14273
+ const start = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {
14274
14274
  if (rafIdRef.current !== null) {
14275
14275
  return;
14276
14276
  }
14277
14277
  lastTimeMsRef.current = null;
14278
- setIsRafLoopRunning(true);
14278
+ setIsRunning(true);
14279
14279
  rafIdRef.current = requestAnimationFrame(loop);
14280
14280
  }, [loop]);
14281
- const stopRafLoop = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {
14281
+ const stop = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {
14282
14282
  if (rafIdRef.current === null) {
14283
14283
  return;
14284
14284
  }
14285
14285
  cancelAnimationFrame(rafIdRef.current);
14286
14286
  rafIdRef.current = null;
14287
14287
  lastTimeMsRef.current = null;
14288
- setIsRafLoopRunning(false);
14288
+ setIsRunning(false);
14289
14289
  }, []);
14290
14290
  (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
14291
14291
  if (autoStart) {
14292
- startRafLoop();
14292
+ start();
14293
14293
  }
14294
- return stopRafLoop;
14295
- }, [autoStart, startRafLoop, stopRafLoop]);
14294
+ return stop;
14295
+ }, [autoStart, start, stop]);
14296
14296
  // Pause when a tab is hidden (important for mobile)
14297
14297
  (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
14298
14298
  const onVisibilityChange = () => {
14299
14299
  if (document.hidden) {
14300
- stopRafLoop();
14300
+ stop();
14301
14301
  }
14302
14302
  else if (resumeOnVisibility && autoStart) {
14303
- startRafLoop();
14303
+ start();
14304
14304
  }
14305
14305
  };
14306
14306
  document.addEventListener('visibilitychange', onVisibilityChange);
14307
14307
  return () => {
14308
14308
  document.removeEventListener('visibilitychange', onVisibilityChange);
14309
14309
  };
14310
- }, [autoStart, resumeOnVisibility, startRafLoop, stopRafLoop]);
14310
+ }, [autoStart, resumeOnVisibility, start, stop]);
14311
14311
  return {
14312
- isRafLoopRunning,
14313
- startRafLoop,
14314
- stopRafLoop,
14312
+ isRunning,
14313
+ start,
14314
+ stop,
14315
14315
  };
14316
14316
  };
14317
14317
 
@@ -14678,7 +14678,7 @@ const useHoneyTimer = ({ initialTimeMs, targetTimeMs = 0, mode = 'countdown', au
14678
14678
  * - Detects completion and stops the RAF loop
14679
14679
  * - Updates React state with the derived value
14680
14680
  */
14681
- const onFrameHandler = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((deltaTimeMs, { stopRafLoop }) => {
14681
+ const onFrameHandler = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((deltaTimeMs, { stop }) => {
14682
14682
  let nextTime = mode === 'countdown' ? timeRef.current - deltaTimeMs : timeRef.current + deltaTimeMs;
14683
14683
  let finished = false;
14684
14684
  if (mode === 'countdown') {
@@ -14694,43 +14694,41 @@ const useHoneyTimer = ({ initialTimeMs, targetTimeMs = 0, mode = 'countdown', au
14694
14694
  timeRef.current = nextTime;
14695
14695
  setTimeMs(nextTime);
14696
14696
  if (finished) {
14697
- stopRafLoop();
14697
+ stop();
14698
14698
  onEndRef.current?.();
14699
14699
  }
14700
14700
  }, [mode, targetTimeMs]);
14701
- const { startRafLoop, stopRafLoop, isRafLoopRunning } = (0,_use_honey_raf_loop__WEBPACK_IMPORTED_MODULE_1__.useHoneyRafLoop)(onFrameHandler, {
14702
- autoStart,
14703
- });
14704
- const startTimer = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {
14701
+ const rafLoop = (0,_use_honey_raf_loop__WEBPACK_IMPORTED_MODULE_1__.useHoneyRafLoop)(onFrameHandler);
14702
+ const start = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {
14705
14703
  timeRef.current = initialTimeMs;
14706
14704
  setTimeMs(initialTimeMs);
14707
- startRafLoop();
14708
- }, [initialTimeMs, startRafLoop]);
14709
- const pauseTimer = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {
14710
- stopRafLoop();
14711
- }, [stopRafLoop]);
14712
- const resumeTimer = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {
14713
- if (!isRafLoopRunning) {
14714
- startRafLoop();
14705
+ rafLoop.start();
14706
+ }, [initialTimeMs, rafLoop.start]);
14707
+ const pause = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {
14708
+ rafLoop.stop();
14709
+ }, [rafLoop.stop]);
14710
+ const resume = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {
14711
+ if (!rafLoop.isRunning) {
14712
+ rafLoop.start();
14715
14713
  }
14716
- }, [isRafLoopRunning, startRafLoop]);
14717
- const resetTimer = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((nextTimeMs = initialTimeMs) => {
14718
- stopRafLoop();
14714
+ }, [rafLoop.isRunning, rafLoop.start]);
14715
+ const reset = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((nextTimeMs = initialTimeMs) => {
14716
+ rafLoop.stop();
14719
14717
  timeRef.current = nextTimeMs;
14720
14718
  setTimeMs(nextTimeMs);
14721
- }, [initialTimeMs, stopRafLoop]);
14719
+ }, [initialTimeMs, rafLoop.stop]);
14722
14720
  (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
14723
14721
  if (autoStart) {
14724
- startTimer();
14722
+ start();
14725
14723
  }
14726
- }, [autoStart, startTimer]);
14724
+ }, [autoStart, start]);
14727
14725
  return {
14728
- timerTimeMs: timeMs,
14729
- isTimerRunning: isRafLoopRunning,
14730
- startTimer,
14731
- pauseTimer,
14732
- resumeTimer,
14733
- resetTimer,
14726
+ timeMs,
14727
+ isRunning: rafLoop.isRunning,
14728
+ start,
14729
+ pause,
14730
+ resume,
14731
+ reset,
14734
14732
  };
14735
14733
  };
14736
14734