opt models

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-06-04 15:20:35 +08:00
parent f50b1d2beb
commit b960359a39
858 changed files with 11000 additions and 12588 deletions

View File

@@ -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();

View File

@@ -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,

View File

@@ -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: [