import 'package:flutter/material.dart'; import 'package:gap/gap.dart'; import 'package:go_router/go_router.dart'; import 'package:pharmacy_mobile/auth/auth_service.dart'; import 'package:pharmacy_mobile/blocs/guest/functions/bloc_getgueststatus.dart'; import 'package:pharmacy_mobile/functions/getlanguage_function.dart'; import 'package:pharmacy_mobile/widgets/button_widget.dart'; import 'package:pharmacy_mobile/widgets/customer_pagebackground_widget.dart'; import 'package:pharmacy_mobile/widgets/customer_title_widget.dart'; import 'package:pharmacy_mobile/widgets/setting_widget.dart'; import 'package:pharmacy_mobile/widgets/snackbar_widget.dart'; import 'package:pharmacy_mobile/widgets/text_widget.dart'; class CustomerSettingsPage extends StatefulWidget { const CustomerSettingsPage({super.key}); @override State createState() => _CustomerSettingsPageState(); } class _CustomerSettingsPageState extends State { final _authService = AuthService(); late String currentName = ''; late bool _isGuest = false; late String currentLanguage = ''; void _signOut() async { // ignore: use_build_context_synchronously await _authService.signOut().then((_) => {context.go('/'), showNotification(context, 'Logged Out', true)}); } Future _checkGuest() async { final guest = await blocGetGuestStatus(context); return guest; } Future _getUsername() async { final username = _authService.getCurrentUser(); return username ?? ''; } void gotoSettings() async { final changed = await context.push('/languagesetting'); if (changed == true) { setState(() {}); } } void autoRun() async { final guest = await _checkGuest(); if (guest) { _isGuest = guest; } else { currentName = await _getUsername(); } // ignore: use_build_context_synchronously currentLanguage = await getLanguage(context); setState(() {}); } @override void initState() { autoRun(); super.initState(); } @override Widget build(BuildContext context) { return Scaffold( body: CustomerPagebackgroundWidget( child: Column( children: [ Column( children: [ const Gap(68), const CustomerTitleWidget(), const Gap(32), const TextWidget(text: 'Settings'), const Gap(16), SettingWidget( icon: Icons.language, title: 'Language', value: currentLanguage, onPressed: () => gotoSettings()), const Gap(8), SettingWidget( icon: Icons.person, title: 'Display Name', value: _isGuest ? 'Guest' : currentName, ), const Gap(32), ButtonWidget(text: 'Log Out', onPressed: _signOut) ], ) ], ))); } }