stack_wallet/lib/themes/coin_icon_provider.dart

52 lines
1.5 KiB
Dart
Raw Permalink Normal View History

2023-05-26 21:21:16 +00:00
/*
* This file is part of Stack Wallet.
*
* Copyright (c) 2023 Cypher Stack
* All Rights Reserved.
* The code is distributed under GPLv3 license, see LICENSE file for details.
* Generated by Cypher Stack on 2023-05-26
*
*/
import 'package:flutter_riverpod/flutter_riverpod.dart';
import '../models/isar/stack_theme.dart';
import 'theme_providers.dart';
import '../wallets/crypto_currency/crypto_currency.dart';
2024-05-15 21:20:45 +00:00
final coinIconProvider = Provider.family<String, CryptoCurrency>((ref, coin) {
2023-05-18 18:52:48 +00:00
final assets = ref.watch(themeAssetsProvider);
if (assets is ThemeAssets) {
2024-05-15 21:20:45 +00:00
switch (coin.runtimeType) {
case const (Bitcoin):
2023-05-18 18:52:48 +00:00
return assets.bitcoin;
2024-05-15 21:20:45 +00:00
case const (Litecoin):
2023-05-18 18:52:48 +00:00
return assets.litecoin;
2024-05-15 21:20:45 +00:00
case const (Bitcoincash):
2023-05-18 18:52:48 +00:00
return assets.bitcoincash;
2024-05-15 21:20:45 +00:00
case const (Dogecoin):
2023-05-18 18:52:48 +00:00
return assets.dogecoin;
2024-05-15 21:20:45 +00:00
case const (Epiccash):
2023-05-18 18:52:48 +00:00
return assets.epicCash;
2024-05-15 21:20:45 +00:00
case const (Firo):
2023-05-18 18:52:48 +00:00
return assets.firo;
2024-05-15 21:20:45 +00:00
case const (Monero):
2023-05-18 18:52:48 +00:00
return assets.monero;
2024-05-15 21:20:45 +00:00
case const (Wownero):
2023-05-18 18:52:48 +00:00
return assets.wownero;
2024-05-15 21:20:45 +00:00
case const (Namecoin):
2023-05-18 18:52:48 +00:00
return assets.namecoin;
2024-05-15 21:20:45 +00:00
case const (Particl):
2023-05-18 18:52:48 +00:00
return assets.particl;
2024-05-15 21:20:45 +00:00
case const (Ethereum):
2023-05-18 18:52:48 +00:00
return assets.ethereum;
2023-05-24 18:08:32 +00:00
default:
2023-06-09 18:44:47 +00:00
return assets.stackIcon;
2023-05-18 18:52:48 +00:00
}
2023-06-08 16:35:44 +00:00
} else if (assets is ThemeAssetsV2) {
2024-05-15 21:20:45 +00:00
return (assets).coinIcons[coin.mainNetId]!;
2023-05-18 18:52:48 +00:00
} else {
2024-05-15 21:20:45 +00:00
return (assets as ThemeAssetsV3).coinIcons[coin.mainNetId]!;
}
});