/* * This file is part of Stack Wallet. * * Copyright (c) 2023 Cypher Stack * All Rights Reserved. * The code is distributed under GPLv3 license, see LICENSE file for details. * Generated by Cypher Stack on 2023-05-26 * */ import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; import '../../themes/stack_colors.dart'; import '../../utilities/assets.dart'; import '../../utilities/util.dart'; class AppBarIconButton extends StatelessWidget { const AppBarIconButton({ super.key, required this.icon, required this.onPressed, this.color, // this.circularBorderRadius = 10.0, this.size = 36.0, this.shadows = const [], this.semanticsLabel = "Button", }); 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({ super.key, this.onPressed, this.isCompact = false, this.size, this.iconSize, this.semanticsLabel = "Back Button. Takes Back To Previous Page.", }); 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, ), ); } }