show static method
Future<void>
show(
- BuildContext context, {
- required String address,
- required String location,
- required double foreclosureProbability,
- required String foreclosureLabel,
- String? acquisitionPath,
- int yearsDelinquent = 0,
- required double estimatedValue,
- required double lienCost,
- required double totalCost,
- required double roi,
- required double fvi,
- double? karmaScore,
- double? x1000Score,
- Widget? note,
- Map<
String, String> metrics = const {},
Shows the sheet.
Implementation
static Future<void> show(
BuildContext context, {
required String address,
required String location,
required double foreclosureProbability,
required String foreclosureLabel,
String? acquisitionPath,
int yearsDelinquent = 0,
required double estimatedValue,
required double lienCost,
required double totalCost,
required double roi,
required double fvi,
double? karmaScore,
double? x1000Score,
Widget? note,
Map<String, String> metrics = const {},
}) {
final l = NmRealEstate.l10n(context);
final tone = foreclosureProbability >= .7
? NmTone.success
: foreclosureProbability >= .4
? NmTone.warning
: NmTone.danger;
return NmDetailsSheet.show(
context,
title: address,
subtitle: location,
sections: [
NmDetailSection(
title: l.finForeclosure,
rows: [
NmDetailRow.widget(l.finForeclosureProb, NmPill('${(foreclosureProbability * 100).toStringAsFixed(0)}% $foreclosureLabel', tone: tone)),
if (acquisitionPath != null) NmDetailRow(l.finAcquisitionPath, acquisitionPath),
if (yearsDelinquent > 0) NmDetailRow(l.finYearsDelinquentLabel, l.finYearsDelinquent(yearsDelinquent)),
],
),
NmDetailSection(
title: l.finBreakdown,
rows: [
NmDetailRow(l.propertyEstValue, _money(estimatedValue)),
NmDetailRow(l.finLienCost, _money(lienCost)),
NmDetailRow(l.finTotalCost, _money(totalCost)),
NmDetailRow(l.finRoi, '${(roi * 100).toStringAsFixed(1)}%'),
],
),
NmDetailSection(
title: l.finValue,
rows: [
NmDetailRow('FVI', fvi.toStringAsFixed(1)),
if (karmaScore != null) NmDetailRow(l.finKarma, karmaScore.toStringAsFixed(1)),
if (x1000Score != null && x1000Score >= 5)
NmDetailRow.widget(l.finX1000, NmPill('${x1000Score.toStringAsFixed(1)}/10', tone: NmTone.brand, icon: NmFugue.diamond)),
],
note: note,
),
if (metrics.isNotEmpty) NmDetailSection(title: l.finExpertMetrics, rows: [for (final e in metrics.entries) NmDetailRow(e.key, e.value)]),
],
);
}