chatapp3-flutter/lib/modules/room/them/custom/room_theme_custom_page.dart
2026-04-09 21:32:23 +08:00

116 lines
4.0 KiB
Dart

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_debouncer/flutter_debouncer.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:yumi/app_localizations.dart';
import 'package:yumi/ui_kit/components/sc_compontent.dart';
import 'package:yumi/ui_kit/components/text/sc_text.dart';
import 'package:yumi/ui_kit/components/sc_tts.dart';
import 'package:yumi/ui_kit/theme/socialchat_theme.dart';
import 'package:yumi/shared/tools/sc_pick_utils.dart';
import 'package:yumi/shared/data_sources/sources/repositories/sc_store_repository_imp.dart';
class RoomThemeCustomPage extends StatefulWidget {
@override
_RoomThemeCustomPageState createState() => _RoomThemeCustomPageState();
}
class _RoomThemeCustomPageState extends State<RoomThemeCustomPage> {
String picPath = "";
final Debouncer debouncer = Debouncer();
bool uploadSucc = false;
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.transparent,
body: Column(
children: [
SizedBox(height: 35.w),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
GestureDetector(
child:
picPath.isNotEmpty
? netImage(
url: picPath,
height: 300.w,
width: 200.w,
borderRadius: BorderRadius.all(Radius.circular(8.w)),
)
: Image.asset(
"sc_images/general/sc_icon_add_pic.png",
height: 120.w,
),
onTap: () {
SCPickUtils.pickImage(
context,
aspectRatio: 0.56,
backOriginalFile: false,
(bool success, String url) {
if (url.isNotEmpty) {
setState(() {
picPath = url;
uploadSucc = true;
});
}
},
);
},
),
],
),
SizedBox(height: 10.w),
text(
SCAppLocalizations.of(context)!.themeGoToUploadTips,
maxLines: 6,
fontSize: 14.sp,
textColor: Colors.white,
),
SizedBox(height: 30.w),
GestureDetector(
child: Container(
height: 46.w,
width: 250.w,
alignment: Alignment.center,
decoration: BoxDecoration(
color: SocialChatTheme.primaryLight,
borderRadius: BorderRadius.all(Radius.circular(30.w)),
),
child: text(
uploadSucc
? "10000${SCAppLocalizations.of(context)!.coins}/30${SCAppLocalizations.of(context)!.day}"
: SCAppLocalizations.of(context)!.goToUpload,
textColor: Colors.white,
fontSize: 16.sp,
fontWeight: FontWeight.bold,
),
),
onTap: () {
if (picPath.isNotEmpty) {
debouncer.debounce(
duration: Duration(milliseconds: 350),
onDebounce: () {
SCStoreRepositoryImp().roomThemeCustomize(picPath).then((
value,
) {
picPath = "";
setState(() {});
SCTts.show(
SCAppLocalizations.of(context)!.operationSuccessful,
);
});
},
);
}
},
),
],
),
);
}
}