refactor: adaptive list tile to use shadcn

This commit is contained in:
Kingkor Roy Tirtho 2025-01-20 13:24:24 +06:00
parent 74a328e529
commit 086107b2cd
2 changed files with 30 additions and 37 deletions

View File

@ -1,5 +1,6 @@
import 'package:flutter/material.dart';
import 'package:flutter_hooks/flutter_hooks.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'; import 'package:spotube/extensions/constrains.dart';
class AdaptiveListTile extends HookWidget { class AdaptiveListTile extends HookWidget {
@ -24,41 +25,39 @@ class AdaptiveListTile extends HookWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
final mediaQuery = MediaQuery.of(context); final mediaQuery = MediaQuery.of(context);
return ListTile( return ButtonTile(
title: title, title: title,
subtitle: subtitle, subtitle: subtitle,
trailing: breakOn ?? mediaQuery.smAndDown trailing: breakOn ?? mediaQuery.smAndDown
? null ? null
: trailing?.call(context, null), : trailing?.call(context, null),
leading: leading, leading: leading,
onTap: breakOn ?? mediaQuery.smAndDown enabled: breakOn ?? mediaQuery.smAndDown,
? () { onPressed: () {
onTap?.call(); onTap?.call();
showDialog( showDialog(
context: context, context: context,
barrierDismissible: true, barrierDismissible: true,
builder: (context) { builder: (context) {
return StatefulBuilder(builder: (context, update) { return StatefulBuilder(builder: (context, update) {
return AlertDialog( return AlertDialog(
title: title != null title: title != null
? Row( ? Row(
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
children: [ spacing: 5,
if (leading != null) ...[ mainAxisAlignment: MainAxisAlignment.center,
leading!, children: [
const SizedBox(width: 5) if (leading != null) leading!,
], Flexible(child: title!),
Flexible(child: title!), ],
], )
) : const SizedBox.shrink(),
: Container(), content: Center(child: trailing?.call(context, update)),
content: trailing?.call(context, update),
);
});
},
); );
} });
: null, },
);
},
); );
} }
} }

View File

@ -69,14 +69,8 @@ class SettingsAboutSection extends HookConsumerWidget {
mode: LaunchMode.externalApplication, mode: LaunchMode.externalApplication,
); );
}, },
child: Row( leading: const Icon(SpotubeIcons.heart),
mainAxisSize: MainAxisSize.min, child: Text(context.l10n.please_sponsor),
children: [
const Icon(SpotubeIcons.heart),
const SizedBox(width: 5),
Text(context.l10n.please_sponsor),
],
),
), ),
), ),
if (Env.enableUpdateChecker) if (Env.enableUpdateChecker)