stack_wallet/lib/themes/coin_icon_provider.dart
2024-05-15 15:24:02 -06:00

62 lines
2.3 KiB
Dart

/*
* 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 'package:stackwallet/models/isar/stack_theme.dart';
import 'package:stackwallet/themes/theme_providers.dart';
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';
final coinIconProvider = Provider.family<String, CryptoCurrency>((ref, coin) {
final assets = ref.watch(themeAssetsProvider);
if (assets is ThemeAssets) {
switch (coin.runtimeType) {
case const (Bitcoin):
return assets.bitcoin;
case const (Litecoin):
return assets.litecoin;
case const (Bitcoincash):
return assets.bitcoincash;
case const (Dogecoin):
return assets.dogecoin;
case const (Epiccash):
return assets.epicCash;
case const (Firo):
return assets.firo;
case const (Monero):
return assets.monero;
case const (Wownero):
return assets.wownero;
case const (Namecoin):
return assets.namecoin;
case const (Particl):
return assets.particl;
case const (Ethereum):
return assets.ethereum;
default:
return assets.stackIcon;
}
} else if (assets is ThemeAssetsV2) {
return (assets).coinIcons[coin.mainNetId]!;
} else {
return (assets as ThemeAssetsV3).coinIcons[coin.mainNetId]!;
}
});