Buckets:
| ; | |
| 'use client'; | |
| var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; | |
| Object.defineProperty(exports, "__esModule", { | |
| value: true | |
| }); | |
| exports.Timeout = void 0; | |
| exports.default = useTimeout; | |
| var _useLazyRef = _interopRequireDefault(require("../useLazyRef/useLazyRef")); | |
| var _useOnMount = _interopRequireDefault(require("../useOnMount/useOnMount")); | |
| class Timeout { | |
| static create() { | |
| return new Timeout(); | |
| } | |
| currentId = null; | |
| /** | |
| * Executes `fn` after `delay`, clearing any previously scheduled call. | |
| */ | |
| start(delay, fn) { | |
| this.clear(); | |
| this.currentId = setTimeout(() => { | |
| this.currentId = null; | |
| fn(); | |
| }, delay); | |
| } | |
| clear = () => { | |
| if (this.currentId !== null) { | |
| clearTimeout(this.currentId); | |
| this.currentId = null; | |
| } | |
| }; | |
| disposeEffect = () => { | |
| return this.clear; | |
| }; | |
| } | |
| exports.Timeout = Timeout; | |
| function useTimeout() { | |
| const timeout = (0, _useLazyRef.default)(Timeout.create).current; | |
| (0, _useOnMount.default)(timeout.disposeEffect); | |
| return timeout; | |
| } |
Xet Storage Details
- Size:
- 1.09 kB
- Xet hash:
- 7140073e3e22f246da5e023d0323e263fbdc2dd4e5b132242812d275b45c344c
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.