diff --git a/lib/ui/app/menu_drawer.dart b/lib/ui/app/menu_drawer.dart index d9a4afc9f..d22e3330c 100644 --- a/lib/ui/app/menu_drawer.dart +++ b/lib/ui/app/menu_drawer.dart @@ -378,7 +378,8 @@ class _MenuDrawerState extends State { onTap: () => launch(kDebugModeUrl), ), ), - if (!state.account.accountSmsVerified) + if (!state.account.accountSmsVerified && + state.isHosted) if (state.isMenuCollapsed) Tooltip( message: localization.verifyPhoneHelp, diff --git a/lib/ui/settings/user_details.dart b/lib/ui/settings/user_details.dart index 03ac855bc..88ee45f1e 100644 --- a/lib/ui/settings/user_details.dart +++ b/lib/ui/settings/user_details.dart @@ -120,11 +120,16 @@ class _UserDetailsState extends State } void _onChanged() { + var phone = _phoneController.text.trim(); + if (!phone.startsWith('+')) { + phone = '+$phone'; + } + final user = widget.viewModel.user.rebuild((b) => b ..firstName = _firstNameController.text.trim() ..lastName = _lastNameController.text.trim() ..email = _emailController.text.trim() - ..phone = _phoneController.text.trim() + ..phone = phone ..password = _passwordController.text.trim()); if (user != widget.viewModel.user) { _debouncer.run(() { @@ -135,7 +140,6 @@ class _UserDetailsState extends State void _onSavePressed(BuildContext context) { final bool isValid = _formKey.currentState.validate(); - print('## onSavePressed: $isValid'); setState(() { autoValidate = !isValid ?? false; @@ -336,6 +340,10 @@ class _UserDetailsState extends State keyboardType: TextInputType.phone, hint: '+12125550000', validator: (value) { + if (value.isEmpty || state.isSelfHosted) { + return null; + } + if (!value.startsWith('+')) { value = '+$value'; } diff --git a/lib/ui/settings/user_details_vm.dart b/lib/ui/settings/user_details_vm.dart index c27e83b9f..da85eb66c 100644 --- a/lib/ui/settings/user_details_vm.dart +++ b/lib/ui/settings/user_details_vm.dart @@ -35,8 +35,10 @@ class UserDetailsScreen extends StatelessWidget { return StoreConnector( converter: UserDetailsVM.fromStore, builder: (context, viewModel) { + final state = viewModel.state; return UserDetails( - key: ValueKey(viewModel.state.settingsUIState.updatedAt), + key: ValueKey( + state.settingsUIState.updatedAt + state.user.updatedAt), viewModel: viewModel); }, );