40 lines
1.1 KiB
Dart
40 lines
1.1 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:flutter_hooks/flutter_hooks.dart';
|
|
|
|
class ReportDialog extends HookWidget {
|
|
const ReportDialog();
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
final controller = useListenable(useTextEditingController());
|
|
|
|
return AlertDialog(
|
|
title: const Text('Report'),
|
|
content: TextField(
|
|
autofocus: true,
|
|
controller: controller,
|
|
decoration: const InputDecoration(
|
|
label: Text('reason'),
|
|
),
|
|
minLines: 1,
|
|
maxLines: 3,
|
|
),
|
|
actions: [
|
|
TextButton(
|
|
onPressed: () => Navigator.of(context).pop(),
|
|
child: const Text('cancel'),
|
|
),
|
|
TextButton(
|
|
onPressed: controller.text.trim().isEmpty
|
|
? null
|
|
: () => Navigator.of(context).pop(controller.text.trim()),
|
|
child: const Text('report'),
|
|
),
|
|
],
|
|
);
|
|
}
|
|
|
|
static Future<String?> show(BuildContext context) async =>
|
|
showDialog(context: context, builder: (context) => const ReportDialog());
|
|
}
|