redesigned payment page + a lot of fixes

This commit is contained in:
Arseni
2026-02-21 21:55:20 +03:00
parent a68aa2abff
commit 0c6fa03aba
208 changed files with 4062 additions and 2217 deletions

View File

@@ -1,13 +1,9 @@
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:pshared/provider/locale.dart';
import 'package:pweb/services/posthog.dart';
import 'package:pweb/generated/i18n/app_localizations.dart';
@@ -60,7 +56,6 @@ class LocalePicker extends StatelessWidget {
onChanged: (locale) {
if (locale != null) {
localeProvider.setLocale(locale);
unawaited(PosthogService.localeChanged(locale));
}
},
decoration: const InputDecoration(

View File

@@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:pweb/providers/account_name.dart';
import 'package:pweb/controllers/auth/account_name.dart';
class AccountNameActions extends StatelessWidget {
@@ -10,7 +10,7 @@ class AccountNameActions extends StatelessWidget {
@override
Widget build(BuildContext context) {
final state = context.watch<AccountNameState>();
final state = context.watch<AccountNameController>();
final theme = Theme.of(context);
if (state.isEditing) {

View File

@@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import 'package:pweb/providers/account_name.dart';
import 'package:pweb/controllers/auth/account_name.dart';
class AccountNameEditingFields extends StatelessWidget {
@@ -17,7 +17,7 @@ class AccountNameEditingFields extends StatelessWidget {
final String lastNameHint;
final double inputWidth;
final double borderWidth;
final AccountNameState state;
final AccountNameController state;
@override
Widget build(BuildContext context) {

View File

@@ -4,8 +4,8 @@ import 'package:provider/provider.dart';
import 'package:pshared/provider/account.dart';
import 'package:pweb/controllers/auth/account_name.dart';
import 'package:pweb/pages/settings/profile/account/name/actions.dart';
import 'package:pweb/providers/account_name.dart';
import 'package:pweb/pages/settings/profile/account/name/text.dart';
@@ -36,13 +36,14 @@ class AccountName extends StatelessWidget {
@override
Widget build(BuildContext context) {
return ChangeNotifierProvider(
create: (ctx) => AccountNameState(
return ChangeNotifierProxyProvider<AccountProvider, AccountNameController>(
create: (_) => AccountNameController(
initialFirstName: firstName,
initialLastName: lastName,
errorMessage: errorText,
accountProvider: ctx.read<AccountProvider>(),
),
update: (_, accountProvider, controller) =>
controller!..update(accountProvider),
child: _AccountNameBody(
hintText: hintText,
lastNameHint: lastNameHint,
@@ -62,14 +63,9 @@ class _AccountNameBody extends StatelessWidget {
@override
Widget build(BuildContext context) {
final state = context.watch<AccountNameState>();
final provider = context.watch<AccountProvider>();
final state = context.watch<AccountNameController>();
final theme = Theme.of(context);
final currentFirstName = provider.account?.name ?? state.initialFirstName;
final currentLastName = provider.account?.lastName ?? state.initialLastName;
state.syncNames(currentFirstName, currentLastName);
return Column(
mainAxisSize: MainAxisSize.min,
children: [

View File

@@ -2,9 +2,9 @@ import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:pweb/controllers/auth/account_name.dart';
import 'package:pweb/pages/settings/profile/account/name/editing.dart';
import 'package:pweb/pages/settings/profile/account/name/text_view.dart';
import 'package:pweb/providers/account_name.dart';
class AccountNameText extends StatelessWidget {
@@ -23,7 +23,7 @@ class AccountNameText extends StatelessWidget {
@override
Widget build(BuildContext context) {
final state = context.watch<AccountNameState>();
final state = context.watch<AccountNameController>();
if (state.isEditing) {
return AccountNameEditingFields(

View File

@@ -4,8 +4,8 @@ import 'package:provider/provider.dart';
import 'package:pshared/provider/account.dart';
import 'package:pweb/controllers/auth/password_form.dart';
import 'package:pweb/pages/settings/profile/account/password/form/form.dart';
import 'package:pweb/providers/password_form.dart';
import 'package:pweb/generated/i18n/app_localizations.dart';
@@ -35,7 +35,7 @@ class AccountPasswordContent extends StatelessWidget {
Widget build(BuildContext context) {
final theme = Theme.of(context);
return Consumer2<AccountProvider, PasswordFormProvider>(
return Consumer2<AccountProvider, PasswordFormController>(
builder: (context, accountProvider, formProvider, _) {
final isBusy = accountProvider.isLoading || formProvider.isSaving;

View File

@@ -4,8 +4,8 @@ import 'package:pshared/provider/account.dart';
import 'package:pshared/widgets/password/fields.dart';
import 'package:pshared/utils/snackbar.dart';
import 'package:pweb/models/password_field_type.dart';
import 'package:pweb/providers/password_form.dart';
import 'package:pweb/models/auth/password_field_type.dart';
import 'package:pweb/controllers/auth/password_form.dart';
import 'package:pweb/pages/settings/profile/account/password/form/error_text.dart';
import 'package:pweb/pages/settings/profile/account/password/form/submit_button.dart';
import 'package:pweb/utils/error/snackbar.dart';
@@ -32,7 +32,7 @@ class PasswordForm extends StatelessWidget {
static const double _gapMedium = 12;
static const double _gapSmall = 8;
final PasswordFormProvider formProvider;
final PasswordFormController formProvider;
final AccountProvider accountProvider;
final bool isBusy;
final String oldPasswordLabel;

View File

@@ -2,8 +2,8 @@ import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:pweb/controllers/auth/password_form.dart';
import 'package:pweb/pages/settings/profile/account/password/content.dart';
import 'package:pweb/providers/password_form.dart';
import 'package:pweb/generated/i18n/app_localizations.dart';
@@ -33,7 +33,7 @@ class AccountPassword extends StatelessWidget {
final loc = AppLocalizations.of(context)!;
return ChangeNotifierProvider(
create: (_) => PasswordFormProvider(),
create: (_) => PasswordFormController(),
child: AccountPasswordContent(
title: title,
successText: successText,
@@ -46,4 +46,4 @@ class AccountPassword extends StatelessWidget {
),
);
}
}
}

View File

@@ -4,7 +4,7 @@ import 'package:provider/provider.dart';
import 'package:flutter_settings_ui/flutter_settings_ui.dart';
import 'package:pweb/models/edit_state.dart';
import 'package:pweb/models/state/edit_state.dart';
import 'package:pweb/utils/error/snackbar.dart';
import 'package:pweb/generated/i18n/app_localizations.dart';