Skip to content
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

Merged
merged 1 commit into from
Oct 25, 2024

Conversation

thierryskoda
Copy link
Collaborator

@thierryskoda thierryskoda commented Oct 25, 2024

Summary by CodeRabbit

Release Notes

  • New Features

    • Enhanced navigation logic across various components, simplifying user interactions.
  • Bug Fixes

    • Streamlined timeout handling for navigation, ensuring consistent behavior regardless of screen layout.
  • Refactor

    • Removed split-screen handling logic from multiple components, simplifying control flow and improving performance.
  • Chores

    • Deleted obsolete split-screen navigation files to declutter the codebase.

@thierryskoda thierryskoda requested a review from a team as a code owner October 25, 2024 16:45
Copy link
Contributor

coderabbitai bot commented Oct 25, 2024

Walkthrough

The pull request introduces significant changes across multiple components, primarily focused on removing the useIsSplitScreen hook and associated logic. This affects how various components handle layout and navigation, simplifying their internal logic. The changes streamline the rendering processes and interactions, ensuring consistent behavior regardless of screen configuration. Additionally, two split-screen navigation files have been deleted, indicating a shift away from supporting split-screen layouts.

Changes

File Change Summary
components/Chat/Chat.tsx Removed useIsSplitScreen hook; adjusted estimatedListSize to use Dimensions.get("screen").
components/ConversationContextMenu.tsx Removed useIsSplitScreen hook; simplified tap gesture handling in GestureDetector.
components/ConversationFlashList.tsx Removed useIsSplitScreen hook and related scrolling logic; consolidated import statements.
components/ConversationListItem.tsx Removed isSplitScreen variable; simplified navigation logic and interaction handlers.
components/Search/NavigationChatButton.tsx Removed useIsSplitScreen hook; set static timeout for navigation regardless of split-screen state.
screens/ConversationList.tsx Removed useIsSplitScreen import; simplified search clearing logic.
screens/Navigation/ConversationListNav.tsx Removed useIsSplitScreen hook; set search bar width to dimensions.width.
screens/Navigation/ConversationNav.tsx Removed split-screen handling logic from rendering the Conversation component.
screens/Navigation/SplitScreenNavigation/SplitLeftStackNavigation.tsx Deleted file managing split-screen navigation.
screens/Navigation/SplitScreenNavigation/SplitRightStackNavigation.tsx Deleted file managing split-screen navigation.
screens/Navigation/SplitScreenNavigation/SplitScreenNavigation.tsx Deleted file managing split-screen navigation.
screens/Navigation/navHelpers.ts Removed useIsSplitScreen function; retained other navigation state management functions.
screens/NewConversation/NewGroupSummary.tsx Removed useIsSplitScreen variable; simplified navigation timeout handling.
screens/Profile.tsx Removed useIsSplitScreen hook; streamlined navigation handling logic.

Possibly related PRs

Suggested reviewers

  • lourou

Poem

🐰 In the meadow where rabbits play,
The screens now dance a simpler way.
No more splits to cause a fuss,
Just smooth navigation, without a rush!
Hopping through chats, so swift and bright,
Our code is clearer, a joyful sight! 🌼


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?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

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)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor

Performance Comparison Report

  • Current: 2f388f3 - 2024-10-25 16:48:46Z
  • Baseline: release/2.0.8 (be16ae4) - 2024-10-25 16:48:07Z

Significant Changes To Duration

There are no entries

Meaningless Changes To Duration

Show entries
Name Type Duration Count
Avatar Image 10 runs render 1.1 ms → 1.4 ms (+0.3 ms, +27.3%) 🔴 1 → 1
Avatar Image 50 runs render 1.1 ms → 1.0 ms (-0.1 ms, -5.7%) 1 → 1
Empty Avatar 10 runs render 0.7 ms → 0.8 ms (+0.1 ms, +14.3%) 1 → 1
Empty Avatar 50 runs render 0.7 ms → 0.7 ms (-0.1 ms, -8.1%) 1 → 1
Show details
Name Type Duration Count
Avatar Image 10 runs render Baseline
Mean: 1.1 ms
Stdev: 0.3 ms (28.7%)
Runs: 2 1 1 1 1 1 1 1 1 1
Warmup runs: 2

Current
Mean: 1.4 ms
Stdev: 0.5 ms (36.9%)
Runs: 2 2 1 1 1 2 1 2 1 1
Warmup runs: 2
Baseline
Mean: 1
Stdev: 0 (0.0%)
Runs: 1 1 1 1 1 1 1 1 1 1
Render issues:

Current
Mean: 1
Stdev: 0 (0.0%)
Runs: 1 1 1 1 1 1 1 1 1 1
Render issues:
Avatar Image 50 runs render Baseline
Mean: 1.1 ms
Stdev: 0.3 ms (29.6%)
Runs: 1 1 1 1 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 2 2 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Warmup runs: 2

Current
Mean: 1.0 ms
Stdev: 0.2 ms (20.2%)
Runs: 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1
Warmup runs: 1
Baseline
Mean: 1
Stdev: 0 (0.0%)
Runs: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Render issues:

Current
Mean: 1
Stdev: 0 (0.0%)
Runs: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Render issues:
Empty Avatar 10 runs render Baseline
Mean: 0.7 ms
Stdev: 0.5 ms (69.0%)
Runs: 1 0 1 1 1 0 0 1 1 1
Warmup runs: 72

Current
Mean: 0.8 ms
Stdev: 0.4 ms (52.7%)
Runs: 1 1 1 0 1 1 1 1 1 0
Warmup runs: 11
Baseline
Mean: 1
Stdev: 0 (0.0%)
Runs: 1 1 1 1 1 1 1 1 1 1
Render issues:

Current
Mean: 1
Stdev: 0 (0.0%)
Runs: 1 1 1 1 1 1 1 1 1 1
Render issues:
Empty Avatar 50 runs render Baseline
Mean: 0.7 ms
Stdev: 0.4 ms (59.9%)
Runs: 1 1 1 1 0 1 0 0 1 1 1 1 1 1 0 1 1 0 1 1 0 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 0 1 1 0 1 1 0 1 1 0 1 1 1
Warmup runs: 1

Current
Mean: 0.7 ms
Stdev: 0.5 ms (69.3%)
Runs: 1 1 1 1 1 1 1 0 1 0 0 1 1 1 1 1 0 1 1 0 0 1 0 0 0 1 0 1 0 1 1 1 0 1 1 0 1 1 1 1 0 1 1 1 1 1 1 0 1 0
Warmup runs: 1
Baseline
Mean: 1
Stdev: 0 (0.0%)
Runs: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Render issues:

Current
Mean: 1
Stdev: 0 (0.0%)
Runs: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Render issues:

Render Count Changes

There are no entries

Render Issues

There are no entries

Added Scenarios

There are no entries

Removed Scenarios

There are no entries

Generated by 🚫 dangerJS against 5595159

Copy link
Contributor

@coderabbitai coderabbitai bot left a 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 the splitScreenThreshold configuration value
  • navigation/OnboardingNavigator.tsx: Remove the split screen layout comment
  • screens/Profile.tsx: Clean up the split screen timing comment and related logic
  • screens/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 ts

Length 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.tsx

Length 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

📥 Commits

Files that changed from the base of the PR and between be16ae4 and 5595159.

📒 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:

  1. The Conversation component properly handles navigation state through lifecycle hooks (useEffect)
  2. Navigation state persistence is managed separately in navHelpers.ts and is unaffected by the split screen removal
  3. The component maintains proper cleanup on unmount via the beforeRemove listener
  4. 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/Conversation

Length 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 in NavigationChatButton.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 typescript

Length 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 tsx

Length of output: 165


Script:

#!/bin/bash
# View the NavigationChatButton component
cat components/Search/NavigationChatButton.tsx

Length of output: 2897


Script:

#!/bin/bash
# Search for navigation patterns in components
rg 'navigate\("Conversation"' --type ts --type tsx -A 2

Length 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.ts

Length of output: 5255


Script:

#!/bin/bash
# Search for comments mentioning navigation delays or timeouts
rg '//.*timeout|//.*delay|/\*.*timeout|/\*.*delay' -i

Length 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 with marginLeft: 16 might cause horizontal scrolling on web platforms. Consider either:

  1. Subtracting the margin from the width: width: dimensions.width - 16
  2. Using maxWidth instead of width
✅ Verification successful

The previous command failed because tsx is not a recognized file type in the basic rg 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:

  1. The width: dimensions.width with marginLeft: 16 is only applied in the web-specific styles using Platform.select
  2. The default platform uses width: "100%" which is the correct approach
  3. 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 and onScrollBeginDrag props
  • These events are correctly passed to the parent's onScroll handler
  • The FlashList component retains proper scroll configuration with keyboardShouldPersistTaps and contentInsetAdjustmentBehavior
  • 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.tsx

Length 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 simplified

The 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 formatting

The added spacing improves readability by clearly separating the timeout logic from surrounding code.


516-518: LGTM: Simplified background color logic

The 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 configuration

The 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")}
Copy link
Contributor

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 layout
  • config.ts: Configuration value splitScreenThreshold
  • screens/Profile.tsx: TODO comment about split screen timing
  • screens/ConversationList.tsx: Comment about split screen behavior
  • adr/adr.001.folder and file structure: Reference to SplitScreenNavigation

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

Comment on lines +324 to +352
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);
Copy link
Contributor

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:

  1. The hardcoded timeout value should be extracted to a constant
  2. The navigation state check could benefit from error handling
  3. 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.

Suggested change
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),

@thierryskoda thierryskoda merged commit f0756cf into release/2.0.8 Oct 25, 2024
6 checks passed
@thierryskoda thierryskoda deleted the ts/remove-split-screen-stuff branch October 25, 2024 16:55
alexrisch pushed a commit that referenced this pull request Oct 25, 2024
This was referenced Oct 25, 2024
alexrisch pushed a commit that referenced this pull request Oct 28, 2024
alexrisch added a commit that referenced this pull request Nov 1, 2024
* 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]>
This was referenced Dec 12, 2024
technoplato pushed a commit that referenced this pull request Dec 17, 2024
technoplato pushed a commit that referenced this pull request Dec 17, 2024
* 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]>
This was referenced Dec 19, 2024
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.

2 participants