import 'package:PiliPlus/utils/feed_back.dart';
import 'package:flutter/material.dart';

class ActionRowLineItem extends StatelessWidget {
  const ActionRowLineItem({
    super.key,
    required this.selectStatus,
    this.onTap,
    this.text,
    this.isLoading = false,
    this.iconData,
    this.icon,
  });
  final bool selectStatus;
  final Function? onTap;
  final bool isLoading;
  final String? text;
  final IconData? iconData;
  final Widget? icon;

  @override
  Widget build(BuildContext context) {
    final theme = Theme.of(context);
    return Material(
      color: selectStatus ? theme.colorScheme.secondaryContainer : null,
      type: selectStatus ? MaterialType.canvas : MaterialType.transparency,
      borderRadius: const BorderRadius.all(Radius.circular(30)),
      child: InkWell(
        borderRadius: const BorderRadius.all(Radius.circular(30)),
        onTap: () => {
          feedBack(),
          onTap?.call(),
        },
        child: Container(
          padding: const EdgeInsets.fromLTRB(13, 5.5, 13, 4.5),
          decoration: BoxDecoration(
            borderRadius: const BorderRadius.all(Radius.circular(30)),
            border: Border.all(
              color: selectStatus
                  ? Colors.transparent
                  : theme.colorScheme.secondaryContainer,
            ),
          ),
          child: Row(
            mainAxisSize: MainAxisSize.min,
            children: [
              if (iconData != null)
                Icon(
                  iconData,
                  size: 13,
                  color: selectStatus
                      ? theme.colorScheme.onSecondaryContainer
                      : theme.colorScheme.outline,
                )
              else
                ?icon,
              AnimatedOpacity(
                opacity: isLoading ? 0 : 1,
                duration: const Duration(milliseconds: 200),
                child: Text(
                  text!,
                  style: TextStyle(
                    fontSize: 13,
                    color: selectStatus
                        ? theme.colorScheme.onSecondaryContainer
                        : theme.colorScheme.outline,
                  ),
                ),
              ),
            ],
          ),
        ),
      ),
    );
  }
}
