| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- import 'package:flutter/material.dart';
- import 'package:gap/gap.dart';
- import 'package:jiffy/jiffy.dart';
- import 'package:tp5/lido/model/Lidoapi_ofp.dart';
- import 'package:tp5/widgets/my_row.dart';
- class WLidoOfp extends StatelessWidget {
- const WLidoOfp({super.key, required this.lidoapiofp, this.onTap});
- final LidoapiOfp lidoapiofp;
- final dynamic onTap;
- Map<String, dynamic> get categories =>
- lidoapiofp.categoriesNames?.toJson() ?? {};
- @override
- Widget build(BuildContext context) {
- return InkWell(
- onTap: onTap,
- child: Column(children: [
- ...lidoapiofp.briefingPackages.map((brief) => Card(
- color: Colors.grey[900],
- shape: RoundedRectangleBorder(
- borderRadius: BorderRadius.circular(6.0),
- ),
- elevation: 8.0,
- margin:
- const EdgeInsets.symmetric(horizontal: 10.0, vertical: 6.0),
- child: Padding(
- padding: const EdgeInsets.all(8.0),
- child: Column(children: [
- MyRow(children: [
- ...brief.leg.map((leg) => Column(children: [
- MyRow(children: [
- const Text("Schedule:"),
- _titleInfo(
- "Schedule",
- "${Jiffy.parseFromMillisecondsSinceEpoch(leg.scheduledDepartureTime ?? 0).format(pattern: "Hm")}-${Jiffy.parseFromMillisecondsSinceEpoch(leg.scheduledTimeOfArrival ?? 0).format(pattern: "Hm")}",
- Jiffy.parseFromMillisecondsSinceEpoch(
- leg.scheduledDepartureTime ?? 0)
- .format(pattern: "dd MMMyy")),
- const Gap(15),
- _titleInfo(
- "Estimate",
- "${Jiffy.parseFromMillisecondsSinceEpoch(leg.estimatedDepartureTime ?? 0).format(pattern: "Hm")}-${Jiffy.parseFromMillisecondsSinceEpoch(leg.estimatedTimeOfArrival ?? 0).format(pattern: "Hm")}",
- Jiffy.parseFromMillisecondsSinceEpoch(
- leg.estimatedDepartureTime ?? 0)
- .format(pattern: "dd MMMyy")),
- const Gap(15),
- _titleInfo(
- "CTOT",
- Jiffy.parseFromMillisecondsSinceEpoch(
- leg.ctot ?? 0)
- .format(pattern: "Hm"),
- Jiffy.parseFromMillisecondsSinceEpoch(
- leg.ctot ?? 0)
- .format(pattern: "dd MMMyy")),
- ]),
- ]))
- ]),
- ])),
- ))
- ]),
- );
- }
- _titleInfo(String? title, String? info, String? secondary,
- {double sizetitle = 10,
- double sizeinfo = 16,
- Color color = Colors.blueGrey,
- bool bold = false}) =>
- Column(
- children: [
- Text(
- title ?? "---",
- style: TextStyle(color: Colors.grey, fontSize: sizetitle),
- ),
- Text(info ?? "---",
- style: TextStyle(
- color: color,
- fontSize: sizeinfo,
- fontWeight: bold ? FontWeight.bold : null)),
- if (secondary != null)
- Text(secondary == "" ? "---" : secondary,
- style: TextStyle(
- color: color,
- fontSize: sizeinfo - 4,
- fontWeight: bold ? FontWeight.w700 : null)),
- ],
- );
- kilo2ton(int? k, {bool ceil = true}) {
- if (k == null) return null;
- const double conversionFactor = 0.001;
- double tons = k * conversionFactor;
- if (ceil) {
- return "${double.parse(((tons * 10).ceilToDouble() / 10).toStringAsFixed(1))}T";
- } else {
- return "${double.parse(((tons * 10).floorToDouble() / 10).toStringAsFixed(1))}T";
- }
- }
- }
|