import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; import 'package:niogu_app/core/constants/app_color.dart'; import 'package:niogu_app/core/constants/app_font_size.dart'; import 'package:niogu_app/core/components/modal_outlet_bottom.dart'; import 'package:niogu_app/core/utils/time_zone.dart'; import 'package:niogu_app/core/enums/user_role.dart'; import 'package:sizer/sizer.dart'; class InformationHeader extends StatelessWidget { final String? currentUserName; final String? currentOutletName; final UserRole? currentUserRole; const InformationHeader({ super.key, this.currentUserName, this.currentOutletName, this.currentUserRole, }); @override Widget build(BuildContext context) { return Container( padding: EdgeInsets.symmetric(horizontal: 4.w, vertical: 1.5.h), decoration: BoxDecoration( color: AppColor.primaryColor.withOpacity(0.05), border: Border(bottom: BorderSide(color: Colors.grey.shade200)), ), child: Row( children: [ Container( padding: EdgeInsets.all(2.w), decoration: BoxDecoration( color: Colors.white, shape: BoxShape.circle, border: Border.all(color: Colors.grey.shade200), ), child: Icon( Icons.store_mall_directory_rounded, color: AppColor.primaryColor, size: 5.w, ), ), SizedBox(width: 3.w), Expanded( child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ InkWell( onTap: currentUserRole == UserRole.admin ? null : () { showModalBottomSheet( context: context, useRootNavigator: true, isScrollControlled: true, constraints: const BoxConstraints( maxWidth: double.infinity, ), builder: (context) => const ModalOutletBottom(), ); }, child: Row( mainAxisSize: MainAxisSize.min, children: [ Text( currentOutletName ?? "Tidak ada outlet", style: TextStyle( fontWeight: FontWeight.bold, fontSize: AppFontSize.small.sp, color: AppColor.primaryColor, ), ), if (currentUserRole == UserRole.owner) Icon( Icons.keyboard_arrow_down_rounded, color: AppColor.primaryColor, size: 5.w, ), ], ), ), SizedBox(height: 0.2.h), Row( children: [ Icon(Icons.person, color: Colors.grey, size: 3.w), SizedBox(width: 1.w), Text( "Kasir: ${currentUserName ?? '-'}", style: TextStyle( fontSize: AppFontSize.small.sp, color: Colors.grey[600], fontWeight: FontWeight.w500, ), ), ], ), ], ), ), Column( crossAxisAlignment: CrossAxisAlignment.end, children: [ Text( DateFormat('dd MMMM yyyy').format(DateTime.now()), style: TextStyle( fontSize: AppFontSize.small.sp, fontWeight: FontWeight.bold, color: Colors.grey[700], ), ), StreamBuilder( stream: Stream.periodic(const Duration(seconds: 1)), builder: (context, snapshot) { return Text( "${DateFormat('HH:mm:ss').format(DateTime.now())} ${TimeZone.getCurrentTimeZone()}", style: TextStyle( fontSize: AppFontSize.small.sp, color: Colors.grey[600], ), ); }, ), ], ), ], ), ); } }