Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
- fixed: The side menu's dimming overlay works again on both platforms. React Native 0.86 removed the `StyleSheet.absoluteFillObject` the drawer's overlay spreads, which collapsed it to nothing, so tapping outside the menu no longer closed it.
- fixed: Text inputs mounted in the disabled state (such as the spending-limit amount) no longer flash their enabled look before dimming when a scene appears.
- fixed: Received-transaction and error dropdowns no longer slide in underneath the Android status bar on edge-to-edge devices.
- fixed: Home's promo card no longer covers the Buy and Sell tiles on Android when it appears after the screen loads.
- fixed: The header, scene footer, tab bar, keyboard-avoiding buttons, and notification cards blur the scene behind them again on Android 12 and above, sampling the focused scene's content. Below Android 12 they keep their solid backgrounds.
- fixed: See-through modal sheets on Android under the new architecture. Modals blur the screen behind them again on Android 12 and above via a new blur backend (the old one snapshots the window in a way the new architecture renders as empty), and use a solid background color below Android 12, where no blur implementation can render.
- fixed: Zealot uploads of release merge builds, and failed Zealot uploads now fail the build
Expand Down
14 changes: 11 additions & 3 deletions src/components/common/EdgeAnim.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import * as React from 'react'
import type { ViewProps } from 'react-native'
import { Platform, type ViewProps } from 'react-native'
import Animated, {
type BaseAnimationBuilder,
type ComplexAnimationBuilder,
Expand All @@ -25,6 +25,14 @@ export const DEFAULT_ANIMATION_DURATION_MS = 300
export const LAYOUT_ANIMATION = LinearTransition.duration(
DEFAULT_ANIMATION_DURATION_MS
)

// On Android under the new architecture, Reanimated's layout transition can
// leave a view at its old position after its siblings change. On slow
// startups, Home's rows stayed where they were before the promo card
// appeared above them, so the card drew over the Buy and Sell tiles. Only
// animate layout changes by default on iOS:
const DEFAULT_LAYOUT_ANIMATION =
Platform.OS === 'android' ? undefined : LAYOUT_ANIMATION
export const MAX_LIST_ITEMS_ANIM = 10

// Commonly used enter/exit animations. Use these to prevent
Expand Down Expand Up @@ -100,7 +108,7 @@ interface Props {
exit?: Anim

/**
* The animation to use for all layout changes. (defaults {@link LAYOUT_ANIMATION})
* The animation to use for all layout changes. (defaults to {@link LAYOUT_ANIMATION} on iOS, none on Android)
*
* TODO: Remove default once we have audited all instances of EdgeAnim
* explicitly enabling the default LAYOUT_ANIMATION for those instances.
Expand Down Expand Up @@ -176,7 +184,7 @@ export const EdgeAnim = ({
disableAnimation,
enter,
exit,
layout = LAYOUT_ANIMATION,
layout = DEFAULT_LAYOUT_ANIMATION,
noLayoutAnimation = false,
visible = true,
...rest
Expand Down
Loading