buildButtonItems static method

List<ContextMenuButtonItem>? buildButtonItems(
  1. EditableTextState editableTextState
)

Builds the button items for the toolbar based on the available spell check suggestions.

Implementation

static List<ContextMenuButtonItem>? buildButtonItems(
  EditableTextState editableTextState,
) {
  // Determine if composing region is misspelled.
  final SuggestionSpan? spanAtCursorIndex =
    editableTextState.findSuggestionSpanAtCursorIndex(
      editableTextState.currentTextEditingValue.selection.baseOffset,
    );

  if (spanAtCursorIndex == null) {
    return null;
  }
  if (spanAtCursorIndex.suggestions.isEmpty) {
    assert(debugCheckHasCupertinoLocalizations(editableTextState.context));
    final CupertinoLocalizations localizations =
        CupertinoLocalizations.of(editableTextState.context);
    return <ContextMenuButtonItem>[
      ContextMenuButtonItem(
        onPressed: null,
        label: localizations.noSpellCheckReplacementsLabel,
      )
    ];
  }

  final List<ContextMenuButtonItem> buttonItems = <ContextMenuButtonItem>[];

  // Build suggestion buttons.
  for (final String suggestion in spanAtCursorIndex.suggestions.take(_kMaxSuggestions)) {
    buttonItems.add(ContextMenuButtonItem(
      onPressed: () {
        if (!editableTextState.mounted) {
          return;
        }
        _replaceText(
          editableTextState,
          suggestion,
          spanAtCursorIndex.range,
        );
      },
      label: suggestion,
    ));
  }
  return buttonItems;
}