
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart';
import 'package:syncrow_app/features/shared_widgets/text_widgets/body_medium.dart';
import 'package:syncrow_app/utils/resource_manager/color_manager.dart';

class SettingWidget extends StatelessWidget {
  final String? text;
  final bool? isUpdate;
  final bool? value;
  final bool? isNotification;
  final String? icon;
  final Function()? onTap;
  final Function()? onTapUpdate;
  final Function(bool)? onChanged;
  const SettingWidget(
      {super.key,
      this.text,
      this.icon,
      this.value,
      this.onTap,
      this.isUpdate,
      this.onChanged,
      this.isNotification = false,
      this.onTapUpdate});

  @override
  Widget build(BuildContext context) {
    return InkWell(
      onTap: onTap,
      child: Row(
        mainAxisAlignment: MainAxisAlignment.spaceBetween,
        children: [
          Expanded(
            child: Row(
              children: [
                Expanded(
                  flex: 2,
                  child: Container(
                    padding: const EdgeInsets.all(8),
                    decoration: const BoxDecoration(
                        color: ColorsManager.primaryColor,
                        borderRadius: BorderRadius.all(Radius.circular(20))),
                    child: SvgPicture.asset(
                      icon!,
                      fit: BoxFit.none,
                      height: 30,
                    ),
                  ),
                ),
                const SizedBox(
                  width: 8,
                ),
                Expanded(
                    flex: isUpdate == true ? 5 : 10,
                    child: BodyMedium(
                      text: text!,
                      fontSize: 15,
                      fontWeight: FontWeight.w400,
                    )),
              ],
            ),
          ),
          isUpdate == true
              ? InkWell(
                  onTap: onTapUpdate,
                  child: const BodyMedium(
                    text: '1 Update Available',
                    fontSize: 13,
                    fontWeight: FontWeight.w400,
                    fontColor: ColorsManager.blueColor,
                  ),
                )
              : const SizedBox(),
          isNotification == false
              ? const Icon(
                  Icons.arrow_forward_ios,
                  color: ColorsManager.graysColor,
                  size: 20,
                )
              : Transform.scale(
                  scale: .8,
                  child: CupertinoSwitch(
                    value: value!,
                    onChanged: onChanged,
                    applyTheme: true,
                  ),
                ),
        ],
      ),
    );
  }
}
