stack_wallet/lib/widgets/textfield_icon_button.dart

74 lines
1.7 KiB
Dart
Raw Normal View History

2023-05-26 21:21:16 +00:00
/*
* 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
*
*/
2022-08-26 08:11:35 +00:00
import 'package:flutter/material.dart';
class TextFieldIconButton extends StatefulWidget {
const TextFieldIconButton({
2024-05-27 23:56:22 +00:00
super.key,
2022-08-26 08:11:35 +00:00
this.width = 40,
this.height = 40,
this.onTap,
required this.child,
this.color = Colors.transparent,
this.semanticsLabel = "Button",
2024-05-27 23:56:22 +00:00
});
2022-08-26 08:11:35 +00:00
final double width;
final double height;
final VoidCallback? onTap;
final Widget child;
final Color color;
final String semanticsLabel;
2022-08-26 08:11:35 +00:00
@override
State<TextFieldIconButton> createState() => _TextFieldIconButtonState();
}
class _TextFieldIconButtonState extends State<TextFieldIconButton> {
late final VoidCallback? onTap;
@override
void initState() {
onTap = widget.onTap;
super.initState();
}
@override
Widget build(BuildContext context) {
return SizedBox(
height: widget.height,
width: widget.width,
child: ClipRRect(
borderRadius: BorderRadius.circular(100),
child: Semantics(
label: widget.semanticsLabel,
excludeSemantics: true,
child: RawMaterialButton(
constraints: BoxConstraints(
minWidth: widget.width,
minHeight: widget.height,
),
onPressed: onTap,
child: Container(
width: widget.width,
height: widget.height,
color: widget.color,
child: Center(
child: widget.child,
),
2022-08-26 08:11:35 +00:00
),
),
2024-05-27 23:56:22 +00:00
),
2022-08-26 08:11:35 +00:00
),
);
}
}