This commit is contained in:
Forrest 2026-07-29 16:22:00 -04:00
parent fc22d11df1
commit 27a8a62475
32 changed files with 354 additions and 335 deletions

View file

@ -13,7 +13,7 @@ Future<void> showAddToPlaylistSheet(
}) {
return showModalBottomSheet<void>(
context: context,
backgroundColor: RatuneColors.background,
backgroundColor: TimbreColors.background,
isScrollControlled: true,
builder: (_) => _AddToPlaylistSheet(songs: songs),
);
@ -32,24 +32,24 @@ class _AddToPlaylistSheet extends ConsumerWidget {
return SafeArea(
child: Padding(
padding: const EdgeInsets.symmetric(vertical: RatuneSpacing.lg),
padding: const EdgeInsets.symmetric(vertical: TimbreSpacing.lg),
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
Padding(
padding:
const EdgeInsets.symmetric(horizontal: RatuneSpacing.xl),
const EdgeInsets.symmetric(horizontal: TimbreSpacing.xl),
child: Text('Add to playlist',
style:
TextStyle(color: accent, fontWeight: FontWeight.w700)),
),
const SizedBox(height: RatuneSpacing.md),
const SizedBox(height: TimbreSpacing.md),
if (!connected)
const Padding(
padding: EdgeInsets.all(RatuneSpacing.xl),
padding: EdgeInsets.all(TimbreSpacing.xl),
child: Text('Connect to a server to manage playlists.',
style: TextStyle(color: RatuneColors.dimmed)),
style: TextStyle(color: TimbreColors.dimmed)),
)
else ...[
_Tile(
@ -123,21 +123,21 @@ class _Tile extends StatelessWidget {
onTap: onTap,
child: Container(
constraints:
const BoxConstraints(minHeight: RatuneSpacing.minTouchTarget),
padding: const EdgeInsets.symmetric(horizontal: RatuneSpacing.xl),
const BoxConstraints(minHeight: TimbreSpacing.minTouchTarget),
padding: const EdgeInsets.symmetric(horizontal: TimbreSpacing.xl),
child: Row(
children: [
Icon(icon, size: 20, color: accent ?? RatuneColors.dimmed),
const SizedBox(width: RatuneSpacing.lg),
Icon(icon, size: 20, color: accent ?? TimbreColors.dimmed),
const SizedBox(width: TimbreSpacing.lg),
Expanded(
child: Text(label,
maxLines: 1,
overflow: TextOverflow.ellipsis,
style: TextStyle(color: accent ?? RatuneColors.foreground)),
style: TextStyle(color: accent ?? TimbreColors.foreground)),
),
if (trailing != null)
Text(trailing!,
style: const TextStyle(color: RatuneColors.dimmed)),
style: const TextStyle(color: TimbreColors.dimmed)),
],
),
),
@ -158,15 +158,15 @@ Future<String?> promptPlaylistName(
builder: (ctx) {
final accent = Theme.of(ctx).colorScheme.primary;
return AlertDialog(
backgroundColor: RatuneColors.surface,
backgroundColor: TimbreColors.surface,
title: Text(title),
content: TextField(
controller: controller,
autofocus: true,
style: const TextStyle(color: RatuneColors.foreground),
style: const TextStyle(color: TimbreColors.foreground),
decoration: const InputDecoration(
hintText: 'Playlist name',
hintStyle: TextStyle(color: RatuneColors.dimmed),
hintStyle: TextStyle(color: TimbreColors.dimmed),
),
onSubmitted: (v) => Navigator.pop(ctx, v.trim()),
),