import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:tm_app/core/routes/app_routes.dart'; import 'package:tm_app/view_models/profile_view_model.dart'; import 'package:tm_app/views/shared/tender_app_bar.dart'; import '../../../core/constants/strings.dart'; import '../../../core/theme/colors.dart'; import '../../../core/utils/size_config.dart'; import '../widgets/theme_toggle.dart'; import '../widgets/title_description.dart'; class MobileProfilePage extends StatefulWidget { const MobileProfilePage({super.key}); @override State createState() => _MobileProfilePageState(); } class _MobileProfilePageState extends State { late ProfileViewModel viewModel; @override void initState() { super.initState(); viewModel = context.read(); viewModel.addListener(_profileListener); } void _profileListener() { if (viewModel.errorMessage != null) { ScaffoldMessenger.of(context).showSnackBar( SnackBar( content: Text(viewModel.errorMessage!), backgroundColor: AppColors.red, ), ); } if (viewModel.loggedOut) { LoginScreenRoute().go(context); } } @override void dispose() { viewModel.removeListener(_profileListener); super.dispose(); } @override Widget build(BuildContext context) { return Scaffold( backgroundColor: AppColors.backgroundColor, appBar: tenderMobileAppBar(title: AppStrings.profile), body: Consumer( builder: (context, viewModel, child) { if (viewModel.isLoading) { return Center( child: CircularProgressIndicator(color: AppColors.secondary50), ); } if (viewModel.errorMessage != null) { return Center(child: Text(viewModel.errorMessage!)); } return Padding( padding: EdgeInsets.symmetric( horizontal: 24.0.w(), vertical: 16.0.h(), ), child: Column( children: [ SizedBox(height: 36.0.h()), TitleDescription( title: 'Company Name', description: 'Telecom Solutions GmbH', ), TitleDescription( title: 'National ID', description: '12345678901', ), TitleDescription( title: 'Registration No.', description: 'DE-55667788', ), TitleDescription( title: 'Business Type', description: 'Telecommunications', ), TitleDescription(title: 'Founded', description: '2010'), SizedBox(height: 24.0.h()), // Theme Toggle Container( padding: EdgeInsets.symmetric( horizontal: 16.0.w(), vertical: 12.0.h(), ), decoration: BoxDecoration( color: AppColors.surfaceColor, borderRadius: BorderRadius.circular(8), border: Border.all(color: AppColors.borderColor), ), child: const ThemeToggle(), ), // ElevatedButton( // onPressed: () => viewModel.logout(), // child: const Text('Logout'), // ), SizedBox(height: 24.0.h()), InkWell( onTap: () => viewModel.logout(), child: Container( width: double.infinity, height: 45.0.h(), decoration: BoxDecoration( borderRadius: BorderRadius.circular(8), border: Border.all(color: AppColors.borderColor), ), alignment: Alignment.center, child: Text('Logout'), ), ), ], ), ); }, ), ); } }