getDefaultItems static method

List<IOSSystemContextMenuItem> getDefaultItems(
  1. EditableTextState editableTextState
)

The default items for the given EditableTextState.

For example, IOSSystemContextMenuItemCopy will only be included when the field represented by the EditableTextState has a selection.

See also:

Implementation

static List<IOSSystemContextMenuItem> getDefaultItems(EditableTextState editableTextState) {
  final items = <IOSSystemContextMenuItem>[];

  // Use the generic Flutter-rendered context menu model as the single source of truth.
  for (final ContextMenuButtonItem button in editableTextState.contextMenuButtonItems) {
    switch (button.type) {
      case ContextMenuButtonType.copy:
        items.add(const IOSSystemContextMenuItemCopy());
      case ContextMenuButtonType.cut:
        items.add(const IOSSystemContextMenuItemCut());
      case ContextMenuButtonType.paste:
        items.add(const IOSSystemContextMenuItemPaste());
      case ContextMenuButtonType.selectAll:
        items.add(const IOSSystemContextMenuItemSelectAll());
      case ContextMenuButtonType.lookUp:
        items.add(const IOSSystemContextMenuItemLookUp());
      case ContextMenuButtonType.searchWeb:
        items.add(const IOSSystemContextMenuItemSearchWeb());
      case ContextMenuButtonType.share:
        items.add(const IOSSystemContextMenuItemShare());
      case ContextMenuButtonType.liveTextInput:
        items.add(const IOSSystemContextMenuItemLiveText());
      case ContextMenuButtonType.delete:
      // No native iOS system menu button for Delete — intentionally ignored.
      case ContextMenuButtonType.custom:
      // Custom items are provided explicitly via SystemContextMenu.items,
      // not via defaults. Intentionally ignore in default mapping.
    }
  }

  return items;
}