import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:go_router/go_router.dart'; import 'package:hoshan/core/routes/route_generator.dart'; import 'package:hoshan/ui/theme/colors.dart'; import 'package:hoshan/ui/theme/responsive.dart'; import 'package:hoshan/ui/theme/text.dart'; class ReversibleAppbar extends StatelessWidget implements PreferredSizeWidget { final Widget? title; final String? titleText; final BuildContext context; const ReversibleAppbar(this.context, {super.key, this.title, this.titleText}); @override Widget build(BuildContext context) { return AppBar( title: Row( mainAxisAlignment: MainAxisAlignment.end, children: [ title ?? Text( titleText ?? '', style: Responsive(context).isMobile() ? AppTextStyles.body3 : AppTextStyles.body1, ), ], ), toolbarHeight: preferredSize.height, automaticallyImplyLeading: false, leadingWidth: 100, leading: GestureDetector( onTap: () { try { context.pop(); } catch (e) { context.go(Routes.main); } }, child: Container( color: Theme.of(context).appBarTheme.backgroundColor, alignment: Alignment.centerLeft, padding: const EdgeInsets.symmetric(horizontal: 16), child: Icon( CupertinoIcons.back, size: Responsive(context).isMobile() ? null : 32, ), ), ), shadowColor: AppColors.black.defaultShade.withValues(alpha: 0.15), elevation: 4, ); } @override Size get preferredSize => Size.fromHeight( kToolbarHeight + (Responsive(context).isMobile() ? 0 : 32)); }