stack_wallet/lib/themes/coin_icon_provider.dart

64 lines
1.8 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';
import 'package:stackwallet/utilities/enums/coin_enum.dart';
final coinIconProvider = Provider.family<String, Coin>((ref, coin) {
2023-05-18 18:52:48 +00:00
final assets = ref.watch(themeAssetsProvider);
2024-01-19 23:44:01 +00:00
// TODO: handle this differently by adding proper frost assets to themes
if (coin == Coin.bitcoinFrost) {
coin = Coin.bitcoin;
} else if (coin == Coin.bitcoinFrostTestNet) {
coin = Coin.bitcoinTestNet;
}
2023-05-18 18:52:48 +00:00
if (assets is ThemeAssets) {
switch (coin) {
case Coin.bitcoin:
case Coin.bitcoinTestNet:
return assets.bitcoin;
case Coin.litecoin:
case Coin.litecoinTestNet:
return assets.litecoin;
case Coin.bitcoincash:
case Coin.bitcoincashTestnet:
return assets.bitcoincash;
case Coin.dogecoin:
case Coin.dogecoinTestNet:
return assets.dogecoin;
case Coin.epicCash:
return assets.epicCash;
case Coin.firo:
case Coin.firoTestNet:
return assets.firo;
case Coin.monero:
return assets.monero;
case Coin.wownero:
return assets.wownero;
case Coin.namecoin:
return assets.namecoin;
case Coin.particl:
return assets.particl;
case Coin.ethereum:
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) {
return (assets).coinIcons[coin.mainNetVersion]!;
2023-05-18 18:52:48 +00:00
} else {
2023-06-08 16:35:44 +00:00
return (assets as ThemeAssetsV3).coinIcons[coin.mainNetVersion]!;
}
});