Updated and added comments
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:game_tracker/core/custom_theme.dart';
|
||||
|
||||
/// A tile widget that allows users to choose an option by tapping on it.
|
||||
/// - [title]: The title text displayed on the tile.
|
||||
/// - [trailingText]: Optional trailing text displayed on the tile.
|
||||
/// - [onPressed]: The callback invoked when the tile is tapped.
|
||||
class ChooseTile extends StatefulWidget {
|
||||
/// A tile widget that allows users to choose an option by tapping on it.
|
||||
/// - [title]: The title text displayed on the tile.
|
||||
/// - [trailingText]: Optional trailing text displayed on the tile.
|
||||
/// - [onPressed]: The callback invoked when the tile is tapped.
|
||||
const ChooseTile({
|
||||
super.key,
|
||||
required this.title,
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:game_tracker/core/custom_theme.dart';
|
||||
|
||||
/// A custom radio list tile widget that encapsulates a [Radio] button with additional styling and functionality.
|
||||
/// - [text]: The text to display next to the radio button.
|
||||
/// - [value]: The value associated with the radio button.
|
||||
/// - [onContainerTap]: The callback invoked when the container is tapped.
|
||||
class CustomRadioListTile<T> extends StatelessWidget {
|
||||
/// A custom radio list tile widget that encapsulates a [Radio] button with additional styling and functionality.
|
||||
/// - [text]: The text to display next to the radio button.
|
||||
/// - [value]: The value associated with the radio button.
|
||||
/// - [onContainerTap]: The callback invoked when the container is tapped.
|
||||
const CustomRadioListTile({
|
||||
super.key,
|
||||
required this.text,
|
||||
|
||||
@@ -3,10 +3,10 @@ import 'package:game_tracker/core/custom_theme.dart';
|
||||
import 'package:game_tracker/data/dto/group.dart';
|
||||
import 'package:game_tracker/presentation/widgets/tiles/text_icon_tile.dart';
|
||||
|
||||
/// A tile widget that displays information about a group, including its name and members.
|
||||
/// - [group]: The group data to be displayed.
|
||||
/// - [isHighlighted]: Whether the tile should be highlighted.
|
||||
class GroupTile extends StatelessWidget {
|
||||
/// A tile widget that displays information about a group, including its name and members.
|
||||
/// - [group]: The group data to be displayed.
|
||||
/// - [isHighlighted]: Whether the tile should be highlighted.
|
||||
const GroupTile({super.key, required this.group, this.isHighlighted = false});
|
||||
|
||||
/// The group data to be displayed.
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:game_tracker/core/custom_theme.dart';
|
||||
|
||||
/// A tile widget that displays a title with an icon and some content below it.
|
||||
/// - [title]: The title text displayed on the tile.
|
||||
/// - [icon]: The icon displayed next to the title.
|
||||
/// - [content]: The content widget displayed below the title.
|
||||
/// - [padding]: Optional padding for the tile content.
|
||||
/// - [height]: Optional height for the tile.
|
||||
/// - [width]: Optional width for the tile.
|
||||
class InfoTile extends StatefulWidget {
|
||||
/// A tile widget that displays a title with an icon and some content below it.
|
||||
/// - [title]: The title text displayed on the tile.
|
||||
/// - [icon]: The icon displayed next to the title.
|
||||
/// - [content]: The content widget displayed below the title.
|
||||
/// - [padding]: Optional padding for the tile content.
|
||||
/// - [height]: Optional height for the tile.
|
||||
/// - [width]: Optional width for the tile.
|
||||
const InfoTile({
|
||||
super.key,
|
||||
required this.title,
|
||||
|
||||
@@ -4,10 +4,13 @@ import 'package:game_tracker/presentation/views/main_menu/settings_view/licenses
|
||||
import 'package:game_tracker/presentation/views/main_menu/settings_view/licenses/oss_licenses.dart';
|
||||
|
||||
class LicenseTile extends StatelessWidget {
|
||||
final Package package;
|
||||
|
||||
/// A tile widget that displays information about a software package license.
|
||||
/// - [package]: The package data to be displayed.
|
||||
const LicenseTile({super.key, required this.package});
|
||||
|
||||
/// The package data to be displayed.
|
||||
final Package package;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return GestureDetector(
|
||||
|
||||
@@ -1,95 +0,0 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:game_tracker/core/custom_theme.dart';
|
||||
import 'package:skeletonizer/skeletonizer.dart';
|
||||
|
||||
class MatchSummaryTile extends StatefulWidget {
|
||||
final String matchTitle;
|
||||
final String game;
|
||||
final String ruleset;
|
||||
final String players;
|
||||
final String winner;
|
||||
|
||||
const MatchSummaryTile({
|
||||
super.key,
|
||||
required this.matchTitle,
|
||||
required this.game,
|
||||
required this.ruleset,
|
||||
required this.players,
|
||||
required this.winner,
|
||||
});
|
||||
|
||||
@override
|
||||
State<MatchSummaryTile> createState() => _MatchSummaryTileState();
|
||||
}
|
||||
|
||||
class _MatchSummaryTileState extends State<MatchSummaryTile> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Row(
|
||||
children: [
|
||||
Text(
|
||||
widget.matchTitle,
|
||||
style: const TextStyle(fontSize: 18, fontWeight: FontWeight.bold),
|
||||
),
|
||||
const SizedBox(width: 5),
|
||||
Text(
|
||||
widget.game,
|
||||
style: const TextStyle(fontSize: 14, color: Colors.grey),
|
||||
),
|
||||
],
|
||||
),
|
||||
const SizedBox(height: 5),
|
||||
Container(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 4),
|
||||
height: 20,
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(4),
|
||||
color: CustomTheme.primaryColor,
|
||||
),
|
||||
child: Skeleton.ignore(
|
||||
child: Text(
|
||||
widget.ruleset,
|
||||
style: const TextStyle(fontWeight: FontWeight.bold),
|
||||
),
|
||||
),
|
||||
),
|
||||
Center(
|
||||
heightFactor: 1.5,
|
||||
child: Text(
|
||||
widget.players,
|
||||
style: const TextStyle(fontWeight: FontWeight.bold),
|
||||
),
|
||||
),
|
||||
Center(
|
||||
child: Container(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 4),
|
||||
width: 220,
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(4),
|
||||
color: Colors.yellow.shade300,
|
||||
),
|
||||
child: Skeleton.ignore(
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
const Icon(Icons.emoji_events, color: Colors.black, size: 20),
|
||||
Text(
|
||||
widget.winner,
|
||||
textAlign: TextAlign.center,
|
||||
style: const TextStyle(
|
||||
fontWeight: FontWeight.bold,
|
||||
color: Colors.black87,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -6,13 +6,13 @@ import 'package:game_tracker/l10n/generated/app_localizations.dart';
|
||||
import 'package:game_tracker/presentation/widgets/tiles/text_icon_tile.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
|
||||
/// A tile widget that displays information about a match, including its name,
|
||||
/// creation date, associated group, winner, and players.
|
||||
/// - [match]: The match data to be displayed.
|
||||
/// - [onTap]: The callback invoked when the tile is tapped.
|
||||
/// - [width]: Optional width for the tile.
|
||||
/// - [compact]: Whether to display the tile in a compact mode
|
||||
class MatchTile extends StatefulWidget {
|
||||
/// A tile widget that displays information about a match, including its name,
|
||||
/// creation date, associated group, winner, and players.
|
||||
/// - [match]: The match data to be displayed.
|
||||
/// - [onTap]: The callback invoked when the tile is tapped.
|
||||
/// - [width]: Optional width for the tile.
|
||||
/// - [compact]: Whether to display the tile in a compact mode
|
||||
const MatchTile({
|
||||
super.key,
|
||||
required this.match,
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:game_tracker/core/custom_theme.dart';
|
||||
|
||||
/// A tile widget that displays a title with an icon and a numeric value below it.
|
||||
/// - [title]: The title text displayed on the tile.
|
||||
/// - [icon]: The icon displayed next to the title.
|
||||
/// - [value]: The numeric value displayed below the title.
|
||||
/// - [height]: Optional height for the tile.
|
||||
/// - [width]: Optional width for the tile.
|
||||
/// - [padding]: Optional padding for the tile content.
|
||||
class QuickInfoTile extends StatefulWidget {
|
||||
/// A tile widget that displays a title with an icon and a numeric value below it.
|
||||
/// - [title]: The title text displayed on the tile.
|
||||
/// - [icon]: The icon displayed next to the title.
|
||||
/// - [value]: The numeric value displayed below the title.
|
||||
/// - [height]: Optional height for the tile.
|
||||
/// - [width]: Optional width for the tile.
|
||||
/// - [padding]: Optional padding for the tile content.
|
||||
const QuickInfoTile({
|
||||
super.key,
|
||||
required this.title,
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:game_tracker/core/custom_theme.dart';
|
||||
|
||||
/// A customizable settings list tile widget that displays an icon, title, and an optional suffix widget.
|
||||
/// - [icon]: The icon displayed on the left side of the tile.
|
||||
/// - [title]: The title text displayed next to the icon.
|
||||
/// - [suffixWidget]: An optional widget displayed on the right side of the tile.
|
||||
/// - [onPressed]: The callback invoked when the tile is tapped.
|
||||
class SettingsListTile extends StatelessWidget {
|
||||
/// A customizable settings list tile widget that displays an icon, title, and an optional suffix widget.
|
||||
/// - [icon]: The icon displayed on the left side of the tile.
|
||||
/// - [title]: The title text displayed next to the icon.
|
||||
/// - [suffixWidget]: An optional widget displayed on the right side of the tile.
|
||||
/// - [onPressed]: The callback invoked when the tile is tapped.
|
||||
const SettingsListTile({
|
||||
super.key,
|
||||
required this.icon,
|
||||
|
||||
@@ -4,14 +4,14 @@ import 'package:flutter/material.dart';
|
||||
import 'package:game_tracker/l10n/generated/app_localizations.dart';
|
||||
import 'package:game_tracker/presentation/widgets/tiles/info_tile.dart';
|
||||
|
||||
/// A tile widget that displays statistical data using horizontal bars.
|
||||
/// - [icon]: The icon displayed next to the title.
|
||||
/// - [title]: The title text displayed on the tile.
|
||||
/// - [width]: The width of the tile.
|
||||
/// - [values]: A list of tuples containing labels and their corresponding numeric values.
|
||||
/// - [itemCount]: The maximum number of items to display.
|
||||
/// - [barColor]: The color of the bars representing the values.
|
||||
class StatisticsTile extends StatelessWidget {
|
||||
/// A tile widget that displays statistical data using horizontal bars.
|
||||
/// - [icon]: The icon displayed next to the title.
|
||||
/// - [title]: The title text displayed on the tile.
|
||||
/// - [width]: The width of the tile.
|
||||
/// - [values]: A list of tuples containing labels and their corresponding numeric values.
|
||||
/// - [itemCount]: The maximum number of items to display.
|
||||
/// - [barColor]: The color of the bars representing the values.
|
||||
const StatisticsTile({
|
||||
super.key,
|
||||
required this.icon,
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:game_tracker/core/custom_theme.dart';
|
||||
|
||||
/// A list tile widget that displays text with an optional icon button.
|
||||
/// - [text]: The text to display in the tile.
|
||||
/// - [onPressed]: The callback to be invoked when the icon is pressed.
|
||||
/// - [iconEnabled]: A boolean to determine if the icon should be displayed.
|
||||
class TextIconListTile extends StatelessWidget {
|
||||
/// A list tile widget that displays text with an optional icon button.
|
||||
/// - [text]: The text to display in the tile.
|
||||
/// - [onPressed]: The callback to be invoked when the icon is pressed.
|
||||
/// - [iconEnabled]: A boolean to determine if the icon should be displayed.
|
||||
const TextIconListTile({
|
||||
super.key,
|
||||
required this.text,
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:game_tracker/core/custom_theme.dart';
|
||||
|
||||
/// A tile widget that displays text with an optional icon that can be tapped.
|
||||
/// - [text]: The text to display in the tile.
|
||||
/// - [iconEnabled]: A boolean to determine if the icon should be displayed.
|
||||
/// - [onIconTap]: The callback to be invoked when the icon is tapped.
|
||||
class TextIconTile extends StatelessWidget {
|
||||
/// A tile widget that displays text with an optional icon that can be tapped.
|
||||
/// - [text]: The text to display in the tile.
|
||||
/// - [iconEnabled]: A boolean to determine if the icon should be displayed.
|
||||
/// - [onIconTap]: The callback to be invoked when the icon is tapped.
|
||||
const TextIconTile({
|
||||
super.key,
|
||||
required this.text,
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:game_tracker/core/custom_theme.dart';
|
||||
|
||||
/// A list tile widget that displays a title and description, with optional highlighting and badge.
|
||||
/// - [title]: The title text displayed on the tile.
|
||||
/// - [description]: The description text displayed below the title.
|
||||
/// - [onPressed]: The callback invoked when the tile is tapped.
|
||||
/// - [isHighlighted]: A boolean to determine if the tile should be highlighted.
|
||||
/// - [badgeText]: Optional text to display in a badge on the right side of the title.
|
||||
/// - [badgeColor]: Optional color for the badge background.
|
||||
class TitleDescriptionListTile extends StatelessWidget {
|
||||
/// A list tile widget that displays a title and description, with optional highlighting and badge.
|
||||
/// - [title]: The title text displayed on the tile.
|
||||
/// - [description]: The description text displayed below the title.
|
||||
/// - [onPressed]: The callback invoked when the tile is tapped.
|
||||
/// - [isHighlighted]: A boolean to determine if the tile should be highlighted.
|
||||
/// - [badgeText]: Optional text to display in a badge on the right side of the title.
|
||||
/// - [badgeColor]: Optional color for the badge background.
|
||||
const TitleDescriptionListTile({
|
||||
super.key,
|
||||
required this.title,
|
||||
|
||||
Reference in New Issue
Block a user