This repository has been archived on 2025-03-26. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
brook/lib/providers/search_provider.dart
2025-01-03 20:59:59 -05:00

23 lines
872 B
Dart

import 'package:canal/models/search_type.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:canal/providers/ytmusic_provider.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
import 'package:fast_immutable_collections/fast_immutable_collections.dart';
part "search_provider.g.dart";
@riverpod
Future<IList<dynamic>> searchProvider(
Ref ref, {
required String search,
required SearchType searchType,
}) async {
final yt = await ytmusic(ref);
return IList(switch (searchType) {
SearchType.any => await yt.search(search),
SearchType.songs => await yt.searchSongs(search),
SearchType.albums => await yt.searchAlbums(search),
SearchType.videos => await yt.searchVideos(search),
SearchType.artists => await yt.searchAlbums(search),
SearchType.playlists => await yt.searchPlaylists(search),
});
}