import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:yumi/shared/data_sources/sources/repositories/sc_room_repository_imp.dart'; import 'package:yumi/main.dart'; import 'package:yumi/app_localizations.dart'; import 'package:yumi/ui_kit/components/sc_compontent.dart'; import 'package:yumi/ui_kit/components/sc_page_list.dart'; import 'package:yumi/ui_kit/components/text/sc_text.dart'; import 'package:yumi/ui_kit/components/sc_tts.dart'; import 'package:yumi/shared/tools/sc_lk_dialog_util.dart'; import 'package:yumi/shared/business_logic/models/res/room_gift_rank_res.dart'; import 'package:yumi/ui_kit/widgets/room/room_user_info_card.dart'; class RoomGiftRankTabPage extends SCPageList { String roomId; String dataType; RoomGiftRankTabPage(this.roomId, this.dataType); @override _RoomGiftRankTabPageState createState() => _RoomGiftRankTabPageState(roomId, dataType); } class _RoomGiftRankTabPageState extends SCPageListState { String roomId; String dataType; _RoomGiftRankTabPageState(this.roomId, this.dataType); @override void initState() { super.initState(); enablePullUp = false; backgroundColor = Colors.transparent; loadData(1); } @override Widget build(BuildContext context) { return buildList(context); } @override Widget buildItemOne(RoomGiftRankRes userInfo, int index) { return GestureDetector( child: Container( margin: EdgeInsets.symmetric(vertical: 3.w), padding: EdgeInsets.symmetric(horizontal: 16.w), decoration: BoxDecoration( borderRadius: BorderRadius.circular(12.w), color: Colors.transparent, ), child: Row( children: [ index == 0 ? Image.asset( "sc_images/room/sc_icon_room_contribute_rank1.png", width: 22.w, height: 22.w, ) : (index == 1 ? Image.asset( "sc_images/room/sc_icon_room_contribute_rank2.png", width: 22.w, height: 22.w, ) : (index == 2 ? Image.asset( "sc_images/room/sc_icon_room_contribute_rank3.png", width: 22.w, height: 22.w, ) : Container( width: 22.w, alignment: AlignmentDirectional.center, child: text( "${index + 1}", fontWeight: FontWeight.w600, textColor: Colors.white, fontSize: 14.sp, ), ))), SizedBox(width: 10.w), GestureDetector( child: head( url: userInfo.userProfile?.userAvatar ?? "", width: 55.w, // headdress: userInfo.userProfile?.getHeaddress()?.sourceUrl, ), onTap: () { showBottomInCenterDialog( navigatorKey.currentState!.context, RoomUserInfoCard(userId: userInfo.userProfile?.id), ); SmartDialog.dismiss(tag: "showRoomGiftRankPage"); }, ), SizedBox(width: 3.w), Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Row( children: [ socialchatNickNameText( maxWidth: 170.w, userInfo.userProfile?.userNickname ?? "", fontSize: 14.sp, type: userInfo.userProfile?.getVIP()?.name ?? "", needScroll: (userInfo.userProfile?.userNickname?.characters.length ?? 0) > 14, ), ], ), SizedBox(height: 3.w), GestureDetector( child: Container( child: Row( textDirection: TextDirection.ltr, children: [ text( "ID:${userInfo.userProfile?.getID()}", fontSize: 12.sp, textColor: Colors.white, fontWeight: FontWeight.bold, ), SizedBox(width: 5.w), Image.asset( "sc_images/room/sc_icon_user_card_copy_id.png", width: 12.w, height: 12.w, ), SizedBox(width: 8.w), ], ), ), onTap: () { Clipboard.setData( ClipboardData(text: userInfo.userProfile?.getID() ?? ""), ); SCTts.show(SCAppLocalizations.of(context)!.copiedToClipboard); }, ), ], ), Spacer(), Image.asset( "sc_images/general/sc_icon_jb.png", width: 20.w, height: 20.w, ), SizedBox(width: 3.w), text( "${userInfo.totalFormat ?? 0}", fontSize: 12.sp, textColor: Color(0xFFFFB627), ), SizedBox(width: 5.w), ], ), ), onTap: () {}, ); } @override empty() { return mainEmpty( image: Image.asset( 'sc_images/general/sc_icon_loading.png', width: 121.w, fit: BoxFit.fitWidth, ), msg: SCAppLocalizations.of(context)!.noData, textColor: Colors.white54, ); } @override builderDivider() { // return Divider( // height: 1.w, // color: Color(0xff3D3277).withOpacity(0.5), // indent: 15.w, // ); return Container(height: 4.w); } ///加载数据 @override loadPage({ required int page, required Function(List) onSuccess, Function? onErr, }) async { try { var list = await SCChatRoomRepository().roomContributionRank( roomId, dataType, size: 20, ); onSuccess(list); } catch (e) { if (onErr != null) { onErr(); } } } }