/* 
 * 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';

class TextFieldIconButton extends StatefulWidget {
  const TextFieldIconButton({
    super.key,
    this.width = 40,
    this.height = 40,
    this.onTap,
    required this.child,
    this.color = Colors.transparent,
    this.semanticsLabel = "Button",
  });

  final double width;
  final double height;
  final VoidCallback? onTap;
  final Widget child;
  final Color color;
  final String semanticsLabel;

  @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,
              ),
            ),
          ),
        ),
      ),
    );
  }
}