diameter/lib/components/detail.dart

70 lines
2.1 KiB
Dart
Raw Normal View History

import 'package:diameter/localization_keys.dart';
2021-10-22 23:08:09 +00:00
import 'package:flutter/material.dart';
import 'package:flutter_translate/flutter_translate.dart';
2021-10-22 23:08:09 +00:00
class DetailBottomRow extends StatefulWidget {
final void Function()? onCancel;
2022-03-21 00:07:29 +00:00
final void Function()? onAction;
final void Function()? onMiddleAction;
final String actionTextKey;
final String middleActionTextKey;
2022-03-21 00:07:29 +00:00
final IconData actionIcon;
final IconData middleActionIcon;
2021-10-22 23:08:09 +00:00
const DetailBottomRow(
2022-03-21 00:07:29 +00:00
{Key? key,
required this.onCancel,
required this.onAction,
this.onMiddleAction,
this.actionTextKey = LocalizationKeys.general_save,
2022-03-21 00:07:29 +00:00
this.actionIcon = Icons.save,
this.middleActionTextKey = LocalizationKeys.general_saveAndClose,
2022-03-21 00:07:29 +00:00
this.middleActionIcon = Icons.done})
2021-10-22 23:08:09 +00:00
: super(key: key);
@override
_DetailBottomRowState createState() => _DetailBottomRowState();
}
class _DetailBottomRowState<T> extends State<DetailBottomRow> {
@override
Widget build(BuildContext context) {
return BottomAppBar(
child: Padding(
padding: const EdgeInsets.all(10.0),
child: Row(
2022-03-21 00:07:29 +00:00
mainAxisAlignment: MainAxisAlignment.spaceBetween,
2021-10-22 23:08:09 +00:00
children: [
ElevatedButton.icon(
onPressed: widget.onCancel,
icon: const Icon(
Icons.close,
size: 18.0,
),
label: Text(translate(LocalizationKeys.general_cancel).toUpperCase()),
2021-10-22 23:08:09 +00:00
),
2022-03-21 00:07:29 +00:00
widget.onMiddleAction != null
? ElevatedButton.icon(
onPressed: widget.onMiddleAction,
icon: Icon(
widget.middleActionIcon,
size: 18.0,
),
label: Text(translate(widget.middleActionTextKey)),
2022-03-21 00:07:29 +00:00
)
: const Spacer(),
2021-10-22 23:08:09 +00:00
ElevatedButton.icon(
2022-03-21 00:07:29 +00:00
onPressed: widget.onAction,
icon: Icon(
widget.actionIcon,
2021-10-22 23:08:09 +00:00
size: 18.0,
),
label: Text(translate(widget.actionTextKey)),
2021-10-22 23:08:09 +00:00
),
],
),
),
);
}
}