/
copy_button.dart
37 lines (34 loc) · 974 Bytes
/
copy_button.dart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import 'package:animate_icons/animate_icons.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
class CopyButton extends StatelessWidget {
final String text;
const CopyButton({required this.text, Key? key}) : super(key: key);
void _saveToClipboard() {
final data = ClipboardData(text: text);
Clipboard.setData(data);
print('Save $text to clipboard');
}
@override
Widget build(BuildContext context) {
return AnimateIcons(
controller: AnimateIconController(),
size: 24.0,
startIcon: Icons.copy,
endIcon: Icons.check,
// add this tooltip for the start icon
startTooltip: 'Copy',
// add this tooltip for the end icon
endTooltip: 'Copied',
onStartIconPress: () {
_saveToClipboard();
return true;
},
onEndIconPress: () {
return true;
},
duration: Duration(milliseconds: 600),
clockwise: true,
);
}
}