Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
47f3b7c
ledger connection working in demo
B0Y3R-AVA Aug 5, 2025
ea15c43
iOS able to pull addresses from ledger and create a new wallet, also …
B0Y3R-AVA Aug 8, 2025
970b5a0
connection and wallet creation working
B0Y3R-AVA Aug 10, 2025
01a8067
avax / solana txs working, can pull addresses from ledger, create led…
B0Y3R-AVA Aug 11, 2025
110086a
ledger provider, modifications to wallet, ui now using hook
B0Y3R-AVA Aug 12, 2025
f37db80
docs
B0Y3R-AVA Aug 12, 2025
e107705
linting
B0Y3R-AVA Aug 19, 2025
27e7176
ledger live address derivation working, transactiosn on avalanche and…
B0Y3R-AVA Sep 11, 2025
1892aa2
ledger live wallet creation / demo ui flow much better
B0Y3R-AVA Sep 14, 2025
766ec03
small fix for import wallet screen
B0Y3R-AVA Sep 15, 2025
aeb7219
linting fixes
B0Y3R-AVA Sep 17, 2025
2476726
cleanup
B0Y3R-AVA Sep 17, 2025
2cb96d8
test fixes
B0Y3R-AVA Sep 17, 2025
430160b
removed unused .mdc file
B0Y3R-AVA Sep 17, 2025
d9a584e
moved steps into routes, modified ui for path selection and bluettoth…
B0Y3R-AVA Sep 19, 2025
0a097a6
wrapped up design
B0Y3R-AVA Sep 24, 2025
d21759b
fixes for bluetooth connect flows
B0Y3R-AVA Nov 5, 2025
c2f82bb
linting fixes
B0Y3R-AVA Nov 6, 2025
894be27
removed changes to settings.json
B0Y3R-AVA Nov 6, 2025
74bd792
typescript errors
B0Y3R-AVA Nov 6, 2025
c162e1d
clean up
B0Y3R-AVA Nov 6, 2025
871fb2e
more clean up
B0Y3R-AVA Nov 6, 2025
c4d9ffc
fixed ledger service after rebase
B0Y3R-AVA Nov 6, 2025
6ef7f0c
fixed imports
B0Y3R-AVA Nov 6, 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,122 @@
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) */
animationSource?: any
/** 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,
marginBottom: 0,
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