mirror of
https://github.com/HChaZZY/PiliPlus.git
synced 2025-12-06 09:13:48 +08:00
opt: reply error widget
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
import 'package:PiliPlus/common/widgets/http_error.dart';
|
import 'package:PiliPlus/common/widgets/http_error.dart';
|
||||||
|
import 'package:PiliPlus/utils/global_data.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
Widget get loadingWidget => Center(child: CircularProgressIndicator());
|
Widget get loadingWidget => Center(child: CircularProgressIndicator());
|
||||||
@@ -17,3 +18,19 @@ Widget scrollErrorWidget({errMsg, callback}) => CustomScrollView(
|
|||||||
)
|
)
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
|
|
||||||
|
Widget grpcReplyErrorWidget(context, onReload) => FilledButton.tonal(
|
||||||
|
onPressed: () {
|
||||||
|
GlobalData().grpcReply = false;
|
||||||
|
onReload();
|
||||||
|
},
|
||||||
|
style: ButtonStyle(
|
||||||
|
backgroundColor: WidgetStateProperty.resolveWith((states) {
|
||||||
|
return Theme.of(context).colorScheme.primary.withAlpha(20);
|
||||||
|
}),
|
||||||
|
),
|
||||||
|
child: Text(
|
||||||
|
'暂时关闭gRPC加载评论',
|
||||||
|
style: TextStyle(color: Theme.of(context).colorScheme.primary),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import 'dart:math';
|
|||||||
|
|
||||||
import 'package:PiliPlus/common/widgets/custom_sliver_persistent_header_delegate.dart';
|
import 'package:PiliPlus/common/widgets/custom_sliver_persistent_header_delegate.dart';
|
||||||
import 'package:PiliPlus/common/widgets/interactiveviewer_gallery/interactiveviewer_gallery.dart';
|
import 'package:PiliPlus/common/widgets/interactiveviewer_gallery/interactiveviewer_gallery.dart';
|
||||||
|
import 'package:PiliPlus/common/widgets/loading_widget.dart';
|
||||||
import 'package:PiliPlus/common/widgets/refresh_indicator.dart';
|
import 'package:PiliPlus/common/widgets/refresh_indicator.dart';
|
||||||
import 'package:PiliPlus/http/loading_state.dart';
|
import 'package:PiliPlus/http/loading_state.dart';
|
||||||
import 'package:PiliPlus/pages/video/detail/reply/widgets/reply_item.dart';
|
import 'package:PiliPlus/pages/video/detail/reply/widgets/reply_item.dart';
|
||||||
@@ -556,26 +557,9 @@ class _DynamicDetailPageState extends State<DynamicDetailPage>
|
|||||||
Error() => HttpError(
|
Error() => HttpError(
|
||||||
errMsg: loadingState.errMsg,
|
errMsg: loadingState.errMsg,
|
||||||
callback: _dynamicDetailController.onReload,
|
callback: _dynamicDetailController.onReload,
|
||||||
extraWidget: GlobalData().grpcReply
|
extraWidget: loadingState.errMsg.startsWith('gRPC Error') &&
|
||||||
? FilledButton.tonal(
|
GlobalData().grpcReply
|
||||||
onPressed: () {
|
? grpcReplyErrorWidget(context, _dynamicDetailController.onReload)
|
||||||
GlobalData().grpcReply = false;
|
|
||||||
_dynamicDetailController.onReload();
|
|
||||||
},
|
|
||||||
style: ButtonStyle(
|
|
||||||
backgroundColor: WidgetStateProperty.resolveWith((states) {
|
|
||||||
return Theme.of(context)
|
|
||||||
.colorScheme
|
|
||||||
.primary
|
|
||||||
.withAlpha(20);
|
|
||||||
}),
|
|
||||||
),
|
|
||||||
child: Text(
|
|
||||||
'暂时关闭gRPC加载评论',
|
|
||||||
style:
|
|
||||||
TextStyle(color: Theme.of(context).colorScheme.primary),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
: null,
|
: null,
|
||||||
),
|
),
|
||||||
LoadingState() => throw UnimplementedError(),
|
LoadingState() => throw UnimplementedError(),
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import 'dart:math';
|
|||||||
import 'package:PiliPlus/common/widgets/article_content.dart';
|
import 'package:PiliPlus/common/widgets/article_content.dart';
|
||||||
import 'package:PiliPlus/common/widgets/http_error.dart';
|
import 'package:PiliPlus/common/widgets/http_error.dart';
|
||||||
import 'package:PiliPlus/common/widgets/interactiveviewer_gallery/interactiveviewer_gallery.dart';
|
import 'package:PiliPlus/common/widgets/interactiveviewer_gallery/interactiveviewer_gallery.dart';
|
||||||
|
import 'package:PiliPlus/common/widgets/loading_widget.dart';
|
||||||
import 'package:PiliPlus/http/loading_state.dart';
|
import 'package:PiliPlus/http/loading_state.dart';
|
||||||
import 'package:PiliPlus/pages/video/detail/reply/widgets/reply_item.dart';
|
import 'package:PiliPlus/pages/video/detail/reply/widgets/reply_item.dart';
|
||||||
import 'package:PiliPlus/pages/video/detail/reply/widgets/reply_item_grpc.dart';
|
import 'package:PiliPlus/pages/video/detail/reply/widgets/reply_item_grpc.dart';
|
||||||
@@ -488,26 +489,9 @@ class _HtmlRenderPageState extends State<HtmlRenderPage>
|
|||||||
Error() => HttpError(
|
Error() => HttpError(
|
||||||
errMsg: loadingState.errMsg,
|
errMsg: loadingState.errMsg,
|
||||||
callback: _htmlRenderCtr.onReload,
|
callback: _htmlRenderCtr.onReload,
|
||||||
extraWidget: GlobalData().grpcReply
|
extraWidget: loadingState.errMsg.startsWith('gRPC Error') &&
|
||||||
? FilledButton.tonal(
|
GlobalData().grpcReply
|
||||||
onPressed: () {
|
? grpcReplyErrorWidget(context, _htmlRenderCtr.onReload)
|
||||||
GlobalData().grpcReply = false;
|
|
||||||
_htmlRenderCtr.onReload();
|
|
||||||
},
|
|
||||||
style: ButtonStyle(
|
|
||||||
backgroundColor: WidgetStateProperty.resolveWith((states) {
|
|
||||||
return Theme.of(context)
|
|
||||||
.colorScheme
|
|
||||||
.primary
|
|
||||||
.withAlpha(20);
|
|
||||||
}),
|
|
||||||
),
|
|
||||||
child: Text(
|
|
||||||
'暂时关闭gRPC加载评论',
|
|
||||||
style:
|
|
||||||
TextStyle(color: Theme.of(context).colorScheme.primary),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
: null,
|
: null,
|
||||||
),
|
),
|
||||||
LoadingState() => throw UnimplementedError(),
|
LoadingState() => throw UnimplementedError(),
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import 'package:PiliPlus/common/widgets/custom_sliver_persistent_header_delegate.dart';
|
import 'package:PiliPlus/common/widgets/custom_sliver_persistent_header_delegate.dart';
|
||||||
|
import 'package:PiliPlus/common/widgets/loading_widget.dart';
|
||||||
import 'package:PiliPlus/common/widgets/refresh_indicator.dart';
|
import 'package:PiliPlus/common/widgets/refresh_indicator.dart';
|
||||||
import 'package:PiliPlus/common/widgets/http_error.dart';
|
import 'package:PiliPlus/common/widgets/http_error.dart';
|
||||||
import 'package:PiliPlus/http/loading_state.dart';
|
import 'package:PiliPlus/http/loading_state.dart';
|
||||||
@@ -299,26 +300,9 @@ class _VideoReplyPanelState extends State<VideoReplyPanel>
|
|||||||
Error() => HttpError(
|
Error() => HttpError(
|
||||||
errMsg: loadingState.errMsg,
|
errMsg: loadingState.errMsg,
|
||||||
callback: _videoReplyController.onReload,
|
callback: _videoReplyController.onReload,
|
||||||
extraWidget: GlobalData().grpcReply
|
extraWidget: loadingState.errMsg.startsWith('gRPC Error') &&
|
||||||
? FilledButton.tonal(
|
GlobalData().grpcReply
|
||||||
onPressed: () {
|
? grpcReplyErrorWidget(context, _videoReplyController.onReload)
|
||||||
GlobalData().grpcReply = false;
|
|
||||||
_videoReplyController.onReload();
|
|
||||||
},
|
|
||||||
style: ButtonStyle(
|
|
||||||
backgroundColor: WidgetStateProperty.resolveWith((states) {
|
|
||||||
return Theme.of(context)
|
|
||||||
.colorScheme
|
|
||||||
.primary
|
|
||||||
.withAlpha(20);
|
|
||||||
}),
|
|
||||||
),
|
|
||||||
child: Text(
|
|
||||||
'暂时关闭gRPC加载评论',
|
|
||||||
style:
|
|
||||||
TextStyle(color: Theme.of(context).colorScheme.primary),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
: null,
|
: null,
|
||||||
),
|
),
|
||||||
LoadingState() => throw UnimplementedError(),
|
LoadingState() => throw UnimplementedError(),
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import 'package:PiliPlus/common/widgets/interactiveviewer_gallery/interactiveviewer_gallery.dart';
|
import 'package:PiliPlus/common/widgets/interactiveviewer_gallery/interactiveviewer_gallery.dart';
|
||||||
|
import 'package:PiliPlus/common/widgets/loading_widget.dart';
|
||||||
import 'package:PiliPlus/common/widgets/refresh_indicator.dart';
|
import 'package:PiliPlus/common/widgets/refresh_indicator.dart';
|
||||||
import 'package:PiliPlus/grpc/app/main/community/reply/v1/reply.pb.dart';
|
import 'package:PiliPlus/grpc/app/main/community/reply/v1/reply.pb.dart';
|
||||||
import 'package:PiliPlus/http/loading_state.dart';
|
import 'package:PiliPlus/http/loading_state.dart';
|
||||||
@@ -418,26 +419,11 @@ class _VideoReplyReplyPanelState extends State<VideoReplyReplyPanel> {
|
|||||||
HttpError(
|
HttpError(
|
||||||
errMsg: loadingState.errMsg,
|
errMsg: loadingState.errMsg,
|
||||||
callback: _videoReplyReplyController.onReload,
|
callback: _videoReplyReplyController.onReload,
|
||||||
extraWidget: GlobalData().grpcReply
|
extraWidget: loadingState.errMsg.startsWith('gRPC Error') &&
|
||||||
? FilledButton.tonal(
|
GlobalData().grpcReply
|
||||||
onPressed: () {
|
? grpcReplyErrorWidget(
|
||||||
GlobalData().grpcReply = false;
|
context,
|
||||||
_videoReplyReplyController.onReload();
|
_videoReplyReplyController.onReload,
|
||||||
},
|
|
||||||
style: ButtonStyle(
|
|
||||||
backgroundColor:
|
|
||||||
WidgetStateProperty.resolveWith((states) {
|
|
||||||
return Theme.of(context)
|
|
||||||
.colorScheme
|
|
||||||
.primary
|
|
||||||
.withAlpha(20);
|
|
||||||
}),
|
|
||||||
),
|
|
||||||
child: Text(
|
|
||||||
'暂时关闭gRPC加载评论',
|
|
||||||
style: TextStyle(
|
|
||||||
color: Theme.of(context).colorScheme.primary),
|
|
||||||
),
|
|
||||||
)
|
)
|
||||||
: null,
|
: null,
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -491,7 +491,7 @@ class Utils {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (data.episodes?.isEmpty == true) {
|
if (data.episodes.isNullOrEmpty) {
|
||||||
SmartDialog.showToast('资源加载失败');
|
SmartDialog.showToast('资源加载失败');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user