From 086107b2cd9ecf0c7e20d1086f813cf3ba855f43 Mon Sep 17 00:00:00 2001 From: Kingkor Roy Tirtho Date: Mon, 20 Jan 2025 13:24:24 +0600 Subject: [PATCH] refactor: adaptive list tile to use shadcn --- .../adaptive/adaptive_list_tile.dart | 57 +++++++++---------- lib/pages/settings/sections/about.dart | 10 +--- 2 files changed, 30 insertions(+), 37 deletions(-) diff --git a/lib/components/adaptive/adaptive_list_tile.dart b/lib/components/adaptive/adaptive_list_tile.dart index 33df44c1..c6d00bd4 100644 --- a/lib/components/adaptive/adaptive_list_tile.dart +++ b/lib/components/adaptive/adaptive_list_tile.dart @@ -1,5 +1,6 @@ -import 'package:flutter/material.dart'; import 'package:flutter_hooks/flutter_hooks.dart'; +import 'package:shadcn_flutter/shadcn_flutter.dart'; +import 'package:spotube/components/ui/button_tile.dart'; import 'package:spotube/extensions/constrains.dart'; class AdaptiveListTile extends HookWidget { @@ -24,41 +25,39 @@ class AdaptiveListTile extends HookWidget { Widget build(BuildContext context) { final mediaQuery = MediaQuery.of(context); - return ListTile( + return ButtonTile( title: title, subtitle: subtitle, trailing: breakOn ?? mediaQuery.smAndDown ? null : trailing?.call(context, null), leading: leading, - onTap: breakOn ?? mediaQuery.smAndDown - ? () { - onTap?.call(); - showDialog( - context: context, - barrierDismissible: true, - builder: (context) { - return StatefulBuilder(builder: (context, update) { - return AlertDialog( - title: title != null - ? Row( - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - if (leading != null) ...[ - leading!, - const SizedBox(width: 5) - ], - Flexible(child: title!), - ], - ) - : Container(), - content: trailing?.call(context, update), - ); - }); - }, + enabled: breakOn ?? mediaQuery.smAndDown, + onPressed: () { + onTap?.call(); + showDialog( + context: context, + barrierDismissible: true, + builder: (context) { + return StatefulBuilder(builder: (context, update) { + return AlertDialog( + title: title != null + ? Row( + crossAxisAlignment: CrossAxisAlignment.center, + spacing: 5, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + if (leading != null) leading!, + Flexible(child: title!), + ], + ) + : const SizedBox.shrink(), + content: Center(child: trailing?.call(context, update)), ); - } - : null, + }); + }, + ); + }, ); } } diff --git a/lib/pages/settings/sections/about.dart b/lib/pages/settings/sections/about.dart index 5ed26ee8..7f5d3977 100644 --- a/lib/pages/settings/sections/about.dart +++ b/lib/pages/settings/sections/about.dart @@ -69,14 +69,8 @@ class SettingsAboutSection extends HookConsumerWidget { mode: LaunchMode.externalApplication, ); }, - child: Row( - mainAxisSize: MainAxisSize.min, - children: [ - const Icon(SpotubeIcons.heart), - const SizedBox(width: 5), - Text(context.l10n.please_sponsor), - ], - ), + leading: const Icon(SpotubeIcons.heart), + child: Text(context.l10n.please_sponsor), ), ), if (Env.enableUpdateChecker)