import 'package:flutter/material.dart'; import 'package:flutter_quill/flutter_quill.dart' as quill; class CommentEditorCard extends StatelessWidget { final quill.QuillController controller; final VoidCallback onCancel; final Future Function(quill.QuillController controller) onSave; const CommentEditorCard({ super.key, required this.controller, required this.onCancel, required this.onSave, }); @override Widget build(BuildContext context) { return Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ quill.QuillSimpleToolbar( controller: controller, configurations: const quill.QuillSimpleToolbarConfigurations( showBoldButton: true, showItalicButton: true, showUnderLineButton: true, showListBullets: false, showListNumbers: false, showAlignmentButtons: true, showLink: true, showFontSize: false, showFontFamily: false, showColorButton: false, showBackgroundColorButton: false, showUndo: false, showRedo: false, showCodeBlock: false, showQuote: false, showSuperscript: false, showSubscript: false, showInlineCode: false, showDirection: false, showListCheck: false, showStrikeThrough: false, showClearFormat: false, showDividers: false, showHeaderStyle: false, multiRowsDisplay: false, ), ), const SizedBox(height: 38), Container( height: 140, padding: const EdgeInsets.all(8), decoration: BoxDecoration( border: Border.all(color: Colors.grey.shade300), borderRadius: BorderRadius.circular(8), color: const Color(0xFFFDFDFD), ), child: quill.QuillEditor.basic( controller: controller, configurations: const quill.QuillEditorConfigurations( autoFocus: true, expands: false, scrollable: true, ), ), ), const SizedBox(height: 8), Align( alignment: Alignment.centerRight, child: Wrap( spacing: 8, children: [ OutlinedButton.icon( onPressed: onCancel, icon: const Icon(Icons.close, size: 18), label: const Text("Cancel"), style: OutlinedButton.styleFrom( foregroundColor: Colors.grey[700], ), ), ElevatedButton.icon( onPressed: () => onSave(controller), icon: const Icon(Icons.save, size: 18), label: const Text("Save"), style: ElevatedButton.styleFrom( backgroundColor: Colors.indigo, foregroundColor: Colors.white, ), ), ], ), ) ], ); } }