Skip to content

feat(usePageVisibilityEffect): add usePageVisibilityEffect and deprecate useVisibilityEvent - #546

Merged
hyesungoh merged 3 commits into
v1-basefrom
feat/use-page-visibility-effect
Oct 7, 2026
Merged

hyesungoh merged 3 commits into
v1-basefrom
feat/use-page-visibility-effect

Conversation

@hyesungoh

Copy link
Copy Markdown
Member

Overview

Closes #541

  • Add usePageVisibilityEffect. It has the same signature and behavior as useVisibilityEvent, and its name pairs with usePageVisibility the way useOutsideClickEffect names an effect hook.
  • useVisibilityEvent is now a deprecated alias of usePageVisibilityEffect. It is the same function, so existing calls keep working, and editors show it as deprecated.
  • useImpressionRef and the usePageVisibility docs now point to the new name, and so does the Common needs table in the agent skill.
  • The translated pages for the new hook are added, and the old hook's translated pages show the deprecation notice.

Stacked on #545, which adds the tooling for deprecated exports. This PR targets that branch, so its diff shows only the changes for #541. Once #545 is merged, it is rebased onto v1-base.

Tests

The tests moved to usePageVisibilityEffect.test.ts unchanged. One added test checks that useVisibilityEvent is the same function, which also keeps the alias file covered.

Checklist

  • Did you write the test code?
  • Have you run yarn run fix to format and lint the code and docs? (yarn test passes)
  • Have you run yarn run test:coverage to make sure there is no uncovered line?
  • Did you write the JSDoc?

@changeset-bot

changeset-bot Bot commented Sep 30, 2026 •

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: c9e27b9

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
react-simplikit Minor

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@github-actions

github-actions Bot commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

Size Change: +527 B (+0.46%)

Total Size: 116 kB

📦 View Changed
Filename Size Change
packages/react-simplikit/dist/hooks/useImpressionRef/useImpressionRef.cjs 1.26 kB +4 B (+0.32%)
packages/react-simplikit/dist/hooks/useImpressionRef/useImpressionRef.mjs 1.22 kB +1 B (+0.08%)
packages/react-simplikit/dist/hooks/usePageVisibility/usePageVisibility.cjs 1.27 kB -3 B (-0.23%)
packages/react-simplikit/dist/hooks/usePageVisibility/usePageVisibility.mjs 1.25 kB -3 B (-0.24%)
packages/react-simplikit/dist/hooks/usePageVisibilityEffect/usePageVisibilityEffect.cjs 741 B +741 B (new file) 🆕
packages/react-simplikit/dist/hooks/usePageVisibilityEffect/usePageVisibilityEffect.mjs 727 B +727 B (new file) 🆕
packages/react-simplikit/dist/hooks/usePageVisibilityEffect/useVisibilityEvent.cjs 200 B +200 B (new file) 🆕
packages/react-simplikit/dist/hooks/usePageVisibilityEffect/useVisibilityEvent.mjs 205 B +205 B (new file) 🆕
packages/react-simplikit/dist/hooks/useVisibilityEvent/useVisibilityEvent.cjs 0 B -692 B (removed) 🏆
packages/react-simplikit/dist/hooks/useVisibilityEvent/useVisibilityEvent.mjs 0 B -674 B (removed) 🏆
packages/react-simplikit/dist/index.cjs 1.42 kB +14 B (+1%)
packages/react-simplikit/dist/index.mjs 1.02 kB +7 B (+0.69%)
ℹ️ View Unchanged
Filename Size
packages/codemod/dist/cli.mjs 6.47 kB
packages/react-simplikit/dist/components/ImpressionArea/ImpressionArea.cjs 1.01 kB
packages/react-simplikit/dist/components/ImpressionArea/ImpressionArea.mjs 984 B
packages/react-simplikit/dist/components/Separated/Separated.cjs 686 B
packages/react-simplikit/dist/components/Separated/Separated.mjs 684 B
packages/react-simplikit/dist/components/SwitchCase/SwitchCase.cjs 723 B
packages/react-simplikit/dist/components/SwitchCase/SwitchCase.mjs 721 B
packages/react-simplikit/dist/hooks/useAsyncEffect/useAsyncEffect.cjs 625 B
packages/react-simplikit/dist/hooks/useAsyncEffect/useAsyncEffect.mjs 614 B
packages/react-simplikit/dist/hooks/useAvoidKeyboard/useAvoidKeyboard.cjs 985 B
packages/react-simplikit/dist/hooks/useAvoidKeyboard/useAvoidKeyboard.mjs 963 B
packages/react-simplikit/dist/hooks/useBodyScrollLock/useBodyScrollLock.cjs 887 B
packages/react-simplikit/dist/hooks/useBodyScrollLock/useBodyScrollLock.mjs 863 B
packages/react-simplikit/dist/hooks/useBooleanState/useBooleanState.cjs 546 B
packages/react-simplikit/dist/hooks/useBooleanState/useBooleanState.mjs 536 B
packages/react-simplikit/dist/hooks/useCallbackOnce/useCallbackOnce.cjs 901 B
packages/react-simplikit/dist/hooks/useCallbackOnce/useCallbackOnce.mjs 873 B
packages/react-simplikit/dist/hooks/useCallbackOnce/useCallbackOncePerRender.cjs 195 B
packages/react-simplikit/dist/hooks/useCallbackOnce/useCallbackOncePerRender.mjs 197 B
packages/react-simplikit/dist/hooks/useConditionalEffect/useConditionalEffect.cjs 980 B
packages/react-simplikit/dist/hooks/useConditionalEffect/useConditionalEffect.mjs 959 B
packages/react-simplikit/dist/hooks/useControlledState/useControlledState.cjs 1.04 kB
packages/react-simplikit/dist/hooks/useControlledState/useControlledState.mjs 1.03 kB
packages/react-simplikit/dist/hooks/useCounter/useCounter.cjs 1.03 kB
packages/react-simplikit/dist/hooks/useCounter/useCounter.mjs 1.01 kB
packages/react-simplikit/dist/hooks/useDebounce/debounce.cjs 463 B
packages/react-simplikit/dist/hooks/useDebounce/debounce.mjs 462 B
packages/react-simplikit/dist/hooks/useDebounce/useDebounce.cjs 1.28 kB
packages/react-simplikit/dist/hooks/useDebounce/useDebounce.mjs 1.26 kB
packages/react-simplikit/dist/hooks/useDebouncedCallback/useDebouncedCallback.cjs 1.15 kB
packages/react-simplikit/dist/hooks/useDebouncedCallback/useDebouncedCallback.mjs 1.12 kB
packages/react-simplikit/dist/hooks/useDebouncedValue/useDebouncedValue.cjs 1.21 kB
packages/react-simplikit/dist/hooks/useDebouncedValue/useDebouncedValue.mjs 1.18 kB
packages/react-simplikit/dist/hooks/useDoubleClick/useDoubleClick.cjs 970 B
packages/react-simplikit/dist/hooks/useDoubleClick/useDoubleClick.mjs 954 B
packages/react-simplikit/dist/hooks/useGeolocation/useGeolocation.cjs 2.02 kB
packages/react-simplikit/dist/hooks/useGeolocation/useGeolocation.mjs 2.02 kB
packages/react-simplikit/dist/hooks/useInputState/useInputState.cjs 672 B
packages/react-simplikit/dist/hooks/useInputState/useInputState.mjs 662 B
packages/react-simplikit/dist/hooks/useIntersectionObserver/useIntersectionObserver.cjs 1.1 kB
packages/react-simplikit/dist/hooks/useIntersectionObserver/useIntersectionObserver.mjs 1.07 kB
packages/react-simplikit/dist/hooks/useInterval/useInterval.cjs 837 B
packages/react-simplikit/dist/hooks/useInterval/useInterval.mjs 811 B
packages/react-simplikit/dist/hooks/useIsClient/useIsClient.cjs 585 B
packages/react-simplikit/dist/hooks/useIsClient/useIsClient.mjs 574 B
packages/react-simplikit/dist/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.cjs 577 B
packages/react-simplikit/dist/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.mjs 575 B
packages/react-simplikit/dist/hooks/useKeyboardHeight/useKeyboardHeight.cjs 736 B
packages/react-simplikit/dist/hooks/useKeyboardHeight/useKeyboardHeight.mjs 717 B
packages/react-simplikit/dist/hooks/useList/useList.cjs 955 B
packages/react-simplikit/dist/hooks/useList/useList.mjs 933 B
packages/react-simplikit/dist/hooks/useLoading/useLoading.cjs 919 B
packages/react-simplikit/dist/hooks/useLoading/useLoading.mjs 909 B
packages/react-simplikit/dist/hooks/useLongPress/useLongPress.cjs 1.71 kB
packages/react-simplikit/dist/hooks/useLongPress/useLongPress.mjs 1.68 kB
packages/react-simplikit/dist/hooks/useMap/useMap.cjs 762 B
packages/react-simplikit/dist/hooks/useMap/useMap.mjs 744 B
packages/react-simplikit/dist/hooks/useNetworkStatus/useNetworkStatus.cjs 1.61 kB
packages/react-simplikit/dist/hooks/useNetworkStatus/useNetworkStatus.mjs 1.59 kB
packages/react-simplikit/dist/hooks/useOutsideClickEffect/useOutsideClickEffect.cjs 785 B
packages/react-simplikit/dist/hooks/useOutsideClickEffect/useOutsideClickEffect.mjs 755 B
packages/react-simplikit/dist/hooks/usePreservedCallback/usePreservedCallback.cjs 751 B
packages/react-simplikit/dist/hooks/usePreservedCallback/usePreservedCallback.mjs 733 B
packages/react-simplikit/dist/hooks/usePreservedReference/usePreservedReference.cjs 805 B
packages/react-simplikit/dist/hooks/usePreservedReference/usePreservedReference.mjs 789 B
packages/react-simplikit/dist/hooks/usePrevious/usePrevious.cjs 640 B
packages/react-simplikit/dist/hooks/usePrevious/usePrevious.mjs 631 B
packages/react-simplikit/dist/hooks/useRefEffect/useRefEffect.cjs 836 B
packages/react-simplikit/dist/hooks/useRefEffect/useRefEffect.mjs 820 B
packages/react-simplikit/dist/hooks/useSafeAreaInset/useSafeAreaInset.cjs 942 B
packages/react-simplikit/dist/hooks/useSafeAreaInset/useSafeAreaInset.mjs 927 B
packages/react-simplikit/dist/hooks/useScrollDirection/useScrollDirection.cjs 1.34 kB
packages/react-simplikit/dist/hooks/useScrollDirection/useScrollDirection.mjs 1.33 kB
packages/react-simplikit/dist/hooks/useSet/useSet.cjs 1.03 kB
packages/react-simplikit/dist/hooks/useSet/useSet.mjs 1 kB
packages/react-simplikit/dist/hooks/useStorageState/storage.cjs 543 B
packages/react-simplikit/dist/hooks/useStorageState/storage.mjs 527 B
packages/react-simplikit/dist/hooks/useStorageState/useStorageState.cjs 973 B
packages/react-simplikit/dist/hooks/useStorageState/useStorageState.mjs 964 B
packages/react-simplikit/dist/hooks/useThrottle/throttle.cjs 431 B
packages/react-simplikit/dist/hooks/useThrottle/throttle.mjs 422 B
packages/react-simplikit/dist/hooks/useThrottle/useThrottle.cjs 894 B
packages/react-simplikit/dist/hooks/useThrottle/useThrottle.mjs 871 B
packages/react-simplikit/dist/hooks/useThrottledCallback/useThrottledCallback.cjs 1.03 kB
packages/react-simplikit/dist/hooks/useThrottledCallback/useThrottledCallback.mjs 1 kB
packages/react-simplikit/dist/hooks/useThrottledValue/useThrottledValue.cjs 1.1 kB
packages/react-simplikit/dist/hooks/useThrottledValue/useThrottledValue.mjs 1.07 kB
packages/react-simplikit/dist/hooks/useTimeout/useTimeout.cjs 627 B
packages/react-simplikit/dist/hooks/useTimeout/useTimeout.mjs 600 B
packages/react-simplikit/dist/hooks/useToggle/useToggle.cjs 524 B
packages/react-simplikit/dist/hooks/useToggle/useToggle.mjs 506 B
packages/react-simplikit/dist/hooks/useVisualViewport/useVisualViewport.cjs 1.54 kB
packages/react-simplikit/dist/hooks/useVisualViewport/useVisualViewport.mjs 1.53 kB
packages/react-simplikit/dist/utils/buildContext/buildContext.cjs 864 B
packages/react-simplikit/dist/utils/buildContext/buildContext.mjs 844 B
packages/react-simplikit/dist/utils/disableBodyScrollLock/disableBodyScrollLock.cjs 667 B
packages/react-simplikit/dist/utils/disableBodyScrollLock/disableBodyScrollLock.mjs 660 B
packages/react-simplikit/dist/utils/enableBodyScrollLock/enableBodyScrollLock.cjs 663 B
packages/react-simplikit/dist/utils/enableBodyScrollLock/enableBodyScrollLock.mjs 652 B
packages/react-simplikit/dist/utils/getKeyboardHeight/getKeyboardHeight.cjs 609 B
packages/react-simplikit/dist/utils/getKeyboardHeight/getKeyboardHeight.mjs 602 B
packages/react-simplikit/dist/utils/getSafeAreaInset/getSafeAreaInset.cjs 902 B
packages/react-simplikit/dist/utils/getSafeAreaInset/getSafeAreaInset.mjs 893 B
packages/react-simplikit/dist/utils/isAndroid/isAndroid.cjs 543 B
packages/react-simplikit/dist/utils/isAndroid/isAndroid.mjs 534 B
packages/react-simplikit/dist/utils/isIOS/isIOS.cjs 753 B
packages/react-simplikit/dist/utils/isIOS/isIOS.mjs 746 B
packages/react-simplikit/dist/utils/isKeyboardVisible/isKeyboardVisible.cjs 431 B
packages/react-simplikit/dist/utils/isKeyboardVisible/isKeyboardVisible.mjs 419 B
packages/react-simplikit/dist/utils/isServer/isServer.cjs 381 B
packages/react-simplikit/dist/utils/isServer/isServer.mjs 379 B
packages/react-simplikit/dist/utils/mergeProps/mergeProps.cjs 645 B
packages/react-simplikit/dist/utils/mergeProps/mergeProps.mjs 643 B
packages/react-simplikit/dist/utils/mergeRefs/mergeRefs.cjs 790 B
packages/react-simplikit/dist/utils/mergeRefs/mergeRefs.mjs 787 B
packages/react-simplikit/dist/utils/subscribeKeyboardHeight/subscribeKeyboardHeight.cjs 1.12 kB
packages/react-simplikit/dist/utils/subscribeKeyboardHeight/subscribeKeyboardHeight.mjs 1.1 kB

compressed-size-action

@hyesungoh
hyesungoh added this pull request to stack #547 September 30, 2026 02:35
@hyesungoh
hyesungoh marked this pull request as ready for review September 30, 2026 07:50
@hyesungoh
hyesungoh requested a review from mnxmnz as a code owner September 30, 2026 07:50
@mnxmnz

mnxmnz commented Oct 6, 2026

Copy link
Copy Markdown
Member

Thanks, this looks good!

One thing on the changeset: #435 announced that useVisibilityEvent is "no longer marked @deprecated" and that "no removal is planned". This PR deprecates it again, but the changeset doesn't mention that it reverses that note. Could we add a line about it, along with whether removal is planned now? Otherwise people who kept using it because of #435 won't know why the strikethrough is back.

@codecov-commenter

codecov-commenter commented Oct 7, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (9d16479) to head (c9e27b9).

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff            @@
##           v1-base      #546   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files           70        71    +1     
  Lines         2282      2287    +5     
  Branches       735       735           
=========================================
+ Hits          2282      2287    +5     
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@hyesungoh
hyesungoh force-pushed the feat/use-page-visibility-effect branch from 30078f7 to 18625de Compare October 7, 2026 08:52
@hyesungoh

Copy link
Copy Markdown
Member Author

@mnxmnz Good catch, added a line to the changeset: it reverses the #435 note, keeps working throughout v1, and may be removed in a later major. Same as #545, the old-name page is gone here too.

Base automatically changed from feat/use-callback-once to v1-base October 7, 2026 09:08
…ate useVisibilityEvent

useVisibilityEvent runs a callback when the value of usePageVisibility
would change, but the names do not show that the two are a pair, and it
is the only hook with an *Event suffix. Add usePageVisibilityEffect with
the same signature and behavior, keep useVisibilityEvent as a deprecated
alias of it, and switch useImpressionRef to the new name.
… deprecated alias

useVisibilityEvent moves into the usePageVisibilityEffect folder as a one-line
alias, its pages are removed, the usePageVisibilityEffect page says it was
renamed, and the old URL redirects to the new page.
@hyesungoh
hyesungoh force-pushed the feat/use-page-visibility-effect branch from 18625de to c9e27b9 Compare October 7, 2026 09:09
@hyesungoh
hyesungoh merged commit 83ae1a3 into v1-base Oct 7, 2026
19 checks passed
@hyesungoh
hyesungoh deleted the feat/use-page-visibility-effect branch October 7, 2026 09:14
@hyesungoh hyesungoh linked an issue Oct 8, 2026 that may be closed by this pull request
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add usePageVisibilityEffect and deprecate useVisibilityEvent

3 participants