import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:lamiter/Extension/build_context.dart'; import 'package:provider/provider.dart'; import 'package:lamiter/Provider/Language/language_provider.dart'; // enum PopupMessageType { // serverError('伺服器異常。請稍後重試,或聯繫開發人員。', Colors.red), // formIncompleteError('請填寫所有必填欄位。', Colors.red), // copySuccess('複製成功!', null), // screenshotSuccess('截圖成功!', null); // final String message; // final Color? color; // const PopupMessageType(this.message, this.color); // } class BottomPopupMessage extends StatefulWidget { final double height; const BottomPopupMessage({ required super.key, required this.height, }); @override State createState() => BottomPopupMessageState(); } class BottomPopupMessageState extends State { bool _enabled = false; String _message = ''; Color _color = Colors.transparent; void showMessage(String message, Color color) async { _enabled = true; _message = message; _color = color; setState(() {}); Future.delayed(const Duration(seconds: 3), () { _enabled = false; _message = ''; _color = Colors.transparent; setState(() {}); }); } @override Widget build(BuildContext context) { final languageProvider = Provider.of(context); return AnimatedPositioned( bottom: _enabled ? widget.height : -60.sp, duration: Durations.short3, curve: Curves.easeOutSine, child: Container( decoration: BoxDecoration( color: _color, borderRadius: BorderRadius.circular(32.sp), ), padding: EdgeInsets.symmetric( vertical: 6.sp, horizontal: 14.sp, ), child: Text( languageProvider.getLocaleString(_message), style: context.tM!.copyWith( color: context.surface, fontWeight: FontWeight.bold, ), ), ), ); } }