mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-04-25 04:45:54 +08:00
@@ -4,9 +4,8 @@ import 'package:PiliPlus/http/loading_state.dart';
|
||||
import 'package:PiliPlus/http/member.dart';
|
||||
import 'package:PiliPlus/http/video.dart';
|
||||
import 'package:PiliPlus/models/common/member/tab_type.dart';
|
||||
import 'package:PiliPlus/models/space/data.dart';
|
||||
import 'package:PiliPlus/models/space/tab2.dart';
|
||||
import 'package:PiliPlus/models/space/tab_item.dart';
|
||||
import 'package:PiliPlus/models_new/space/space/data.dart';
|
||||
import 'package:PiliPlus/models_new/space/space/tab2.dart';
|
||||
import 'package:PiliPlus/pages/common/common_data_controller.dart';
|
||||
import 'package:PiliPlus/utils/request_utils.dart';
|
||||
import 'package:PiliPlus/utils/storage.dart';
|
||||
@@ -34,7 +33,7 @@ class MemberController extends CommonDataController<SpaceData, SpaceData?>
|
||||
RxInt relation = 0.obs;
|
||||
bool get isFollow => relation.value != 0 && relation.value != 128;
|
||||
|
||||
List<Tab2>? tab2;
|
||||
List<SpaceTab2>? tab2;
|
||||
late List<Tab> tabs;
|
||||
TabController? tabController;
|
||||
RxInt contributeInitialIndex = 0.obs;
|
||||
@@ -92,8 +91,7 @@ class MemberController extends CommonDataController<SpaceData, SpaceData?>
|
||||
}
|
||||
tab2?.retainWhere((item) => implTabs.contains(item.param));
|
||||
if (tab2?.isNotEmpty == true) {
|
||||
if (!data.tab!.toJson().values.contains(true) &&
|
||||
tab2!.first.param == 'home') {
|
||||
if (data.tab!.hasItem != true && tab2!.first.param == 'home') {
|
||||
// remove empty home tab
|
||||
tab2!.removeAt(0);
|
||||
}
|
||||
@@ -129,14 +127,14 @@ class MemberController extends CommonDataController<SpaceData, SpaceData?>
|
||||
@override
|
||||
bool handleError(String? errMsg) {
|
||||
tab2 = const [
|
||||
Tab2(title: '动态', param: 'dynamic'),
|
||||
Tab2(
|
||||
SpaceTab2(title: '动态', param: 'dynamic'),
|
||||
SpaceTab2(
|
||||
title: '投稿',
|
||||
param: 'contribute',
|
||||
items: [SpaceTabItem(title: '视频', param: 'video')],
|
||||
items: [SpaceTab2Item(title: '视频', param: 'video')],
|
||||
),
|
||||
Tab2(title: '收藏', param: 'favorite'),
|
||||
Tab2(title: '追番', param: 'bangumi'),
|
||||
SpaceTab2(title: '收藏', param: 'favorite'),
|
||||
SpaceTab2(title: '追番', param: 'bangumi'),
|
||||
];
|
||||
tabs = tab2!.map((item) => Tab(text: item.title)).toList();
|
||||
tabController?.dispose();
|
||||
|
||||
@@ -3,7 +3,7 @@ import 'package:PiliPlus/common/widgets/dynamic_sliver_appbar.dart';
|
||||
import 'package:PiliPlus/common/widgets/loading_widget/loading_widget.dart';
|
||||
import 'package:PiliPlus/common/widgets/scroll_physics.dart';
|
||||
import 'package:PiliPlus/http/loading_state.dart';
|
||||
import 'package:PiliPlus/models/space/data.dart';
|
||||
import 'package:PiliPlus/models_new/space/space/data.dart';
|
||||
import 'package:PiliPlus/pages/member/controller.dart';
|
||||
import 'package:PiliPlus/pages/member/widget/user_info_card.dart';
|
||||
import 'package:PiliPlus/pages/member_contribute/view.dart';
|
||||
@@ -267,10 +267,10 @@ class _MemberPageState extends State<MemberPage> {
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildUserInfo(LoadingState userState, [bool isV = true]) {
|
||||
Widget _buildUserInfo(LoadingState<SpaceData?> userState, [bool isV = true]) {
|
||||
return switch (userState) {
|
||||
Loading() => const CircularProgressIndicator(),
|
||||
Success(:var response) => response is SpaceData
|
||||
Success(:var response) => response != null
|
||||
? Obx(
|
||||
() => UserInfoCard(
|
||||
isV: isV,
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import 'package:PiliPlus/common/constants.dart';
|
||||
import 'package:PiliPlus/common/widgets/pendant_avatar.dart';
|
||||
import 'package:PiliPlus/models/common/image_preview_type.dart';
|
||||
import 'package:PiliPlus/models/space/card.dart';
|
||||
import 'package:PiliPlus/models/space/images.dart';
|
||||
import 'package:PiliPlus/models_new/space/space/card.dart';
|
||||
import 'package:PiliPlus/models_new/space/space/images.dart';
|
||||
import 'package:PiliPlus/utils/extension.dart';
|
||||
import 'package:PiliPlus/utils/page_utils.dart';
|
||||
import 'package:PiliPlus/utils/storage.dart' show Accounts;
|
||||
@@ -44,7 +44,7 @@ class UserInfoCard extends StatelessWidget {
|
||||
Widget _countWidget({
|
||||
required ThemeData theme,
|
||||
required String title,
|
||||
required int count,
|
||||
required int? count,
|
||||
required VoidCallback onTap,
|
||||
}) {
|
||||
return GestureDetector(
|
||||
@@ -307,7 +307,7 @@ class UserInfoCard extends StatelessWidget {
|
||||
? card.fans
|
||||
: index == 2
|
||||
? card.attention
|
||||
: card.likes?.likeNum ?? 0,
|
||||
: card.likes?.likeNum,
|
||||
onTap: () {
|
||||
if (index == 0) {
|
||||
Get.toNamed('/fan?mid=${card.mid}&name=${card.name}');
|
||||
@@ -464,9 +464,9 @@ class UserInfoCard extends StatelessWidget {
|
||||
Widget buildPrInfo(ThemeData theme) => Builder(builder: (context) {
|
||||
final isDark = theme.brightness == Brightness.dark;
|
||||
final textColor = isDark
|
||||
? Color(int.parse('FF${card.prInfo?.textColorNight?.substring(1)}',
|
||||
? Color(int.parse('FF${card.prInfo?.textColorNight.substring(1)}',
|
||||
radix: 16))
|
||||
: Color(int.parse('FF${card.prInfo?.textColor?.substring(1)}',
|
||||
: Color(int.parse('FF${card.prInfo?.textColor.substring(1)}',
|
||||
radix: 16));
|
||||
return GestureDetector(
|
||||
onTap: () {
|
||||
@@ -478,10 +478,9 @@ class UserInfoCard extends StatelessWidget {
|
||||
margin: const EdgeInsets.only(top: 8),
|
||||
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 10),
|
||||
color: isDark
|
||||
? Color(int.parse(
|
||||
'FF${card.prInfo?.bgColorNight?.substring(1)}',
|
||||
? Color(int.parse('FF${card.prInfo?.bgColorNight.substring(1)}',
|
||||
radix: 16))
|
||||
: Color(int.parse('FF${card.prInfo?.bgColor?.substring(1)}',
|
||||
: Color(int.parse('FF${card.prInfo?.bgColor.substring(1)}',
|
||||
radix: 16)),
|
||||
child: Row(
|
||||
children: [
|
||||
|
||||
Reference in New Issue
Block a user