feat(flutter): adopt MainAppBarActions in Home + Library

HomeScreen drops its 5 ad-hoc IconButton actions in favour of the shared
widget. LibraryScreen gains an actions row it didn't have before. Both
now consistent.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-08 21:49:30 -04:00
parent 6564d37a2a
commit 5546787f78
2 changed files with 4 additions and 28 deletions
+2 -28
View File
@@ -1,7 +1,6 @@
import 'package:dio/dio.dart'; import 'package:dio/dio.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:go_router/go_router.dart';
import '../api/errors.dart'; import '../api/errors.dart';
import '../models/album.dart'; import '../models/album.dart';
@@ -9,6 +8,7 @@ import '../models/artist.dart';
import '../models/track.dart'; import '../models/track.dart';
import '../player/player_provider.dart'; import '../player/player_provider.dart';
import '../shared/widgets/connection_error_banner.dart'; import '../shared/widgets/connection_error_banner.dart';
import '../shared/widgets/main_app_bar_actions.dart';
import '../theme/theme_extension.dart'; import '../theme/theme_extension.dart';
import 'library_providers.dart'; import 'library_providers.dart';
import 'widgets/album_card.dart'; import 'widgets/album_card.dart';
@@ -28,33 +28,7 @@ class HomeScreen extends ConsumerWidget {
backgroundColor: fs.obsidian, backgroundColor: fs.obsidian,
elevation: 0, elevation: 0,
title: Text('Minstrel', style: TextStyle(color: fs.parchment)), title: Text('Minstrel', style: TextStyle(color: fs.parchment)),
actions: [ actions: const [MainAppBarActions(currentRoute: '/home')],
IconButton(
icon: Icon(Icons.library_music, color: fs.parchment),
tooltip: 'Library',
onPressed: () => context.push('/library'),
),
IconButton(
icon: Icon(Icons.queue_music, color: fs.parchment),
tooltip: 'Playlists',
onPressed: () => context.push('/playlists'),
),
IconButton(
icon: Icon(Icons.search, color: fs.parchment),
tooltip: 'Search',
onPressed: () => context.push('/search'),
),
IconButton(
icon: Icon(Icons.explore, color: fs.parchment),
tooltip: 'Discover',
onPressed: () => context.push('/discover'),
),
IconButton(
icon: Icon(Icons.settings, color: fs.parchment),
tooltip: 'Settings',
onPressed: () => context.push('/settings'),
),
],
), ),
body: SafeArea( body: SafeArea(
child: ref.watch(homeProvider).when( child: ref.watch(homeProvider).when(
@@ -15,6 +15,7 @@ import '../models/page.dart' as wire;
import '../models/quarantine_mine.dart'; import '../models/quarantine_mine.dart';
import '../models/track.dart'; import '../models/track.dart';
import '../player/player_provider.dart'; import '../player/player_provider.dart';
import '../shared/widgets/main_app_bar_actions.dart';
import '../theme/theme_extension.dart'; import '../theme/theme_extension.dart';
import 'widgets/album_card.dart'; import 'widgets/album_card.dart';
import 'widgets/artist_card.dart'; import 'widgets/artist_card.dart';
@@ -90,6 +91,7 @@ class _LibraryScreenState extends ConsumerState<LibraryScreen>
backgroundColor: fs.obsidian, backgroundColor: fs.obsidian,
elevation: 0, elevation: 0,
title: Text('Library', style: TextStyle(color: fs.parchment)), title: Text('Library', style: TextStyle(color: fs.parchment)),
actions: const [MainAppBarActions(currentRoute: '/library')],
bottom: TabBar( bottom: TabBar(
controller: _ctrl, controller: _ctrl,
isScrollable: true, isScrollable: true,