import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/theme/stack_colors.dart'; import 'package:stackwallet/utilities/util.dart'; class AppBarIconButton extends StatelessWidget { const AppBarIconButton({ Key? key, required this.icon, required this.onPressed, this.color, // this.circularBorderRadius = 10.0, this.size = 36.0, this.shadows = const [], this.semanticsLabel = "Button", }) : super(key: key); final Widget icon; final VoidCallback? onPressed; final Color? color; // final double circularBorderRadius; final double size; final List shadows; final String semanticsLabel; @override Widget build(BuildContext context) { return Container( height: size, width: size, decoration: BoxDecoration( borderRadius: BorderRadius.circular(1000), color: color ?? Theme.of(context).extension()!.background, boxShadow: shadows, ), child: Semantics( excludeSemantics: true, label: semanticsLabel, child: MaterialButton( splashColor: Theme.of(context).extension()!.highlight, padding: EdgeInsets.zero, materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(1000), ), onPressed: onPressed, child: icon, ), ) ); } } class AppBarBackButton extends StatelessWidget { const AppBarBackButton({ Key? key, this.onPressed, this.isCompact = false, this.size, this.iconSize, this.semanticsLabel = "Back Button. Takes Back To Previous Page.", }) : super(key: key); final VoidCallback? onPressed; final bool isCompact; final double? size; final double? iconSize; final String semanticsLabel; @override Widget build(BuildContext context) { final isDesktop = Util.isDesktop; return Padding( padding: isDesktop ? const EdgeInsets.symmetric( vertical: 20, horizontal: 24, ) : const EdgeInsets.all(10), child: AppBarIconButton( semanticsLabel: semanticsLabel, size: size ?? (isDesktop ? isCompact ? 42 : 56 : 32), color: isDesktop ? Theme.of(context).extension()!.textFieldDefaultBG : Theme.of(context).extension()!.background, shadows: const [], icon: SvgPicture.asset( Assets.svg.arrowLeft, width: iconSize ?? (isCompact ? 18 : 24), height: iconSize ?? (isCompact ? 18 : 24), color: Theme.of(context).extension()!.topNavIconPrimary, ), onPressed: onPressed ?? Navigator.of(context).pop, ) ); } }