Add ADIconButton

This commit is contained in:
Ashita Prasad
2024-12-10 05:24:39 +05:30
parent 2aaff2ca25
commit 23198529fe
4 changed files with 45 additions and 11 deletions

View File

@ -1,3 +1,4 @@
import 'package:apidash_design_system/apidash_design_system.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:apidash/consts.dart'; import 'package:apidash/consts.dart';
@ -11,13 +12,10 @@ class ClearResponseButton extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return IconButton( return ADIconButton(
tooltip: kTooltipClearResponse, icon: Icons.delete,
onPressed: onPressed, onPressed: onPressed,
icon: const Icon( tooltip: kTooltipClearResponse,
Icons.delete,
size: 16,
),
); );
} }
} }

View File

@ -1,3 +1,4 @@
import 'package:apidash_design_system/apidash_design_system.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:apidash/consts.dart'; import 'package:apidash/consts.dart';
@ -20,7 +21,6 @@ class CopyButton extends StatelessWidget {
Icons.content_copy, Icons.content_copy,
size: 18, size: 18,
); );
const label = kLabelCopy;
onPressed() async { onPressed() async {
await Clipboard.setData(ClipboardData(text: toCopy)); await Clipboard.setData(ClipboardData(text: toCopy));
sm.hideCurrentSnackBar(); sm.hideCurrentSnackBar();
@ -31,14 +31,15 @@ class CopyButton extends StatelessWidget {
? TextButton.icon( ? TextButton.icon(
onPressed: onPressed, onPressed: onPressed,
icon: icon, icon: icon,
label: const Text(label), label: const Text(kLabelCopy),
) )
: IconButton( : ADIconButton(
tooltip: label, icon: Icons.content_copy,
iconSize: 18,
tooltip: kLabelCopy,
color: Theme.of(context).colorScheme.primary, color: Theme.of(context).colorScheme.primary,
visualDensity: VisualDensity.compact, visualDensity: VisualDensity.compact,
onPressed: onPressed, onPressed: onPressed,
icon: icon,
); );
} }
} }

View File

@ -0,0 +1,34 @@
import 'package:flutter/material.dart';
class ADIconButton extends StatelessWidget {
const ADIconButton({
super.key,
required this.icon,
this.iconSize,
this.onPressed,
this.color,
this.visualDensity,
this.tooltip,
});
final IconData icon;
final double? iconSize;
final VoidCallback? onPressed;
final Color? color;
final VisualDensity? visualDensity;
final String? tooltip;
@override
Widget build(BuildContext context) {
return IconButton(
tooltip: tooltip,
icon: Icon(
icon,
size: iconSize ?? 16,
),
color: color,
visualDensity: visualDensity,
onPressed: onPressed,
);
}
}

View File

@ -1,2 +1,3 @@
export 'button_icon.dart';
export 'dropdown.dart'; export 'dropdown.dart';
export 'textfield_outlined.dart'; export 'textfield_outlined.dart';