mod: check future builder data

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2024-12-15 17:06:40 +08:00
parent 4aadc9b050
commit 726fd0b338
6 changed files with 61 additions and 0 deletions

View File

@@ -1,6 +1,7 @@
import 'dart:async'; import 'dart:async';
import 'dart:io'; import 'dart:io';
import 'package:PiliPalaX/common/widgets/http_error.dart';
import 'package:PiliPalaX/http/msg.dart'; import 'package:PiliPalaX/http/msg.dart';
import 'package:PiliPalaX/models/common/dynamics_type.dart'; import 'package:PiliPalaX/models/common/dynamics_type.dart';
import 'package:PiliPalaX/models/common/up_panel_position.dart'; import 'package:PiliPalaX/models/common/up_panel_position.dart';
@@ -138,6 +139,16 @@ class _DynamicsPageState extends State<DynamicsPage>
if (snapshot.data == null) { if (snapshot.data == null) {
return nil; return nil;
} }
// TODO: refactor
if (snapshot.data is! Map) {
return HttpError(
isSliver: false,
callback: () => setState(() {
_futureBuilderFutureUp =
_dynamicsController.queryFollowUp();
}),
);
}
Map data = snapshot.data; Map data = snapshot.data;
if (data['status']) { if (data['status']) {
return Obx(() => UpPanel(_dynamicsController.upData.value, return Obx(() => UpPanel(_dynamicsController.upData.value,

View File

@@ -77,6 +77,15 @@ class _MemberArchivePageState extends State<MemberArchivePage> {
builder: (BuildContext context, snapshot) { builder: (BuildContext context, snapshot) {
if (snapshot.connectionState == ConnectionState.done) { if (snapshot.connectionState == ConnectionState.done) {
if (snapshot.data != null) { 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; Map data = snapshot.data as Map;
List list = _memberArchivesController.archivesList; List list = _memberArchivesController.archivesList;
if (data['status']) { if (data['status']) {

View File

@@ -1,3 +1,4 @@
import 'package:PiliPalaX/common/widgets/http_error.dart';
import 'package:easy_debounce/easy_throttle.dart'; import 'package:easy_debounce/easy_throttle.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
@@ -59,6 +60,16 @@ class _MemberSeasonsPageState extends State<MemberSeasonsPage> {
builder: (context, snapshot) { builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.done) { if (snapshot.connectionState == ConnectionState.done) {
if (snapshot.data != null) { 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; Map data = snapshot.data as Map;
List list = _memberSeasonsController.seasonsList; List list = _memberSeasonsController.seasonsList;
if (data['status']) { if (data['status']) {

View File

@@ -92,6 +92,16 @@ class _FavPanelState extends State<FavPanel> {
future: _futureBuilderFuture, future: _futureBuilderFuture,
builder: (BuildContext context, AsyncSnapshot snapshot) { builder: (BuildContext context, AsyncSnapshot snapshot) {
if (snapshot.connectionState == ConnectionState.done) { 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; Map data = snapshot.data as Map;
if (data['status']) { if (data['status']) {
return Obx( return Obx(

View File

@@ -102,6 +102,15 @@ class _GroupPanelState extends State<GroupPanel> {
future: _futureBuilderFuture, future: _futureBuilderFuture,
builder: (BuildContext context, AsyncSnapshot snapshot) { builder: (BuildContext context, AsyncSnapshot snapshot) {
if (snapshot.connectionState == ConnectionState.done) { 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; Map data = snapshot.data as Map;
if (data['status']) { if (data['status']) {
return ListView.builder( return ListView.builder(

View File

@@ -1,3 +1,4 @@
import 'package:PiliPalaX/common/widgets/http_error.dart';
import 'package:PiliPalaX/common/widgets/refresh_indicator.dart'; import 'package:PiliPalaX/common/widgets/refresh_indicator.dart';
import 'package:easy_debounce/easy_throttle.dart'; import 'package:easy_debounce/easy_throttle.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@@ -150,6 +151,16 @@ class _WhisperPageState extends State<WhisperPage> {
builder: (context, snapshot) { builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.done && if (snapshot.connectionState == ConnectionState.done &&
snapshot.data != null) { 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; Map data = snapshot.data as Map;
if (data['status']) { if (data['status']) {
List sessionList = _whisperController.sessionList; List sessionList = _whisperController.sessionList;