From bb4de2b31d1ece196687eb0bcd6a10a81c45db8e Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Thu, 29 Aug 2019 10:54:11 +0300 Subject: [PATCH] IAP --- lib/redux/app/app_state.dart | 2 +- lib/redux/auth/auth_state.dart | 4 ++- lib/ui/app/loading_indicator.dart | 1 + lib/ui/auth/login_view.dart | 57 ++++++++++++++++--------------- lib/utils/formatting.dart | 2 +- 5 files changed, 36 insertions(+), 30 deletions(-) diff --git a/lib/redux/app/app_state.dart b/lib/redux/app/app_state.dart index 5c308a204..dbd31889d 100644 --- a/lib/redux/app/app_state.dart +++ b/lib/redux/app/app_state.dart @@ -270,7 +270,7 @@ abstract class AppState implements Built { @override String toString() { - return 'URL: ${authState.url}'; + return 'URL: ${authState.url}, ${selectedCompany.plan}'; //return 'Is Testing: ${uiState.isTesting}'; //return 'Route: ${uiState.currentRoute}, Previous: ${uiState.previousRoute}, Layout: ${uiState.layout}, Menu: ${uiState.isMenuVisible}, History: ${uiState.isHistoryVisible}'; } diff --git a/lib/redux/auth/auth_state.dart b/lib/redux/auth/auth_state.dart index 37564f4a6..20b6a483b 100644 --- a/lib/redux/auth/auth_state.dart +++ b/lib/redux/auth/auth_state.dart @@ -1,6 +1,7 @@ import 'package:built_value/built_value.dart'; import 'package:built_value/serializer.dart'; import 'package:invoiceninja_flutter/constants.dart'; +import 'package:invoiceninja_flutter/utils/formatting.dart'; part 'auth_state.g.dart'; @@ -34,7 +35,8 @@ abstract class AuthState implements Built { String get error; bool get isHosted => - isAuthenticated && (url == null || url.isEmpty || url == kAppUrl); + isAuthenticated && + (cleanApiUrl(url).isEmpty || cleanApiUrl(url) == kAppUrl); bool get isSelfHost => isAuthenticated && !isHosted; diff --git a/lib/ui/app/loading_indicator.dart b/lib/ui/app/loading_indicator.dart index 60e7611d6..f692e53ea 100644 --- a/lib/ui/app/loading_indicator.dart +++ b/lib/ui/app/loading_indicator.dart @@ -26,6 +26,7 @@ class LoadingIndicator extends StatelessWidget { return Container( height: height, + width: height, child: Center( child: CircularProgressIndicator(), ), diff --git a/lib/ui/auth/login_view.dart b/lib/ui/auth/login_view.dart index 70be182d9..5fc8d6ece 100644 --- a/lib/ui/auth/login_view.dart +++ b/lib/ui/auth/login_view.dart @@ -5,6 +5,7 @@ import 'package:invoiceninja_flutter/redux/ui/ui_state.dart'; import 'package:invoiceninja_flutter/ui/app/buttons/elevated_button.dart'; import 'package:invoiceninja_flutter/ui/app/forms/decorated_form_field.dart'; import 'package:invoiceninja_flutter/ui/app/link_text.dart'; +import 'package:invoiceninja_flutter/ui/app/loading_indicator.dart'; import 'package:invoiceninja_flutter/ui/app/progress_button.dart'; import 'package:invoiceninja_flutter/ui/auth/login_vm.dart'; import 'package:invoiceninja_flutter/utils/formatting.dart'; @@ -343,34 +344,36 @@ class _LoginState extends State { ), Padding( padding: EdgeInsets.only(top: 30, bottom: 10), - child: _createAccount - ? ProgressButton( - isLoading: viewModel.isLoading, - label: localization.signUp.toUpperCase(), - onPressed: () => _submitSignUpForm(), - ) - : Row( - children: [ - Expanded( - child: ProgressButton( - isLoading: viewModel.isLoading, - label: localization.emailLogin.toUpperCase(), - onPressed: () => _submitLoginForm(), - ), + child: viewModel.isLoading + ? LoadingIndicator(height: 50) + : _createAccount + ? ElevatedButton( + label: localization.signUp.toUpperCase(), + onPressed: () => _submitSignUpForm(), + ) + : Row( + children: [ + Expanded( + child: ElevatedButton( + label: + localization.emailLogin.toUpperCase(), + onPressed: () => _submitLoginForm(), + ), + ), + SizedBox(width: 20), + Expanded( + child: ElevatedButton( + label: localization.googleLogin + .toUpperCase(), + onPressed: () => + viewModel.onGoogleLoginPressed( + context, + _urlController.text, + _secretController.text), + ), + ), + ], ), - SizedBox(width: 20), - Expanded( - child: ElevatedButton( - label: localization.googleLogin.toUpperCase(), - onPressed: () => - viewModel.onGoogleLoginPressed( - context, - _urlController.text, - _secretController.text), - ), - ), - ], - ), ), SizedBox(height: 6), if (!isOneTimePassword) diff --git a/lib/utils/formatting.dart b/lib/utils/formatting.dart index d9d7d6ad5..274410532 100644 --- a/lib/utils/formatting.dart +++ b/lib/utils/formatting.dart @@ -279,7 +279,7 @@ String formatDate(String value, BuildContext context, String formatApiUrl(String url) => cleanApiUrl(url) + '/api/v1'; -String cleanApiUrl(String url) => url +String cleanApiUrl(String url) => (url ?? '') .trim() .replaceFirst(RegExp(r'/api/v1'), '') .replaceFirst(RegExp(r'/$'), '');