Skip to content
代码片段 群组 项目
提交 2c86df5e 编辑于 作者: Neil Wang's avatar Neil Wang
浏览文件

bugfix: #714 星标列表和子组列表数据显示异常

上级 f3b6d9fc
分支
未找到相关标签
无相关合并请求
import 'package:flutter/material.dart';
import 'package:jihu_gitlab_app/core/load_state.dart';
import 'package:jihu_gitlab_app/core/connection_provider/connection_provider.dart';
import 'package:jihu_gitlab_app/core/load_state.dart';
import 'package:jihu_gitlab_app/core/widgets/selector/data_provider.dart';
import 'package:jihu_gitlab_app/modules/projects/group_and_project.dart';
......@@ -8,24 +8,21 @@ import 'projects_starred_provider.dart';
class ProjectsStarredModel {
LoadState _loadState = LoadState.noItemState;
late ValueNotifier<List<GroupAndProject>> _notifier;
late final ValueNotifier<List<GroupAndProject>> _notifier = ValueNotifier(_data);
DataProvider<GroupAndProject>? _dataProvider;
final List<GroupAndProject> _data = [];
config() {
if (ConnectionProvider.connection == null) return;
_dataProvider ??= ProjectsStarredProvider(userId: ConnectionProvider.connectionId!);
_notifier = ValueNotifier(_data);
_dataProvider?.syncFromRemote().then((value) {
if (value) {
loadLocalDataAndNotify();
}
});
ConnectionProvider().addListener(() {
if (ConnectionProvider.connection == null) return;
if (ConnectionProvider.connection == null) {
clear();
return;
}
_dataProvider = ProjectsStarredProvider(userId: ConnectionProvider.connectionId!);
loadData();
});
if (ConnectionProvider.connection == null) return;
_dataProvider ??= ProjectsStarredProvider(userId: ConnectionProvider.connectionId!);
}
Future<void> loadData() async {
......@@ -37,11 +34,6 @@ class ProjectsStarredModel {
});
}
void refresh() {
config();
loadLocalDataAndNotify();
}
void loadLocalDataAndNotify() {
_dataProvider!.loadFromLocal().then((value) {
_data.clear();
......
......@@ -25,6 +25,7 @@ class _ProjectsStarredPageState extends State<ProjectsStarredPage> {
void initState() {
super.initState();
_model.config();
if (ConnectionProvider.connection != null) _model.loadData();
}
@override
......@@ -32,11 +33,7 @@ class _ProjectsStarredPageState extends State<ProjectsStarredPage> {
return SafeArea(
child: Consumer<ConnectionProvider>(builder: (context, _, child) {
if (!ConnectionProvider.authorized) {
_model.clear();
return const DefaultStarredPage();
} else if (_model.loadState == LoadState.noItemState) {
_model.config();
_model.loadData();
}
return Padding(padding: const EdgeInsets.only(left: 16, right: 16, bottom: 16, top: 0), child: _starredListView());
}),
......
......@@ -31,7 +31,6 @@ class _StarredTabState extends State<StarredTab> {
Widget build(BuildContext context) {
return Consumer<StarsProvider>(builder: (context, _, child) {
return Consumer<ConnectionProvider>(builder: (context, _, child) {
if (ConnectionProvider.authorized) _model.refresh();
return Column(crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.max, children: [
const Divider(),
_buildTitleView(),
......
......@@ -581,14 +581,6 @@ packages:
url: "https://pub.flutter-io.cn"
source: hosted
version: "6.5.4"
linked_scroll_controller:
dependency: "direct main"
description:
name: linked_scroll_controller
sha256: e6020062bcf4ffc907ee7fd090fa971e65d8dfaac3c62baf601a3ced0b37986a
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.2.0"
linkify:
dependency: "direct main"
description:
......
0% 加载中 .
You are about to add 0 people to the discussion. Proceed with caution.
想要评论请 注册