Repository navigation
feat: SplitPro React Native app - #39
Merged
Merged
Conversation
|
Important Review skippedToo many files! This PR contains 157 files, which is 57 over the limit of 100. To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch. Upgrade to a paid plan to raise the limit. This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry.
|
KMKoushik
force-pushed
the
feat/mobile-app
branch
3 times, most recently
from
October 21, 2026 09:55
9d1f1d4 to
760f13f
Compare
KMKoushik
force-pushed
the
feat/mobile-app
branch
2 times, most recently
from
October 31, 2026 04:11
edf80f3 to
f2bedf3
Compare
Expo SDK 58 app in mobile/ for splitpro.app with native iOS/Android UI: balances, friends, groups, add/edit expense with every split type, expense detail, settle up, activity, account, Google/Apple/email sign-in and push. Uses the server's AppRouter types and the web's shared split logic.
KMKoushik
force-pushed
the
feat/mobile-app
branch
from
October 31, 2026 04:22
f2bedf3 to
b10b450
Compare
Android resolves the semantic colors once at launch, but the status bar, native views and useColorScheme followed a later dark-mode switch, leaving white status bar icons on a light screen. Pin the app to the launch scheme until the next launch.
Android's form sheet is a bare bottom sheet without the native header, so settle up had no Close or Save there. Present it like the other flows on Android and keep the form sheet on iOS. The back button now goes to a modal's previous step (ModalHeader onBack: settle up's amount step, delete account's code step) instead of closing the whole modal.
Edit profile, feedback and delete account were modals inside the Account tab's stack. On Android a modal only covers its own stack, so the navigation bar stayed visible and tappable under them. Declare them in the signed-in stack like the other flows; their URLs don't change.
The search bar's own back handling doesn't run inside the native tabs, so back switched to the Balances tab with the search still open, and onCancelButtonPress is iOS only, so closing the search never reset the filter. Close it on back while the screen is focused, and reset on onClose.
The Material navigation bar showed a label only under the selected tab. Material 3 labels every destination, as the iOS tab bar does.
…roid The Android tab bar mixed two palettes: the selected icon and label were the brand cyan while Material filled the indicator with the wallpaper's secondary container (a lavender/blue), and pressing a tab drew an opaque `primary` pill over the icon. Selected tabs also kept the outlined icon, because `md` only draws outlined Material Symbols. - indicator: the brand's secondary container (tonal palette of the cyan seed) - ripple: a 10% tint state layer, the Material pressed opacity. react-native- screens re-applies the appearance on every tab change, which rebuilds the ripple mid-press; a faint state layer keeps that cut invisible - selected icons: the filled Material Symbols style, like `.fill` on iOS, through `tabIcon` (Android only; iOS props are unchanged)
Guard verify with a ref instead of state (auto-submit and a tap could both run), always reset in finally, and time out auth requests after 20s so a stalled request can't leave the sign-in screens spinning.
KMKoushik
marked this pull request as ready for review
November 4, 2026 20:42
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The SplitPro React Native app in
mobile/. Draft: stacked on the backend PR, which has to be deployed before the app can sign in to splitpro.app.What's in it
AppRoutertypes and reuses the web's split logic, so changes to either show up as type errors.@koushikdotdev/splitpro,eas.jsonwith simulator, preview and production profiles.Checks
In
mobile/: typecheck, lint, Prettier and 57 tests pass; Android bundle builds. QA'd on an iPhone 17 Pro simulator (iOS 27) in light and dark against a local server.Not done yet
.well-knownfiles on splitpro.app).