yumi-flutter/tool/room_cp_invite_preview.dart
roxy bd6d35ee1b 🚀 UI
2026-05-14 17:10:53 +08:00

73 lines
2.0 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:yumi/app/constants/sc_screen.dart';
import 'package:yumi/ui_kit/widgets/room/cp/room_cp_invite_dialog.dart';
void main() {
runApp(const RoomCpInvitePreviewApp());
}
class RoomCpInvitePreviewApp extends StatelessWidget {
const RoomCpInvitePreviewApp({super.key});
@override
Widget build(BuildContext context) {
return ScreenUtilInit(
designSize: Size(SCScreen.designWidth, SCScreen.designHeight),
splitScreenMode: false,
minTextAdapt: true,
builder: (context, child) {
return const MaterialApp(
debugShowCheckedModeBanner: false,
home: RoomCpInvitePreviewPage(),
);
},
);
}
}
class RoomCpInvitePreviewPage extends StatelessWidget {
const RoomCpInvitePreviewPage({super.key});
static const _previewStyle = String.fromEnvironment(
'CP_PREVIEW_STYLE',
defaultValue: 'waiting',
);
static const _inviter = RoomCpInviteDialogUser(name: 'NameName');
static const _receiver = RoomCpInviteDialogUser(name: 'NameName');
@override
Widget build(BuildContext context) {
final style =
_previewStyle == 'incoming' ||
Uri.base.queryParameters['style'] == 'incoming'
? RoomCpInviteDialogStyle.incoming
: RoomCpInviteDialogStyle.waiting;
return Scaffold(
body: SizedBox.expand(
child: DecoratedBox(
decoration: const BoxDecoration(
gradient: LinearGradient(
begin: Alignment.topLeft,
end: Alignment.bottomRight,
colors: [Color(0xFF2C1620), Color(0xFF171C31), Color(0xFF07070B)],
),
),
child: Stack(
children: [
RoomCpInviteDialog(
inviter: _inviter,
receiver: _receiver,
style: style,
countdownSeconds: 86399,
autoDismiss: false,
),
],
),
),
),
);
}
}