dramaling-app/apps/mobile/lib/features/dialogue/widgets/reply_assistance_panel.dart

87 lines
2.7 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
/// 回覆輔助面板
class ReplyAssistancePanel extends StatelessWidget {
final List<String> suggestions;
final Function(String) onSelectSuggestion;
final VoidCallback onClose;
const ReplyAssistancePanel({
super.key,
required this.suggestions,
required this.onSelectSuggestion,
required this.onClose,
});
@override
Widget build(BuildContext context) {
return Container(
color: Colors.black.withOpacity(0.5),
child: Center(
child: Container(
width: 320.w,
height: 400.h,
margin: EdgeInsets.all(20.w),
padding: EdgeInsets.all(20.w),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(16.r),
),
child: Column(
children: [
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
'回覆建議',
style: TextStyle(
fontSize: 18.sp,
fontWeight: FontWeight.bold,
),
),
IconButton(
onPressed: onClose,
icon: Icon(Icons.close),
),
],
),
SizedBox(height: 16.h),
Expanded(
child: ListView.builder(
itemCount: suggestions.length,
itemBuilder: (context, index) {
final suggestion = suggestions[index];
return Padding(
padding: EdgeInsets.only(bottom: 8.h),
child: GestureDetector(
onTap: () => onSelectSuggestion(suggestion),
child: Container(
padding: EdgeInsets.all(12.w),
decoration: BoxDecoration(
color: Colors.grey[100],
borderRadius: BorderRadius.circular(8.r),
border: Border.all(color: Colors.grey[300]!),
),
child: Text(
suggestion,
style: TextStyle(
fontSize: 14.sp,
color: Colors.black87,
),
),
),
),
);
},
),
),
],
),
),
),
);
}
}