Skip to content
This repository was archived by the owner on Mar 26, 2026. It is now read-only.

Commit f88fb5f

Browse files
committed
Add icons to recipient row on confirm screen
- Add NameProvider extension with assetImage for ENS, Aptos, and Injective name providers - Replace ENS icon with updated token icon - Add contact icon for address name type - Use chain icons for Aptos (.apt) and Injective (.inj) name services
1 parent 6e6570c commit f88fb5f

6 files changed

Lines changed: 46 additions & 24 deletions

File tree

Features/Transfer/Sources/ViewModels/ConfirmRecipientViewModel.swift

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -44,22 +44,15 @@ extension ConfirmRecipientViewModel: ItemModelProvidable {
4444
extension ConfirmRecipientViewModel {
4545
private var recipientImage: AssetImage? {
4646
switch model.recipient.type {
47-
case .domain(let provider):
48-
switch provider {
49-
case .ens, .basenames: AssetImage.image(Images.NameResolve.ens)
50-
case .ud, .sns, .spaceid, .lens, .ton, .tree, .eths, .did, .suins, .aptos, .injective, .icns, .hyperliquid, .allDomains: nil
51-
}
47+
case .domain(let provider): provider.assetImage
5248
case .none: nil
5349
}
5450
}
5551

5652
private var addressNameImage: AssetImage? {
5753
switch addressName?.type {
58-
case .contact:
59-
guard let name = addressName?.name else { return nil }
60-
return AssetImage(type: String(name.prefix(2)))
61-
case .address, .contract, .validator, .none:
62-
return nil
54+
case .contact: .image(Images.NameResolve.contact)
55+
case .address, .contract, .validator, .none: nil
6356
}
6457
}
6558

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
// Copyright (c). Gem Wallet. All rights reserved.
2+
3+
import Components
4+
import Primitives
5+
import Style
6+
7+
extension NameProvider {
8+
public var assetImage: AssetImage? {
9+
switch self {
10+
case .ens, .basenames: .image(Images.NameResolve.ens)
11+
case .aptos: .image(Images.Chains.aptos)
12+
case .injective: .image(Images.Chains.injective)
13+
case .ud, .sns, .spaceid, .lens, .ton, .tree, .eths, .did, .suins, .icns, .hyperliquid, .allDomains: nil
14+
}
15+
}
16+
}

Packages/Style/Sources/Images.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,7 @@ public enum Images {
178178
public static let success = Image(.nameResolveSuccess)
179179
public static let error = Image(.nameResolveError)
180180
public static let ens = Image(.ens)
181+
public static let contact = Image(.contact)
181182
}
182183

183184
public enum Info {
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
"images" : [
3+
{
4+
"filename" : "contact.svg",
5+
"idiom" : "universal"
6+
}
7+
],
8+
"info" : {
9+
"author" : "xcode",
10+
"version" : 1
11+
},
12+
"properties" : {
13+
"preserves-vector-representation" : true
14+
}
15+
}
Lines changed: 5 additions & 0 deletions
Loading
Lines changed: 6 additions & 14 deletions
Loading

0 commit comments

Comments
 (0)