From ef4d91a5d81e9fef4217641578017e95c264a1bd Mon Sep 17 00:00:00 2001 From: Username1548 Date: Mon, 11 Aug 2025 20:46:09 +0700 Subject: [PATCH] removed public offert from ui on ios --- .../auth/presentation/pages/auth_screen.dart | 106 +++----- .../presentation/pages/last_step_screen.dart | 46 +--- .../presentation/pages/settings_screen.dart | 248 +++--------------- .../presentation/pages/support_screen.dart | 27 +- 4 files changed, 95 insertions(+), 332 deletions(-) diff --git a/lib/features/auth/presentation/pages/auth_screen.dart b/lib/features/auth/presentation/pages/auth_screen.dart index f5fd7a34..20b0e26c 100644 --- a/lib/features/auth/presentation/pages/auth_screen.dart +++ b/lib/features/auth/presentation/pages/auth_screen.dart @@ -73,10 +73,7 @@ class _AuthScreenState extends State { rethrow; } } - AppRouter.navigatorKey.currentContext?.go( - '/feed-screen', - extra: {'needToInitializeWebSocket': false}, - ); + AppRouter.navigatorKey.currentContext?.go('/feed-screen', extra: {'needToInitializeWebSocket': false}); } @override @@ -102,11 +99,7 @@ class _AuthScreenState extends State { GoRouter.of(context).pushNamed(DevToolsScreen.name); } }, - child: SvgPicture.asset( - ImageConstant.imgLogoEatvio, - height: isFocused ? 64 : MediaQuery.of(context).size.width - 64, - fit: BoxFit.contain, - ), + child: SvgPicture.asset(ImageConstant.imgLogoEatvio, height: isFocused ? 64 : MediaQuery.of(context).size.width - 64, fit: BoxFit.contain), ), ), body: SafeArea( @@ -137,10 +130,7 @@ class _AuthScreenState extends State { hidePassword = !hidePassword; }); }, - icon: Icon( - hidePassword ? Icons.visibility_outlined : Icons.visibility_off_outlined, - color: Colors.grey, - ), + icon: Icon(hidePassword ? Icons.visibility_outlined : Icons.visibility_off_outlined, color: Colors.grey), ), ), const SizedBox(height: 16), @@ -149,11 +139,7 @@ class _AuthScreenState extends State { onTap: () => GoRouter.of(context).goNamed('forgetPasswordScreen', extra: false), child: Text( 'Забыли пароль?', - style: TextStyle( - color: appTheme.blueA400, - decorationColor: appTheme.blueA400, - decoration: TextDecoration.underline, - ), + style: TextStyle(color: appTheme.blueA400, decorationColor: appTheme.blueA400, decoration: TextDecoration.underline), ), ), ), @@ -166,11 +152,7 @@ class _AuthScreenState extends State { onTap: () => GoRouter.of(context).goNamed('registrationScreen'), child: Text( 'Зарегистрироваться', - style: TextStyle( - color: appTheme.blueA400, - decorationColor: appTheme.blueA400, - decoration: TextDecoration.underline, - ), + style: TextStyle(color: appTheme.blueA400, decorationColor: appTheme.blueA400, decoration: TextDecoration.underline), ), ), ], @@ -181,23 +163,22 @@ class _AuthScreenState extends State { textAlign: TextAlign.center, text: TextSpan( text: 'Нажимая "Войти" или "Зарегистрироваться", Вы соглашаетесь \n', - style: const TextStyle( - fontSize: 12, - color: Colors.black, - ), + style: const TextStyle(fontSize: 12, color: Colors.black), children: [ const TextSpan(text: 'c '), - TextSpan( - text: ' Публичной офертой', - style: TextStyle( - fontSize: 12, - color: appTheme.blueA400, - decorationColor: appTheme.blueA400, - decoration: TextDecoration.underline, + if (!hidePlans) ...[ + TextSpan( + text: ' Публичной офертой', + style: TextStyle( + fontSize: 12, + color: appTheme.blueA400, + decorationColor: appTheme.blueA400, + decoration: TextDecoration.underline, + ), + recognizer: TapGestureRecognizer()..onTap = () async => await launchUrl(Uri.parse('$baseUrl/oferta_bs.pdf')), ), - recognizer: TapGestureRecognizer()..onTap = () async => await launchUrl(Uri.parse('$baseUrl/oferta_bs.pdf')), - ), - const TextSpan(text: ' и '), + const TextSpan(text: ' и '), + ], TextSpan( text: 'Политикой конфиденциальности\nи защитой персональных данных', style: TextStyle( @@ -223,17 +204,12 @@ class _AuthScreenState extends State { highlightElevation: 0, elevation: 0, focusElevation: 0, - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(20), - ), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(20)), backgroundColor: state is AuthStateLoading ? Colors.black.withAlpha(50) : appTheme.blueA400, onPressed: state is AuthStateLoading ? null : () async { - final isAuthenticated = await authCubit.getTokenByCredentials( - emailController.text, - passwordController.text, - ); + final isAuthenticated = await authCubit.getTokenByCredentials(emailController.text, passwordController.text); if (isAuthenticated) { if (context.mounted) { _reconnectWebSocket(context); @@ -242,10 +218,7 @@ class _AuthScreenState extends State { }, label: state is AuthStateLoading ? const CupertinoActivityIndicator() - : Text( - 'Войти', - style: theme.textTheme.titleSmall!.copyWith(color: Colors.white), - ), + : Text('Войти', style: theme.textTheme.titleSmall!.copyWith(color: Colors.white)), ), ), const SizedBox(width: 8), @@ -257,9 +230,7 @@ class _AuthScreenState extends State { highlightElevation: 0, elevation: 0, focusElevation: 0, - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(16), - ), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)), backgroundColor: state is AuthStateLoading ? Colors.black.withAlpha(50) : appTheme.blueA400, onPressed: state is AuthStateLoading ? null @@ -274,14 +245,10 @@ class _AuthScreenState extends State { crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.min, children: [ - const Text( - 'Где взять QR-код?\n', - style: TextStyle( - fontSize: 18, - ), - ), + const Text('Где взять QR-код?\n', style: TextStyle(fontSize: 18)), Text( - '1. Войдите на сайте $baseUrl в свой аккаунт\n\n2. Перейдите в настройки профиля\n\n3. В разделе "Доп информация" перейдите на "QR Login"'), + '1. Войдите на сайте $baseUrl в свой аккаунт\n\n2. Перейдите в настройки профиля\n\n3. В разделе "Доп информация" перейдите на "QR Login"', + ), const SizedBox(height: 12), Row( mainAxisAlignment: MainAxisAlignment.end, @@ -293,15 +260,10 @@ class _AuthScreenState extends State { }, child: Ink( padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 8), - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(8), - ), + decoration: BoxDecoration(borderRadius: BorderRadius.circular(8)), child: const Text( 'Отмена', - style: TextStyle( - color: Colors.black, - fontWeight: FontWeight.w400, - ), + style: TextStyle(color: Colors.black, fontWeight: FontWeight.w400), ), ), ), @@ -314,15 +276,10 @@ class _AuthScreenState extends State { }, child: Ink( padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 8), - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(8), - ), + decoration: BoxDecoration(borderRadius: BorderRadius.circular(8)), child: Text( 'Перейти', - style: TextStyle( - color: appTheme.blueA400, - fontWeight: FontWeight.w600, - ), + style: TextStyle(color: appTheme.blueA400, fontWeight: FontWeight.w600), ), ), ), @@ -337,10 +294,7 @@ class _AuthScreenState extends State { }, label: state is AuthStateLoading ? const CupertinoActivityIndicator() - : const Icon( - Icons.qr_code_scanner_rounded, - color: Colors.white, - ), + : const Icon(Icons.qr_code_scanner_rounded, color: Colors.white), ), ), ], diff --git a/lib/features/consultant/become_consultant/presentation/pages/last_step_screen.dart b/lib/features/consultant/become_consultant/presentation/pages/last_step_screen.dart index b5afd001..d44920cb 100644 --- a/lib/features/consultant/become_consultant/presentation/pages/last_step_screen.dart +++ b/lib/features/consultant/become_consultant/presentation/pages/last_step_screen.dart @@ -25,24 +25,16 @@ class _LastStepScreenState extends State { children: [ const Padding( padding: EdgeInsets.symmetric(horizontal: 16), - child: Text( - 'Последний шаг', - style: TextStyle( - fontSize: 24, - fontWeight: FontWeight.w700, - height: 1.1, - ), - ), + child: Text('Последний шаг', style: TextStyle(fontSize: 24, fontWeight: FontWeight.w700, height: 1.1)), ), const SizedBox(height: 16), CheckboxListTile( value: checkboxState, - title: const Text( - 'Я ознакомлен и принимаю договор публичной офёрты', - style: TextStyle( - fontSize: 18, - height: 1, - ), + title: Text( + hidePlans + ? 'Я ознакомлен и принимаю политику конфиденциальности и защиту персональных данных' + : 'Я ознакомлен и принимаю договор публичной офёрты', + style: const TextStyle(fontSize: 18, height: 1), ), onChanged: (_) { setState(() { @@ -53,25 +45,14 @@ class _LastStepScreenState extends State { activeColor: appTheme.blueA400, contentPadding: const EdgeInsets.symmetric(horizontal: 16), ), - Padding( - padding: const EdgeInsets.symmetric( - horizontal: 16, - vertical: 16, - ), - child: _divider(context), - ), + Padding(padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 16), child: _divider(context)), Padding( padding: const EdgeInsets.symmetric(horizontal: 4), child: TextButton( - onPressed: () async => await launchUrl(Uri.parse('$baseUrl/oferta_bs.pdf')), - child: const Text( - 'Договор офёрты', - style: TextStyle( - height: 1, - fontSize: 16, - color: Color(0xFF323F4B), - decoration: TextDecoration.underline, - ), + onPressed: () async => await launchUrl(Uri.parse(hidePlans ? '$baseUrl/docs/privacy.pdf' : '$baseUrl/oferta_bs.pdf')), + child: Text( + hidePlans ? 'Политика конфиденциальности и пользовательское соглашение' : 'Договор офёрты', + style: const TextStyle(height: 1, fontSize: 16, color: Color(0xFF323F4B), decoration: TextDecoration.underline), ), ), ), @@ -84,10 +65,7 @@ class _LastStepScreenState extends State { return Container( height: 0.4, width: MediaQuery.of(context).size.width - 32, - decoration: BoxDecoration( - color: Colors.black26, - borderRadius: BorderRadius.circular(16), - ), + decoration: BoxDecoration(color: Colors.black26, borderRadius: BorderRadius.circular(16)), ); } } diff --git a/lib/features/settings/presentation/pages/settings_screen.dart b/lib/features/settings/presentation/pages/settings_screen.dart index af99f901..0d39d303 100644 --- a/lib/features/settings/presentation/pages/settings_screen.dart +++ b/lib/features/settings/presentation/pages/settings_screen.dart @@ -51,9 +51,7 @@ class _SettingsScreenState extends State { builder: (BuildContext context, SettingsState state) { if (state is SettingsStateLoaded) { return Scaffold( - appBar: AppBar( - title: const Text('Настройки'), - ), + appBar: AppBar(title: const Text('Настройки')), body: SafeArea( child: SingleChildScrollView( padding: const EdgeInsets.symmetric(vertical: 16), @@ -64,8 +62,7 @@ class _SettingsScreenState extends State { const SizedBox(height: 12), _notifications(state), const SizedBox(height: 12), - _aboutEatvio(state), - const SizedBox(height: 12), + if (!hidePlans) ...[_aboutEatvio(state), const SizedBox(height: 12)], _becomeConsultantButton(state), _deleteAccountButton(state, settingsCubit), ], @@ -76,16 +73,12 @@ class _SettingsScreenState extends State { } if (state is SettingsStateError) { return Scaffold( - appBar: AppBar( - title: const Text('Настройки'), - ), + appBar: AppBar(title: const Text('Настройки')), body: DataErrorWidget(onReload: () => settingsCubit.init()), ); } return Scaffold( - appBar: AppBar( - title: const Text('Настройки'), - ), + appBar: AppBar(title: const Text('Настройки')), body: const Loader(), ); }, @@ -101,22 +94,13 @@ class _SettingsScreenState extends State { padding: EdgeInsets.symmetric(horizontal: 16), child: Text( 'Дополнительаная информация', - style: TextStyle( - fontSize: 16, - height: 1, - color: Colors.grey, - fontFamily: 'Mulish', - ), + style: TextStyle(fontSize: 16, height: 1, color: Colors.grey, fontFamily: 'Mulish'), ), ), _tile( onTap: () => GoRouter.of(context).pushNamed( 'generalInfoScreen', - extra: SettingsEntity( - profileSettingsModel: state.profileSettings, - profileDetailsModel: state.profileDetails, - settingsCubit: settingsCubit, - ), + extra: SettingsEntity(profileSettingsModel: state.profileSettings, profileDetailsModel: state.profileDetails, settingsCubit: settingsCubit), ), title: 'Общая информация', ), @@ -124,11 +108,7 @@ class _SettingsScreenState extends State { _tile( onTap: () => GoRouter.of(context).pushNamed( 'physicalFormScreen', - extra: SettingsEntity( - profileSettingsModel: state.profileSettings, - profileDetailsModel: state.profileDetails, - settingsCubit: settingsCubit, - ), + extra: SettingsEntity(profileSettingsModel: state.profileSettings, profileDetailsModel: state.profileDetails, settingsCubit: settingsCubit), ), title: 'Физическая форма', ), @@ -136,11 +116,7 @@ class _SettingsScreenState extends State { _tile( onTap: () => GoRouter.of(context).pushNamed( 'pressureScreen', - extra: SettingsEntity( - profileSettingsModel: state.profileSettings, - profileDetailsModel: state.profileDetails, - settingsCubit: settingsCubit, - ), + extra: SettingsEntity(profileSettingsModel: state.profileSettings, profileDetailsModel: state.profileDetails, settingsCubit: settingsCubit), ), title: 'Давление', ), @@ -148,11 +124,7 @@ class _SettingsScreenState extends State { _tile( onTap: () => GoRouter.of(context).pushNamed( 'otherInfoScreen', - extra: SettingsEntity( - profileSettingsModel: state.profileSettings, - profileDetailsModel: state.profileDetails, - settingsCubit: settingsCubit, - ), + extra: SettingsEntity(profileSettingsModel: state.profileSettings, profileDetailsModel: state.profileDetails, settingsCubit: settingsCubit), ), title: 'Прочая информация', ), @@ -160,31 +132,17 @@ class _SettingsScreenState extends State { _tile( onTap: () => GoRouter.of(context).pushNamed( 'physicalActivityScreen', - extra: SettingsEntity( - profileSettingsModel: state.profileSettings, - profileDetailsModel: state.profileDetails, - settingsCubit: settingsCubit, - ), + extra: SettingsEntity(profileSettingsModel: state.profileSettings, profileDetailsModel: state.profileDetails, settingsCubit: settingsCubit), ), title: 'Физическая нагрузка', ), _divider(context), - _tile( - onTap: () => GoRouter.of(context).pushNamed( - 'forgetPasswordScreen', - extra: true, - ), - title: 'Сменить пароль', - ), + _tile(onTap: () => GoRouter.of(context).pushNamed('forgetPasswordScreen', extra: true), title: 'Сменить пароль'), _divider(context), _tile( onTap: () => GoRouter.of(context).pushNamed( 'changeEmailScreen', - extra: SettingsEntity( - profileSettingsModel: state.profileSettings, - profileDetailsModel: state.profileDetails, - settingsCubit: settingsCubit, - ), + extra: SettingsEntity(profileSettingsModel: state.profileSettings, profileDetailsModel: state.profileDetails, settingsCubit: settingsCubit), ), title: 'Сменить Email', ), @@ -198,14 +156,7 @@ class _SettingsScreenState extends State { children: [ const Padding( padding: EdgeInsets.symmetric(horizontal: 16), - child: Text( - 'Уведомления', - style: TextStyle( - fontSize: 16, - height: 1, - color: Colors.grey, - ), - ), + child: Text('Уведомления', style: TextStyle(fontSize: 16, height: 1, color: Colors.grey)), ), _tile( padding: const EdgeInsets.symmetric(horizontal: 16), @@ -213,11 +164,7 @@ class _SettingsScreenState extends State { setState(() { updatesNotificationsSwitchState = !updatesNotificationsSwitchState; }); - settingsCubit.updateProfileSettings( - profileSettingsModel: state.profileSettings.copyWith( - newUpdatesNotifications: updatesNotificationsSwitchState, - ), - ); + settingsCubit.updateProfileSettings(profileSettingsModel: state.profileSettings.copyWith(newUpdatesNotifications: updatesNotificationsSwitchState)); }, title: 'Уведомление о новых обновлениях', trailing: CupertinoSwitch( @@ -228,9 +175,7 @@ class _SettingsScreenState extends State { updatesNotificationsSwitchState = newValue; }); settingsCubit.updateProfileSettings( - profileSettingsModel: state.profileSettings.copyWith( - newUpdatesNotifications: updatesNotificationsSwitchState, - ), + profileSettingsModel: state.profileSettings.copyWith(newUpdatesNotifications: updatesNotificationsSwitchState), ); }, ), @@ -243,9 +188,7 @@ class _SettingsScreenState extends State { fillDiaryNotificationsSwitchState = !fillDiaryNotificationsSwitchState; }); settingsCubit.updateProfileSettings( - profileSettingsModel: state.profileSettings.copyWith( - diaryReminderNotifications: fillDiaryNotificationsSwitchState, - ), + profileSettingsModel: state.profileSettings.copyWith(diaryReminderNotifications: fillDiaryNotificationsSwitchState), ); }, title: 'Напоминание о заполнении дневника', @@ -257,9 +200,7 @@ class _SettingsScreenState extends State { fillDiaryNotificationsSwitchState = newValue; }); settingsCubit.updateProfileSettings( - profileSettingsModel: state.profileSettings.copyWith( - diaryReminderNotifications: fillDiaryNotificationsSwitchState, - ), + profileSettingsModel: state.profileSettings.copyWith(diaryReminderNotifications: fillDiaryNotificationsSwitchState), ); }, ), @@ -271,11 +212,7 @@ class _SettingsScreenState extends State { setState(() { moodSwitchState = !moodSwitchState; }); - settingsCubit.updateProfileSettings( - profileSettingsModel: state.profileSettings.copyWith( - isMoodFillable: moodSwitchState, - ), - ); + settingsCubit.updateProfileSettings(profileSettingsModel: state.profileSettings.copyWith(isMoodFillable: moodSwitchState)); }, title: 'Указывать “настроение” в заполнение дневника', trailing: CupertinoSwitch( @@ -285,11 +222,7 @@ class _SettingsScreenState extends State { setState(() { moodSwitchState = newValue; }); - settingsCubit.updateProfileSettings( - profileSettingsModel: state.profileSettings.copyWith( - isMoodFillable: moodSwitchState, - ), - ); + settingsCubit.updateProfileSettings(profileSettingsModel: state.profileSettings.copyWith(isMoodFillable: moodSwitchState)); }, ), ), @@ -300,11 +233,7 @@ class _SettingsScreenState extends State { setState(() { bedTimeSwitchState = !bedTimeSwitchState; }); - settingsCubit.updateProfileSettings( - profileSettingsModel: state.profileSettings.copyWith( - isBedtimeFillable: bedTimeSwitchState, - ), - ); + settingsCubit.updateProfileSettings(profileSettingsModel: state.profileSettings.copyWith(isBedtimeFillable: bedTimeSwitchState)); }, title: 'Указывать “отход ко сну” в заполнение дневника', trailing: CupertinoSwitch( @@ -314,11 +243,7 @@ class _SettingsScreenState extends State { setState(() { bedTimeSwitchState = newValue; }); - settingsCubit.updateProfileSettings( - profileSettingsModel: state.profileSettings.copyWith( - isBedtimeFillable: bedTimeSwitchState, - ), - ); + settingsCubit.updateProfileSettings(profileSettingsModel: state.profileSettings.copyWith(isBedtimeFillable: bedTimeSwitchState)); }, ), ), @@ -332,24 +257,11 @@ class _SettingsScreenState extends State { children: [ const Padding( padding: EdgeInsets.symmetric(horizontal: 16), - child: Text( - 'О Eatvio', - style: TextStyle( - fontSize: 16, - height: 1, - color: Colors.grey, - ), - ), - ), - _tile( - title: 'О компании', - onTap: () async => await launchUrl(Uri.parse('$baseUrl/ru/company-details')), + child: Text('О Eatvio', style: TextStyle(fontSize: 16, height: 1, color: Colors.grey)), ), + _tile(title: 'О компании', onTap: () async => await launchUrl(Uri.parse('$baseUrl/ru/company-details'))), _divider(context), - _tile( - title: 'Пользовательское соглашение', - onTap: () async => await launchUrl(Uri.parse('$baseUrl/oferta_bs.pdf')), - ), + _tile(title: 'Пользовательское соглашение', onTap: () async => await launchUrl(Uri.parse('$baseUrl/oferta_bs.pdf'))), ], ); } @@ -364,19 +276,9 @@ class _SettingsScreenState extends State { child: Ink( height: 52, width: MediaQuery.of(context).size.width - 16, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(20), - color: appTheme.blueA400, - ), + decoration: BoxDecoration(borderRadius: BorderRadius.circular(20), color: appTheme.blueA400), child: const Center( - child: Text( - 'Стать консультантом', - style: TextStyle( - color: Colors.white, - height: 1, - fontSize: 18, - ), - ), + child: Text('Стать консультантом', style: TextStyle(color: Colors.white, height: 1, fontSize: 18)), ), ), ), @@ -388,19 +290,9 @@ class _SettingsScreenState extends State { child: Ink( height: 52, width: MediaQuery.of(context).size.width - 16, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(20), - color: const Color(0xFFEAEAEA), - ), + decoration: BoxDecoration(borderRadius: BorderRadius.circular(20), color: const Color(0xFFEAEAEA)), child: const Center( - child: Text( - 'Данные на проверке', - style: TextStyle( - color: Colors.black, - height: 1, - fontSize: 18, - ), - ), + child: Text('Данные на проверке', style: TextStyle(color: Colors.black, height: 1, fontSize: 18)), ), ), ); @@ -413,19 +305,9 @@ class _SettingsScreenState extends State { child: Ink( height: 52, width: MediaQuery.of(context).size.width - 16, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(20), - color: const Color(0x33FFCC00), - ), + decoration: BoxDecoration(borderRadius: BorderRadius.circular(20), color: const Color(0x33FFCC00)), child: const Center( - child: Text( - 'Заявка обработана', - style: TextStyle( - color: Colors.black, - height: 1, - fontSize: 18, - ), - ), + child: Text('Заявка обработана', style: TextStyle(color: Colors.black, height: 1, fontSize: 18)), ), ), ), @@ -444,57 +326,28 @@ class _SettingsScreenState extends State { userRootNavigator: true, context: context, height: null, - child: DeleteAccountBottomSheet( - cubit: settingsCubit, - ), + child: DeleteAccountBottomSheet(cubit: settingsCubit), ); }, borderRadius: BorderRadius.circular(20), child: Ink( height: 52, width: MediaQuery.of(context).size.width - 16, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(20), - color: const Color(0xFFEAEAEA), - ), + decoration: BoxDecoration(borderRadius: BorderRadius.circular(20), color: const Color(0xFFEAEAEA)), child: const Center( - child: Text( - 'Удалить аккаунт', - style: TextStyle( - color: Colors.black, - height: 1, - fontSize: 18, - ), - ), + child: Text('Удалить аккаунт', style: TextStyle(color: Colors.black, height: 1, fontSize: 18)), ), ), ), ); } - ListTile _tile({ - required String title, - required Function() onTap, - Widget? trailing, - EdgeInsets? padding, - }) { + ListTile _tile({required String title, required Function() onTap, Widget? trailing, EdgeInsets? padding}) { return ListTile( contentPadding: padding, onTap: onTap, - title: Text( - title, - style: const TextStyle( - fontSize: 16, - fontWeight: FontWeight.w500, - height: 1, - ), - ), - trailing: trailing ?? - const Icon( - Icons.arrow_forward_ios_rounded, - size: 12, - color: Colors.black38, - ), + title: Text(title, style: const TextStyle(fontSize: 16, fontWeight: FontWeight.w500, height: 1)), + trailing: trailing ?? const Icon(Icons.arrow_forward_ios_rounded, size: 12, color: Colors.black38), ); } @@ -503,10 +356,7 @@ class _SettingsScreenState extends State { child: Container( height: 0.4, width: MediaQuery.of(context).size.width - 32, - decoration: BoxDecoration( - color: Colors.black26, - borderRadius: BorderRadius.circular(16), - ), + decoration: BoxDecoration(color: Colors.black26, borderRadius: BorderRadius.circular(16)), ), ); } @@ -530,33 +380,23 @@ class _DeleteAccountBottomSheet extends State { child: Column( mainAxisSize: MainAxisSize.min, children: [ - const SizedBox( - height: 8, - ), + const SizedBox(height: 8), const BottomSheetHandlerBar(), - const SizedBox( - height: 20, - ), + const SizedBox(height: 20), Text(s.accountDeleting, style: TextStyles.headingXLSemibold.copyWith(color: appTheme.black)), - const SizedBox( - height: 16, - ), + const SizedBox(height: 16), Text( s.youShureYouWantToDeleteAccount, style: TextStyles.textSMedium.copyWith(color: appTheme.black), textAlign: TextAlign.center, ), - const SizedBox( - height: 8, - ), + const SizedBox(height: 8), Text( s.itCantBeRecovered, style: TextStyles.textSMedium.copyWith(color: appTheme.black), textAlign: TextAlign.center, ), - const SizedBox( - height: 8, - ), + const SizedBox(height: 8), CustomOutlinedButton( text: s.delete, height: 52, @@ -573,9 +413,7 @@ class _DeleteAccountBottomSheet extends State { showErrorDialog(context, description: s.cannotDeleteAccount); }, ), - const SizedBox( - height: 40, - ), + const SizedBox(height: 40), ], ), ); diff --git a/lib/features/support/presentation/pages/support_screen.dart b/lib/features/support/presentation/pages/support_screen.dart index c6f7719a..1fc70bb0 100644 --- a/lib/features/support/presentation/pages/support_screen.dart +++ b/lib/features/support/presentation/pages/support_screen.dart @@ -69,24 +69,17 @@ class SupportScreen extends StatelessWidget { child: Text('Правовые документы', style: TextStyle(fontSize: 20, fontWeight: FontWeight.w500)), ), const SizedBox(height: 12), - InkWell( - onTap: () async => await launchUrl(Uri.parse('$baseUrl/docs/public_offer.pdf')), - borderRadius: BorderRadius.circular(16), - child: const Padding( - padding: EdgeInsets.symmetric(horizontal: 16, vertical: 4), - child: Text('Публичная офёрта', style: TextStyle(fontSize: 16)), + if (!hidePlans) ...[ + InkWell( + onTap: () async => await launchUrl(Uri.parse('$baseUrl/docs/privacy.pdf')), + borderRadius: BorderRadius.circular(16), + child: const Padding( + padding: EdgeInsets.symmetric(horizontal: 16, vertical: 4), + child: Text('Политика конфиденциальности', style: TextStyle(fontSize: 16)), + ), ), - ), - const SizedBox(height: 8), - InkWell( - onTap: () async => await launchUrl(Uri.parse('$baseUrl/docs/privacy.pdf')), - borderRadius: BorderRadius.circular(16), - child: const Padding( - padding: EdgeInsets.symmetric(horizontal: 16, vertical: 4), - child: Text('Политика конфиденциальности', style: TextStyle(fontSize: 16)), - ), - ), - const SizedBox(height: 8), + const SizedBox(height: 8), + ], InkWell( onTap: () async => await launchUrl(Uri.parse('$baseUrl/company-details')), borderRadius: BorderRadius.circular(16),