aves/lib/widgets/dialogs/entry_editors/edit_description_dialog.dart
2022-08-17 20:03:22 +02:00

58 lines
1.7 KiB
Dart

import 'package:aves/widgets/common/extensions/build_context.dart';
import 'package:aves/widgets/common/providers/media_query_data_provider.dart';
import 'package:aves/widgets/dialogs/aves_dialog.dart';
import 'package:flutter/material.dart';
class EditEntryDescriptionDialog extends StatefulWidget {
final String initialDescription;
const EditEntryDescriptionDialog({
super.key,
required this.initialDescription,
});
@override
State<EditEntryDescriptionDialog> createState() => _EditEntryDescriptionDialogState();
}
class _EditEntryDescriptionDialogState extends State<EditEntryDescriptionDialog> {
late final TextEditingController _textController;
@override
void initState() {
super.initState();
_textController = TextEditingController(text: widget.initialDescription);
}
@override
Widget build(BuildContext context) {
return MediaQueryDataProvider(
child: Builder(builder: (context) {
final l10n = context.l10n;
return AvesDialog(
title: l10n.editEntryDescriptionDialogTitle,
content: TextField(
controller: _textController,
decoration: const InputDecoration(
border: OutlineInputBorder(),
),
maxLines: null,
),
actions: [
TextButton(
onPressed: () => Navigator.pop(context),
child: Text(MaterialLocalizations.of(context).cancelButtonLabel),
),
TextButton(
onPressed: () => _submit(context),
child: Text(l10n.applyButtonLabel),
),
],
);
}),
);
}
void _submit(BuildContext context) => Navigator.pop(context, _textController.text);
}