feat(app): responsive asset detail layout, full width chart, reactive hero header, shimmer loaders and enriched fundamentals

This commit is contained in:
2026-08-14 23:57:03 +02:00
parent f94e3b8164
commit 1d244b338a
22 changed files with 1950 additions and 1074 deletions
@@ -0,0 +1,32 @@
import 'package:equatable/equatable.dart';
class MatchedAssetModel extends Equatable {
final String isin;
final String symbol;
final String name;
const MatchedAssetModel({
required this.isin,
required this.symbol,
required this.name,
});
factory MatchedAssetModel.fromJson(Map<String, dynamic> json) {
return MatchedAssetModel(
isin: (json['isin'] ?? json['Isin'])?.toString() ?? '',
symbol: (json['symbol'] ?? json['Symbol'] ?? json['ticker'] ?? json['Ticker'])?.toString() ?? '',
name: (json['name'] ?? json['Name'] ?? json['companyName'] ?? json['CompanyName'])?.toString() ?? '',
);
}
Map<String, dynamic> toJson() {
return {
'isin': isin,
'symbol': symbol,
'name': name,
};
}
@override
List<Object?> get props => [isin, symbol, name];
}