mirror of
https://github.com/HChaZZY/PiliPlus.git
synced 2025-12-06 09:13:48 +08:00
opt: save panel
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
@@ -131,7 +131,7 @@ class _SavePanelState extends State<SavePanel> {
|
||||
late final rootId = hasRoot ? _item.root : _item.id;
|
||||
late final anchor = hasRoot ? 'anchor=${_item.id}&' : '';
|
||||
late final enterUri =
|
||||
'bilibili://following/detail/${Get.parameters['id']}';
|
||||
'bilibili://following/detail/${Get.parameters['id'] ?? Get.arguments?['id']}';
|
||||
uri =
|
||||
'bilibili://comment/detail/$type/$oid/$rootId/?${anchor}enterUri=$enterUri';
|
||||
} catch (_) {}
|
||||
@@ -360,20 +360,19 @@ class _SavePanelState extends State<SavePanel> {
|
||||
],
|
||||
),
|
||||
),
|
||||
Row(
|
||||
Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
if (uri.isNotEmpty)
|
||||
Align(
|
||||
alignment: Alignment.centerRight,
|
||||
child: Row(
|
||||
children: [
|
||||
Image.asset(
|
||||
'assets/images/logo/logo_2.png',
|
||||
width: 100,
|
||||
color: Theme.of(context)
|
||||
.colorScheme
|
||||
.onSurfaceVariant,
|
||||
),
|
||||
if (uri.isNotEmpty) ...[
|
||||
Expanded(
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
crossAxisAlignment: CrossAxisAlignment.end,
|
||||
crossAxisAlignment:
|
||||
CrossAxisAlignment.end,
|
||||
children: [
|
||||
if (uname?.isNotEmpty == true) ...[
|
||||
Text(
|
||||
@@ -390,6 +389,7 @@ class _SavePanelState extends State<SavePanel> {
|
||||
],
|
||||
Text(
|
||||
'识别二维码,$viewType$itemType',
|
||||
textAlign: TextAlign.end,
|
||||
style: TextStyle(
|
||||
color: Theme.of(context)
|
||||
.colorScheme
|
||||
@@ -402,6 +402,7 @@ class _SavePanelState extends State<SavePanel> {
|
||||
.toString()
|
||||
.split('.')
|
||||
.first,
|
||||
textAlign: TextAlign.end,
|
||||
style: TextStyle(
|
||||
fontSize: 13,
|
||||
color: Theme.of(context)
|
||||
@@ -419,11 +420,14 @@ class _SavePanelState extends State<SavePanel> {
|
||||
child: Container(
|
||||
color: Get.isDarkMode
|
||||
? Colors.white
|
||||
: Theme.of(context).colorScheme.surface,
|
||||
: Theme.of(context)
|
||||
.colorScheme
|
||||
.surface,
|
||||
padding: const EdgeInsets.all(3),
|
||||
child: PrettyQrView.data(
|
||||
data: uri,
|
||||
decoration: const PrettyQrDecoration(
|
||||
decoration:
|
||||
const PrettyQrDecoration(
|
||||
shape: PrettyQrRoundedSymbol(
|
||||
borderRadius: BorderRadius.zero,
|
||||
),
|
||||
@@ -432,6 +436,18 @@ class _SavePanelState extends State<SavePanel> {
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
Align(
|
||||
alignment: Alignment.centerLeft,
|
||||
child: Image.asset(
|
||||
'assets/images/logo/logo_2.png',
|
||||
width: 100,
|
||||
color: Theme.of(context)
|
||||
.colorScheme
|
||||
.onSurfaceVariant,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
|
||||
@@ -190,7 +190,13 @@ class _DynamicDetailPageState extends State<DynamicDetailPage>
|
||||
),
|
||||
);
|
||||
if (this.context.orientation == Orientation.portrait) {
|
||||
Get.to(replyReplyPage);
|
||||
Get.to(
|
||||
replyReplyPage,
|
||||
routeName: 'dynamicDetail-Copy',
|
||||
arguments: {
|
||||
'item': _dynamicDetailController.item,
|
||||
},
|
||||
);
|
||||
} else {
|
||||
ScaffoldState? scaffoldState = Scaffold.maybeOf(context);
|
||||
if (scaffoldState != null) {
|
||||
@@ -214,7 +220,13 @@ class _DynamicDetailPageState extends State<DynamicDetailPage>
|
||||
),
|
||||
);
|
||||
} else {
|
||||
Get.to(replyReplyPage);
|
||||
Get.to(
|
||||
replyReplyPage,
|
||||
routeName: 'dynamicDetail-Copy',
|
||||
arguments: {
|
||||
'item': _dynamicDetailController.item,
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -4,7 +4,7 @@ import 'package:flutter/material.dart';
|
||||
|
||||
import 'rich_node_panel.dart';
|
||||
|
||||
Widget content(context, item, source, callback) {
|
||||
Widget content(isSave, context, item, source, callback) {
|
||||
InlineSpan picsNodes() {
|
||||
return WidgetSpan(
|
||||
child: LayoutBuilder(
|
||||
@@ -55,7 +55,7 @@ Widget content(context, item, source, callback) {
|
||||
child: Text.rich(
|
||||
/// fix 默认20px高度
|
||||
style: TextStyle(
|
||||
fontSize: source == 'detail' ? 16 : 15,
|
||||
fontSize: source == 'detail' && isSave != true ? 16 : 15,
|
||||
),
|
||||
richNodes,
|
||||
maxLines: source == 'detail' ? null : 6,
|
||||
|
||||
@@ -137,8 +137,8 @@ class DynamicPanel extends StatelessWidget {
|
||||
),
|
||||
if (item!.modules!.moduleDynamic!.desc != null ||
|
||||
item!.modules!.moduleDynamic!.major != null)
|
||||
content(context, item, source, callback),
|
||||
forWard(item, context, source, callback),
|
||||
content(isSave, context, item, source, callback),
|
||||
forWard(isSave, item, context, source, callback),
|
||||
const SizedBox(height: 2),
|
||||
if (source == null) ActionPanel(item: item),
|
||||
if (source == 'detail' && isSave != true) const SizedBox(height: 12),
|
||||
|
||||
@@ -68,7 +68,8 @@ Widget _blockedItem(BuildContext context, item, source) {
|
||||
);
|
||||
}
|
||||
|
||||
Widget forWard(item, BuildContext context, source, callback, {floor = 1}) {
|
||||
Widget forWard(isSave, item, BuildContext context, source, callback,
|
||||
{floor = 1}) {
|
||||
switch (item.type) {
|
||||
// 图文
|
||||
case 'DYNAMIC_TYPE_DRAW':
|
||||
@@ -124,8 +125,14 @@ Widget forWard(item, BuildContext context, source, callback, {floor = 1}) {
|
||||
Text.rich(
|
||||
richNodes,
|
||||
// 被转发状态(floor=2) 隐藏
|
||||
maxLines: source == 'detail' && floor != 2 ? null : 4,
|
||||
overflow: source == 'detail' && floor != 2
|
||||
maxLines: isSave == true
|
||||
? null
|
||||
: source == 'detail' && floor != 2
|
||||
? null
|
||||
: 4,
|
||||
overflow: isSave == true
|
||||
? null
|
||||
: source == 'detail' && floor != 2
|
||||
? null
|
||||
: TextOverflow.ellipsis,
|
||||
),
|
||||
@@ -254,8 +261,8 @@ Widget forWard(item, BuildContext context, source, callback, {floor = 1}) {
|
||||
child: Container(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 15, vertical: 8),
|
||||
color: Theme.of(context).dividerColor.withOpacity(0.08),
|
||||
child:
|
||||
forWard(item.orig, context, source, callback, floor: floor + 1),
|
||||
child: forWard(isSave, item.orig, context, source, callback,
|
||||
floor: floor + 1),
|
||||
),
|
||||
);
|
||||
// 直播
|
||||
@@ -300,8 +307,14 @@ Widget forWard(item, BuildContext context, source, callback, {floor = 1}) {
|
||||
Text.rich(
|
||||
richNodes,
|
||||
// 被转发状态(floor=2) 隐藏
|
||||
maxLines: source == 'detail' && floor != 2 ? null : 4,
|
||||
overflow: source == 'detail' && floor != 2
|
||||
maxLines: isSave == true
|
||||
? null
|
||||
: source == 'detail' && floor != 2
|
||||
? null
|
||||
: 4,
|
||||
overflow: isSave == true
|
||||
? null
|
||||
: source == 'detail' && floor != 2
|
||||
? null
|
||||
: TextOverflow.ellipsis,
|
||||
),
|
||||
|
||||
@@ -187,7 +187,13 @@ class _HtmlRenderPageState extends State<HtmlRenderPage>
|
||||
),
|
||||
);
|
||||
if (this.context.orientation == Orientation.portrait) {
|
||||
Get.to(replyReplyPage);
|
||||
Get.to(
|
||||
replyReplyPage,
|
||||
routeName: 'htmlRender-Copy',
|
||||
arguments: {
|
||||
'id': _htmlRenderCtr.id,
|
||||
},
|
||||
);
|
||||
} else {
|
||||
ScaffoldState? scaffoldState = Scaffold.maybeOf(context);
|
||||
if (scaffoldState != null) {
|
||||
@@ -211,7 +217,13 @@ class _HtmlRenderPageState extends State<HtmlRenderPage>
|
||||
),
|
||||
);
|
||||
} else {
|
||||
Get.to(replyReplyPage);
|
||||
Get.to(
|
||||
replyReplyPage,
|
||||
routeName: 'htmlRender-Copy',
|
||||
arguments: {
|
||||
'id': _htmlRenderCtr.id,
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user