copyTokens method

Future<void> copyTokens()

Implementation

Future<void> copyTokens() async {
  final textToCopy = (hasSelectedItems
          ? items
              .where((LiTokenFieldItemView item) => item.selected)
              .map((LiTokenFieldItemView item) => item.value)
              .toList(growable: false)
          : tokens)
      .join(copySeparator);

  if (textToCopy.trim().isEmpty) {
    return;
  }

  final clipboard = html.window.navigator.clipboard;
  if (clipboard != null) {
    try {
      await clipboard.writeText(textToCopy);
      _copyActionController.add(null);
      return;
    } catch (_) {}
  }

  _fallbackCopyToClipboard(textToCopy);
  _copyActionController.add(null);
}