Skip to content

refactor: flatten src/mobile into src/hooks and src/utils - #478

Merged
mnxmnz merged 3 commits into
mainfrom
refactor/flatten-src-mobile
Sep 6, 2026
Merged

refactor: flatten src/mobile into src/hooks and src/utils#478
mnxmnz merged 3 commits into
mainfrom
refactor/flatten-src-mobile

Conversation

@mnxmnz

@mnxmnz mnxmnz commented Sep 6, 2026

Copy link
Copy Markdown
Member

Overview

Closes #476

Moves src/mobile/{hooks,utils}/* into src/hooks and src/utils, then deletes what only existed because of the split: the src/mobile import rule, mobileSourceRoot and the mobile/ routes in the docs tooling, the mobile/ globs and for prefix loop in CI, and the src/mobile sentences in the agent instructions and contributing.md (5 locales). No public API change, so no changeset.

Pre-flattening mobile/hooks/* and mobile/utils/* URLs keep redirecting: the retired namespace can no longer be read off the tree, so legacyRedirects.mts lists the 17 former mobile pages and derives core/ for the rest. The stub count stays at 335.

  • Verified: yarn test, test:coverage (100%), test:docs, test:skill (no drift), test:compiled, verify:pack, and the CI export check run locally (55 implementations)

Checklist

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

- Impact: no public API change; the root barrel re-exports the same 17 names from their new paths and dist/ mirrors the flat tree
- Constraint: relative imports between the moved folders keep their depth, so only the four tests reaching _internal needed a path change
- Decision: drop the mobile/hooks and mobile/utils barrels instead of moving them — nothing imported them, and the compiled-source canary no longer needs a mobile case
- Impact: sidebar, reference index, skill catalog and the export check read the three category directories only
- Constraint: pre-flattening URLs under mobile/ must keep redirecting, and the retired namespace can no longer be read off the tree
- Decision: list the 17 former mobile pages in legacyRedirects and derive core/ for everything else, replacing the per-route legacyDestination patterns
- Impact: CLAUDE.md, AGENTS.md, .cursorrules, the Copilot instructions and contributing.md (5 locales) describe one hooks/components/utils tree
- Decision: keep a single sentence naming the source root in contributing.md; the directory-choice guidance only existed for the retired split
@mnxmnz mnxmnz self-assigned this Sep 6, 2026
@changeset-bot

changeset-bot Bot commented Sep 6, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: de8d2e9

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

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

@github-actions

github-actions Bot commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

Size Change: -193 B (-0.18%)

Total Size: 104 kB

📦 View Changed
Filename Size Change
packages/react-simplikit/dist/hooks/useAvoidKeyboard/useAvoidKeyboard.cjs 985 B +985 B (new file) 🆕
packages/react-simplikit/dist/hooks/useAvoidKeyboard/useAvoidKeyboard.mjs 963 B +963 B (new file) 🆕
packages/react-simplikit/dist/hooks/useBodyScrollLock/useBodyScrollLock.cjs 546 B +546 B (new file) 🆕
packages/react-simplikit/dist/hooks/useBodyScrollLock/useBodyScrollLock.mjs 523 B +523 B (new file) 🆕
packages/react-simplikit/dist/hooks/useKeyboardHeight/useKeyboardHeight.cjs 685 B +685 B (new file) 🆕
packages/react-simplikit/dist/hooks/useKeyboardHeight/useKeyboardHeight.mjs 666 B +666 B (new file) 🆕
packages/react-simplikit/dist/hooks/useNetworkStatus/useNetworkStatus.cjs 1.2 kB +1.2 kB (new file) 🆕
packages/react-simplikit/dist/hooks/useNetworkStatus/useNetworkStatus.mjs 1.18 kB +1.18 kB (new file) 🆕
packages/react-simplikit/dist/hooks/usePageVisibility/usePageVisibility.cjs 931 B +931 B (new file) 🆕
packages/react-simplikit/dist/hooks/usePageVisibility/usePageVisibility.mjs 912 B +912 B (new file) 🆕
packages/react-simplikit/dist/hooks/useSafeAreaInset/useSafeAreaInset.cjs 942 B +942 B (new file) 🆕
packages/react-simplikit/dist/hooks/useSafeAreaInset/useSafeAreaInset.mjs 927 B +927 B (new file) 🆕
packages/react-simplikit/dist/hooks/useScrollDirection/useScrollDirection.cjs 955 B +955 B (new file) 🆕
packages/react-simplikit/dist/hooks/useScrollDirection/useScrollDirection.mjs 944 B +944 B (new file) 🆕
packages/react-simplikit/dist/hooks/useVisualViewport/useVisualViewport.cjs 1.24 kB +1.24 kB (new file) 🆕
packages/react-simplikit/dist/hooks/useVisualViewport/useVisualViewport.mjs 1.22 kB +1.22 kB (new file) 🆕
packages/react-simplikit/dist/index.cjs 1.35 kB -19 B (-1.39%)
packages/react-simplikit/dist/index.mjs 979 B -20 B (-2%)
packages/react-simplikit/dist/mobile/hooks/useAvoidKeyboard/useAvoidKeyboard.cjs 0 B -990 B (removed) 🏆
packages/react-simplikit/dist/mobile/hooks/useAvoidKeyboard/useAvoidKeyboard.mjs 0 B -968 B (removed) 🏆
packages/react-simplikit/dist/mobile/hooks/useBodyScrollLock/useBodyScrollLock.cjs 0 B -551 B (removed) 🏆
packages/react-simplikit/dist/mobile/hooks/useBodyScrollLock/useBodyScrollLock.mjs 0 B -527 B (removed) 🏆
packages/react-simplikit/dist/mobile/hooks/useKeyboardHeight/useKeyboardHeight.cjs 0 B -690 B (removed) 🏆
packages/react-simplikit/dist/mobile/hooks/useKeyboardHeight/useKeyboardHeight.mjs 0 B -671 B (removed) 🏆
packages/react-simplikit/dist/mobile/hooks/useNetworkStatus/useNetworkStatus.cjs 0 B -1.2 kB (removed) 🏆
packages/react-simplikit/dist/mobile/hooks/useNetworkStatus/useNetworkStatus.mjs 0 B -1.19 kB (removed) 🏆
packages/react-simplikit/dist/mobile/hooks/usePageVisibility/usePageVisibility.cjs 0 B -936 B (removed) 🏆
packages/react-simplikit/dist/mobile/hooks/usePageVisibility/usePageVisibility.mjs 0 B -917 B (removed) 🏆
packages/react-simplikit/dist/mobile/hooks/useSafeAreaInset/useSafeAreaInset.cjs 0 B -947 B (removed) 🏆
packages/react-simplikit/dist/mobile/hooks/useSafeAreaInset/useSafeAreaInset.mjs 0 B -932 B (removed) 🏆
packages/react-simplikit/dist/mobile/hooks/useScrollDirection/useScrollDirection.cjs 0 B -960 B (removed) 🏆
packages/react-simplikit/dist/mobile/hooks/useScrollDirection/useScrollDirection.mjs 0 B -949 B (removed) 🏆
packages/react-simplikit/dist/mobile/hooks/useVisualViewport/useVisualViewport.cjs 0 B -1.24 kB (removed) 🏆
packages/react-simplikit/dist/mobile/hooks/useVisualViewport/useVisualViewport.mjs 0 B -1.22 kB (removed) 🏆
packages/react-simplikit/dist/mobile/utils/disableBodyScrollLock/disableBodyScrollLock.cjs 0 B -681 B (removed) 🏆
packages/react-simplikit/dist/mobile/utils/disableBodyScrollLock/disableBodyScrollLock.mjs 0 B -673 B (removed) 🏆
packages/react-simplikit/dist/mobile/utils/enableBodyScrollLock/enableBodyScrollLock.cjs 0 B -677 B (removed) 🏆
packages/react-simplikit/dist/mobile/utils/enableBodyScrollLock/enableBodyScrollLock.mjs 0 B -666 B (removed) 🏆
packages/react-simplikit/dist/mobile/utils/getKeyboardHeight/getKeyboardHeight.cjs 0 B -613 B (removed) 🏆
packages/react-simplikit/dist/mobile/utils/getKeyboardHeight/getKeyboardHeight.mjs 0 B -607 B (removed) 🏆
packages/react-simplikit/dist/mobile/utils/getSafeAreaInset/getSafeAreaInset.cjs 0 B -907 B (removed) 🏆
packages/react-simplikit/dist/mobile/utils/getSafeAreaInset/getSafeAreaInset.mjs 0 B -898 B (removed) 🏆
packages/react-simplikit/dist/mobile/utils/isAndroid/isAndroid.cjs 0 B -547 B (removed) 🏆
packages/react-simplikit/dist/mobile/utils/isAndroid/isAndroid.mjs 0 B -538 B (removed) 🏆
packages/react-simplikit/dist/mobile/utils/isIOS/isIOS.cjs 0 B -758 B (removed) 🏆
packages/react-simplikit/dist/mobile/utils/isIOS/isIOS.mjs 0 B -751 B (removed) 🏆
packages/react-simplikit/dist/mobile/utils/isKeyboardVisible/isKeyboardVisible.cjs 0 B -434 B (removed) 🏆
packages/react-simplikit/dist/mobile/utils/isKeyboardVisible/isKeyboardVisible.mjs 0 B -423 B (removed) 🏆
packages/react-simplikit/dist/mobile/utils/isServer/isServer.cjs 0 B -386 B (removed) 🏆
packages/react-simplikit/dist/mobile/utils/isServer/isServer.mjs 0 B -384 B (removed) 🏆
packages/react-simplikit/dist/mobile/utils/subscribeKeyboardHeight/subscribeKeyboardHeight.cjs 0 B -1.12 kB (removed) 🏆
packages/react-simplikit/dist/mobile/utils/subscribeKeyboardHeight/subscribeKeyboardHeight.mjs 0 B -1.1 kB (removed) 🏆
packages/react-simplikit/dist/utils/disableBodyScrollLock/disableBodyScrollLock.cjs 677 B +677 B (new file) 🆕
packages/react-simplikit/dist/utils/disableBodyScrollLock/disableBodyScrollLock.mjs 668 B +668 B (new file) 🆕
packages/react-simplikit/dist/utils/enableBodyScrollLock/enableBodyScrollLock.cjs 672 B +672 B (new file) 🆕
packages/react-simplikit/dist/utils/enableBodyScrollLock/enableBodyScrollLock.mjs 662 B +662 B (new file) 🆕
packages/react-simplikit/dist/utils/getKeyboardHeight/getKeyboardHeight.cjs 609 B +609 B (new file) 🆕
packages/react-simplikit/dist/utils/getKeyboardHeight/getKeyboardHeight.mjs 602 B +602 B (new file) 🆕
packages/react-simplikit/dist/utils/getSafeAreaInset/getSafeAreaInset.cjs 902 B +902 B (new file) 🆕
packages/react-simplikit/dist/utils/getSafeAreaInset/getSafeAreaInset.mjs 893 B +893 B (new file) 🆕
packages/react-simplikit/dist/utils/isAndroid/isAndroid.cjs 543 B +543 B (new file) 🆕
packages/react-simplikit/dist/utils/isAndroid/isAndroid.mjs 534 B +534 B (new file) 🆕
packages/react-simplikit/dist/utils/isIOS/isIOS.cjs 753 B +753 B (new file) 🆕
packages/react-simplikit/dist/utils/isIOS/isIOS.mjs 746 B +746 B (new file) 🆕
packages/react-simplikit/dist/utils/isKeyboardVisible/isKeyboardVisible.cjs 431 B +431 B (new file) 🆕
packages/react-simplikit/dist/utils/isKeyboardVisible/isKeyboardVisible.mjs 419 B +419 B (new file) 🆕
packages/react-simplikit/dist/utils/isServer/isServer.cjs 381 B +381 B (new file) 🆕
packages/react-simplikit/dist/utils/isServer/isServer.mjs 379 B +379 B (new file) 🆕
packages/react-simplikit/dist/utils/subscribeKeyboardHeight/subscribeKeyboardHeight.cjs 1.12 kB +1.12 kB (new file) 🆕
packages/react-simplikit/dist/utils/subscribeKeyboardHeight/subscribeKeyboardHeight.mjs 1.1 kB +1.1 kB (new file) 🆕
ℹ️ 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 701 B
packages/react-simplikit/dist/components/SwitchCase/SwitchCase.mjs 699 B
packages/react-simplikit/dist/hooks/useAsyncEffect/useAsyncEffect.cjs 626 B
packages/react-simplikit/dist/hooks/useAsyncEffect/useAsyncEffect.mjs 615 B
packages/react-simplikit/dist/hooks/useBooleanState/useBooleanState.cjs 539 B
packages/react-simplikit/dist/hooks/useBooleanState/useBooleanState.mjs 529 B
packages/react-simplikit/dist/hooks/useCallbackOncePerRender/useCallbackOncePerRender.cjs 790 B
packages/react-simplikit/dist/hooks/useCallbackOncePerRender/useCallbackOncePerRender.mjs 762 B
packages/react-simplikit/dist/hooks/useConditionalEffect/useConditionalEffect.cjs 955 B
packages/react-simplikit/dist/hooks/useConditionalEffect/useConditionalEffect.mjs 934 B
packages/react-simplikit/dist/hooks/useControlledState/useControlledState.cjs 865 B
packages/react-simplikit/dist/hooks/useControlledState/useControlledState.mjs 855 B
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 458 B
packages/react-simplikit/dist/hooks/useDebounce/debounce.mjs 456 B
packages/react-simplikit/dist/hooks/useDebounce/useDebounce.cjs 974 B
packages/react-simplikit/dist/hooks/useDebounce/useDebounce.mjs 953 B
packages/react-simplikit/dist/hooks/useDebouncedCallback/useDebouncedCallback.cjs 1.36 kB
packages/react-simplikit/dist/hooks/useDebouncedCallback/useDebouncedCallback.mjs 1.34 kB
packages/react-simplikit/dist/hooks/useDoubleClick/useDoubleClick.cjs 965 B
packages/react-simplikit/dist/hooks/useDoubleClick/useDoubleClick.mjs 950 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/useImpressionRef/useImpressionRef.cjs 1.12 kB
packages/react-simplikit/dist/hooks/useImpressionRef/useImpressionRef.mjs 1.08 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.07 kB
packages/react-simplikit/dist/hooks/useIntersectionObserver/useIntersectionObserver.mjs 1.04 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/useList/useList.cjs 952 B
packages/react-simplikit/dist/hooks/useList/useList.mjs 930 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.68 kB
packages/react-simplikit/dist/hooks/useLongPress/useLongPress.mjs 1.64 kB
packages/react-simplikit/dist/hooks/useMap/useMap.cjs 730 B
packages/react-simplikit/dist/hooks/useMap/useMap.mjs 713 B
packages/react-simplikit/dist/hooks/useOutsideClickEffect/useOutsideClickEffect.cjs 789 B
packages/react-simplikit/dist/hooks/useOutsideClickEffect/useOutsideClickEffect.mjs 758 B
packages/react-simplikit/dist/hooks/usePreservedCallback/usePreservedCallback.cjs 691 B
packages/react-simplikit/dist/hooks/usePreservedCallback/usePreservedCallback.mjs 675 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 643 B
packages/react-simplikit/dist/hooks/usePrevious/usePrevious.mjs 635 B
packages/react-simplikit/dist/hooks/useRefEffect/useRefEffect.cjs 780 B
packages/react-simplikit/dist/hooks/useRefEffect/useRefEffect.mjs 753 B
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 966 B
packages/react-simplikit/dist/hooks/useStorageState/useStorageState.mjs 957 B
packages/react-simplikit/dist/hooks/useThrottle/throttle.cjs 306 B
packages/react-simplikit/dist/hooks/useThrottle/throttle.mjs 298 B
packages/react-simplikit/dist/hooks/useThrottle/useThrottle.cjs 864 B
packages/react-simplikit/dist/hooks/useThrottle/useThrottle.mjs 838 B
packages/react-simplikit/dist/hooks/useThrottledCallback/useThrottledCallback.cjs 1.22 kB
packages/react-simplikit/dist/hooks/useThrottledCallback/useThrottledCallback.mjs 1.19 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/useVisibilityEvent/useVisibilityEvent.cjs 692 B
packages/react-simplikit/dist/hooks/useVisibilityEvent/useVisibilityEvent.mjs 674 B
packages/react-simplikit/dist/utils/buildContext/buildContext.cjs 809 B
packages/react-simplikit/dist/utils/buildContext/buildContext.mjs 788 B
packages/react-simplikit/dist/utils/mergeProps/mergeProps.cjs 671 B
packages/react-simplikit/dist/utils/mergeProps/mergeProps.mjs 670 B
packages/react-simplikit/dist/utils/mergeRefs/mergeRefs.cjs 616 B
packages/react-simplikit/dist/utils/mergeRefs/mergeRefs.mjs 614 B

compressed-size-action

@codecov-commenter

Copy link
Copy Markdown

Codecov Report

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

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff            @@
##              main      #478   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files           67        67           
  Lines         2174      2174           
  Branches       701       701           
=========================================
  Hits          2174      2174           
🚀 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.

@mnxmnz
mnxmnz marked this pull request as ready for review September 6, 2026 15:41
@mnxmnz
mnxmnz requested a review from hyesungoh as a code owner September 6, 2026 15:41
@mnxmnz
mnxmnz merged commit 6126db6 into main Sep 6, 2026
20 checks passed
@mnxmnz
mnxmnz deleted the refactor/flatten-src-mobile branch September 6, 2026 15:48
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.

Flatten src/mobile into src/hooks and src/utils

2 participants