Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
d163ec6
ledger connection working in demo
B0Y3R-AVA Aug 5, 2025
e496139
iOS able to pull addresses from ledger and create a new wallet, also …
B0Y3R-AVA Aug 8, 2025
ed3f232
connection and wallet creation working
B0Y3R-AVA Aug 10, 2025
781944f
avax / solana txs working, can pull addresses from ledger, create led…
B0Y3R-AVA Aug 11, 2025
398a790
ledger provider, modifications to wallet, ui now using hook
B0Y3R-AVA Aug 12, 2025
8b5c97c
docs
B0Y3R-AVA Aug 12, 2025
aabeef5
linting
B0Y3R-AVA Aug 19, 2025
c13c60d
ledger live address derivation working, transactiosn on avalanche and…
B0Y3R-AVA Sep 11, 2025
9e4d33e
ledger live wallet creation / demo ui flow much better
B0Y3R-AVA Sep 14, 2025
2e5412a
small fix for import wallet screen
B0Y3R-AVA Sep 15, 2025
131036d
linting fixes
B0Y3R-AVA Sep 17, 2025
4e9a1ec
cleanup
B0Y3R-AVA Sep 17, 2025
da93817
test fixes
B0Y3R-AVA Sep 17, 2025
aacde4f
removed unused .mdc file
B0Y3R-AVA Sep 17, 2025
9e9610b
moved steps into routes, modified ui for path selection and bluettoth…
B0Y3R-AVA Sep 19, 2025
e6ae586
wrapped up design
B0Y3R-AVA Sep 24, 2025
92fcce4
fixes for bluetooth connect flows
B0Y3R-AVA Nov 5, 2025
963a6e3
linting fixes
B0Y3R-AVA Nov 6, 2025
ff9aaad
removed changes to settings.json
B0Y3R-AVA Nov 6, 2025
09b0a18
typescript errors
B0Y3R-AVA Nov 6, 2025
8734bbf
clean up
B0Y3R-AVA Nov 6, 2025
428c1c1
more clean up
B0Y3R-AVA Nov 6, 2025
a4fdc47
fixed ledger service after rebase
B0Y3R-AVA Nov 6, 2025
1496394
fixed imports
B0Y3R-AVA Nov 6, 2025
c147dd2
addressed pr comments
B0Y3R-AVA Nov 13, 2025
c6ae596
linting
B0Y3R-AVA Nov 13, 2025
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,192 changes: 1,192 additions & 0 deletions packages/core-mobile/app/assets/lotties/connect-waves.json

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
import React from 'react'
import { View } from 'react-native'
import LottieView from 'lottie-react-native'
import { Text, useTheme } from '@avalabs/k2-alpine'

// Import animation at the top level
const connectWavesAnimation = require('assets/lotties/connect-waves.json')

interface AnimatedIconWithTextProps {
/** The icon component to display */
icon: React.ReactNode
/** The main title text */
title: string
/** The subtitle/description text */
subtitle: string
/** Whether to show the animation behind the icon */
showAnimation?: boolean
/** Custom animation source (defaults to connect-waves.json) - Lottie animation JSON
* In React Native, require() for a Lottie JSON returns either a number (asset reference) or an object (parsed JSON).
* This union type matches what LottieView expects and removes the any lint error.
*/
animationSource?: number | object
/** Custom animation size (defaults to 220x220) */
animationSize?: { width: number; height: number }
/** Custom icon positioning offset for animation centering */
animationOffset?: { top: number; left: number }
/** Custom color for the animation (defaults to theme textPrimary) */
animationColor?: string
}

export const AnimatedIconWithText: React.FC<AnimatedIconWithTextProps> = ({
icon,
title,
subtitle,
showAnimation = false,
animationSource = connectWavesAnimation,
animationSize = { width: 220, height: 220 },
animationColor
}) => {
const {
theme: { colors }
} = useTheme()

// Calculate dynamic positioning based on animation size
const iconContainerHeight = 44 // Assuming standard icon size
const animationRadius = animationSize.width / 2
const iconRadius = iconContainerHeight / 2

// Calculate animation offset to center it around the icon
const dynamicAnimationOffset = {
top: -(animationRadius - iconRadius),
left: -(animationRadius - iconRadius)
}

// Calculate consistent text position regardless of animation state
const baseTopPosition = 160 // Base centering position
const textOverlapPosition = baseTopPosition + iconContainerHeight + 16 // Keep text close to icon for both states

return (
<View
style={{
flex: 1,
alignItems: 'center',
paddingHorizontal: 32
}}>
<View
style={{
marginTop: baseTopPosition,
alignItems: 'center',
justifyContent: 'center'
}}>
{showAnimation && (
<LottieView
source={animationSource}
autoPlay
loop
resizeMode="contain"
colorFilters={[
{
keypath: '*', // Apply to all layers
color: animationColor || colors.$textPrimary // Use custom color or theme default
}
]}
style={{
position: 'absolute',
width: animationSize.width,
height: animationSize.height,
top: dynamicAnimationOffset.top,
left: dynamicAnimationOffset.left
}}
/>
)}
{icon}
</View>
<View
style={{
position: 'absolute',
top: textOverlapPosition,
left: 0,
right: 0,
alignItems: 'center',
paddingHorizontal: 32
}}>
<Text
variant="heading6"
style={{
textAlign: 'center',
marginBottom: 4
}}>
{title}
</Text>
<Text
variant="body1"
style={{
textAlign: 'center',
color: colors.$textSecondary,
maxWidth: 280
}}>
{subtitle}
</Text>
</View>
</View>
)
}
Loading
Loading