APP_NEW/lib/Component/AppBar/client_app_bar.dart
2025-03-11 21:17:14 +08:00

70 lines
2.3 KiB
Dart

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:lamiter/Component/circle_avator.dart';
import 'package:lamiter/Component/logo.dart';
import 'package:lamiter/Provider/User/Client/client_provider.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:provider/provider.dart';
class ClientAppBar extends StatelessWidget implements PreferredSizeWidget {
final bool showAccountAvatar;
ClientAppBar({
super.key,
this.showAccountAvatar = true,
});
final height = 45.sp; // musr be greater than logo height
@override
Widget build(BuildContext context) {
final name =
context.select<ClientProvider, String>((provider) => provider.name);
final photo =
context.select<ClientProvider, String?>((provider) => provider.photo);
// final client = context
// .select<ManagerHomeProvider, Client?>((provider) => provider.client);
return AppBar(
toolbarHeight: height,
title: Logo(height: 18.sp),
surfaceTintColor: Colors.transparent,
shadowColor: Colors.black,
actions: showAccountAvatar
? [
Padding(
padding: EdgeInsets.only(right: 12.sp),
child: MyCircleAvator(
name: name,
photo: photo,
radius: 16.sp,
actions: [
CupertinoActionSheetAction(
child: Text(
AppLocalizations.of(context).edit_client_profile),
onPressed: () {
Navigator.pop(context);
context.read<ClientProvider>().edit(context);
},
),
CupertinoActionSheetAction(
isDestructiveAction: true,
onPressed: () {
Navigator.pop(context);
context.read<ClientProvider>().logout(context);
},
child: Text(AppLocalizations.of(context).cancel),
),
],
),
),
]
: [],
);
}
@override
Size get preferredSize => Size.fromHeight(height); // + _dividerHeight);
}