|
1234567891011121314151617181920212223242526272829303132333435363738394041 |
- "use strict";
-
- exports.__esModule = true;
- exports.default = void 0;
-
- var _react = require("react");
-
- /**
- * Runs an effect only when the dependencies have changed, skipping the
- * initial "on mount" run. Caution, if the dependency list never changes,
- * the effect is **never run**
- *
- * ```ts
- * const ref = useRef<HTMLInput>(null);
- *
- * // focuses an element only if the focus changes, and not on mount
- * useUpdateEffect(() => {
- * const element = ref.current?.children[focusedIdx] as HTMLElement
- *
- * element?.focus()
- *
- * }, [focusedIndex])
- * ```
- * @param effect An effect to run on mount
- *
- * @category effects
- */
- function useUpdateEffect(fn, deps) {
- var isFirst = (0, _react.useRef)(true);
- (0, _react.useEffect)(function () {
- if (isFirst.current) {
- isFirst.current = false;
- return;
- }
-
- return fn();
- }, deps);
- }
-
- var _default = useUpdateEffect;
- exports.default = _default;
|