Premium polish#80
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e40813a113
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| import * as Notifications from "expo-notifications"; | ||
| import { StatusBar, StyleSheet, Text, TextInput, View } from "react-native"; | ||
| import { GestureHandlerRootView } from "react-native-gesture-handler"; | ||
| import { KeyboardProvider } from "react-native-keyboard-controller"; |
There was a problem hiding this comment.
Bump the native runtime before importing new modules
This root import makes the bundle require react-native-keyboard-controller as soon as the app starts, but app.json still uses runtimeVersion.policy: "appVersion" with version 2.0.11 while this commit adds several native modules. If this JS is published via Expo Updates to any existing 2.0.11 binary, that binary will not contain the new keyboard/pulsar/reanimated native code and will fail with a missing native module before rendering. Bump the app/runtime version and native build numbers so the update cannot target old binaries.
Useful? React with 👍 / 👎.
spent a lot of water and tokens to review your slop
Greptile Summary
This PR adds app-wide interaction and UI polish. The main changes are:
react-native-pulsar.KeyboardProvider.Current locationlabels.Confidence Score: 5/5
This PR appears safe to merge with low functional risk.
The changes are mainly interaction polish, loading states, form keyboard handling, and native dependency updates. No verified runtime, data, or security bug was identified in the changed code paths.
No files require special attention.
What T-Rex did
Important Files Changed
PressableScaleto animate thePressableitself using Reanimated shared values.react-native-pulsarpresets.KeyboardProvideraround the existing app providers.KeyboardAwareScrollViewwrapper for form screens.Sequence Diagram
%%{init: {'theme': 'neutral'}}%% sequenceDiagram participant User participant PressableScale participant Haptics as haptics.ts participant Reanimated as Reanimated UI thread participant Screen as Existing screen handler User->>PressableScale: press in PressableScale->>Haptics: fire semantic haptic PressableScale->>Reanimated: withSpring(scaleTo) User->>PressableScale: release / onPress PressableScale->>Reanimated: withSpring(1) PressableScale->>Screen: invoke existing onPress handler Screen-->>User: navigation, submit, sheet action, or state update%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%% sequenceDiagram participant User participant PressableScale participant Haptics as haptics.ts participant Reanimated as Reanimated UI thread participant Screen as Existing screen handler User->>PressableScale: press in PressableScale->>Haptics: fire semantic haptic PressableScale->>Reanimated: withSpring(scaleTo) User->>PressableScale: release / onPress PressableScale->>Reanimated: withSpring(1) PressableScale->>Screen: invoke existing onPress handler Screen-->>User: navigation, submit, sheet action, or state updateComments Outside Diff (2)
General comment
package.json, the PR removesreact-native-webfrom dependencies while retaining thewebscript (expo start --web). The head server logsreact-native-web is not installed. Some React Native components may not work on web without it, then serves a failing bundle response.react-native-webdependency for Expo 56 (for example vianpx expo install react-native-web) or remove/replace the unsupported web target and stale web files sonpm run webno longer advertises a broken user surface.General comment
npm run typecheckexits with TypeScript errors, includingcomponents/web/WebRideSearch.tsx(21,10): Module '"../../utils/seatMath"' declares 'seatsLeftLabel' locally, but it is not exported, plus additional landing/Cloudflare type errors. This means the PR does not currently satisfy the requested typecheck integration contract, even though the native dependency/config and helper-specific runtime smokes passed.typecheckscript exposes them and exits non-zero.npm run typecheckpasses on head. At minimum export or correct theseatsLeftLabelimport incomponents/web/WebRideSearch.tsx/utils/seatMath, and add the appropriate Cloudflare worker/page types or tsconfig exclusions for the landing functions errors.Reviews (2): Last reviewed commit: "Fix ride search location caching" | Re-trigger Greptile