mirror of
https://github.com/HChaZZY/PiliPlus.git
synced 2025-12-06 09:13:48 +08:00
@@ -163,26 +163,34 @@ abstract class CommonDynPageState<T extends CommonDynPage> extends State<T>
|
||||
EasyThrottle.throttle('replyReply', const Duration(milliseconds: 500), () {
|
||||
int oid = replyItem.oid.toInt();
|
||||
int rpid = replyItem.id.toInt();
|
||||
Widget replyReplyPage({bool showBackBtn = true}) => Scaffold(
|
||||
resizeToAvoidBottomInset: false,
|
||||
appBar: AppBar(
|
||||
toolbarHeight: showBackBtn ? null : 45,
|
||||
title: const Text('评论详情'),
|
||||
titleSpacing: showBackBtn ? null : 12,
|
||||
automaticallyImplyLeading: showBackBtn,
|
||||
actions: showBackBtn
|
||||
? null
|
||||
: [
|
||||
IconButton(
|
||||
tooltip: '关闭',
|
||||
icon: const Icon(Icons.close, size: 20),
|
||||
onPressed: Get.back,
|
||||
),
|
||||
],
|
||||
),
|
||||
body: Padding(
|
||||
padding: EdgeInsets.only(right: padding.right),
|
||||
child: VideoReplyReplyPanel(
|
||||
Widget replyReplyPage({bool showBackBtn = true}) => Padding(
|
||||
padding: EdgeInsets.only(right: padding.right),
|
||||
child: Scaffold(
|
||||
resizeToAvoidBottomInset: false,
|
||||
appBar: AppBar(
|
||||
primary: showBackBtn,
|
||||
toolbarHeight: showBackBtn ? null : 45,
|
||||
title: const Text('评论详情'),
|
||||
titleSpacing: showBackBtn ? null : 12,
|
||||
automaticallyImplyLeading: showBackBtn,
|
||||
actions: showBackBtn
|
||||
? null
|
||||
: [
|
||||
IconButton(
|
||||
tooltip: '关闭',
|
||||
icon: const Icon(Icons.close, size: 20),
|
||||
onPressed: Get.back,
|
||||
),
|
||||
],
|
||||
shape: Border(
|
||||
bottom: BorderSide(
|
||||
color: Theme.of(
|
||||
context,
|
||||
).colorScheme.outline.withValues(alpha: 0.1),
|
||||
),
|
||||
),
|
||||
),
|
||||
body: VideoReplyReplyPanel(
|
||||
enableSlide: false,
|
||||
id: id,
|
||||
oid: oid,
|
||||
@@ -205,11 +213,7 @@ abstract class CommonDynPageState<T extends CommonDynPage> extends State<T>
|
||||
controller.hideFab();
|
||||
scaffoldState.showBottomSheet(
|
||||
backgroundColor: Colors.transparent,
|
||||
(context) => MediaQuery.removePadding(
|
||||
context: context,
|
||||
removeLeft: true,
|
||||
child: replyReplyPage(showBackBtn: false),
|
||||
),
|
||||
(context) => replyReplyPage(showBackBtn: false),
|
||||
);
|
||||
} else {
|
||||
Get.to(
|
||||
|
||||
@@ -332,9 +332,10 @@ class UserInfoCard extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(height: 5),
|
||||
Row(
|
||||
spacing: 10,
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
if (!isOwner) ...[
|
||||
if (!isOwner)
|
||||
IconButton.outlined(
|
||||
onPressed: () {
|
||||
if (Accounts.main.isLogin) {
|
||||
@@ -362,8 +363,6 @@ class UserInfoCard extends StatelessWidget {
|
||||
visualDensity: VisualDensity.compact,
|
||||
),
|
||||
),
|
||||
const SizedBox(width: 10),
|
||||
],
|
||||
Expanded(
|
||||
child: FilledButton.tonal(
|
||||
onPressed: onFollow,
|
||||
|
||||
@@ -71,10 +71,8 @@ class _PgcReviewPostPanelState extends State<PgcReviewPostPanel> {
|
||||
),
|
||||
const SizedBox(width: 12),
|
||||
],
|
||||
bottom: PreferredSize(
|
||||
preferredSize: const Size.fromHeight(1),
|
||||
child: Divider(
|
||||
height: 1,
|
||||
shape: Border(
|
||||
bottom: BorderSide(
|
||||
color: theme.colorScheme.outline.withValues(alpha: 0.1),
|
||||
),
|
||||
),
|
||||
|
||||
@@ -95,11 +95,9 @@ class _SearchTrendingPageState extends State<SearchTrendingPage> {
|
||||
statusBarBrightness: Brightness.dark,
|
||||
statusBarIconBrightness: Brightness.light,
|
||||
),
|
||||
bottom: scrollRatio == 1
|
||||
? PreferredSize(
|
||||
preferredSize: const Size.fromHeight(1),
|
||||
child: Divider(
|
||||
height: 1,
|
||||
shape: scrollRatio == 1
|
||||
? Border(
|
||||
bottom: BorderSide(
|
||||
color: theme.colorScheme.outline.withValues(
|
||||
alpha: 0.1,
|
||||
),
|
||||
|
||||
@@ -72,6 +72,7 @@ class _MediaListPanelState
|
||||
child: Column(
|
||||
children: [
|
||||
AppBar(
|
||||
primary: false,
|
||||
toolbarHeight: 45,
|
||||
automaticallyImplyLeading: false,
|
||||
titleSpacing: 16,
|
||||
@@ -95,10 +96,11 @@ class _MediaListPanelState
|
||||
),
|
||||
const SizedBox(width: 14),
|
||||
],
|
||||
),
|
||||
Divider(
|
||||
height: 1,
|
||||
color: theme.colorScheme.outline.withValues(alpha: 0.1),
|
||||
shape: Border(
|
||||
bottom: BorderSide(
|
||||
color: theme.colorScheme.outline.withValues(alpha: 0.1),
|
||||
),
|
||||
),
|
||||
),
|
||||
Expanded(
|
||||
child: enableSlide ? slideList(theme) : buildList(theme),
|
||||
|
||||
@@ -60,6 +60,7 @@ class _NoteListPageState extends CommonSlidePageState<NoteListPage> {
|
||||
SizedBox(
|
||||
height: 45,
|
||||
child: AppBar(
|
||||
primary: false,
|
||||
automaticallyImplyLeading: false,
|
||||
titleSpacing: 16,
|
||||
toolbarHeight: 45,
|
||||
@@ -68,10 +69,8 @@ class _NoteListPageState extends CommonSlidePageState<NoteListPage> {
|
||||
final count = _controller.count.value;
|
||||
return Text('笔记${count == -1 ? '' : '($count)'}');
|
||||
}),
|
||||
bottom: PreferredSize(
|
||||
preferredSize: const Size.fromHeight(1),
|
||||
child: Divider(
|
||||
height: 1,
|
||||
shape: Border(
|
||||
bottom: BorderSide(
|
||||
color: theme.colorScheme.outline.withValues(alpha: 0.1),
|
||||
),
|
||||
),
|
||||
|
||||
@@ -64,11 +64,14 @@ class _PostPanelState extends CommonCollapseSlidePageState<PostPanel> {
|
||||
return Scaffold(
|
||||
resizeToAvoidBottomInset: false,
|
||||
appBar: AppBar(
|
||||
primary: false,
|
||||
toolbarHeight: 45,
|
||||
automaticallyImplyLeading: false,
|
||||
titleSpacing: 16,
|
||||
title: const Text('提交片段'),
|
||||
actions: [
|
||||
iconButton(
|
||||
size: 32,
|
||||
context: context,
|
||||
tooltip: '添加片段',
|
||||
onPressed: () {
|
||||
@@ -90,6 +93,7 @@ class _PostPanelState extends CommonCollapseSlidePageState<PostPanel> {
|
||||
),
|
||||
const SizedBox(width: 10),
|
||||
iconButton(
|
||||
size: 32,
|
||||
context: context,
|
||||
tooltip: '关闭',
|
||||
onPressed: Get.back,
|
||||
|
||||
@@ -101,13 +101,14 @@ class _VideoReplyReplyPanelState
|
||||
|
||||
@override
|
||||
Widget buildPage(ThemeData theme) {
|
||||
Widget child() => enableSlide ? slideList(theme) : buildList(theme);
|
||||
return Scaffold(
|
||||
key: _key,
|
||||
resizeToAvoidBottomInset: false,
|
||||
body: Column(
|
||||
children: [
|
||||
widget.isVideoDetail
|
||||
? Container(
|
||||
body: widget.isVideoDetail
|
||||
? Column(
|
||||
children: [
|
||||
Container(
|
||||
height: 45,
|
||||
decoration: BoxDecoration(
|
||||
border: Border(
|
||||
@@ -129,14 +130,11 @@ class _VideoReplyReplyPanelState
|
||||
),
|
||||
],
|
||||
),
|
||||
)
|
||||
: Divider(
|
||||
height: 1,
|
||||
color: theme.dividerColor.withValues(alpha: 0.1),
|
||||
),
|
||||
Expanded(child: enableSlide ? slideList(theme) : buildList(theme)),
|
||||
],
|
||||
),
|
||||
Expanded(child: child()),
|
||||
],
|
||||
)
|
||||
: child(),
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -45,6 +45,7 @@ class _ViewPointsPageState
|
||||
return Scaffold(
|
||||
resizeToAvoidBottomInset: false,
|
||||
appBar: AppBar(
|
||||
primary: false,
|
||||
automaticallyImplyLeading: false,
|
||||
titleSpacing: 16,
|
||||
title: const Text('分段信息'),
|
||||
@@ -82,11 +83,9 @@ class _ViewPointsPageState
|
||||
),
|
||||
const SizedBox(width: 16),
|
||||
],
|
||||
bottom: PreferredSize(
|
||||
preferredSize: const Size.fromHeight(1),
|
||||
child: Divider(
|
||||
height: 1,
|
||||
color: theme.dividerColor.withValues(alpha: 0.1),
|
||||
shape: Border(
|
||||
bottom: BorderSide(
|
||||
color: theme.colorScheme.outline.withValues(alpha: 0.1),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user