mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-05-14 21:24:02 +08:00
@@ -5,10 +5,10 @@ import 'package:PiliPlus/http/dynamics.dart';
|
||||
import 'package:PiliPlus/http/loading_state.dart';
|
||||
import 'package:PiliPlus/models/dynamics/result.dart';
|
||||
import 'package:PiliPlus/pages/dynamics/widgets/vote.dart';
|
||||
import 'package:PiliPlus/pages/webview/view.dart';
|
||||
import 'package:PiliPlus/utils/app_scheme.dart';
|
||||
import 'package:PiliPlus/utils/num_utils.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
|
||||
Widget? addWidget(
|
||||
BuildContext context, {
|
||||
@@ -124,14 +124,9 @@ Widget? addWidget(
|
||||
recognizer: reserve.desc3!.jumpUrl == null
|
||||
? null
|
||||
: (NoDeadlineTapGestureRecognizer()
|
||||
..onTap = () {
|
||||
Get.toNamed(
|
||||
'/webview',
|
||||
parameters: {
|
||||
'url': reserve.desc3!.jumpUrl!,
|
||||
},
|
||||
);
|
||||
}),
|
||||
..onTap = () => WebViewPage.toWebView(
|
||||
reserve.desc3!.jumpUrl!,
|
||||
)),
|
||||
),
|
||||
],
|
||||
],
|
||||
@@ -261,14 +256,9 @@ Widget? addWidget(
|
||||
recognizer: content.desc!.jumpUrl == null
|
||||
? null
|
||||
: (NoDeadlineTapGestureRecognizer()
|
||||
..onTap = () {
|
||||
Get.toNamed(
|
||||
'/webview',
|
||||
parameters: {
|
||||
'url': content.desc!.jumpUrl!,
|
||||
},
|
||||
);
|
||||
}),
|
||||
..onTap = () => WebViewPage.toWebView(
|
||||
content.desc!.jumpUrl!,
|
||||
)),
|
||||
),
|
||||
],
|
||||
),
|
||||
|
||||
@@ -6,7 +6,6 @@ import 'package:PiliPlus/pages/dynamics/widgets/action_panel.dart';
|
||||
import 'package:PiliPlus/pages/dynamics/widgets/author_panel.dart';
|
||||
import 'package:PiliPlus/pages/dynamics/widgets/dyn_content.dart';
|
||||
import 'package:PiliPlus/pages/dynamics/widgets/interaction.dart';
|
||||
import 'package:PiliPlus/utils/extension/theme_ext.dart';
|
||||
import 'package:PiliPlus/utils/page_utils.dart';
|
||||
import 'package:PiliPlus/utils/platform_utils.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
@@ -87,8 +86,6 @@ class DynamicPanel extends StatelessWidget {
|
||||
padding: const EdgeInsets.fromLTRB(12, 12, 12, 6),
|
||||
child: authorWidget,
|
||||
),
|
||||
if (item.modules.moduleDispute case final moduleDispute?)
|
||||
_buildDispute(theme, moduleDispute),
|
||||
...dynContent(
|
||||
context,
|
||||
theme: theme,
|
||||
@@ -252,53 +249,4 @@ class DynamicPanel extends StatelessWidget {
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildDispute(ThemeData theme, ModuleDispute moduleDispute) {
|
||||
final child = Container(
|
||||
width: .infinity,
|
||||
margin: const .fromLTRB(12, 2, 12, 6),
|
||||
padding: const .symmetric(horizontal: 8, vertical: 6),
|
||||
decoration: BoxDecoration(
|
||||
color: theme.colorScheme.secondaryContainer.withValues(
|
||||
alpha: theme.isLight ? 0.5 : 0.7,
|
||||
),
|
||||
borderRadius: const BorderRadius.all(Radius.circular(6)),
|
||||
),
|
||||
child: Text.rich(
|
||||
style: TextStyle(
|
||||
height: 1,
|
||||
fontSize: 13,
|
||||
color: theme.colorScheme.onSecondaryContainer,
|
||||
),
|
||||
strutStyle: const StrutStyle(
|
||||
leading: 0,
|
||||
height: 1,
|
||||
fontSize: 13,
|
||||
),
|
||||
TextSpan(
|
||||
children: [
|
||||
WidgetSpan(
|
||||
alignment: .middle,
|
||||
child: Padding(
|
||||
padding: const .only(right: 4),
|
||||
child: Icon(
|
||||
size: 15,
|
||||
Icons.warning_rounded,
|
||||
color: theme.colorScheme.onSecondaryContainer,
|
||||
),
|
||||
),
|
||||
),
|
||||
TextSpan(text: moduleDispute.title),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
if (moduleDispute.jumpUrl?.isNotEmpty == true) {
|
||||
return GestureDetector(
|
||||
onTap: () => PageUtils.handleWebview(moduleDispute.jumpUrl!),
|
||||
child: child,
|
||||
);
|
||||
}
|
||||
return child;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ import 'package:PiliPlus/pages/dynamics/widgets/live_panel.dart';
|
||||
import 'package:PiliPlus/pages/dynamics/widgets/live_panel_sub.dart';
|
||||
import 'package:PiliPlus/pages/dynamics/widgets/live_rcmd_panel.dart';
|
||||
import 'package:PiliPlus/pages/dynamics/widgets/video_panel.dart';
|
||||
import 'package:PiliPlus/utils/app_scheme.dart';
|
||||
import 'package:PiliPlus/utils/extension/num_ext.dart';
|
||||
import 'package:PiliPlus/utils/image_utils.dart';
|
||||
import 'package:PiliPlus/utils/page_utils.dart';
|
||||
@@ -124,7 +125,7 @@ Widget module(
|
||||
PageUtils.viewPgcFromUri(url)) {
|
||||
return;
|
||||
}
|
||||
PageUtils.handleWebview(url, inApp: true);
|
||||
PiliScheme.routePushFromUrl(url);
|
||||
} catch (_) {}
|
||||
},
|
||||
child: Padding(
|
||||
|
||||
@@ -11,6 +11,7 @@ import 'package:PiliPlus/models/common/image_preview_type.dart'
|
||||
import 'package:PiliPlus/models/common/image_type.dart';
|
||||
import 'package:PiliPlus/models/dynamics/result.dart';
|
||||
import 'package:PiliPlus/pages/dynamics/widgets/vote.dart';
|
||||
import 'package:PiliPlus/utils/app_scheme.dart';
|
||||
import 'package:PiliPlus/utils/page_utils.dart';
|
||||
import 'package:flutter/foundation.dart' show kDebugMode;
|
||||
import 'package:flutter/material.dart';
|
||||
@@ -128,7 +129,8 @@ TextSpan? richNode(
|
||||
style: style,
|
||||
recognizer: hasLink
|
||||
? (NoDeadlineTapGestureRecognizer()
|
||||
..onTap = () => PageUtils.handleWebview(i.jumpUrl!))
|
||||
..onTap = () =>
|
||||
PiliScheme.routePushFromUrl(i.jumpUrl!))
|
||||
: null,
|
||||
),
|
||||
);
|
||||
@@ -193,12 +195,8 @@ TextSpan? richNode(
|
||||
text: '${i.origText} ',
|
||||
style: style,
|
||||
recognizer: NoDeadlineTapGestureRecognizer()
|
||||
..onTap = () => Get.toNamed(
|
||||
'/webview',
|
||||
parameters: {
|
||||
'url':
|
||||
'https://www.bilibili.com/h5/lottery/result?business_id=${item.idStr}',
|
||||
},
|
||||
..onTap = () => PiliScheme.routePushFromUrl(
|
||||
'https://www.bilibili.com/h5/lottery/result?business_id=${item.idStr}',
|
||||
),
|
||||
),
|
||||
);
|
||||
@@ -223,7 +221,8 @@ TextSpan? richNode(
|
||||
recognizer: i.jumpUrl == null
|
||||
? null
|
||||
: (NoDeadlineTapGestureRecognizer()
|
||||
..onTap = () => PageUtils.handleWebview(i.jumpUrl!)),
|
||||
..onTap = () =>
|
||||
PiliScheme.routePushFromUrl(i.jumpUrl!)),
|
||||
),
|
||||
);
|
||||
break;
|
||||
@@ -347,7 +346,8 @@ TextSpan? richNode(
|
||||
recognizer: i.jumpUrl == null
|
||||
? null
|
||||
: (NoDeadlineTapGestureRecognizer()
|
||||
..onTap = () => PageUtils.handleWebview(i.jumpUrl!)),
|
||||
..onTap = () =>
|
||||
PiliScheme.routePushFromUrl(i.jumpUrl!)),
|
||||
),
|
||||
);
|
||||
break;
|
||||
@@ -359,7 +359,8 @@ TextSpan? richNode(
|
||||
recognizer: i.jumpUrl == null
|
||||
? null
|
||||
: (NoDeadlineTapGestureRecognizer()
|
||||
..onTap = () => PageUtils.handleWebview(i.jumpUrl!)),
|
||||
..onTap = () =>
|
||||
PiliScheme.routePushFromUrl(i.jumpUrl!)),
|
||||
),
|
||||
);
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user