import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:remever/common/resources.dart'; import 'package:remever/common/widgets/typography.dart'; import 'package:remever/common/widgets/wspace.dart'; import 'package:remever/components/extensions/context.dart'; import 'package:remever/gen/assets.gen.dart'; import 'package:remever/screens/settings/cubit/settings_cubit.dart'; import 'package:remever/common/functions.dart'; class ProfileSettingsState extends StatelessWidget { const ProfileSettingsState({super.key}); @override Widget build(BuildContext context) { return Scaffold( backgroundColor: AppColors.bg, appBar: _buildAppBar(context), body: Padding( padding: EdgeInsets.all(16.r), child: Container( width: double.infinity, height: 410.h, decoration: BoxDecoration( color: AppColors.white, borderRadius: BorderRadius.circular(12.r), ), child: Column( children: [ HSpace(32), _buildAvatar(), HSpace(12), _buildInfoLine( context, Assets.icons.settingsName, 'Антон Городецкий', Colors.black, () {}, ), _buildDivider(), _buildInfoLine( context, Assets.icons.settingsMail, 'anton.gorod@gmail.com', Colors.black, () {}, ), _buildDivider(), _buildInfoLine( context, Assets.icons.settingsPhone, '+7 900 123 45 67', Colors.black, () {}, ), _buildDivider(thickness: 3), _buildInfoLine( context, Assets.icons.settingsTrash, 'Удалить профиль', AppColors.danger, () {}, ), ], ), ), ), ); } /// AppBar экрана профиля AppBar _buildAppBar(BuildContext context) { return AppBar( toolbarHeight: 66.h, backgroundColor: AppColors.white, shadowColor: Colors.transparent, centerTitle: true, title: AppTypography('Профиль', type: SemiBold20px()), leading: IconButton( onPressed: () => context.read().toInitialState(), icon: const Icon(CupertinoIcons.left_chevron), color: Colors.black, ), actions: [ IconButton( onPressed: () => showInfoToast('Тут будет выход'), icon: Assets.icons.settingsExit.image(height: 24.h, width: 24.w), color: Colors.black, ), ], ); } /// Аватар пользователя Widget _buildAvatar() { return CircleAvatar( backgroundImage: Assets.images.imgCard.provider(), radius: 82.r, ); } /// Общий элемент информации Widget _buildInfoLine( BuildContext context, AssetGenImage icon, String title, Color color, void Function()? onTap, ) { return GestureDetector( onTap: onTap, child: Padding( padding: EdgeInsets.all(16.r), child: Row( children: [ icon.image(height: 20.h, width: 20.w), WSpace(12), AppTypography(title, type: Medium16px(), color: color), ], ), ), ); } /// Переиспользуемый разделитель Widget _buildDivider({double thickness = 1}) { return Divider(height: 1, thickness: thickness); } }