| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- import 'package:flutter_riverpod/flutter_riverpod.dart';
- import 'package:news_app/http/http_util.dart';
- import 'package:news_app/http/model_parser.dart';
- import 'package:news_app/model/activity_banner_model.dart';
- import '../constant/api_const.dart';
- import '../model/activity_model.dart';
- class ActivityProvider extends Notifier<ActivityData> {
- @override
- ActivityData build() {
- return ActivityData();
- }
- Future<void> fetchActivityBanner() async {
- var jsonData = await HttpUtil().get(
- apiBannerList,
- queryParameters: {"type": "activity"},
- );
- final newList = ModelParser.parseList<ActivityBannerModel>(
- jsonData,
- ActivityBannerModel.fromJson,
- );
- state = state.copyWith(activityBannerList: newList);
- }
- Future<void> fetchActivityList({required int page}) async {
- var jsonData = await HttpUtil().get(
- apiActivityList,
- queryParameters: {"ps": 10, "pn": page},
- );
- final response = ModelParser.parseObject<ActivityModel>(
- jsonData,
- ActivityModel.fromJson,
- );
- final oldRecords = state.activityList?.records ?? [];
- state = state.copyWith(
- activityList: response.copyWith(
- total: response.total,
- size: response.size,
- current: response.current,
- pages: response.pages,
- records:
- page == 1
- ? response.records
- : [...oldRecords, ...?response.records],
- ),
- );
- }
- }
- class ActivityData {
- final List<ActivityBannerModel> activityBannerList;
- //final ActivityModel? activityVideoList;
- final ActivityModel? activityList;
- ActivityData({
- this.activityBannerList = const [],
- // this.activityVideoList,
- this.activityList,
- });
- ActivityData copyWith({
- List<ActivityBannerModel>? activityBannerList,
- ActivityModel? activityVideoList,
- ActivityModel? activityList,
- }) {
- return ActivityData(
- activityBannerList: activityBannerList ?? this.activityBannerList,
- // activityVideoList: activityVideoList ?? this.activityVideoList,
- activityList: activityList ?? this.activityList,
- );
- }
- }
|