feat(flutter): adopt MainAppBarActions in Search, Discover, Playlists, Settings

Search keeps its conditional clear-text button and gains the shared
nav widget after it. Discover/Playlists/Settings get an actions row
they didn't have before. The kebab is now reachable from every
top-level screen, which is the prerequisite for the Admin entry.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-08 21:50:29 -04:00
parent 5546787f78
commit fc0350cb96
4 changed files with 8 additions and 0 deletions
@@ -7,6 +7,7 @@ import '../api/endpoints/discover.dart';
import '../api/errors.dart';
import '../library/library_providers.dart' show dioProvider;
import '../models/lidarr.dart';
import '../shared/widgets/main_app_bar_actions.dart';
import '../theme/theme_extension.dart';
final _discoverApiProvider = FutureProvider<DiscoverApi>((ref) async {
@@ -87,6 +88,7 @@ class _DiscoverScreenState extends ConsumerState<DiscoverScreen> {
onPressed: () => context.pop(),
),
title: Text('Discover', style: TextStyle(color: fs.parchment)),
actions: const [MainAppBarActions(currentRoute: '/discover')],
),
body: Column(children: [
Padding(
@@ -3,6 +3,7 @@ import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:go_router/go_router.dart';
import '../models/playlist.dart';
import '../shared/widgets/main_app_bar_actions.dart';
import '../theme/theme_extension.dart';
import 'playlists_provider.dart';
@@ -22,6 +23,7 @@ class PlaylistsListScreen extends ConsumerWidget {
backgroundColor: fs.obsidian,
elevation: 0,
title: Text('Playlists', style: TextStyle(color: fs.parchment)),
actions: const [MainAppBarActions(currentRoute: '/playlists')],
),
body: list.when(
loading: () => const Center(child: CircularProgressIndicator()),
@@ -7,6 +7,7 @@ import '../library/widgets/artist_card.dart';
import '../library/widgets/track_row.dart';
import '../models/search_response.dart';
import '../player/player_provider.dart';
import '../shared/widgets/main_app_bar_actions.dart';
import '../theme/theme_extension.dart';
import 'search_provider.dart';
@@ -73,6 +74,7 @@ class _SearchScreenState extends ConsumerState<SearchScreen> {
_focus.requestFocus();
},
),
const MainAppBarActions(currentRoute: '/search'),
],
),
body: results.when(
@@ -7,6 +7,7 @@ import '../api/endpoints/settings.dart';
import '../api/errors.dart';
import '../library/library_providers.dart' show dioProvider;
import '../models/my_profile.dart';
import '../shared/widgets/main_app_bar_actions.dart';
import '../theme/theme_extension.dart';
final _settingsApiProvider = FutureProvider<SettingsApi>((ref) async {
@@ -37,6 +38,7 @@ class SettingsScreen extends ConsumerWidget {
onPressed: () => context.pop(),
),
title: Text('Settings', style: TextStyle(color: fs.parchment)),
actions: const [MainAppBarActions(currentRoute: '/settings')],
),
body: ListView(
padding: const EdgeInsets.symmetric(vertical: 8),