Skip to content

Commit 3d4c87c

Browse files
author
Andrey Malochka
committed
add nft ui
1 parent 3b38ed3 commit 3d4c87c

File tree

18 files changed

+456
-322
lines changed

18 files changed

+456
-322
lines changed

assets/images/nft_empty_list.png

240 KB
Loading

assets/translations/en.json

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -648,5 +648,10 @@
648648
"seedPhrase12FormatStandart": "SparX wallet",
649649
"seedPhrase12FormatTON": "TON types wallet",
650650
"seedPhrase24FormatStandart": "TON Standard",
651-
"seedPhrase24FormatTON": "TON BIP39"
651+
"seedPhrase24FormatTON": "TON BIP39",
652+
"nftWord": "NFT",
653+
"nftEmptyListTitle": "You don't have any NFTs yet",
654+
"nftEmptyListSubtitle": "Visit our marketplace for Everscale collections or import NFTs manually",
655+
"visitMarketplace": "Visit marketplace",
656+
"addNFT": "Add NFT"
652657
}

assets/translations/ko.json

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -648,5 +648,10 @@
648648
"seedPhrase12FormatStandart": "SparX wallet",
649649
"seedPhrase12FormatTON": "TON types wallet",
650650
"seedPhrase24FormatStandart": "TON Standard",
651-
"seedPhrase24FormatTON": "TON BIP39"
651+
"seedPhrase24FormatTON": "TON BIP39",
652+
"nftWord": "NFT",
653+
"nftEmptyListTitle": "You don't have any NFTs yet",
654+
"nftEmptyListSubtitle": "Visit our marketplace for Everscale collections or import NFTs manually",
655+
"visitMarketplace": "Visit marketplace",
656+
"addNFT": "Add NFT"
652657
}

lib/app/router/app_route.dart

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,20 @@ enum AppRoute {
117117
isBottomNavigationBarVisible: true,
118118
isSaveSubroutes: true,
119119
),
120+
nft(
121+
'nft',
122+
'/nft',
123+
isSaveLocation: true,
124+
isBottomNavigationBarVisible: true,
125+
isSaveSubroutes: true,
126+
),
127+
addNft(
128+
'addNft',
129+
'addNft',
130+
isSaveLocation: true,
131+
isBottomNavigationBarVisible: false,
132+
isSaveSubroutes: true,
133+
),
120134
manageSeedsAccounts(
121135
'manageSeeds',
122136
'manageSeeds',

lib/app/router/router.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import 'dart:async';
33
import 'package:app/app/router/page_transitions.dart';
44
import 'package:app/app/router/router.dart';
55
import 'package:app/app/router/routs/network/network.dart';
6+
import 'package:app/app/router/routs/nft/nft.dart';
67
import 'package:app/app/service/service.dart';
78
import 'package:app/di/di.dart';
89
import 'package:app/event_bus/events/bootstrap/bootstrap_event.dart';
@@ -154,6 +155,7 @@ class AppRouter {
154155
walletBranch,
155156
browserBranch,
156157
profileBranch,
158+
nftBranch,
157159
],
158160
),
159161
],

lib/app/router/routs/nft/nft.dart

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import 'package:app/app/router/app_route.dart';
2+
import 'package:app/feature/nft/add_nft/add_nft_page.dart';
3+
import 'package:app/feature/nft/my_nft_page/my_nft_page.dart';
4+
import 'package:go_router/go_router.dart';
5+
6+
StatefulShellBranch get nftBranch {
7+
return StatefulShellBranch(
8+
routes: [
9+
GoRoute(
10+
name: AppRoute.nft.name,
11+
path: AppRoute.nft.path,
12+
builder: (context, state) => const MyNftPage(),
13+
routes: [addNftRoute],
14+
),
15+
],
16+
);
17+
}
18+
19+
GoRoute get addNftRoute {
20+
return GoRoute(
21+
path: AppRoute.addNft.path,
22+
name: AppRoute.addNft.name,
23+
builder: (_, __) => const AddNftPage(),
24+
);
25+
}

lib/data/models/account_balance.freezed.dart

Lines changed: 11 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,6 @@ abstract class $AccountBalanceModelCopyWith<$Res> {
5050
@moneyFromStringJsonConverter Money fiatBalance,
5151
@moneyFromStringJsonConverter Money tokenBalance,
5252
@JsonKey(defaultValue: false) bool isNative});
53-
54-
$AddressCopyWith<$Res> get rootTokenContract;
5553
}
5654

5755
/// @nodoc
@@ -69,13 +67,13 @@ class _$AccountBalanceModelCopyWithImpl<$Res, $Val extends AccountBalanceModel>
6967
@pragma('vm:prefer-inline')
7068
@override
7169
$Res call({
72-
Object? rootTokenContract = null,
70+
Object? rootTokenContract = freezed,
7371
Object? fiatBalance = null,
7472
Object? tokenBalance = null,
7573
Object? isNative = null,
7674
}) {
7775
return _then(_value.copyWith(
78-
rootTokenContract: null == rootTokenContract
76+
rootTokenContract: freezed == rootTokenContract
7977
? _value.rootTokenContract
8078
: rootTokenContract // ignore: cast_nullable_to_non_nullable
8179
as Address,
@@ -93,16 +91,6 @@ class _$AccountBalanceModelCopyWithImpl<$Res, $Val extends AccountBalanceModel>
9391
as bool,
9492
) as $Val);
9593
}
96-
97-
/// Create a copy of AccountBalanceModel
98-
/// with the given fields replaced by the non-null parameter values.
99-
@override
100-
@pragma('vm:prefer-inline')
101-
$AddressCopyWith<$Res> get rootTokenContract {
102-
return $AddressCopyWith<$Res>(_value.rootTokenContract, (value) {
103-
return _then(_value.copyWith(rootTokenContract: value) as $Val);
104-
});
105-
}
10694
}
10795

10896
/// @nodoc
@@ -118,9 +106,6 @@ abstract class _$$AccountBalanceModelImplCopyWith<$Res>
118106
@moneyFromStringJsonConverter Money fiatBalance,
119107
@moneyFromStringJsonConverter Money tokenBalance,
120108
@JsonKey(defaultValue: false) bool isNative});
121-
122-
@override
123-
$AddressCopyWith<$Res> get rootTokenContract;
124109
}
125110

126111
/// @nodoc
@@ -136,13 +121,13 @@ class __$$AccountBalanceModelImplCopyWithImpl<$Res>
136121
@pragma('vm:prefer-inline')
137122
@override
138123
$Res call({
139-
Object? rootTokenContract = null,
124+
Object? rootTokenContract = freezed,
140125
Object? fiatBalance = null,
141126
Object? tokenBalance = null,
142127
Object? isNative = null,
143128
}) {
144129
return _then(_$AccountBalanceModelImpl(
145-
rootTokenContract: null == rootTokenContract
130+
rootTokenContract: freezed == rootTokenContract
146131
? _value.rootTokenContract
147132
: rootTokenContract // ignore: cast_nullable_to_non_nullable
148133
as Address,
@@ -197,8 +182,8 @@ class _$AccountBalanceModelImpl implements _AccountBalanceModel {
197182
return identical(this, other) ||
198183
(other.runtimeType == runtimeType &&
199184
other is _$AccountBalanceModelImpl &&
200-
(identical(other.rootTokenContract, rootTokenContract) ||
201-
other.rootTokenContract == rootTokenContract) &&
185+
const DeepCollectionEquality()
186+
.equals(other.rootTokenContract, rootTokenContract) &&
202187
(identical(other.fiatBalance, fiatBalance) ||
203188
other.fiatBalance == fiatBalance) &&
204189
(identical(other.tokenBalance, tokenBalance) ||
@@ -210,7 +195,11 @@ class _$AccountBalanceModelImpl implements _AccountBalanceModel {
210195
@JsonKey(includeFromJson: false, includeToJson: false)
211196
@override
212197
int get hashCode => Object.hash(
213-
runtimeType, rootTokenContract, fiatBalance, tokenBalance, isNative);
198+
runtimeType,
199+
const DeepCollectionEquality().hash(rootTokenContract),
200+
fiatBalance,
201+
tokenBalance,
202+
isNative);
214203

215204
/// Create a copy of AccountBalanceModel
216205
/// with the given fields replaced by the non-null parameter values.

0 commit comments

Comments
 (0)