mediumEditor<M> function

MenuButton mediumEditor<M>({
  1. required BuildContext context,
  2. required String format,
  3. required String? value,
  4. ValueChanged<String>? onChanged,
  5. bool enabled = true,
  6. String? unavailableReason,
})

Implementation

MenuButton mediumEditor<M>({
  required BuildContext context,
  required String format,
  required String? value,
  ValueChanged<String>? onChanged,
  bool enabled = true,
  String? unavailableReason,
}) => MenuButton(
  enabled: enabled && value != null,
  child: Text(format),
  onPressed: () {
    if (value == null) {
      TextToast(
        unavailableReason ?? '$format is unavailable for the current data.',
      ).open(context);
      return;
    }

    if (onChanged == null) {
      ManifoldCodeEditor(
        language: format.toLowerCase(),
        initialCode: value,
      ).open(context);
      return;
    }

    ManifoldCodeEditor(
      language: format.toLowerCase(),
      initialCode: value,
      onCodeChanged: (j) {
        try {
          onChanged(j);
        } catch (e, es) {
          error(e);
          error(es);
          TextToast('Error parsing $format: $e').open(context);
        }
      },
    ).open(context);
  },
);