Skip to content

Commit

Permalink
Update route to artist search screen
Browse files Browse the repository at this point in the history
  • Loading branch information
up2code committed Apr 9, 2024
1 parent 787a36b commit 6f87488
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import 'package:vocadb_app/src/features/home/presentation/home_screen/random_alb
import 'package:vocadb_app/src/features/home/presentation/home_screen/recent_albums_section.dart';
import 'package:vocadb_app/src/features/home/presentation/home_screen/recent_events_section.dart';
import 'package:vocadb_app/src/features/home/presentation/home_screen/shortcut_menu_button.dart';
import 'package:vocadb_app/src/routing/app_route_context.dart';

class HomeScreen extends StatelessWidget {
const HomeScreen({super.key});
Expand Down Expand Up @@ -38,7 +39,9 @@ class HomeScreen extends StatelessWidget {
ShortcutMenuButton(
title: 'Artists',
iconData: Icons.person,
onPressed: () {},
onPressed: () {
context.goArtistSearchScreen();
},
),
ShortcutMenuButton(
title: 'Albums',
Expand Down
5 changes: 5 additions & 0 deletions lib/src/routing/app_route_context.dart
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,11 @@ extension AppRouteContext on BuildContext {
goNamed(AppRoute.releaseEventDetail.name, pathParameters: { 'id': releaseEvent.id.toString() });
}

Future<void> goArtistSearchScreen() async {
goNamed(AppRoute.artistsList.name);

}

Future<void> goArtistsListFilterScreen() async {
goNamed(AppRoute.artistsListFilter.name);

Expand Down
33 changes: 18 additions & 15 deletions lib/src/routing/app_router.dart
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import 'package:vocadb_app/src/features/users/presentation/rated_songs_screen/ra
import 'package:vocadb_app/src/features/users/presentation/rated_songs_screen/rated_songs_screen.dart';
import 'package:vocadb_app/src/features/songs/presentation/song_detail_screen/song_detail_screen.dart';
import 'package:vocadb_app/src/features/tags/presentation/tag_detail_screen/tag_detail_screen.dart';
import 'package:vocadb_app/src/routing/app_route_context.dart';
import 'package:vocadb_app/src/routing/go_router_refresh_stream.dart';

enum AppRoute {
Expand Down Expand Up @@ -91,13 +92,15 @@ final goRouterProvider = Provider.autoDispose<GoRouter>(
},
),
GoRoute(
path: 'Artists',
path: 'Ar',
name: AppRoute.artistsList.name,
pageBuilder: (context, state) => MaterialPage(
key: state.pageKey,
fullscreenDialog: true,
child: const ArtistsListScreen(),
),
builder: (context, state) {
return ArtistsListScreen(
onSelectArtist: (artist) {
context.goArtistDetail(artist);
}
);
},
routes: [
GoRoute(
path: 'Filter',
Expand All @@ -107,7 +110,15 @@ final goRouterProvider = Provider.autoDispose<GoRouter>(
fullscreenDialog: true,
child: const ArtistsFilterScreen(),
),
)
),
GoRoute(
path: ':id',
name: AppRoute.artistDetail.name,
builder: (context, state) {
final artistId = state.pathParameters['id']!;
return ArtistDetailScreen(artistId: artistId);
},
),
],
),
GoRoute(
Expand All @@ -118,14 +129,6 @@ final goRouterProvider = Provider.autoDispose<GoRouter>(
return AlbumDetailScreen(album: Album(id: int.parse(albumId)));
},
),
GoRoute(
path: 'Ar/:id',
name: AppRoute.artistDetail.name,
builder: (context, state) {
final artistId = state.pathParameters['id']!;
return ArtistDetailScreen(artistId: artistId);
},
),
GoRoute(
path: 'T/:id',
name: AppRoute.tagDetail.name,
Expand Down

0 comments on commit 6f87488

Please sign in to comment.