copy method

Future<void> copy({
  1. String? text,
  2. SimpleFileFormat? format,
  3. Uint8List? data,
})

Stores the provided text or data on the Clipboard.

Implementation

Future<void> copy({
  String? text,
  SimpleFileFormat? format,
  Uint8List? data,
}) async {
  if (text != null) {
    await Clipboard.setData(ClipboardData(text: text));
  } else if (data != null && format != null) {
    final clipboard = SystemClipboard.instance;
    if (clipboard == null) {
      return;
    }

    String? extension =
        (format.mimeTypes?.lastOrNull ?? format.fallbackFormats.lastOrNull)
            ?.split('/')
            .last;
    extension ??= '.bin';

    final item = DataWriterItem(
      suggestedName: '${DateTime.now().millisecondsSinceEpoch}.$extension',
    );
    item.add(format(data));
    await clipboard.write([item]);
  }
}