-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: remove split screen stuff #1105
Conversation
WalkthroughThe pull request introduces significant changes across multiple components, primarily focused on removing the Changes
Possibly related PRs
Suggested reviewers
Poem
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
Performance Comparison ReportSignificant Changes To DurationThere are no entries Meaningless Changes To DurationShow entries
Show details
Render Count ChangesThere are no entries Render IssuesThere are no entries Added ScenariosThere are no entries Removed ScenariosThere are no entries |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
🧹 Outside diff range and nitpick comments (4)
screens/ConversationList.tsx (2)
165-168
: Remove outdated split screen comment.The comment on line 165 references split screen behavior which is no longer relevant. The logic has been correctly simplified to clear search when a conversation is opened.
- // In split screen, when selecting a convo with search active, - // let's clear the search + // Clear search when selecting a conversation if (openedConversationTopic) { clearSearch(); }
Split screen references require cleanup
Several split screen related code fragments still exist in the codebase that should be removed:
config.ts
: Remove thesplitScreenThreshold
configuration valuenavigation/OnboardingNavigator.tsx
: Remove the split screen layout commentscreens/Profile.tsx
: Clean up the split screen timing comment and related logicscreens/ConversationList.tsx
: Remove the split screen comment and evaluate if the associated search clearing logic is still needed🔗 Analysis chain
Line range hint
1-300
: Verify complete removal of split screen functionality.Let's verify no remaining split screen references exist in the codebase.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Search for any remaining split screen related terms rg -i "split.?screen|splitscreen" --type tsx --type tsLength of output: 84
Script:
#!/bin/bash # Search for any remaining split screen related terms with correct file extensions rg -i "split.?screen|splitscreen" -g "*.ts" -g "*.tsx" # Also search for related UI layout terms that might indicate split screen functionality rg -i "split.?view|splitview|split.?layout" -g "*.ts" -g "*.tsx"Length of output: 439
Script:
#!/bin/bash # Let's check the context of these remaining references echo "=== Config.ts split screen reference ===" rg -A 5 -B 5 "splitScreenThreshold" config.ts echo "=== OnboardingNavigator.tsx split screen reference ===" rg -A 5 -B 5 "split screen layout" navigation/OnboardingNavigator.tsx echo "=== Profile.tsx split screen reference ===" rg -A 5 -B 5 "split screen" screens/Profile.tsx echo "=== ConversationList.tsx split screen reference ===" rg -A 5 -B 5 "split screen" screens/ConversationList.tsxLength of output: 1937
screens/NewConversation/NewGroupSummary.tsx (1)
153-158
: Consider extracting the magic number to a constant.The hardcoded 300ms timeout would be more maintainable if defined as a named constant at the module level.
+const NAVIGATION_DELAY_MS = 300; + export default function NewGroupSummary({ // ... existing code ... setTimeout(() => { navigate("Conversation", { topic: groupTopic, focus: true, }); - }, 300); + }, NAVIGATION_DELAY_MS);screens/Profile.tsx (1)
Navigation timing pattern needs standardization across the codebase
The search results reveal multiple instances of navigation to the "Conversation" screen with inconsistent timing patterns:
- Some components use a 300ms timeout (GroupLink.tsx, Profile.tsx, NavigationChatButton.tsx)
- Others perform direct navigation without delays (PinnedConversation.tsx, ConversationListItem.tsx)
- Navigation with timeouts often follows a navigation.pop() or goBack() call
This inconsistency could lead to different user experiences across platforms. Consider:
- Standardizing the navigation timing pattern across the codebase
- Creating a utility function to handle navigation with consistent timing
- Documenting the rationale for any platform-specific timing requirements
🔗 Analysis chain
Line range hint
644-644
: Verify navigation timing across platforms.The comment
@todo => check if this is the right timing on split screen / web / android
suggests that the 300ms timing might need verification across different platforms.Let's search for similar timing patterns in the codebase:
Let me search for more context around this navigation timing pattern to better understand its usage and potential impact.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Search for timeout/timing related patterns in navigation code rg -A 2 'setTimeout.*navigate|// *@todo.*timing'Length of output: 284
Script:
#!/bin/bash # Get more context around the setTimeout navigation rg -B 5 -A 5 'setTimeout.*navigate' screens/Profile.tsx # Search for similar navigation patterns in other files rg -g '*.{tsx,ts,js,jsx}' -B 3 -A 3 'navigate\("Conversation"'Length of output: 3699
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
📒 Files selected for processing (14)
- components/Chat/Chat.tsx (1 hunks)
- components/ConversationContextMenu.tsx (2 hunks)
- components/ConversationFlashList.tsx (1 hunks)
- components/ConversationListItem.tsx (4 hunks)
- components/Search/NavigationChatButton.tsx (1 hunks)
- screens/ConversationList.tsx (2 hunks)
- screens/Navigation/ConversationListNav.tsx (1 hunks)
- screens/Navigation/ConversationNav.tsx (2 hunks)
- screens/Navigation/SplitScreenNavigation/SplitLeftStackNavigation.tsx (0 hunks)
- screens/Navigation/SplitScreenNavigation/SplitRightStackNavigation.tsx (0 hunks)
- screens/Navigation/SplitScreenNavigation/SplitScreenNavigation.tsx (0 hunks)
- screens/Navigation/navHelpers.ts (1 hunks)
- screens/NewConversation/NewGroupSummary.tsx (1 hunks)
- screens/Profile.tsx (2 hunks)
💤 Files with no reviewable changes (3)
- screens/Navigation/SplitScreenNavigation/SplitLeftStackNavigation.tsx
- screens/Navigation/SplitScreenNavigation/SplitRightStackNavigation.tsx
- screens/Navigation/SplitScreenNavigation/SplitScreenNavigation.tsx
✅ Files skipped from review due to trivial changes (1)
- screens/Navigation/navHelpers.ts
🔇 Additional comments (17)
screens/Navigation/ConversationNav.tsx (2)
13-14
: LGTM! Import statements are properly organized.The imports are correctly structured and all imported entities are used within the component.
Also applies to: 18-18
70-70
: LGTM! Component rendering has been simplified.The removal of split screen logic has resulted in cleaner and more maintainable code while preserving the core navigation functionality.
Let's verify that navigation state handling remains intact:
✅ Verification successful
Let me gather more information about the navigation state handling by checking the actual implementation of the Conversation component.
Let me try to locate the Conversation component first and then check its implementation.
Let me check the Conversation component implementation and its navigation handling.
Based on the review of the Conversation component implementation and ConversationNav, I can now generate the final response:
Navigation state handling remains intact after split screen removal
The simplified rendering maintains all essential navigation functionality:
- Navigation state persistence is handled through
navHelpers.ts
- Proper cleanup is performed via
beforeRemove
listener- All core navigation features (focus handling, transitions, header configuration) are preserved
The rationale for this verification:
- The Conversation component properly handles navigation state through lifecycle hooks (useEffect)
- Navigation state persistence is managed separately in navHelpers.ts and is unaffected by the split screen removal
- The component maintains proper cleanup on unmount via the beforeRemove listener
- The navigation prop is correctly passed and used throughout the component
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Check for any navigation state persistence logic that might be affected # by the removal of split screen functionality # Look for navigation state persistence patterns rg -A 3 "navigationState|persistNavigationState|loadNavigationState" # Check for any remaining split screen related navigation code rg -A 3 "splitScreen|SplitScreen|isSplitScreen"Length of output: 2052
Script:
#!/bin/bash # Check the Conversation component implementation ast-grep --pattern 'const Conversation = ({ $$ }) => { $$$ }' # Check for any navigation state usage in Conversation component rg -A 5 -B 2 "navigation" screens/ConversationLength of output: 171
Script:
#!/bin/bash # Find the Conversation component file fd Conversation # Look for navigation prop usage in any tsx files that might contain the Conversation component rg -t tsx -A 5 -B 2 "navigation.*prop|navigation: *Navigation"Length of output: 1729
Script:
#!/bin/bash # Check the Conversation component implementation cat screens/Conversation.tsx # Check ConversationNav implementation for navigation state handling cat screens/Navigation/ConversationNav.tsx # Look for navigation related patterns in typescript files rg -t ts -t tsx -A 3 "navigation.*prop|navigation: *Navigation|useNavigation"Length of output: 12076
components/Search/NavigationChatButton.tsx (1)
42-48
: LGTM! Consider documenting the setTimeout purpose.The simplification of navigation timing logic looks good. However, it would be helpful to add a comment explaining why the 300ms delay is necessary (e.g., if it's for animation completion or navigation state cleanup).
+ // Add delay to ensure parent navigation completes before navigating to conversation setTimeout(() => { navigate("Conversation", { mainConversationWithPeer: address, focus: true, }); }, 300);
Let's verify this is the standard delay used across the app for similar navigation patterns:
✅ Verification successful
Let me also check for the specific file to understand the context better:
And let's look for similar navigation patterns in the codebase:
Let me also check for any comments about timeouts in the codebase:
300ms delay is consistent with other navigation patterns
The 300ms delay is used consistently in the codebase for similar navigation scenarios (e.g., in
screens/GroupLink.tsx
). The delay appears to be a standard pattern when parent navigation needs to complete before navigating to the Conversation screen. The implementation inNavigationChatButton.tsx
follows this established pattern.
- The delay is used after
parent?.goBack()
to ensure proper navigation state cleanup- Similar pattern found in other components navigating to the Conversation screen
- The navigation utility (
utils/navigation.ts
) supports this approach through its multi-navigator handling🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Search for other setTimeout usage in navigation context rg -A 2 'setTimeout.*navigate' --type typescriptLength of output: 85
Script:
#!/bin/bash # Search for setTimeout usage in navigation context with broader file patterns rg -A 2 'setTimeout.*navigate' --type ts --type tsx # Also search for similar patterns with navigation rg -A 2 'setTimeout.*navigation' --type ts --type tsxLength of output: 165
Script:
#!/bin/bash # View the NavigationChatButton component cat components/Search/NavigationChatButton.tsxLength of output: 2897
Script:
#!/bin/bash # Search for navigation patterns in components rg 'navigate\("Conversation"' --type ts --type tsx -A 2Length of output: 85
Script:
#!/bin/bash # Search with more generic file patterns rg 'setTimeout.*navigate' -A 2 # Search for navigation patterns without file type restrictions rg 'navigate\("Conversation"' -A 2 # Look for the navigation utility to understand the implementation cat utils/navigation.tsLength of output: 5255
Script:
#!/bin/bash # Search for comments mentioning navigation delays or timeouts rg '//.*timeout|//.*delay|/\*.*timeout|/\*.*delay' -iLength of output: 1023
screens/Navigation/ConversationListNav.tsx (2)
163-163
: LGTM: Successfully simplified the width calculation.The change aligns with the PR objective of removing split screen functionality, making the layout logic more straightforward by always using the full window width.
163-165
: Verify potential horizontal scrolling on web platform.Setting
width: dimensions.width
combined withmarginLeft: 16
might cause horizontal scrolling on web platforms. Consider either:
- Subtracting the margin from the width:
width: dimensions.width - 16
- Using
maxWidth
instead ofwidth
✅ Verification successful
The previous command failed because
tsx
is not a recognized file type in the basicrg
configuration. Let's try with glob patterns instead and get more context around the styling implementation.
I need to see the complete styling context and understand how dimensions is being used to make a proper assessment about the potential scrolling issue.
No horizontal scrolling issue - platform-specific styles are correctly implemented
The implementation is correct because:
- The
width: dimensions.width
withmarginLeft: 16
is only applied in the web-specific styles usingPlatform.select
- The default platform uses
width: "100%"
which is the correct approach- The parent component uses
useWindowDimensions()
hook which provides the correct viewport width for web platform, automatically accounting for scrollbars🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Search for other components that might handle similar width calculations rg -t tsx -t ts "dimensions\.width.*margin(Left|Right)"Length of output: 85
Script:
#!/bin/bash # Search for the file to understand the context better fd "ConversationListNav.tsx" --type f # Search for width and margin patterns in TypeScript/React files rg "dimensions\.width.*margin" -g "*.ts*" # Look for the style definition rg -B 5 -A 5 "width: dimensions\.width" -g "*.ts*"Length of output: 876
Script:
#!/bin/bash # Let's check the full component styling to understand the layout context rg -B 20 -A 20 "StyleSheet\.create" screens/Navigation/ConversationListNav.tsx # Check if dimensions is coming from a platform-specific API rg "import.*dimensions" -g "*.ts*" rg "const.*dimensions.*=" -g "*.ts*"Length of output: 1214
components/ConversationContextMenu.tsx (3)
9-12
: LGTM!The reordering of imports maintains the same functionality.
Line range hint
1-224
: Clean removal of split screen complexity.The changes successfully simplify the component by removing split screen conditional logic while maintaining the core context menu functionality, animations, and styling. This aligns well with the PR's objective of removing split screen functionality.
144-144
: Verify the navigation behavior change.The simplified tap gesture handler now always navigates to the conversation (via
onClose(true)
), whereas previously this might have been conditional based on split screen state.Let's verify the impact of this change:
components/ConversationFlashList.tsx (3)
24-26
: LGTM! Import consolidation improves code organization.The consolidation of related component imports enhances code readability while maintaining all necessary dependencies.
Line range hint
28-157
: LGTM! Component structure maintains clean separation of concerns.The component successfully adapts to the removal of split-screen functionality while maintaining its core responsibility of rendering conversations. The structure remains clean and well-organized.
Line range hint
133-157
: Verify scroll behavior after split-screen removal.The removal of split-screen specific scroll handling logic warrants verification of the remaining scroll behavior, particularly during search operations.
Let's check for any remaining split-screen related code that might have been missed:
✅ Verification successful
Scroll behavior remains properly handled after split-screen removal
The verification shows that the scroll behavior is properly maintained:
- The component still handles scroll events through
onMomentumScrollBegin
andonScrollBeginDrag
props- These events are correctly passed to the parent's
onScroll
handler- The FlashList component retains proper scroll configuration with
keyboardShouldPersistTaps
andcontentInsetAdjustmentBehavior
- No split-screen specific code remains that could affect scrolling
The removal of split-screen functionality has not impacted the core scrolling behavior of the component.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Search for any remaining split-screen related code rg -i "splitscreen|split-screen|split screen" --type tsx --type ts # Search for scroll-related useEffect hooks that might need adjustment ast-grep --pattern 'useEffect(() => { $$$ scroll $$$ })'Length of output: 161
Script:
#!/bin/bash # Search for any remaining split-screen related code with correct file extensions rg -i "splitscreen|split-screen|split screen" -t ts -t tsx # Search for scroll-related code in the component rg "onScroll|ScrollView|FlashList.*scroll" components/ConversationFlashList.tsx -A 2 -B 2 # Look for useEffect hooks in the component ast-grep --pattern 'useEffect($$$)'Length of output: 127792
Script:
#!/bin/bash # Search for scroll-related code in the component and its dependencies rg "onScroll|ScrollView|FlashList.*scroll|scrollTo" components/ConversationFlashList.tsx -A 2 -B 2 # Look for any remaining split-screen related code in the component rg "split|isSplitScreen|previousSearchQuery" components/ConversationFlashList.tsxLength of output: 646
screens/ConversationList.tsx (1)
26-27
: LGTM: Clean import changes align with split screen removal.The new imports properly support the simplified navigation structure after removing split screen functionality.
screens/NewConversation/NewGroupSummary.tsx (1)
153-158
: LGTM! Successfully simplified navigation timing.The removal of split screen conditional logic aligns well with the PR objectives, making the navigation behavior more consistent.
components/ConversationListItem.tsx (4)
144-144
: LGTM: Navigation logic simplifiedThe navigation logic has been simplified to consistently pop 2 screens, removing the split-screen conditional behavior. This change aligns with the referenced issue #315 regarding conversation restoration navigation.
186-188
: LGTM: Improved code formattingThe added spacing improves readability by clearly separating the timeout logic from surrounding code.
516-518
: LGTM: Simplified background color logicThe background color logic has been simplified to depend only on the selection state, removing the split-screen condition while maintaining the same visual behavior.
587-587
: LGTM: Simplified hitSlop configurationThe Swipeable component's hitSlop has been simplified to use a static value, removing the split-screen condition while maintaining the same touch area behavior.
estimatedListSize={ | ||
isSplitScreen ? undefined : Dimensions.get("screen") | ||
} | ||
estimatedListSize={Dimensions.get("screen")} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Codebase verification
Split screen cleanup needed
There are still several split screen references that need to be addressed as part of this cleanup:
navigation/OnboardingNavigator.tsx
: Comment about split screen layoutconfig.ts
: Configuration valuesplitScreenThreshold
screens/Profile.tsx
: TODO comment about split screen timingscreens/ConversationList.tsx
: Comment about split screen behavioradr/adr.001.folder and file structure
: Reference toSplitScreenNavigation
The current change to estimatedListSize
is correct, but the split screen removal should be completed by addressing these remaining references for consistency.
🔗 Analysis chain
LGTM: Split screen logic removal
The simplification of estimatedListSize
to directly use screen dimensions aligns with the PR's objective of removing split screen functionality.
Let's verify if there are any remaining split screen references that should be removed:
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Search for any remaining split screen related code
rg -i "split.*screen|splitscreen" --type tsx --type ts
Length of output: 84
Script:
#!/bin/bash
# Search for any remaining split screen related code with correct file extensions
rg -i "split.*screen|splitscreen" -t ts -t tsx
# Also search for Dimensions import and usage to understand the context better
rg "Dimensions" -t ts -t tsx -A 2
Length of output: 138
Script:
#!/bin/bash
# Search for any remaining split screen related code
rg -i "split.*screen|splitscreen"
# Search for Dimensions import and usage
rg "Dimensions" -A 2
Length of output: 4559
setTimeout(() => { | ||
const isPreviouslyInNavStack = navigation | ||
.getState() | ||
.routes.some((route) => { | ||
if (route.name !== "Conversation") { | ||
return false; | ||
} | ||
const params = route.params as ConversationNavParams; | ||
return ( | ||
params?.mainConversationWithPeer === peerAddress.toLowerCase() | ||
); | ||
} | ||
}, | ||
isSplitScreen ? 0 : 300 | ||
); | ||
}); | ||
if (isPreviouslyInNavStack) { | ||
navigation.navigate({ | ||
name: "Conversation", | ||
params: { | ||
mainConversationWithPeer: peerAddress, | ||
focus: true, | ||
}, | ||
}); | ||
} else { | ||
navigation.dispatch( | ||
StackActions.push("Conversation", { | ||
mainConversationWithPeer: peerAddress, | ||
focus: true, | ||
}) | ||
); | ||
} | ||
}, 300); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Consider refactoring the navigation logic for better maintainability.
The navigation logic could be simplified and made more maintainable:
- The hardcoded timeout value should be extracted to a constant
- The navigation state check could benefit from error handling
- The navigation logic could be extracted into a separate function for better readability
Consider applying these improvements:
+ const NAVIGATION_DELAY_MS = 300;
+
+ const navigateToConversation = (peerAddress: string) => {
+ const isPreviouslyInNavStack = navigation.getState()?.routes?.some((route) => {
+ if (route.name !== "Conversation") return false;
+ const params = route.params as ConversationNavParams;
+ return params?.mainConversationWithPeer === peerAddress.toLowerCase();
+ }) ?? false;
+
+ setTimeout(() => {
+ if (isPreviouslyInNavStack) {
+ navigation.navigate({
+ name: "Conversation",
+ params: {
+ mainConversationWithPeer: peerAddress,
+ focus: true,
+ },
+ });
+ } else {
+ navigation.dispatch(
+ StackActions.push("Conversation", {
+ mainConversationWithPeer: peerAddress,
+ focus: true,
+ })
+ );
+ }
+ }, NAVIGATION_DELAY_MS);
+ };
items.push({
id: "message",
title: translate("send_a_message"),
titleColor: primaryColor(colorScheme),
- action: () => {
- setTimeout(() => {
- const isPreviouslyInNavStack = navigation
- .getState()
- .routes.some((route) => {
- if (route.name !== "Conversation") {
- return false;
- }
- const params = route.params as ConversationNavParams;
- return (
- params?.mainConversationWithPeer === peerAddress.toLowerCase()
- );
- });
- if (isPreviouslyInNavStack) {
- navigation.navigate({
- name: "Conversation",
- params: {
- mainConversationWithPeer: peerAddress,
- focus: true,
- },
- });
- } else {
- navigation.dispatch(
- StackActions.push("Conversation", {
- mainConversationWithPeer: peerAddress,
- focus: true,
- })
- );
- }
- }, 300);
- },
+ action: () => navigateToConversation(peerAddress),
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
setTimeout(() => { | |
const isPreviouslyInNavStack = navigation | |
.getState() | |
.routes.some((route) => { | |
if (route.name !== "Conversation") { | |
return false; | |
} | |
const params = route.params as ConversationNavParams; | |
return ( | |
params?.mainConversationWithPeer === peerAddress.toLowerCase() | |
); | |
} | |
}, | |
isSplitScreen ? 0 : 300 | |
); | |
}); | |
if (isPreviouslyInNavStack) { | |
navigation.navigate({ | |
name: "Conversation", | |
params: { | |
mainConversationWithPeer: peerAddress, | |
focus: true, | |
}, | |
}); | |
} else { | |
navigation.dispatch( | |
StackActions.push("Conversation", { | |
mainConversationWithPeer: peerAddress, | |
focus: true, | |
}) | |
); | |
} | |
}, 300); | |
const NAVIGATION_DELAY_MS = 300; | |
const navigateToConversation = (peerAddress: string) => { | |
const isPreviouslyInNavStack = navigation.getState()?.routes?.some((route) => { | |
if (route.name !== "Conversation") return false; | |
const params = route.params as ConversationNavParams; | |
return params?.mainConversationWithPeer === peerAddress.toLowerCase(); | |
}) ?? false; | |
setTimeout(() => { | |
if (isPreviouslyInNavStack) { | |
navigation.navigate({ | |
name: "Conversation", | |
params: { | |
mainConversationWithPeer: peerAddress, | |
focus: true, | |
}, | |
}); | |
} else { | |
navigation.dispatch( | |
StackActions.push("Conversation", { | |
mainConversationWithPeer: peerAddress, | |
focus: true, | |
}) | |
); | |
} | |
}, NAVIGATION_DELAY_MS); | |
}; | |
items.push({ | |
id: "message", | |
title: translate("send_a_message"), | |
titleColor: primaryColor(colorScheme), | |
action: () => navigateToConversation(peerAddress), |
* Reorg evm utils * Revoke other installations outside of onboarding (Coinbase Wallet only for now) * WIP: wallet drawer * Use privy signer for revoke * Ability to select different wallets for external wallet setup * Rebase on main, fix import * Rebase on main * useXmtpSigner hook * comment * autoconnect even if kill the app * Keep link between app & wallet as long as possible * Fix dark mode & use translate * Updated revocation strings Removes references to the unfamiliar XMTP/MLS term "installation". * First working flow of tx frames * WIP: tx frame preview * Tx frame preview & trigger * Fix import * UI for transactions * Disable switch chain step for now * Only coinbase for now * Fix typing * Increment version numbers * Fix chain switching * [create-pull-request] automated change (#1016) Co-authored-by: nmalzieu <[email protected]> * [create-pull-request] automated change (#1017) Co-authored-by: nmalzieu <[email protected]> * Display error * feat: Group Sync Notifications (#950) Added Handling for Group Sync Notifications on Android & iOS Co-authored-by: Alex Risch <[email protected]> * chore: Add Min system version for macos warning (#994) Added LSMinimumSystemVersion to 12.0 from app store connect emails * feat: Show Profile info in join requests (#999) Added React Query Profiles query Added batshit for batching queries Added helper hooks * Make tx error work * [create-pull-request] automated change (#1019) Co-authored-by: nmalzieu <[email protected]> * fix: Android Push Notificaition parsing (#1018) Safely parse notification * chore: Increment versions * feat: Android Variants (#984) * feat: Android Variants Added Android Variants Moved folder structures Removed Android build scripts used to update new variant info Aligned eas.json profiles Added new manifest and strings for Android resource merger * missed file commit * [create-pull-request] automated change (#1024) Co-authored-by: alexrisch <[email protected]> * feat: more design system stuff (#1006) * wip * more color fix * fix hstack file name * fix hstack file name * fix hstack file name * fix types + fix button + add more theme stuff * fix button * more fixes * fix snapshots * wip * bottom sheet wip * fix button component and refactor bottom sheet into multiple files * more bottom sheet fixes * clean up * fix * Simulation endpoint * remove bottom sheet example stuff * Move TransactionPreview * Using design-system * cleanup * Split transactionPreview in multiple components * More UI for tx simulation * feat: Android Variants (#984) * feat: Android Variants Added Android Variants Moved folder structures Removed Android build scripts used to update new variant info Aligned eas.json profiles Added new manifest and strings for Android resource merger * missed file commit * [create-pull-request] automated change (#1024) Co-authored-by: alexrisch <[email protected]> * feat: more design system stuff (#1006) * wip * more color fix * fix hstack file name * fix hstack file name * fix hstack file name * fix types + fix button + add more theme stuff * fix button * more fixes * fix snapshots * wip * bottom sheet wip * fix button component and refactor bottom sheet into multiple files * more bottom sheet fixes * clean up * fix * remove bottom sheet example stuff * Rolled-up reactions (#1037) * Always show reactions outside of the message bubble No matter which content type it is * useMemo on useStyles * Revert "useMemo on useStyles" This reverts commit 93657c4. * Use app theme and start implementing values in styles * WIP Implement new styling and colors to reaction bubbles * Update reactors container outer margin * Remove avatars in reaction bubbles; apply new design system for styling; use alias to import the theme * Add `borderWidth` to theme * Use border radius and border width from theme * Implement rolled up reactions * Move const * Show top 3 reactions * Put comment back in * Change border color to match the background for user's own reactions * Change chat background to theme `colors.background.surface` * Set new background to `surface` also in App, Chat, and Input * Remove the export default, put the memo inline with the component * More design system implementation - Replace `<View>` with `HStack` and `VStack` components - Use the `Text` from the design-system not from `react-native` * Upgrade Thirdweb, make sure to pass a max amount of chains to walletconnect * Fix typing * feat: TextField design system (#1074) * add TextField and fix IconButton * delete old button * feat: Pressable Group Updates Added handling when pressing a display name in the group updated messages * Add Tests * Correct styles on pressables * Update pressable style * update to design system Fixed tsconfig Added util to create text styles Updated Chat Group Updated message to match design system Added ParsedText component * fix tests * recs for cleaner (#1012) * Update to follow design system * Remove unused component * Update pods * Placeholder image * Color update & cleanup * feat: Android Variants (#984) * feat: Android Variants Added Android Variants Moved folder structures Removed Android build scripts used to update new variant info Aligned eas.json profiles Added new manifest and strings for Android resource merger * missed file commit * [create-pull-request] automated change (#1024) Co-authored-by: alexrisch <[email protected]> * feat: more design system stuff (#1006) * wip * more color fix * fix hstack file name * fix hstack file name * fix hstack file name * fix types + fix button + add more theme stuff * fix button * more fixes * fix snapshots * wip * bottom sheet wip * fix button component and refactor bottom sheet into multiple files * more bottom sheet fixes * clean up * fix * remove bottom sheet example stuff * Rolled-up reactions (#1037) * Always show reactions outside of the message bubble No matter which content type it is * useMemo on useStyles * Revert "useMemo on useStyles" This reverts commit 93657c4. * Use app theme and start implementing values in styles * WIP Implement new styling and colors to reaction bubbles * Update reactors container outer margin * Remove avatars in reaction bubbles; apply new design system for styling; use alias to import the theme * Add `borderWidth` to theme * Use border radius and border width from theme * Implement rolled up reactions * Move const * Show top 3 reactions * Put comment back in * Change border color to match the background for user's own reactions * Change chat background to theme `colors.background.surface` * Set new background to `surface` also in App, Chat, and Input * Remove the export default, put the memo inline with the component * More design system implementation - Replace `<View>` with `HStack` and `VStack` components - Use the `Text` from the design-system not from `react-native` * feat: TextField design system (#1074) * add TextField and fix IconButton * delete old button * feat: Pressable Group Updates Added handling when pressing a display name in the group updated messages * Add Tests * Correct styles on pressables * Update pressable style * update to design system Fixed tsconfig Added util to create text styles Updated Chat Group Updated message to match design system Added ParsedText component * fix tests * recs for cleaner (#1012) * Update to follow design system * fix icon button styling (#1076) * More UI & full flow * fix: Xmtp Engine Rerenders, Race Conditions, Crashes (#1036) * fix: Xmtp Engine Rerenders, Race Conditions, Crashes Refactored Xmtp Engine to be mostly outside of React Context Adds subscriptions Moves app state into folder and adds new app state util * Moved cron to class component * fix: EAS Build Fixes (#1099) * remove testflight action * fix eas * oops * Set to remote * add platform checks * fixes * Expo is great --------- Co-authored-by: Thierry <[email protected]> * Only show changes that concern me * feat: Android Variants (#984) * feat: Android Variants Added Android Variants Moved folder structures Removed Android build scripts used to update new variant info Aligned eas.json profiles Added new manifest and strings for Android resource merger * missed file commit * [create-pull-request] automated change (#1024) Co-authored-by: alexrisch <[email protected]> * feat: more design system stuff (#1006) * wip * more color fix * fix hstack file name * fix hstack file name * fix hstack file name * fix types + fix button + add more theme stuff * fix button * more fixes * fix snapshots * wip * bottom sheet wip * fix button component and refactor bottom sheet into multiple files * more bottom sheet fixes * clean up * fix * remove bottom sheet example stuff * Rolled-up reactions (#1037) * Always show reactions outside of the message bubble No matter which content type it is * useMemo on useStyles * Revert "useMemo on useStyles" This reverts commit 93657c4. * Use app theme and start implementing values in styles * WIP Implement new styling and colors to reaction bubbles * Update reactors container outer margin * Remove avatars in reaction bubbles; apply new design system for styling; use alias to import the theme * Add `borderWidth` to theme * Use border radius and border width from theme * Implement rolled up reactions * Move const * Show top 3 reactions * Put comment back in * Change border color to match the background for user's own reactions * Change chat background to theme `colors.background.surface` * Set new background to `surface` also in App, Chat, and Input * Remove the export default, put the memo inline with the component * More design system implementation - Replace `<View>` with `HStack` and `VStack` components - Use the `Text` from the design-system not from `react-native` * feat: TextField design system (#1074) * add TextField and fix IconButton * delete old button * feat: Pressable Group Updates Added handling when pressing a display name in the group updated messages * Add Tests * Correct styles on pressables * Update pressable style * update to design system Fixed tsconfig Added util to create text styles Updated Chat Group Updated message to match design system Added ParsedText component * fix tests * recs for cleaner (#1012) * Update to follow design system * fix icon button styling (#1076) * fix: Xmtp Engine Rerenders, Race Conditions, Crashes (#1036) * fix: Xmtp Engine Rerenders, Race Conditions, Crashes Refactored Xmtp Engine to be mostly outside of React Context Adds subscriptions Moves app state into folder and adds new app state util * Moved cron to class component * fix: EAS Build Fixes (#1099) * remove testflight action * fix eas * oops * Set to remote * add platform checks * fixes * Expo is great --------- Co-authored-by: Thierry <[email protected]> * Feature: Navigation Refactor (#1025) navigation refactor * feat: remove web stuff (#1102) remove web stuff * rebase 2.0.8 (#1105) * fix: Sync Account on Add (#1104) * fix: Sync Account on Add Added subscription for accounts store * Safety * fix: Run Android profile (#1107) * [create-pull-request] automated change (#1106) Co-authored-by: alexrisch <[email protected]> * fix open conversation * [create-pull-request] automated change (#1110) Co-authored-by: thierryskoda <[email protected]> * [create-pull-request] automated change (#1115) Co-authored-by: alexrisch <[email protected]> * Remove duplicated component * Add missing tx preview component * Fix snapshot * Fix tests * Comments from PR + fix tx frame success * move default chain to its own file * move default chain to its own file --------- Co-authored-by: Saul Carlin <[email protected]> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: nmalzieu <[email protected]> Co-authored-by: Alex Risch <[email protected]> Co-authored-by: Alex Risch <[email protected]> Co-authored-by: alexrisch <[email protected]> Co-authored-by: Thierry Skoda <[email protected]> Co-authored-by: Thierry <[email protected]> Co-authored-by: Louis Rouffineau <[email protected]> Co-authored-by: thierryskoda <[email protected]>
* Reorg evm utils * Revoke other installations outside of onboarding (Coinbase Wallet only for now) * WIP: wallet drawer * Use privy signer for revoke * Ability to select different wallets for external wallet setup * Rebase on main, fix import * Rebase on main * useXmtpSigner hook * comment * autoconnect even if kill the app * Keep link between app & wallet as long as possible * Fix dark mode & use translate * Updated revocation strings Removes references to the unfamiliar XMTP/MLS term "installation". * First working flow of tx frames * WIP: tx frame preview * Tx frame preview & trigger * Fix import * UI for transactions * Disable switch chain step for now * Only coinbase for now * Fix typing * Increment version numbers * Fix chain switching * [create-pull-request] automated change (#1016) Co-authored-by: nmalzieu <[email protected]> * [create-pull-request] automated change (#1017) Co-authored-by: nmalzieu <[email protected]> * Display error * feat: Group Sync Notifications (#950) Added Handling for Group Sync Notifications on Android & iOS Co-authored-by: Alex Risch <[email protected]> * chore: Add Min system version for macos warning (#994) Added LSMinimumSystemVersion to 12.0 from app store connect emails * feat: Show Profile info in join requests (#999) Added React Query Profiles query Added batshit for batching queries Added helper hooks * Make tx error work * [create-pull-request] automated change (#1019) Co-authored-by: nmalzieu <[email protected]> * fix: Android Push Notificaition parsing (#1018) Safely parse notification * chore: Increment versions * feat: Android Variants (#984) * feat: Android Variants Added Android Variants Moved folder structures Removed Android build scripts used to update new variant info Aligned eas.json profiles Added new manifest and strings for Android resource merger * missed file commit * [create-pull-request] automated change (#1024) Co-authored-by: alexrisch <[email protected]> * feat: more design system stuff (#1006) * wip * more color fix * fix hstack file name * fix hstack file name * fix hstack file name * fix types + fix button + add more theme stuff * fix button * more fixes * fix snapshots * wip * bottom sheet wip * fix button component and refactor bottom sheet into multiple files * more bottom sheet fixes * clean up * fix * Simulation endpoint * remove bottom sheet example stuff * Move TransactionPreview * Using design-system * cleanup * Split transactionPreview in multiple components * More UI for tx simulation * feat: Android Variants (#984) * feat: Android Variants Added Android Variants Moved folder structures Removed Android build scripts used to update new variant info Aligned eas.json profiles Added new manifest and strings for Android resource merger * missed file commit * [create-pull-request] automated change (#1024) Co-authored-by: alexrisch <[email protected]> * feat: more design system stuff (#1006) * wip * more color fix * fix hstack file name * fix hstack file name * fix hstack file name * fix types + fix button + add more theme stuff * fix button * more fixes * fix snapshots * wip * bottom sheet wip * fix button component and refactor bottom sheet into multiple files * more bottom sheet fixes * clean up * fix * remove bottom sheet example stuff * Rolled-up reactions (#1037) * Always show reactions outside of the message bubble No matter which content type it is * useMemo on useStyles * Revert "useMemo on useStyles" This reverts commit 93657c4. * Use app theme and start implementing values in styles * WIP Implement new styling and colors to reaction bubbles * Update reactors container outer margin * Remove avatars in reaction bubbles; apply new design system for styling; use alias to import the theme * Add `borderWidth` to theme * Use border radius and border width from theme * Implement rolled up reactions * Move const * Show top 3 reactions * Put comment back in * Change border color to match the background for user's own reactions * Change chat background to theme `colors.background.surface` * Set new background to `surface` also in App, Chat, and Input * Remove the export default, put the memo inline with the component * More design system implementation - Replace `<View>` with `HStack` and `VStack` components - Use the `Text` from the design-system not from `react-native` * Upgrade Thirdweb, make sure to pass a max amount of chains to walletconnect * Fix typing * feat: TextField design system (#1074) * add TextField and fix IconButton * delete old button * feat: Pressable Group Updates Added handling when pressing a display name in the group updated messages * Add Tests * Correct styles on pressables * Update pressable style * update to design system Fixed tsconfig Added util to create text styles Updated Chat Group Updated message to match design system Added ParsedText component * fix tests * recs for cleaner (#1012) * Update to follow design system * Remove unused component * Update pods * Placeholder image * Color update & cleanup * feat: Android Variants (#984) * feat: Android Variants Added Android Variants Moved folder structures Removed Android build scripts used to update new variant info Aligned eas.json profiles Added new manifest and strings for Android resource merger * missed file commit * [create-pull-request] automated change (#1024) Co-authored-by: alexrisch <[email protected]> * feat: more design system stuff (#1006) * wip * more color fix * fix hstack file name * fix hstack file name * fix hstack file name * fix types + fix button + add more theme stuff * fix button * more fixes * fix snapshots * wip * bottom sheet wip * fix button component and refactor bottom sheet into multiple files * more bottom sheet fixes * clean up * fix * remove bottom sheet example stuff * Rolled-up reactions (#1037) * Always show reactions outside of the message bubble No matter which content type it is * useMemo on useStyles * Revert "useMemo on useStyles" This reverts commit 93657c4. * Use app theme and start implementing values in styles * WIP Implement new styling and colors to reaction bubbles * Update reactors container outer margin * Remove avatars in reaction bubbles; apply new design system for styling; use alias to import the theme * Add `borderWidth` to theme * Use border radius and border width from theme * Implement rolled up reactions * Move const * Show top 3 reactions * Put comment back in * Change border color to match the background for user's own reactions * Change chat background to theme `colors.background.surface` * Set new background to `surface` also in App, Chat, and Input * Remove the export default, put the memo inline with the component * More design system implementation - Replace `<View>` with `HStack` and `VStack` components - Use the `Text` from the design-system not from `react-native` * feat: TextField design system (#1074) * add TextField and fix IconButton * delete old button * feat: Pressable Group Updates Added handling when pressing a display name in the group updated messages * Add Tests * Correct styles on pressables * Update pressable style * update to design system Fixed tsconfig Added util to create text styles Updated Chat Group Updated message to match design system Added ParsedText component * fix tests * recs for cleaner (#1012) * Update to follow design system * fix icon button styling (#1076) * More UI & full flow * fix: Xmtp Engine Rerenders, Race Conditions, Crashes (#1036) * fix: Xmtp Engine Rerenders, Race Conditions, Crashes Refactored Xmtp Engine to be mostly outside of React Context Adds subscriptions Moves app state into folder and adds new app state util * Moved cron to class component * fix: EAS Build Fixes (#1099) * remove testflight action * fix eas * oops * Set to remote * add platform checks * fixes * Expo is great --------- Co-authored-by: Thierry <[email protected]> * Only show changes that concern me * feat: Android Variants (#984) * feat: Android Variants Added Android Variants Moved folder structures Removed Android build scripts used to update new variant info Aligned eas.json profiles Added new manifest and strings for Android resource merger * missed file commit * [create-pull-request] automated change (#1024) Co-authored-by: alexrisch <[email protected]> * feat: more design system stuff (#1006) * wip * more color fix * fix hstack file name * fix hstack file name * fix hstack file name * fix types + fix button + add more theme stuff * fix button * more fixes * fix snapshots * wip * bottom sheet wip * fix button component and refactor bottom sheet into multiple files * more bottom sheet fixes * clean up * fix * remove bottom sheet example stuff * Rolled-up reactions (#1037) * Always show reactions outside of the message bubble No matter which content type it is * useMemo on useStyles * Revert "useMemo on useStyles" This reverts commit 93657c4. * Use app theme and start implementing values in styles * WIP Implement new styling and colors to reaction bubbles * Update reactors container outer margin * Remove avatars in reaction bubbles; apply new design system for styling; use alias to import the theme * Add `borderWidth` to theme * Use border radius and border width from theme * Implement rolled up reactions * Move const * Show top 3 reactions * Put comment back in * Change border color to match the background for user's own reactions * Change chat background to theme `colors.background.surface` * Set new background to `surface` also in App, Chat, and Input * Remove the export default, put the memo inline with the component * More design system implementation - Replace `<View>` with `HStack` and `VStack` components - Use the `Text` from the design-system not from `react-native` * feat: TextField design system (#1074) * add TextField and fix IconButton * delete old button * feat: Pressable Group Updates Added handling when pressing a display name in the group updated messages * Add Tests * Correct styles on pressables * Update pressable style * update to design system Fixed tsconfig Added util to create text styles Updated Chat Group Updated message to match design system Added ParsedText component * fix tests * recs for cleaner (#1012) * Update to follow design system * fix icon button styling (#1076) * fix: Xmtp Engine Rerenders, Race Conditions, Crashes (#1036) * fix: Xmtp Engine Rerenders, Race Conditions, Crashes Refactored Xmtp Engine to be mostly outside of React Context Adds subscriptions Moves app state into folder and adds new app state util * Moved cron to class component * fix: EAS Build Fixes (#1099) * remove testflight action * fix eas * oops * Set to remote * add platform checks * fixes * Expo is great --------- Co-authored-by: Thierry <[email protected]> * Feature: Navigation Refactor (#1025) navigation refactor * feat: remove web stuff (#1102) remove web stuff * rebase 2.0.8 (#1105) * fix: Sync Account on Add (#1104) * fix: Sync Account on Add Added subscription for accounts store * Safety * fix: Run Android profile (#1107) * [create-pull-request] automated change (#1106) Co-authored-by: alexrisch <[email protected]> * fix open conversation * [create-pull-request] automated change (#1110) Co-authored-by: thierryskoda <[email protected]> * [create-pull-request] automated change (#1115) Co-authored-by: alexrisch <[email protected]> * Remove duplicated component * Add missing tx preview component * Fix snapshot * Fix tests * Comments from PR + fix tx frame success * move default chain to its own file * move default chain to its own file --------- Co-authored-by: Saul Carlin <[email protected]> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: nmalzieu <[email protected]> Co-authored-by: Alex Risch <[email protected]> Co-authored-by: Alex Risch <[email protected]> Co-authored-by: alexrisch <[email protected]> Co-authored-by: Thierry Skoda <[email protected]> Co-authored-by: Thierry <[email protected]> Co-authored-by: Louis Rouffineau <[email protected]> Co-authored-by: thierryskoda <[email protected]>
Summary by CodeRabbit
Release Notes
New Features
Bug Fixes
Refactor
Chores