Skip to content

Commit

Permalink
增加 riverpod 新示例
Browse files Browse the repository at this point in the history
  • Loading branch information
CarGuo committed Feb 27, 2025
1 parent 428e3ef commit dbba6e2
Show file tree
Hide file tree
Showing 13 changed files with 333 additions and 158 deletions.
1 change: 0 additions & 1 deletion lib/common/utils/common_utils.dart
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ import 'package:gsy_github_app_flutter/page/issue/issue_edit_dIalog.dart';
import 'package:flutter_spinkit/flutter_spinkit.dart';
import 'package:path_provider/path_provider.dart';
import 'package:permission_handler/permission_handler.dart';
import 'package:redux/redux.dart';
import 'package:url_launcher/url_launcher.dart';

/// 通用逻辑
Expand Down
2 changes: 1 addition & 1 deletion lib/page/debug/debug_data_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@ import 'package:flutter/services.dart';
import 'package:fluttertoast/fluttertoast.dart';
import 'package:gsy_github_app_flutter/common/net/interceptors/log_interceptor.dart';
import 'package:gsy_github_app_flutter/common/style/gsy_style.dart';
import 'package:gsy_github_app_flutter/page/error_page.dart';
import 'package:gsy_github_app_flutter/test/demo_tab_page.dart';
import 'package:gsy_github_app_flutter/widget/flutter_json_widget.dart';

import '../error_page.dart';

///请求数据调
class DebugDataPage extends StatefulWidget {
Expand Down
56 changes: 34 additions & 22 deletions lib/page/my_page.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
import 'package:flutter/material.dart';
import 'package:flutter_redux/flutter_redux.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:gsy_github_app_flutter/common/repositories/event_repository.dart';
import 'package:gsy_github_app_flutter/common/repositories/user_repository.dart';
import 'package:gsy_github_app_flutter/page/user/base_person_provider.dart';
import 'package:gsy_github_app_flutter/provider/app_state_provider.dart';
import 'package:gsy_github_app_flutter/redux/gsy_state.dart';
import 'package:gsy_github_app_flutter/redux/user_redux.dart';
import 'package:gsy_github_app_flutter/common/style/gsy_style.dart';
Expand All @@ -14,6 +17,7 @@ import 'package:redux/redux.dart';
/// Date: 2018-07-16
class MyPage extends StatefulWidget {
const MyPage({super.key});

@override
MyPageState createState() => MyPageState();
}
Expand Down Expand Up @@ -114,7 +118,7 @@ class MyPageState extends BasePersonState<MyPage> {
getUserOrg(_getUserName());

///获取用户仓库前100个star统计数据
getHonor(_getUserName());
getHonor(globalContainer, _getUserName());
_refreshNotify();
}
return await _getDataLogic();
Expand Down Expand Up @@ -142,27 +146,35 @@ class MyPageState extends BasePersonState<MyPage> {
@override
Widget build(BuildContext context) {
super.build(context); // See AutomaticKeepAliveClientMixin.
return StoreBuilder<GSYState>(
builder: (context, store) {
return GSYNestedPullLoadWidget(
pullLoadWidgetControl,
(BuildContext context, int index) => renderItem(
index, store.state.userInfo!, beStaredCount, notifyColor, () {
_refreshNotify();
}, orgList),
handleRefresh,
onLoadMore,
scrollController: scrollController,
refreshKey: refreshIKey,
headerSliverBuilder: (context, innerBoxIsScrolled) {
return sliverBuilder(
context, innerBoxIsScrolled, store.state.userInfo!, notifyColor, beStaredCount,
() {
return Consumer(
builder: (BuildContext context, WidgetRef ref, Widget? child) {
var result = ref.watch(fetchHonorDataProvider(_getUserName()));
return StoreBuilder<GSYState>(
builder: (context, store) {
return GSYNestedPullLoadWidget(
pullLoadWidgetControl,
(BuildContext context, int index) => renderItem(
index, store.state.userInfo!, beStaredCount, notifyColor, () {
_refreshNotify();
});
},
);
},
);
}, orgList),
handleRefresh,
onLoadMore,
scrollController: scrollController,
refreshKey: refreshIKey,
headerSliverBuilder: (context, innerBoxIsScrolled) {
return sliverBuilder(
context,
innerBoxIsScrolled,
store.state.userInfo!,
notifyColor,
beStaredCount,
result.value, () {
_refreshNotify();
});
},
);
},
);
});
}
}
2 changes: 0 additions & 2 deletions lib/page/trend/trend_page.dart
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
import 'dart:async';

import 'package:animations/animations.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:gsy_github_app_flutter/db/provider/repos/trend_repository_db_provider.dart';
import 'package:gsy_github_app_flutter/page/repos/repository_detail_page.dart';
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
Expand Down
1 change: 0 additions & 1 deletion lib/page/trend/trend_user_provider.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:gsy_github_app_flutter/common/repositories/user_repository.dart';
import 'package:gsy_github_app_flutter/model/SearchUserQL.dart';
Expand Down
2 changes: 1 addition & 1 deletion lib/page/trend/trend_user_provider.g.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

25 changes: 25 additions & 0 deletions lib/page/user/base_person_provider.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:gsy_github_app_flutter/common/repositories/repos_repository.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';

part 'base_person_provider.g.dart';


@riverpod
Future<HonorModel?> fetchHonorData(Ref ref, String userName) async {
var res = await ReposRepository.getUserRepository100StatusRequest(userName);
if (res != null && res.result) {
return HonorModel.fromJson(res.data);
}
return null;
}

class HonorModel {
int? beStaredCount;
List? honorList;

HonorModel.fromJson(Map<String, dynamic> map) {
beStaredCount = map["stared"];
honorList = map["list"];
}
}
161 changes: 161 additions & 0 deletions lib/page/user/base_person_provider.g.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit dbba6e2

Please sign in to comment.