use riverpod

This commit is contained in:
Simon Ding
2024-07-09 13:51:30 +08:00
parent a76adfdd29
commit 684846fd88
8 changed files with 327 additions and 293 deletions

View File

@@ -0,0 +1,58 @@
import 'package:dio/dio.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:ui/APIs.dart';
import 'package:ui/server_response.dart';
final welcomePageDataProvider = FutureProvider((ref) async {
var resp = await Dio().get(APIs.watchlistUrl);
var sp = ServerResponse.fromJson(resp.data);
List<TvSeries> favList = List.empty(growable: true);
for (var item in sp.data as List) {
var tv = TvSeries.fromJson(item);
favList.add(tv);
}
return favList;
});
class TvSeries {
int? id;
int? tmdbId;
String? name;
String? originalName;
String? overview;
String? path;
String? posterPath;
TvSeries(
{this.id,
this.tmdbId,
this.name,
this.originalName,
this.overview,
this.path,
this.posterPath});
TvSeries.fromJson(Map<String, dynamic> json) {
id = json['id'];
tmdbId = json['tmdb_id'];
name = json['name'];
originalName = json['original_name'];
overview = json['overview'];
path = json['path'];
posterPath = json["poster_path"];
}
}
var tmdbApiSettingProvider = FutureProvider(
(ref) async {
final dio = Dio();
var resp = await dio
.get(APIs.settingsUrl, queryParameters: {"key": APIs.tmdbApiKey});
var rrr = resp.data as Map<String, dynamic>;
var data = rrr["data"] as Map<String, dynamic>;
var key = data[APIs.tmdbApiKey] as String;
return key;
},
);