import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; import 'package:tetra_stats/data_objects/tetrio_constants.dart'; import 'package:tetra_stats/gen/strings.g.dart'; import 'package:tetra_stats/utils/open_in_browser.dart'; import 'package:tetra_stats/views/about_view.dart'; import 'package:tetra_stats/views/sprint_and_blitz_averages.dart'; class DestinationInfo extends StatefulWidget{ final BoxConstraints constraints; const DestinationInfo({super.key, required this.constraints}); @override State createState() => _DestinationInfo(); } class InfoCard extends StatelessWidget { final double height; final String assetLink; final String? assetLinkOnFocus; final String title; final String description; final void Function() onPressed; const InfoCard({required this.height, required this.assetLink, required this.title, required this.description, this.assetLinkOnFocus, required this.onPressed}); @override Widget build(BuildContext context) { return Card( clipBehavior: Clip.hardEdge, child: SizedBox( width: 450, height: height, child: Column( children: [ Image.asset(assetLink, fit: BoxFit.cover, height: 300.0), TextButton(child: Text(title, style: Theme.of(context).textTheme.titleLarge!.copyWith(decoration: TextDecoration.underline, decorationColor: Colors.white70, decorationStyle: TextDecorationStyle.dotted), textAlign: TextAlign.center), onPressed: onPressed), Padding( padding: const EdgeInsets.all(12.0), child: Text(description), ), Spacer() ], ), ), ); } } class _DestinationInfo extends State { @override Widget build(BuildContext context) { return Column( mainAxisSize: MainAxisSize.min, children: [ Card( child: Center(child: Text("Information Center", style: Theme.of(context).textTheme.titleLarge)), ), SingleChildScrollView( scrollDirection: Axis.horizontal, child: Row( children: [ InfoCard( height: widget.constraints.maxHeight - 77, assetLink: "res/images/info card 1 focus.png", title: "40 Lines & Blitz Averages", description: "Since calculating 40 Lines & Blitz averages is tedious process, it gets updated only once in a while. Click on the title of this card to see the full 40 Lines & Blitz averages table\n\n${t.sprintAndBlitsRelevance(date: DateFormat.yMMMd(LocaleSettings.currentLocale.languageCode).format(sprintAndBlitzRelevance))}", onPressed: (){ Navigator.push(context, MaterialPageRoute( builder: (context) => SprintAndBlitzView(), )); } ), InfoCard( height: widget.constraints.maxHeight - 77, assetLink: "res/images/Снимок экрана_2023-11-06_01-00-50.png", title: "Tetra Stats Wiki", description: "Find more information about Tetra Stats functions and statictic, that it provides", onPressed: (){ launchInBrowser(Uri.https("github.com", "dan63047/TetraStats/wiki")); } ), InfoCard( height: widget.constraints.maxHeight - 77, assetLink: "res/images/Снимок экрана_2023-11-06_01-00-50.png", title: "About Tetra Stats", description: "Developed by dan63\n", onPressed: (){ Navigator.push(context, MaterialPageRoute( builder: (context) => AboutView(), )); }, ), ], ), ) ], ); } }