|
@@ -93,9 +93,9 @@ class _EditFieldButton extends StatelessWidget {
|
|
|
}
|
|
|
|
|
|
class _FieldOperationList extends StatelessWidget {
|
|
|
- final GridFieldCellContext fieldData;
|
|
|
+ final GridFieldCellContext fieldContext;
|
|
|
final VoidCallback onDismissed;
|
|
|
- const _FieldOperationList(this.fieldData, this.onDismissed, {Key? key})
|
|
|
+ const _FieldOperationList(this.fieldContext, this.onDismissed, {Key? key})
|
|
|
: super(key: key);
|
|
|
|
|
|
@override
|
|
@@ -118,14 +118,14 @@ class _FieldOperationList extends StatelessWidget {
|
|
|
bool enable = true;
|
|
|
switch (action) {
|
|
|
case FieldAction.delete:
|
|
|
- enable = !fieldData.field.isPrimary;
|
|
|
+ enable = !fieldContext.field.isPrimary;
|
|
|
break;
|
|
|
default:
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
return FieldActionCell(
|
|
|
- fieldId: fieldData.field.id,
|
|
|
+ fieldContext: fieldContext,
|
|
|
action: action,
|
|
|
onTap: onDismissed,
|
|
|
enable: enable,
|
|
@@ -136,13 +136,13 @@ class _FieldOperationList extends StatelessWidget {
|
|
|
}
|
|
|
|
|
|
class FieldActionCell extends StatelessWidget {
|
|
|
- final String fieldId;
|
|
|
+ final GridFieldCellContext fieldContext;
|
|
|
final VoidCallback onTap;
|
|
|
final FieldAction action;
|
|
|
final bool enable;
|
|
|
|
|
|
const FieldActionCell({
|
|
|
- required this.fieldId,
|
|
|
+ required this.fieldContext,
|
|
|
required this.action,
|
|
|
required this.onTap,
|
|
|
required this.enable,
|
|
@@ -161,7 +161,7 @@ class FieldActionCell extends StatelessWidget {
|
|
|
hoverColor: theme.hover,
|
|
|
onTap: () {
|
|
|
if (enable) {
|
|
|
- action.run(context);
|
|
|
+ action.run(context, fieldContext);
|
|
|
onTap();
|
|
|
}
|
|
|
},
|
|
@@ -202,7 +202,7 @@ extension _FieldActionExtension on FieldAction {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- void run(BuildContext context) {
|
|
|
+ void run(BuildContext context, GridFieldCellContext fieldContext) {
|
|
|
switch (this) {
|
|
|
case FieldAction.hide:
|
|
|
context
|
|
@@ -210,18 +210,24 @@ extension _FieldActionExtension on FieldAction {
|
|
|
.add(const FieldActionSheetEvent.hideField());
|
|
|
break;
|
|
|
case FieldAction.duplicate:
|
|
|
- context
|
|
|
- .read<FieldActionSheetBloc>()
|
|
|
- .add(const FieldActionSheetEvent.duplicateField());
|
|
|
+ PopoverContainer.of(context).close();
|
|
|
+
|
|
|
+ FieldService(
|
|
|
+ gridId: fieldContext.gridId,
|
|
|
+ fieldId: fieldContext.field.id,
|
|
|
+ ).duplicateField();
|
|
|
+
|
|
|
break;
|
|
|
case FieldAction.delete:
|
|
|
PopoverContainer.of(context).close();
|
|
|
+
|
|
|
NavigatorAlertDialog(
|
|
|
title: LocaleKeys.grid_field_deleteFieldPromptMessage.tr(),
|
|
|
confirm: () {
|
|
|
- context
|
|
|
- .read<FieldActionSheetBloc>()
|
|
|
- .add(const FieldActionSheetEvent.deleteField());
|
|
|
+ FieldService(
|
|
|
+ gridId: fieldContext.gridId,
|
|
|
+ fieldId: fieldContext.field.id,
|
|
|
+ ).deleteField();
|
|
|
},
|
|
|
).show(context);
|
|
|
|