You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
car_common_app/lib/widgets/common_widgets/app_bar.dart

159 lines
5.2 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:mc_common_app/classes/consts.dart';
import 'package:mc_common_app/extensions/int_extensions.dart';
import 'package:mc_common_app/extensions/string_extensions.dart';
import 'package:mc_common_app/theme/colors.dart';
import 'package:mc_common_app/widgets/extensions/extensions_widget.dart';
//import 'package:flutter/material.dart';
// import 'package:flutter_svg/flutter_svg.dart';
// import 'package:mc_common_app/classes/consts.dart';
// import 'package:mc_common_app/extensions/int_extensions.dart';
// import 'package:mc_common_app/extensions/string_extensions.dart';
// import 'package:mc_common_app/theme/colors.dart';
// import 'package:mc_common_app/widgets/extensions/extensions_widget.dart';
// import 'package:sizer/sizer.dart';
//
// class CustomAppBar extends StatelessWidget with PreferredSizeWidget {
// final Color? backgroundColor;
// final double? elevation;
// final String? title;
// final Color? titleColor;
// final bool? isTitleCenter;
// final Color? backIconColor;
// final List<Widget>? actions;
// final bool isRemoveBackButton;
//
// const CustomAppBar({
// Key? key,
// this.title,
// required this.isRemoveBackButton,
// this.backgroundColor,
// this.actions,
// this.backIconColor,
// this.elevation,
// this.isTitleCenter,
// this.titleColor,
// }) : super(key: key);
//
// @override
// Widget build(BuildContext context) {
// return AppBar(
// backgroundColor: backgroundColor ?? appBackgroundColor,
// elevation: elevation ?? 0,
// centerTitle: isTitleCenter ?? true,
// leading: isRemoveBackButton
// ? null
// : IconButton(
// icon: const Icon(Icons.arrow_back_ios, color: Colors.black),
// onPressed: () => Navigator.of(context).pop(),
// ),
// iconTheme: IconThemeData(
// color: backIconColor ?? Colors.black, //change your color here
// ),
// actions: actions,
// title: (title ?? "").toText(fontSize: 20, isBold: true),
// );
// }
//
// @override
// Size get preferredSize => const Size.fromHeight(kToolbarHeight);
// }
class CustomAppBar extends StatelessWidget with PreferredSizeWidget {
final Color? backgroundColor;
final double? elevation;
final String? title;
final Color? titleColor;
final bool? isTitleCenter;
final Color? backIconColor;
final List<Widget>? actions;
final bool isRemoveBackButton;
final String profileImageUrl;
final bool isDrawerEnabled;
final VoidCallback? onTap;
final double? leadingWidth;
const CustomAppBar({
Key? key,
this.title,
this.isDrawerEnabled = false,
this.profileImageUrl = "",
this.isRemoveBackButton = false,
this.backgroundColor,
this.actions,
this.backIconColor,
this.elevation,
this.isTitleCenter,
this.titleColor,
this.onTap,
this.leadingWidth,
}) : super(key: key);
@override
Widget build(BuildContext context) {
return Column(
children: [
AppBar(
automaticallyImplyLeading: false,
leadingWidth: leadingWidth ?? 61,
backgroundColor: backgroundColor ?? Colors.white,
elevation: elevation ?? 0,
centerTitle: isTitleCenter ?? true,
leading: isDrawerEnabled
? InkWell(
onTap: onTap,
child: Row(
children: [
Image.asset(
profileImageUrl,
width: 34,
height: 34,
fit: BoxFit.fill,
).toCircle(borderRadius: 100),
10.width,
SvgPicture.asset(MyAssets.dashboardDrawerIcon),
],
).paddingOnly(left: 21),
)
: isRemoveBackButton
? null
: Row(
children: [
21.width,
IconButton(
icon: const Icon(
Icons.arrow_back_ios,
color: Colors.black,
size: 16,
),
onPressed: () => onTap ?? Navigator.of(context).pop(),
).toContainer(
paddingAll: 0,
borderRadius: 100,
borderColor: MyColors.lightGreyEFColor,
isEnabledBorder: true,
height: 40,
width: 40,
),
],
),
iconTheme: IconThemeData(
color: backIconColor ?? Colors.black, //change your color here
),
actions: actions,
title: (title ?? "").toText(fontSize: 20, isBold: true),
),
if (backgroundColor == null)
const Divider(
thickness: 1,
// color: MyColors.lightGreyEFColor,
height: 1)
],
);
}
@override
Size get preferredSize => const Size.fromHeight(60);
}