stack_wallet/lib/themes/coin_icon_provider.dart
2024-05-27 18:01:41 -06:00

51 lines
1.5 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 '../models/isar/stack_theme.dart';
import 'theme_providers.dart';
import '../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]!;
}
});