From 726fd0b338ad9eeb9d494e9e6e18f38cc31e85ad Mon Sep 17 00:00:00 2001 From: bggRGjQaUbCoE Date: Sun, 15 Dec 2024 17:06:40 +0800 Subject: [PATCH] mod: check future builder data Signed-off-by: bggRGjQaUbCoE --- lib/pages/dynamics/view.dart | 11 +++++++++++ lib/pages/member_archive/view.dart | 9 +++++++++ lib/pages/member_seasons/view.dart | 11 +++++++++++ .../video/detail/introduction/widgets/fav_panel.dart | 10 ++++++++++ .../detail/introduction/widgets/group_panel.dart | 9 +++++++++ lib/pages/whisper/view.dart | 11 +++++++++++ 6 files changed, 61 insertions(+) diff --git a/lib/pages/dynamics/view.dart b/lib/pages/dynamics/view.dart index 10fcabbc..9a9f1238 100644 --- a/lib/pages/dynamics/view.dart +++ b/lib/pages/dynamics/view.dart @@ -1,6 +1,7 @@ import 'dart:async'; import 'dart:io'; +import 'package:PiliPalaX/common/widgets/http_error.dart'; import 'package:PiliPalaX/http/msg.dart'; import 'package:PiliPalaX/models/common/dynamics_type.dart'; import 'package:PiliPalaX/models/common/up_panel_position.dart'; @@ -138,6 +139,16 @@ class _DynamicsPageState extends State if (snapshot.data == null) { return nil; } + // TODO: refactor + if (snapshot.data is! Map) { + return HttpError( + isSliver: false, + callback: () => setState(() { + _futureBuilderFutureUp = + _dynamicsController.queryFollowUp(); + }), + ); + } Map data = snapshot.data; if (data['status']) { return Obx(() => UpPanel(_dynamicsController.upData.value, diff --git a/lib/pages/member_archive/view.dart b/lib/pages/member_archive/view.dart index ad4f4b58..3a62db5b 100644 --- a/lib/pages/member_archive/view.dart +++ b/lib/pages/member_archive/view.dart @@ -77,6 +77,15 @@ class _MemberArchivePageState extends State { builder: (BuildContext context, snapshot) { if (snapshot.connectionState == ConnectionState.done) { if (snapshot.data != null) { + // TODO: refactor + if (snapshot.data is! Map) { + return HttpError( + callback: () => setState(() { + _futureBuilderFuture = _memberArchivesController + .getMemberArchive('init'); + }), + ); + } Map data = snapshot.data as Map; List list = _memberArchivesController.archivesList; if (data['status']) { diff --git a/lib/pages/member_seasons/view.dart b/lib/pages/member_seasons/view.dart index b05bfb6c..82b7c22e 100644 --- a/lib/pages/member_seasons/view.dart +++ b/lib/pages/member_seasons/view.dart @@ -1,3 +1,4 @@ +import 'package:PiliPalaX/common/widgets/http_error.dart'; import 'package:easy_debounce/easy_throttle.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; @@ -59,6 +60,16 @@ class _MemberSeasonsPageState extends State { builder: (context, snapshot) { if (snapshot.connectionState == ConnectionState.done) { if (snapshot.data != null) { + // TODO: refactor + if (snapshot.data is! Map) { + return HttpError( + isSliver: false, + callback: () => setState(() { + _futureBuilderFuture = _memberSeasonsController + .getSeasonDetail('onRefresh'); + }), + ); + } Map data = snapshot.data as Map; List list = _memberSeasonsController.seasonsList; if (data['status']) { diff --git a/lib/pages/video/detail/introduction/widgets/fav_panel.dart b/lib/pages/video/detail/introduction/widgets/fav_panel.dart index 6e8224e6..3450a9b1 100644 --- a/lib/pages/video/detail/introduction/widgets/fav_panel.dart +++ b/lib/pages/video/detail/introduction/widgets/fav_panel.dart @@ -92,6 +92,16 @@ class _FavPanelState extends State { future: _futureBuilderFuture, builder: (BuildContext context, AsyncSnapshot snapshot) { if (snapshot.connectionState == ConnectionState.done) { + // TODO: refactor + if (snapshot.data is! Map) { + return HttpError( + isSliver: false, + callback: () => setState(() { + _futureBuilderFuture = + widget.ctr!.queryVideoInFolder(); + }), + ); + } Map data = snapshot.data as Map; if (data['status']) { return Obx( diff --git a/lib/pages/video/detail/introduction/widgets/group_panel.dart b/lib/pages/video/detail/introduction/widgets/group_panel.dart index 55a213f7..45046c2f 100644 --- a/lib/pages/video/detail/introduction/widgets/group_panel.dart +++ b/lib/pages/video/detail/introduction/widgets/group_panel.dart @@ -102,6 +102,15 @@ class _GroupPanelState extends State { future: _futureBuilderFuture, builder: (BuildContext context, AsyncSnapshot snapshot) { if (snapshot.connectionState == ConnectionState.done) { + // TODO: refactor + if (snapshot.data is! Map) { + return HttpError( + isSliver: false, + callback: () => setState(() { + _futureBuilderFuture = MemberHttp.followUpTags(); + }), + ); + } Map data = snapshot.data as Map; if (data['status']) { return ListView.builder( diff --git a/lib/pages/whisper/view.dart b/lib/pages/whisper/view.dart index 882fd378..103c45c5 100644 --- a/lib/pages/whisper/view.dart +++ b/lib/pages/whisper/view.dart @@ -1,3 +1,4 @@ +import 'package:PiliPalaX/common/widgets/http_error.dart'; import 'package:PiliPalaX/common/widgets/refresh_indicator.dart'; import 'package:easy_debounce/easy_throttle.dart'; import 'package:flutter/material.dart'; @@ -150,6 +151,16 @@ class _WhisperPageState extends State { builder: (context, snapshot) { if (snapshot.connectionState == ConnectionState.done && snapshot.data != null) { + // TODO: refactor + if (snapshot.data is! Map) { + return HttpError( + isSliver: false, + callback: () => setState(() { + _futureBuilderFuture = + _whisperController.querySessionList('init'); + }), + ); + } Map data = snapshot.data as Map; if (data['status']) { List sessionList = _whisperController.sessionList;