Skip to content

Commit

Permalink
调整 riverpod 细节
Browse files Browse the repository at this point in the history
  • Loading branch information
CarGuo committed Mar 1, 2025
1 parent eb55432 commit f0de6d0
Show file tree
Hide file tree
Showing 9 changed files with 192 additions and 115 deletions.
6 changes: 6 additions & 0 deletions android/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -60,5 +60,11 @@
<meta-data
android:name="io.flutter.embedded_views_preview"
android:value="true" />
<meta-data
android:name="io.flutter.embedding.android.DisableMergedPlatformUIThread"
android:value="true" />
<meta-data
android:name="io.flutter.embedding.android.EnableImpeller"
android:value="false" />
</application>
</manifest>
58 changes: 26 additions & 32 deletions lib/page/my_page.dart
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
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 Down Expand Up @@ -118,7 +116,7 @@ class MyPageState extends BasePersonState<MyPage> {
getUserOrg(_getUserName());

///获取用户仓库前100个star统计数据
getHonor(globalContainer, _getUserName());
getHonor();
_refreshNotify();
}
return await _getDataLogic();
Expand All @@ -135,6 +133,11 @@ class MyPageState extends BasePersonState<MyPage> {
@override
bool get needHeader => false;

@override
FetchHonorDataProvider get headerProvider {
return fetchHonorDataProvider(_getUserName());
}

@override
void didChangeDependencies() {
if (pullLoadWidgetControl.dataList.isEmpty) {
Expand All @@ -146,35 +149,26 @@ class MyPageState extends BasePersonState<MyPage> {
@override
Widget build(BuildContext context) {
super.build(context); // See AutomaticKeepAliveClientMixin.
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, () {
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, () {
_refreshNotify();
}, orgList),
handleRefresh,
onLoadMore,
scrollController: scrollController,
refreshKey: refreshIKey,
headerSliverBuilder: (context, innerBoxIsScrolled) {
return sliverBuilder(
context,
innerBoxIsScrolled,
store.state.userInfo!,
notifyColor,
beStaredCount,
result.value, () {
_refreshNotify();
});
},
);
},
);
});
});
},
);
},
);
}
}
11 changes: 3 additions & 8 deletions lib/page/trend/trend_user_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -24,17 +24,12 @@ class _TrendUserPageState extends ConsumerState<TrendUserPage> {
}

Future<void> loadData(WidgetRef ref, {bool isRefresh = false}) async {
/// getTrendUserProvider 这里只有一处地方使用,所以不需要做局部单实例共享
final result = await ref.read(
searchTrendUserRequestProvider("China", cursor: endCursor).future);
searchTrendUserRequestProvider("China", isRefresh, cursor: endCursor)
.future);
if (result != null) {
var (dataList, cursor) = result;
var trendRef = ref.read(trendCNUserListProvider.notifier);
if (isRefresh) {
trendRef.setList(dataList);
} else {
trendRef.addList(dataList);
}
var _ = ref.refresh(trendCNUserListProvider.notifier);
endCursor = cursor;
}
}
Expand Down
15 changes: 13 additions & 2 deletions lib/page/trend/trend_user_provider.dart
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,20 @@ class TrendCNUserList extends _$TrendCNUserList {

@riverpod
Future<(List<SearchUserQL>, String)?> searchTrendUserRequest(
Ref ref, String location,
Ref ref, String location, bool isRefresh,
{String? cursor}) async {
var result =
await UserRepository.searchTrendUserRequest("China", cursor: cursor);
return result.data;
if (result.data != null) {
var value = result.data;
var trendRef = ref.read(trendCNUserListProvider.notifier);
if (isRefresh) {
trendRef.setList(value.$1);
} else {
trendRef.addList(value.$1);
}
var _ = ref.refresh(trendCNUserListProvider.notifier);
return result.value;
}
return null;
}
22 changes: 19 additions & 3 deletions 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.

19 changes: 10 additions & 9 deletions lib/page/user/base_person_state.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,16 @@ import 'dart:async';

import 'package:flutter/material.dart';
import 'package:flutter/rendering.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/Event.dart';
import 'package:gsy_github_app_flutter/model/User.dart';
import 'package:gsy_github_app_flutter/model/UserOrg.dart';
import 'package:gsy_github_app_flutter/common/utils/event_utils.dart';
import 'package:gsy_github_app_flutter/common/utils/navigator_utils.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/widget/gsy_event_item.dart';
import 'package:gsy_github_app_flutter/widget/only_share_widget.dart';
import 'package:gsy_github_app_flutter/widget/pull/nested/gsy_sliver_header_delegate.dart';
import 'package:gsy_github_app_flutter/widget/pull/nested/nested_refresh.dart';
import 'package:gsy_github_app_flutter/widget/state/gsy_list_state.dart';
Expand Down Expand Up @@ -67,6 +68,9 @@ abstract class BasePersonState<T extends StatefulWidget> extends State<T>
@override
bool get needHeader => true;

@protected
FetchHonorDataProvider get headerProvider;

@protected
getUserOrg(String? userName) {
if (page <= 1 && userName != null) {
Expand Down Expand Up @@ -98,7 +102,6 @@ abstract class BasePersonState<T extends StatefulWidget> extends State<T>
User userInfo,
Color? notifyColor,
String beStaredCount,
HonorModel? honorModel,
refreshCallBack) {
double headerSize = 210;
double bottomSize = 70;
Expand Down Expand Up @@ -152,10 +155,9 @@ abstract class BasePersonState<T extends StatefulWidget> extends State<T>
return SizedBox.expand(
child: Padding(
padding: const EdgeInsets.only(bottom: 10, left: 0, right: 0),
child: UserHeaderBottom(
userInfo,
honorModel,
radius,
child: OnlyShareInstanceWidget(
value: headerProvider,
child: UserHeaderBottom(userInfo, radius),
),
),
);
Expand Down Expand Up @@ -187,8 +189,7 @@ abstract class BasePersonState<T extends StatefulWidget> extends State<T>
}

///获取用户仓库前100个star统计数据
getHonor(ProviderContainer ref, String name) async {
var _ = ref.refresh(fetchHonorDataProvider(name));
await ref.read(fetchHonorDataProvider(name).future);
getHonor() async {
var _ = globalContainer.refresh(headerProvider);
}
}
Loading

0 comments on commit f0de6d0

Please sign in to comment.