redesigned payment page + a lot of fixes
This commit is contained in:
@@ -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(
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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: [
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 {
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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';
|
||||
|
||||
Reference in New Issue
Block a user