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'; abstract class AuthState implements Built { factory AuthState({String url, String referralCode}) { return _$AuthState._( email: '', password: '', url: url ?? '', secret: '', isAuthenticated: false, isInitialized: false, lastEnteredPasswordAt: 0, referralCode: referralCode ?? '', ); } AuthState._(); @override @memoized int get hashCode; String get email; String get password; String get url; String get secret; bool get isInitialized; bool get isAuthenticated; int get lastEnteredPasswordAt; String get referralCode; bool get isHosted { final cleanUrl = cleanApiUrl(url); if (cleanUrl.isEmpty) { return true; } if ([ kAppProductionUrl, kAppDemoUrl, kAppStagingUrl, ].contains(cleanUrl)) { return true; } return false; } bool get isSelfHost => !isHosted; bool get isStaging => cleanApiUrl(url) == kAppStagingUrl; // ignore: unused_element static void _initializeBuilder(AuthStateBuilder builder) => builder..referralCode = ''; static Serializer get serializer => _$authStateSerializer; }