stack_wallet/lib/themes/coin_icon_provider.dart

63 lines
2.3 KiB
Dart
Raw 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';
2023-05-18 18:52:48 +00:00
import 'package:stackwallet/models/isar/stack_theme.dart';
import 'package:stackwallet/themes/theme_providers.dart';
2024-05-15 21:20:45 +00:00
import 'package:stackwallet/wallets/crypto_currency/coins/bitcoin.dart';
import 'package:stackwallet/wallets/crypto_currency/coins/bitcoincash.dart';
import 'package:stackwallet/wallets/crypto_currency/coins/dogecoin.dart';
import 'package:stackwallet/wallets/crypto_currency/coins/epiccash.dart';
import 'package:stackwallet/wallets/crypto_currency/coins/ethereum.dart';
import 'package:stackwallet/wallets/crypto_currency/coins/firo.dart';
import 'package:stackwallet/wallets/crypto_currency/coins/litecoin.dart';
import 'package:stackwallet/wallets/crypto_currency/coins/monero.dart';
import 'package:stackwallet/wallets/crypto_currency/coins/namecoin.dart';
import 'package:stackwallet/wallets/crypto_currency/coins/particl.dart';
import 'package:stackwallet/wallets/crypto_currency/coins/wownero.dart';
import 'package:stackwallet/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]!;
}
});