mirror of
https://github.com/HChaZZY/PiliPlus.git
synced 2025-12-06 09:13:48 +08:00
mod: memberpage: show silent status
Closes #158 Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
@@ -8,6 +8,7 @@ import 'package:PiliPlus/utils/utils.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:share_plus/share_plus.dart';
|
||||
|
||||
enum MemberTabType { none, home, dynamic, contribute, favorite, bangumi }
|
||||
@@ -40,6 +41,9 @@ class MemberControllerNew extends CommonController
|
||||
|
||||
dynamic live;
|
||||
|
||||
int? silence;
|
||||
String? endTime;
|
||||
|
||||
@override
|
||||
bool customHandleResponse(Success response) {
|
||||
username = response.response?.card?.name ?? '';
|
||||
@@ -49,6 +53,16 @@ class MemberControllerNew extends CommonController
|
||||
: response.response?.relation ?? 1;
|
||||
tab2 = response.response.tab2;
|
||||
live = response.response?.live;
|
||||
silence = response.response?.card?.silence;
|
||||
if (response.response?.card?.endTime != null) {
|
||||
if (response.response.card.endTime == 0) {
|
||||
endTime = ': 永久封禁';
|
||||
} else if (response.response.card.endTime >
|
||||
DateTime.now().millisecondsSinceEpoch ~/ 1000) {
|
||||
endTime =
|
||||
':至 ${DateFormat('yyyy-MM-dd HH:mm:ss').format(DateTime.fromMillisecondsSinceEpoch(response.response.card.endTime * 1000))}';
|
||||
}
|
||||
}
|
||||
if (tab2 != null && tab2!.isNotEmpty) {
|
||||
if (!response.response.tab.toJson().values.contains(true) &&
|
||||
tab2!.first.param == 'home') {
|
||||
|
||||
@@ -318,6 +318,8 @@ class _MemberPageNewState extends State<MemberPageNew>
|
||||
images: userState.response.images,
|
||||
onFollow: () => _userController.onFollow(context),
|
||||
live: _userController.live,
|
||||
silence: _userController.silence,
|
||||
endTime: _userController.endTime,
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
@@ -19,6 +19,8 @@ class UserInfoCard extends StatelessWidget {
|
||||
required this.isFollow,
|
||||
required this.onFollow,
|
||||
this.live,
|
||||
this.silence,
|
||||
this.endTime,
|
||||
});
|
||||
|
||||
final bool isV;
|
||||
@@ -29,6 +31,8 @@ class UserInfoCard extends StatelessWidget {
|
||||
final space.Images images;
|
||||
final VoidCallback onFollow;
|
||||
final dynamic live;
|
||||
final int? silence;
|
||||
final String? endTime;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
@@ -259,17 +263,45 @@ class UserInfoCard extends StatelessWidget {
|
||||
],
|
||||
),
|
||||
),
|
||||
// if (card.spaceTagBottom != null && card.spaceTagBottom!.isNotEmpty)
|
||||
// Padding(
|
||||
// padding: const EdgeInsets.only(left: 20, top: 8, right: 20),
|
||||
// child: Wrap(
|
||||
// spacing: 5,
|
||||
// runSpacing: 8,
|
||||
// children: card.spaceTagBottom!
|
||||
// .map((item) => Text(item.title ?? ''))
|
||||
// .toList(),
|
||||
// ),
|
||||
// ),
|
||||
if (silence == 1)
|
||||
Builder(builder: (context) {
|
||||
bool isLight = Theme.of(context).brightness == Brightness.light;
|
||||
return GestureDetector(
|
||||
onTap: () {
|
||||
Utils.handleWebview(
|
||||
'https://www.bilibili.com/blackroom/ban/${card.mid}');
|
||||
},
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(6),
|
||||
color: isLight
|
||||
? Theme.of(context).colorScheme.errorContainer
|
||||
: Theme.of(context).colorScheme.error,
|
||||
),
|
||||
margin: const EdgeInsets.only(left: 20, top: 8, right: 20),
|
||||
padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 4),
|
||||
child: Row(
|
||||
children: [
|
||||
Icon(
|
||||
Icons.info,
|
||||
size: MediaQuery.textScalerOf(context).scale(18),
|
||||
color: isLight
|
||||
? Theme.of(context).colorScheme.onErrorContainer
|
||||
: Theme.of(context).colorScheme.onError,
|
||||
),
|
||||
Text(
|
||||
' 该账号封禁中${endTime ?? ''}',
|
||||
style: TextStyle(
|
||||
color: isLight
|
||||
? Theme.of(context).colorScheme.onErrorContainer
|
||||
: Theme.of(context).colorScheme.onError,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}),
|
||||
];
|
||||
|
||||
_buildRight(BuildContext context) => Column(
|
||||
|
||||
Reference in New Issue
Block a user