import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:mohem_flutter_app/classes/colors.dart';
import 'package:mohem_flutter_app/config/routes.dart';
import 'package:mohem_flutter_app/extensions/int_extensions.dart';
import 'package:mohem_flutter_app/extensions/string_extensions.dart';
import 'package:mohem_flutter_app/extensions/widget_extensions.dart';
import 'package:mohem_flutter_app/provider/chat_provider_model.dart';
import 'package:mohem_flutter_app/widgets/circular_avatar.dart';
import 'package:provider/provider.dart';

AppBar AppBarWidget(BuildContext context,
    {required String title,
    bool showHomeButton = true,
    bool showWorkListSettingButton = false,
    bool showMemberButton = false,
    List<Widget>? actions,
    void Function()? onHomeTapped,
    void Function()? onBackTapped}) {
  return AppBar(
    leadingWidth: 0,
    title: Row(
      children: [
        GestureDetector(
          behavior: HitTestBehavior.opaque,
          onTap: Feedback.wrapForTap(() {
            (onBackTapped == null ? Navigator.maybePop(context) : onBackTapped());
          }, context),
          child: const Icon(Icons.arrow_back_ios, color: MyColors.darkIconColor),
        ),
        4.width,
        title.toText24(color: MyColors.darkTextColor, isBold: true).expanded,
      ],
    ),
    centerTitle: false,
    elevation: 0,
    backgroundColor: Colors.white,
    actions: [
      if (showHomeButton)
        IconButton(
          onPressed: () {
            onHomeTapped == null ? Navigator.popUntil(context, ModalRoute.withName(AppRoutes.dashboard)) : onHomeTapped();
          },
          icon: const Icon(Icons.home, color: MyColors.darkIconColor),
        ),
      if (showWorkListSettingButton)
        IconButton(
          onPressed: () {
            Navigator.pushNamed(context, AppRoutes.worklistSettings);
          },
          icon: const Icon(Icons.settings_rounded, color: MyColors.darkIconColor),
        ),
      if (showMemberButton)
        IconButton(
          onPressed: () {
            Navigator.pushNamed(context, AppRoutes.subordinateLeave);
          },
          icon: const Icon(Icons.people, color: MyColors.textMixColor),
        ),
      ...actions ?? []
    ],
  );
}
