Compare commits
51
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3f1c93c35f
|
||
|
|
fcc439a311
|
||
|
|
5a3eeed7b5
|
||
|
|
0e5e2403ce
|
||
|
|
76a655ac63
|
||
|
|
b458f8c0c8
|
||
|
|
2e5aafdb5a
|
||
|
|
fdd020f103
|
||
|
|
918215b5b8
|
||
|
|
b68e46c622
|
||
|
|
305cddea19
|
||
|
|
50886d97b3
|
||
|
|
692c255a19
|
||
|
|
4dc0b26e95
|
||
|
|
bf1d8f188f
|
||
|
|
a72babfafe
|
||
|
|
830d32152b
|
||
|
|
7f0544d19c
|
||
|
|
c005c3dc43
|
||
|
|
97c14c7a99
|
||
|
|
f37babc084
|
||
|
|
e6c234f0ea
|
||
|
|
2088e0e4bc
|
||
|
|
1e07b2ed1c
|
||
|
|
9339100399
|
||
|
|
03725c25c7
|
||
|
|
588a09e0a1
|
||
|
|
bd53d11e0d | ||
|
|
ee8f08cc32 | ||
|
|
413589462b | ||
|
|
ff3f2008de | ||
|
|
0b27a62669 | ||
|
|
6c9b6e239b | ||
|
|
576a01512b | ||
|
|
cd3ed0fe69 | ||
|
|
46c51525e8 | ||
|
|
b025247002 | ||
|
|
c70d4c6650 | ||
|
|
04a87fe32a | ||
|
|
f8f367baf6 | ||
|
|
e667aa06d0 | ||
|
|
f6ef5828bb
|
||
|
|
f22ba300cb | ||
|
|
5f52b2fc3d
|
||
|
|
f46707f5c1
|
||
|
|
17ff0f8ba1 | ||
|
|
1a3631f691
|
||
|
|
197c5d54e6
|
||
|
|
c7b241de2d
|
||
|
|
94d573a584
|
||
|
|
37e00fe9c4
|
+1
-6
@@ -13,10 +13,6 @@ build/
|
|||||||
# If you're building an application, you may want to check-in your pubspec.lock
|
# If you're building an application, you may want to check-in your pubspec.lock
|
||||||
pubspec.lock
|
pubspec.lock
|
||||||
|
|
||||||
# Directory created by dartdoc
|
|
||||||
# If you don't generate documentation locally you can remove this line.
|
|
||||||
doc/api/
|
|
||||||
|
|
||||||
# dotenv environment variables file
|
# dotenv environment variables file
|
||||||
.env*
|
.env*
|
||||||
|
|
||||||
@@ -38,7 +34,6 @@ doc/api/
|
|||||||
|
|
||||||
### Flutter ###
|
### Flutter ###
|
||||||
# Flutter/Dart/Pub related
|
# Flutter/Dart/Pub related
|
||||||
**/doc/api/
|
|
||||||
.fvm/
|
.fvm/
|
||||||
.pub-cache/
|
.pub-cache/
|
||||||
.pub/
|
.pub/
|
||||||
@@ -200,4 +195,4 @@ google-services.json
|
|||||||
pubspec_overrides.yaml
|
pubspec_overrides.yaml
|
||||||
|
|
||||||
# Mason
|
# Mason
|
||||||
.mason/
|
.mason/
|
||||||
|
|||||||
@@ -3,6 +3,56 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
|
## 2023-02-07
|
||||||
|
|
||||||
|
### Changes
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Packages with breaking changes:
|
||||||
|
|
||||||
|
- There are no breaking changes in this release.
|
||||||
|
|
||||||
|
Packages with other changes:
|
||||||
|
|
||||||
|
- [`wyatt_analysis` - `v2.4.0`](#wyatt_analysis---v240)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
#### `wyatt_analysis` - `v2.4.0`
|
||||||
|
|
||||||
|
- **FEAT**: add new lint rules.
|
||||||
|
- **DOCS**: add instructions to create a new version (closes #104).
|
||||||
|
|
||||||
|
|
||||||
|
## 2022-12-13
|
||||||
|
|
||||||
|
### Changes
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Packages with breaking changes:
|
||||||
|
|
||||||
|
- There are no breaking changes in this release.
|
||||||
|
|
||||||
|
Packages with other changes:
|
||||||
|
|
||||||
|
- [`wyatt_authentication_bloc` - `v0.4.1`](#wyatt_authentication_bloc---v041)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
#### `wyatt_authentication_bloc` - `v0.4.1`
|
||||||
|
|
||||||
|
- **REFACTOR**: use fromFirebaseUser factory to parse user.
|
||||||
|
- **REFACTOR**: update deps and re-export them.
|
||||||
|
- **FIX**: fix mock on register.
|
||||||
|
- **FEAT**: add google sign in in signIn cubit.
|
||||||
|
- **FEAT**: add google sign in parameter in firebase data source constructor.
|
||||||
|
- **FEAT**: add google sign_in support (closes #59).
|
||||||
|
- **FEAT**: add reauthenticate, updateEmail and updatePassword.
|
||||||
|
- **DOCS**: add correct header.
|
||||||
|
|
||||||
|
|
||||||
## 2022-12-12
|
## 2022-12-12
|
||||||
|
|
||||||
### Changes
|
### Changes
|
||||||
|
|||||||
+1
-1
@@ -1 +1 @@
|
|||||||
{"bricks":{"wyatt_clean_code":{"git":{"url":"ssh://git@git.wyatt-studio.fr:993/Wyatt-FOSS/wyatt-bricks.git","path":"bricks/wyatt_clean_code","ref":"033baa65408ec6b68e6a2ef43e64c24708ef16a1"}},"wyatt_feature_brick":{"git":{"url":"ssh://git@git.wyatt-studio.fr:993/Wyatt-FOSS/wyatt-bricks.git","path":"bricks/wyatt_feature_brick","ref":"033baa65408ec6b68e6a2ef43e64c24708ef16a1"}},"wyatt_package":{"git":{"url":"ssh://git@git.wyatt-studio.fr:993/Wyatt-FOSS/wyatt-bricks.git","path":"bricks/wyatt_package","ref":"033baa65408ec6b68e6a2ef43e64c24708ef16a1"}}}}
|
{"bricks":{"wyatt_clean_code":{"git":{"url":"ssh://git@git.wyatt-studio.fr:993/Wyatt-FOSS/wyatt-bricks.git","path":"bricks/wyatt_clean_code","ref":"5009f1ef21d8531b773298c0fc08704d8f69afd1"}},"wyatt_feature_brick":{"git":{"url":"ssh://git@git.wyatt-studio.fr:993/Wyatt-FOSS/wyatt-bricks.git","path":"bricks/wyatt_feature_brick","ref":"5009f1ef21d8531b773298c0fc08704d8f69afd1"}},"wyatt_package_template":{"git":{"url":"ssh://git@git.wyatt-studio.fr:993/Wyatt-FOSS/wyatt-bricks.git","path":"bricks/wyatt_package_template","ref":"5009f1ef21d8531b773298c0fc08704d8f69afd1"}}}}
|
||||||
+5
-5
@@ -1,13 +1,13 @@
|
|||||||
bricks:
|
bricks:
|
||||||
wyatt_clean_code:
|
wyatt_clean_code:
|
||||||
git:
|
git:
|
||||||
url: ssh://git@git.wyatt-studio.fr:993/Wyatt-FOSS/wyatt-bricks.git
|
url: "ssh://git@git.wyatt-studio.fr:993/Wyatt-FOSS/wyatt-bricks.git"
|
||||||
path: bricks/wyatt_clean_code
|
path: bricks/wyatt_clean_code
|
||||||
wyatt_feature_brick:
|
wyatt_feature_brick:
|
||||||
git:
|
git:
|
||||||
url: ssh://git@git.wyatt-studio.fr:993/Wyatt-FOSS/wyatt-bricks.git
|
url: "ssh://git@git.wyatt-studio.fr:993/Wyatt-FOSS/wyatt-bricks.git"
|
||||||
path: bricks/wyatt_feature_brick
|
path: bricks/wyatt_feature_brick
|
||||||
wyatt_package:
|
wyatt_package_template:
|
||||||
git:
|
git:
|
||||||
url: ssh://git@git.wyatt-studio.fr:993/Wyatt-FOSS/wyatt-bricks.git
|
url: "ssh://git@git.wyatt-studio.fr:993/Wyatt-FOSS/wyatt-bricks.git"
|
||||||
path: bricks/wyatt_package
|
path: bricks/wyatt_package_template
|
||||||
@@ -1,3 +1,8 @@
|
|||||||
|
## 2.4.0
|
||||||
|
|
||||||
|
- **FEAT**: add new lint rules.
|
||||||
|
- **DOCS**: add instructions to create a new version (closes #104).
|
||||||
|
|
||||||
## 2.3.0
|
## 2.3.0
|
||||||
|
|
||||||
- **REFACTOR**: follow melos versioning.
|
- **REFACTOR**: follow melos versioning.
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
* Copyright (C) 2022 WYATT GROUP
|
* Copyright (C) 2023 WYATT GROUP
|
||||||
* Please see the AUTHORS file for details.
|
* Please see the AUTHORS file for details.
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
@@ -7,7 +7,7 @@
|
|||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* any later version.
|
* any later version.
|
||||||
*
|
*
|
||||||
* This program is distributed in the hope that it will be useful,
|
* This program is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
@@ -20,21 +20,21 @@
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
This package provides lint rules for Dart and Flutter which are used at [Wyatt](https://wyattapp.io) and [Wyatt Studio](https://wyatt-studio.fr). For more information, see the complete list of options in **lib/analysis_options.2.3.0.yaml**.
|
This package provides lint rules for Dart and Flutter which are used at [Wyatt](https://wyattapp.io) and [Wyatt Studio](https://wyatt-studio.fr). For more information, see the complete list of options in **lib/analysis_options.2.4.0.yaml**.
|
||||||
|
|
||||||
**Note**: This package was heavily inspired by [pedantic](https://github.com/dart-lang/pedantic), [Very Good Analysis](https://github.com/VeryGoodOpenSource/very_good_analysis) and the official [flutter_lints](https://pub.dev/packages/flutter_lints).
|
**Note**: This package was heavily inspired by [pedantic](https://github.com/dart-lang/pedantic), [Very Good Analysis](https://github.com/VeryGoodOpenSource/very_good_analysis) and the official [flutter_lints](https://pub.dev/packages/flutter_lints).
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
To use the lints, add a dependency in your `pubspec.yaml`:
|
To use the lints, add a dependency in your `pubspec.yaml` :
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
wyatt_analysis:
|
wyatt_analysis:
|
||||||
hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub/
|
hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub/
|
||||||
version: 2.3.0
|
version: 2.4.0
|
||||||
```
|
```
|
||||||
|
|
||||||
Then, add an include in `analysis_options.yaml`:
|
Then, add an include in `analysis_options.yaml` :
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
include: package:wyatt_analysis/analysis_options.yaml
|
include: package:wyatt_analysis/analysis_options.yaml
|
||||||
@@ -49,13 +49,13 @@ include: package:wyatt_analysis/analysis_options.flutter.yaml
|
|||||||
If you wish to restrict the lint version, specify a version of `analysis_options.yaml` instead:
|
If you wish to restrict the lint version, specify a version of `analysis_options.yaml` instead:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
include: package:wyatt_analysis/analysis_options.flutter.2.3.0.yaml
|
include: package:wyatt_analysis/analysis_options.flutter.2.4.0.yaml
|
||||||
```
|
```
|
||||||
|
|
||||||
If you just want **Dart** version:
|
If you just want **Dart** version:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
include: package:wyatt_analysis/analysis_options.2.3.0.yaml
|
include: package:wyatt_analysis/analysis_options.2.4.0.yaml
|
||||||
```
|
```
|
||||||
|
|
||||||
## Suppressing Lints
|
## Suppressing Lints
|
||||||
@@ -87,7 +87,7 @@ class B {}
|
|||||||
|
|
||||||
### Project Level
|
### Project Level
|
||||||
|
|
||||||
To surpress a specific lint rule for an entire project, modify `analysis_options.yaml`:
|
To surpress a specific lint rule for an entire project, modify `analysis_options.yaml` :
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
include: package:wyatt_analysis/analysis_options.yaml
|
include: package:wyatt_analysis/analysis_options.yaml
|
||||||
@@ -104,6 +104,16 @@ To indicate your project is using `wyatt_analysis` → [![style: wyatt analysis]
|
|||||||
[](https://git.wyatt-studio.fr/Wyatt-FOSS/wyatt-packages/src/branch/master/packages/wyatt_analysis)
|
[](https://git.wyatt-studio.fr/Wyatt-FOSS/wyatt-packages/src/branch/master/packages/wyatt_analysis)
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Development
|
||||||
|
|
||||||
|
When you want to create a new version of the plugin. Before any modification, execute the following command to create new files:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
./new_version.sh <previous_version> <new_version>
|
||||||
|
```
|
||||||
|
> Where `<previous_version>` is 2.4.0
|
||||||
|
|
||||||
|
|
||||||
## Notes
|
## Notes
|
||||||
|
|
||||||
You can explore every lint rules [here](https://dart-lang.github.io/linter/lints/).
|
You can explore every lint rules [here](https://dart-lang.github.io/linter/lints/).
|
||||||
|
|||||||
@@ -0,0 +1,217 @@
|
|||||||
|
# Copyright (C) 2023 WYATT GROUP
|
||||||
|
# Please see the AUTHORS file for details.
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
analyzer:
|
||||||
|
language:
|
||||||
|
strict-casts: true
|
||||||
|
strict-inference: true
|
||||||
|
strict-raw-types: true
|
||||||
|
|
||||||
|
errors:
|
||||||
|
todo: info
|
||||||
|
close_sinks: ignore
|
||||||
|
missing_required_param: error
|
||||||
|
missing_return: error
|
||||||
|
|
||||||
|
exclude:
|
||||||
|
- lib/l10n/**
|
||||||
|
- lib/generated/**
|
||||||
|
- lib/gen/**
|
||||||
|
- lib/generated_plugin_registrant.dart
|
||||||
|
- test/.test_coverage.dart
|
||||||
|
- '**/*.g.dart'
|
||||||
|
- '**/*.freezed.dart'
|
||||||
|
|
||||||
|
linter:
|
||||||
|
rules:
|
||||||
|
- always_declare_return_types
|
||||||
|
- always_put_control_body_on_new_line
|
||||||
|
- always_put_required_named_parameters_first
|
||||||
|
- always_require_non_null_named_parameters
|
||||||
|
- always_use_package_imports
|
||||||
|
- annotate_overrides
|
||||||
|
- avoid_bool_literals_in_conditional_expressions
|
||||||
|
- avoid_catching_errors
|
||||||
|
- avoid_double_and_int_checks
|
||||||
|
- avoid_dynamic_calls
|
||||||
|
- avoid_empty_else
|
||||||
|
- avoid_equals_and_hash_code_on_mutable_classes
|
||||||
|
- avoid_escaping_inner_quotes
|
||||||
|
- avoid_field_initializers_in_const_classes
|
||||||
|
- avoid_final_parameters
|
||||||
|
- avoid_function_literals_in_foreach_calls
|
||||||
|
- avoid_init_to_null
|
||||||
|
- avoid_js_rounded_ints
|
||||||
|
- avoid_multiple_declarations_per_line
|
||||||
|
- avoid_null_checks_in_equality_operators
|
||||||
|
- avoid_positional_boolean_parameters
|
||||||
|
- avoid_private_typedef_functions
|
||||||
|
- avoid_redundant_argument_values
|
||||||
|
- avoid_relative_lib_imports
|
||||||
|
- avoid_renaming_method_parameters
|
||||||
|
- avoid_return_types_on_setters
|
||||||
|
- avoid_returning_null
|
||||||
|
- avoid_returning_null_for_future
|
||||||
|
- avoid_returning_null_for_void
|
||||||
|
- avoid_returning_this
|
||||||
|
- avoid_setters_without_getters
|
||||||
|
- avoid_shadowing_type_parameters
|
||||||
|
- avoid_single_cascade_in_expression_statements
|
||||||
|
- avoid_slow_async_io
|
||||||
|
- avoid_type_to_string
|
||||||
|
- avoid_types_as_parameter_names
|
||||||
|
- avoid_types_on_closure_parameters
|
||||||
|
- avoid_unused_constructor_parameters
|
||||||
|
- avoid_void_async
|
||||||
|
- await_only_futures
|
||||||
|
- camel_case_extensions
|
||||||
|
- camel_case_types
|
||||||
|
- cancel_subscriptions
|
||||||
|
- cascade_invocations
|
||||||
|
- cast_nullable_to_non_nullable
|
||||||
|
- collection_methods_unrelated_type
|
||||||
|
- combinators_ordering
|
||||||
|
- comment_references
|
||||||
|
- conditional_uri_does_not_exist
|
||||||
|
- constant_identifier_names
|
||||||
|
- control_flow_in_finally
|
||||||
|
- curly_braces_in_flow_control_structures
|
||||||
|
- depend_on_referenced_packages
|
||||||
|
- deprecated_consistency
|
||||||
|
- directives_ordering
|
||||||
|
- empty_catches
|
||||||
|
- empty_constructor_bodies
|
||||||
|
- empty_statements
|
||||||
|
- eol_at_end_of_file
|
||||||
|
- exhaustive_cases
|
||||||
|
- file_names
|
||||||
|
- flutter_style_todos
|
||||||
|
- hash_and_equals
|
||||||
|
- implementation_imports
|
||||||
|
- implicit_call_tearoffs
|
||||||
|
- iterable_contains_unrelated_type
|
||||||
|
- join_return_with_assignment
|
||||||
|
- leading_newlines_in_multiline_strings
|
||||||
|
- library_names
|
||||||
|
- library_prefixes
|
||||||
|
- library_private_types_in_public_api
|
||||||
|
- lines_longer_than_80_chars
|
||||||
|
- list_remove_unrelated_type
|
||||||
|
- literal_only_boolean_expressions
|
||||||
|
- missing_whitespace_between_adjacent_strings
|
||||||
|
- no_adjacent_strings_in_list
|
||||||
|
- no_default_cases
|
||||||
|
- no_duplicate_case_values
|
||||||
|
- no_leading_underscores_for_library_prefixes
|
||||||
|
- no_leading_underscores_for_local_identifiers
|
||||||
|
- no_runtimeType_toString
|
||||||
|
- non_constant_identifier_names
|
||||||
|
- noop_primitive_operations
|
||||||
|
- null_check_on_nullable_type_parameter
|
||||||
|
- null_closures
|
||||||
|
- one_member_abstracts
|
||||||
|
- only_throw_errors
|
||||||
|
- overridden_fields
|
||||||
|
- package_api_docs
|
||||||
|
- package_names
|
||||||
|
- package_prefixed_library_names
|
||||||
|
- parameter_assignments
|
||||||
|
- prefer_adjacent_string_concatenation
|
||||||
|
- prefer_asserts_in_initializer_lists
|
||||||
|
- prefer_asserts_with_message
|
||||||
|
- prefer_collection_literals
|
||||||
|
- prefer_conditional_assignment
|
||||||
|
- prefer_const_constructors
|
||||||
|
- prefer_const_constructors_in_immutables
|
||||||
|
- prefer_const_declarations
|
||||||
|
- prefer_const_literals_to_create_immutables
|
||||||
|
- prefer_constructors_over_static_methods
|
||||||
|
- prefer_contains
|
||||||
|
- prefer_equal_for_default_values
|
||||||
|
- prefer_expression_function_bodies
|
||||||
|
- prefer_final_fields
|
||||||
|
- prefer_final_in_for_each
|
||||||
|
- prefer_final_locals
|
||||||
|
- prefer_for_elements_to_map_fromIterable
|
||||||
|
- prefer_function_declarations_over_variables
|
||||||
|
- prefer_generic_function_type_aliases
|
||||||
|
- prefer_if_elements_to_conditional_expressions
|
||||||
|
- prefer_if_null_operators
|
||||||
|
- prefer_initializing_formals
|
||||||
|
- prefer_inlined_adds
|
||||||
|
- prefer_int_literals
|
||||||
|
- prefer_interpolation_to_compose_strings
|
||||||
|
- prefer_is_empty
|
||||||
|
- prefer_is_not_empty
|
||||||
|
- prefer_is_not_operator
|
||||||
|
- prefer_iterable_whereType
|
||||||
|
- prefer_mixin
|
||||||
|
- prefer_null_aware_method_calls
|
||||||
|
- prefer_null_aware_operators
|
||||||
|
- prefer_single_quotes
|
||||||
|
- prefer_spread_collections
|
||||||
|
- prefer_typing_uninitialized_variables
|
||||||
|
- prefer_void_to_null
|
||||||
|
- provide_deprecation_message
|
||||||
|
- recursive_getters
|
||||||
|
- require_trailing_commas
|
||||||
|
- slash_for_doc_comments
|
||||||
|
- sort_constructors_first
|
||||||
|
- sort_unnamed_constructors_first
|
||||||
|
- test_types_in_equals
|
||||||
|
- throw_in_finally
|
||||||
|
- tighten_type_of_initializing_formals
|
||||||
|
- type_annotate_public_apis
|
||||||
|
- type_init_formals
|
||||||
|
- unawaited_futures
|
||||||
|
- unnecessary_await_in_return
|
||||||
|
- unnecessary_brace_in_string_interps
|
||||||
|
- unnecessary_const
|
||||||
|
- unnecessary_constructor_name
|
||||||
|
- unnecessary_getters_setters
|
||||||
|
- unnecessary_lambdas
|
||||||
|
- unnecessary_late
|
||||||
|
- unnecessary_new
|
||||||
|
- unnecessary_null_aware_assignments
|
||||||
|
- unnecessary_null_checks
|
||||||
|
- unnecessary_null_in_if_null_operators
|
||||||
|
- unnecessary_nullable_for_final_variable_declarations
|
||||||
|
- unnecessary_overrides
|
||||||
|
- unnecessary_parenthesis
|
||||||
|
- unnecessary_raw_strings
|
||||||
|
- unnecessary_statements
|
||||||
|
- unnecessary_string_escapes
|
||||||
|
- unnecessary_string_interpolations
|
||||||
|
- unnecessary_this
|
||||||
|
- unnecessary_to_list_in_spreads
|
||||||
|
- unrelated_type_equality_checks
|
||||||
|
- unsafe_html
|
||||||
|
- use_enums
|
||||||
|
- use_function_type_syntax_for_parameters
|
||||||
|
- use_if_null_to_convert_nulls_to_bools
|
||||||
|
- use_is_even_rather_than_modulo
|
||||||
|
- use_late_for_private_fields_and_variables
|
||||||
|
- use_named_constants
|
||||||
|
- use_raw_strings
|
||||||
|
- use_rethrow_when_possible
|
||||||
|
- use_setters_to_change_properties
|
||||||
|
- use_string_buffers
|
||||||
|
- use_string_in_part_of_directives
|
||||||
|
- use_super_parameters
|
||||||
|
- use_test_throws_matchers
|
||||||
|
- use_to_and_as_if_applicable
|
||||||
|
- valid_regexps
|
||||||
|
- void_checks
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
# Copyright (C) 2023 WYATT GROUP
|
||||||
|
# Please see the AUTHORS file for details.
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
include: package:wyatt_analysis/analysis_options.2.4.0.yaml
|
||||||
|
|
||||||
|
linter:
|
||||||
|
rules:
|
||||||
|
- avoid_print
|
||||||
|
- avoid_unnecessary_containers
|
||||||
|
- avoid_web_libraries_in_flutter
|
||||||
|
- no_logic_in_create_state
|
||||||
|
- sized_box_for_whitespace
|
||||||
|
- sized_box_shrink_expand
|
||||||
|
- sort_child_properties_last
|
||||||
|
- use_build_context_synchronously
|
||||||
|
- use_colored_box
|
||||||
|
- use_decorated_box
|
||||||
|
- use_full_hex_values_for_flutter_colors
|
||||||
|
- use_key_in_widget_constructors
|
||||||
@@ -1,5 +1,4 @@
|
|||||||
|
# Copyright (C) 2023 WYATT GROUP
|
||||||
# Copyright (C) 2022 WYATT GROUP
|
|
||||||
# Please see the AUTHORS file for details.
|
# Please see the AUTHORS file for details.
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
@@ -15,5 +14,5 @@
|
|||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
include: package:wyatt_analysis/analysis_options.flutter.2.3.0.yaml
|
include: package:wyatt_analysis/analysis_options.flutter.2.4.0.yaml
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
|
# Copyright (C) 2023 WYATT GROUP
|
||||||
# Copyright (C) 2022 WYATT GROUP
|
|
||||||
# Please see the AUTHORS file for details.
|
# Please see the AUTHORS file for details.
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
@@ -15,5 +14,5 @@
|
|||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
include: package:wyatt_analysis/analysis_options.2.3.0.yaml
|
include: package:wyatt_analysis/analysis_options.2.4.0.yaml
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (C) 2022 WYATT GROUP
|
// Copyright (C) 2023 WYATT GROUP
|
||||||
// Please see the AUTHORS file for details.
|
// Please see the AUTHORS file for details.
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
@@ -18,4 +18,4 @@
|
|||||||
/// used internally at [Wyatt Studio](https://wyatt-studio.fr).
|
/// used internally at [Wyatt Studio](https://wyatt-studio.fr).
|
||||||
library wyatt_analysis;
|
library wyatt_analysis;
|
||||||
|
|
||||||
const String wyattAnalysisVersion = '2.3.0';
|
const String wyattAnalysisVersion = '2.4.0';
|
||||||
|
|||||||
@@ -1,7 +1,23 @@
|
|||||||
|
# Copyright (C) 2023 WYATT GROUP
|
||||||
|
# Please see the AUTHORS file for details.
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
name: wyatt_analysis
|
name: wyatt_analysis
|
||||||
description: Lint rules for Dart and Flutter used internally at Wyatt Studio.
|
description: Lint rules for Dart and Flutter used internally at Wyatt Studio.
|
||||||
repository: https://git.wyatt-studio.fr/Wyatt-FOSS/wyatt-packages/src/branch/master/packages/wyatt_analysis
|
repository: https://git.wyatt-studio.fr/Wyatt-FOSS/wyatt-packages/src/branch/master/packages/wyatt_analysis
|
||||||
version: 2.3.0
|
version: 2.4.0
|
||||||
|
|
||||||
publish_to: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub
|
publish_to: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub
|
||||||
|
|
||||||
|
|||||||
+1
-2
@@ -24,9 +24,8 @@ import 'package:wyatt_http_client/wyatt_http_client.dart';
|
|||||||
import 'package:wyatt_type_utils/wyatt_type_utils.dart';
|
import 'package:wyatt_type_utils/wyatt_type_utils.dart';
|
||||||
|
|
||||||
class AlbumApiDataSourceImpl extends AlbumRemoteDataSource {
|
class AlbumApiDataSourceImpl extends AlbumRemoteDataSource {
|
||||||
final MiddlewareClient _client;
|
|
||||||
|
|
||||||
AlbumApiDataSourceImpl(this._client);
|
AlbumApiDataSourceImpl(this._client);
|
||||||
|
final MiddlewareClient _client;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<Album> getAlbum(int id) async {
|
Future<Album> getAlbum(int id) async {
|
||||||
|
|||||||
+1
-2
@@ -24,9 +24,8 @@ import 'package:wyatt_http_client/wyatt_http_client.dart';
|
|||||||
import 'package:wyatt_type_utils/wyatt_type_utils.dart';
|
import 'package:wyatt_type_utils/wyatt_type_utils.dart';
|
||||||
|
|
||||||
class PhotoApiDataSourceImpl extends PhotoRemoteDataSource {
|
class PhotoApiDataSourceImpl extends PhotoRemoteDataSource {
|
||||||
final MiddlewareClient _client;
|
|
||||||
|
|
||||||
PhotoApiDataSourceImpl(this._client);
|
PhotoApiDataSourceImpl(this._client);
|
||||||
|
final MiddlewareClient _client;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<Photo> getPhoto(int id) async {
|
Future<Photo> getPhoto(int id) async {
|
||||||
|
|||||||
+3
-3
@@ -24,15 +24,15 @@ import 'package:wyatt_architecture/wyatt_architecture.dart';
|
|||||||
import 'package:wyatt_type_utils/wyatt_type_utils.dart';
|
import 'package:wyatt_type_utils/wyatt_type_utils.dart';
|
||||||
|
|
||||||
class PhotoRepositoryImpl extends PhotoRepository {
|
class PhotoRepositoryImpl extends PhotoRepository {
|
||||||
final PhotoRemoteDataSource _photoRemoteDataSource;
|
|
||||||
final AlbumRemoteDataSource _albumRemoteDataSource;
|
|
||||||
final FavoriteLocalDataSource _favoriteLocalDataSource;
|
|
||||||
|
|
||||||
PhotoRepositoryImpl(
|
PhotoRepositoryImpl(
|
||||||
this._photoRemoteDataSource,
|
this._photoRemoteDataSource,
|
||||||
this._albumRemoteDataSource,
|
this._albumRemoteDataSource,
|
||||||
this._favoriteLocalDataSource,
|
this._favoriteLocalDataSource,
|
||||||
);
|
);
|
||||||
|
final PhotoRemoteDataSource _photoRemoteDataSource;
|
||||||
|
final AlbumRemoteDataSource _albumRemoteDataSource;
|
||||||
|
final FavoriteLocalDataSource _favoriteLocalDataSource;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
FutureOrResult<void> addPhotoToFavorites(Photo photo) => Result.tryCatchAsync(
|
FutureOrResult<void> addPhotoToFavorites(Photo photo) => Result.tryCatchAsync(
|
||||||
|
|||||||
+1
-1
@@ -21,9 +21,9 @@ import 'package:architecture_example/domain/repositories/photo_repository.dart';
|
|||||||
import 'package:wyatt_architecture/wyatt_architecture.dart';
|
import 'package:wyatt_architecture/wyatt_architecture.dart';
|
||||||
|
|
||||||
class AddPhotoToFavorites extends AsyncUseCase<Photo, List<Photo>> {
|
class AddPhotoToFavorites extends AsyncUseCase<Photo, List<Photo>> {
|
||||||
final PhotoRepository _photoRepository;
|
|
||||||
|
|
||||||
AddPhotoToFavorites(this._photoRepository);
|
AddPhotoToFavorites(this._photoRepository);
|
||||||
|
final PhotoRepository _photoRepository;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
FutureOrResult<List<Photo>> execute(Photo? params) async {
|
FutureOrResult<List<Photo>> execute(Photo? params) async {
|
||||||
|
|||||||
+1
-1
@@ -20,9 +20,9 @@ import 'package:architecture_example/domain/repositories/photo_repository.dart';
|
|||||||
import 'package:wyatt_architecture/wyatt_architecture.dart';
|
import 'package:wyatt_architecture/wyatt_architecture.dart';
|
||||||
|
|
||||||
class CheckIfPhotoIsInFavorites extends AsyncUseCase<int, bool> {
|
class CheckIfPhotoIsInFavorites extends AsyncUseCase<int, bool> {
|
||||||
final PhotoRepository _photoRepository;
|
|
||||||
|
|
||||||
CheckIfPhotoIsInFavorites(this._photoRepository);
|
CheckIfPhotoIsInFavorites(this._photoRepository);
|
||||||
|
final PhotoRepository _photoRepository;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
FutureOrResult<bool> execute(int? params) async =>
|
FutureOrResult<bool> execute(int? params) async =>
|
||||||
|
|||||||
+1
-1
@@ -19,9 +19,9 @@ import 'package:architecture_example/domain/repositories/photo_repository.dart';
|
|||||||
import 'package:wyatt_architecture/wyatt_architecture.dart';
|
import 'package:wyatt_architecture/wyatt_architecture.dart';
|
||||||
|
|
||||||
class DisplayFavorites extends AsyncUseCase<NoParam, List<Photo>> {
|
class DisplayFavorites extends AsyncUseCase<NoParam, List<Photo>> {
|
||||||
final PhotoRepository _photoRepository;
|
|
||||||
|
|
||||||
DisplayFavorites(this._photoRepository);
|
DisplayFavorites(this._photoRepository);
|
||||||
|
final PhotoRepository _photoRepository;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
FutureOrResult<List<Photo>> execute(void params) {
|
FutureOrResult<List<Photo>> execute(void params) {
|
||||||
|
|||||||
@@ -21,9 +21,9 @@ import 'package:architecture_example/domain/repositories/photo_repository.dart';
|
|||||||
import 'package:wyatt_architecture/wyatt_architecture.dart';
|
import 'package:wyatt_architecture/wyatt_architecture.dart';
|
||||||
|
|
||||||
class DisplayPhoto extends AsyncUseCase<int, Photo> {
|
class DisplayPhoto extends AsyncUseCase<int, Photo> {
|
||||||
final PhotoRepository _photoRepository;
|
|
||||||
|
|
||||||
DisplayPhoto(this._photoRepository);
|
DisplayPhoto(this._photoRepository);
|
||||||
|
final PhotoRepository _photoRepository;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
FutureOrResult<Photo> execute(int? params) {
|
FutureOrResult<Photo> execute(int? params) {
|
||||||
|
|||||||
@@ -22,9 +22,9 @@ import 'package:architecture_example/domain/usecases/photos/params/query_paramet
|
|||||||
import 'package:wyatt_architecture/wyatt_architecture.dart';
|
import 'package:wyatt_architecture/wyatt_architecture.dart';
|
||||||
|
|
||||||
class OpenAlbum extends AsyncUseCase<QueryParameters, List<Photo>> {
|
class OpenAlbum extends AsyncUseCase<QueryParameters, List<Photo>> {
|
||||||
final PhotoRepository _photoRepository;
|
|
||||||
|
|
||||||
OpenAlbum(this._photoRepository);
|
OpenAlbum(this._photoRepository);
|
||||||
|
final PhotoRepository _photoRepository;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
FutureOrResult<List<Photo>> execute(QueryParameters? params) {
|
FutureOrResult<List<Photo>> execute(QueryParameters? params) {
|
||||||
|
|||||||
+2
-2
@@ -15,9 +15,9 @@
|
|||||||
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
class QueryParameters {
|
class QueryParameters {
|
||||||
|
|
||||||
|
QueryParameters(this.start, this.limit, {this.albumId = -1});
|
||||||
final int albumId;
|
final int albumId;
|
||||||
final int? start;
|
final int? start;
|
||||||
final int? limit;
|
final int? limit;
|
||||||
|
|
||||||
QueryParameters(this.start, this.limit, {this.albumId = -1});
|
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -21,9 +21,9 @@ import 'package:architecture_example/domain/repositories/photo_repository.dart';
|
|||||||
import 'package:wyatt_architecture/wyatt_architecture.dart';
|
import 'package:wyatt_architecture/wyatt_architecture.dart';
|
||||||
|
|
||||||
class RemovePhotoFromFavorites extends AsyncUseCase<int, List<Photo>> {
|
class RemovePhotoFromFavorites extends AsyncUseCase<int, List<Photo>> {
|
||||||
final PhotoRepository _photoRepository;
|
|
||||||
|
|
||||||
RemovePhotoFromFavorites(this._photoRepository);
|
RemovePhotoFromFavorites(this._photoRepository);
|
||||||
|
final PhotoRepository _photoRepository;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
FutureOrResult<List<Photo>> execute(int? params) async {
|
FutureOrResult<List<Photo>> execute(int? params) async {
|
||||||
|
|||||||
+1
-1
@@ -22,9 +22,9 @@ import 'package:architecture_example/domain/usecases/photos/params/query_paramet
|
|||||||
import 'package:wyatt_architecture/wyatt_architecture.dart';
|
import 'package:wyatt_architecture/wyatt_architecture.dart';
|
||||||
|
|
||||||
class RetrieveAllAlbums extends AsyncUseCase<QueryParameters, List<Album>> {
|
class RetrieveAllAlbums extends AsyncUseCase<QueryParameters, List<Album>> {
|
||||||
final PhotoRepository _photoRepository;
|
|
||||||
|
|
||||||
RetrieveAllAlbums(this._photoRepository);
|
RetrieveAllAlbums(this._photoRepository);
|
||||||
|
final PhotoRepository _photoRepository;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
FutureOrResult<List<Album>> execute(QueryParameters? params) {
|
FutureOrResult<List<Album>> execute(QueryParameters? params) {
|
||||||
|
|||||||
+1
-1
@@ -33,7 +33,6 @@ EventTransformer<E> throttleDroppable<E>(Duration duration) =>
|
|||||||
(events, mapper) => droppable<E>().call(events.throttle(duration), mapper);
|
(events, mapper) => droppable<E>().call(events.throttle(duration), mapper);
|
||||||
|
|
||||||
class AlbumBloc extends Bloc<AlbumEvent, AlbumState> {
|
class AlbumBloc extends Bloc<AlbumEvent, AlbumState> {
|
||||||
final RetrieveAllAlbums _retrieveAllAlbums;
|
|
||||||
|
|
||||||
AlbumBloc(this._retrieveAllAlbums) : super(const AlbumState()) {
|
AlbumBloc(this._retrieveAllAlbums) : super(const AlbumState()) {
|
||||||
on<AlbumFetched>(
|
on<AlbumFetched>(
|
||||||
@@ -41,6 +40,7 @@ class AlbumBloc extends Bloc<AlbumEvent, AlbumState> {
|
|||||||
transformer: throttleDroppable(throttleDuration),
|
transformer: throttleDroppable(throttleDuration),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
final RetrieveAllAlbums _retrieveAllAlbums;
|
||||||
|
|
||||||
Future<void> _onAlbumFetched(
|
Future<void> _onAlbumFetched(
|
||||||
AlbumFetched event,
|
AlbumFetched event,
|
||||||
|
|||||||
+3
-3
@@ -26,19 +26,19 @@ abstract class PhotoDetailsState extends Equatable {
|
|||||||
class PhotoDetailsInitial extends PhotoDetailsState {}
|
class PhotoDetailsInitial extends PhotoDetailsState {}
|
||||||
|
|
||||||
class PhotoDetailsSuccess extends PhotoDetailsState {
|
class PhotoDetailsSuccess extends PhotoDetailsState {
|
||||||
final Photo photo;
|
|
||||||
final bool isFavorite;
|
|
||||||
|
|
||||||
const PhotoDetailsSuccess(this.photo, {required this.isFavorite});
|
const PhotoDetailsSuccess(this.photo, {required this.isFavorite});
|
||||||
|
final Photo photo;
|
||||||
|
final bool isFavorite;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
List<Object> get props => [photo, isFavorite];
|
List<Object> get props => [photo, isFavorite];
|
||||||
}
|
}
|
||||||
|
|
||||||
class PhotoDetailsFailure extends PhotoDetailsState {
|
class PhotoDetailsFailure extends PhotoDetailsState {
|
||||||
final String error;
|
|
||||||
|
|
||||||
const PhotoDetailsFailure(this.error);
|
const PhotoDetailsFailure(this.error);
|
||||||
|
final String error;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
List<Object> get props => [error];
|
List<Object> get props => [error];
|
||||||
|
|||||||
+1
-1
@@ -23,10 +23,10 @@ import 'package:flutter_bloc/flutter_bloc.dart';
|
|||||||
part 'favorite_checker_state.dart';
|
part 'favorite_checker_state.dart';
|
||||||
|
|
||||||
class FavoriteCheckerCubit extends Cubit<FavoriteCheckerState> {
|
class FavoriteCheckerCubit extends Cubit<FavoriteCheckerState> {
|
||||||
final CheckIfPhotoIsInFavorites _checkIfPhotoIsInFavorites;
|
|
||||||
|
|
||||||
FavoriteCheckerCubit(this._checkIfPhotoIsInFavorites)
|
FavoriteCheckerCubit(this._checkIfPhotoIsInFavorites)
|
||||||
: super(FavoriteCheckerInitial());
|
: super(FavoriteCheckerInitial());
|
||||||
|
final CheckIfPhotoIsInFavorites _checkIfPhotoIsInFavorites;
|
||||||
|
|
||||||
FutureOr<void> checkIfPhotoIsInFavorites(int photoId) async {
|
FutureOr<void> checkIfPhotoIsInFavorites(int photoId) async {
|
||||||
final response = await _checkIfPhotoIsInFavorites.call(photoId);
|
final response = await _checkIfPhotoIsInFavorites.call(photoId);
|
||||||
|
|||||||
+3
-3
@@ -10,19 +10,19 @@ abstract class FavoriteCheckerState extends Equatable {
|
|||||||
class FavoriteCheckerInitial extends FavoriteCheckerState {}
|
class FavoriteCheckerInitial extends FavoriteCheckerState {}
|
||||||
|
|
||||||
class FavoriteCheckerSuccess extends FavoriteCheckerState {
|
class FavoriteCheckerSuccess extends FavoriteCheckerState {
|
||||||
final int photoId;
|
|
||||||
final bool isFavorite;
|
|
||||||
|
|
||||||
const FavoriteCheckerSuccess(this.photoId, {required this.isFavorite});
|
const FavoriteCheckerSuccess(this.photoId, {required this.isFavorite});
|
||||||
|
final int photoId;
|
||||||
|
final bool isFavorite;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
List<Object> get props => [photoId, isFavorite];
|
List<Object> get props => [photoId, isFavorite];
|
||||||
}
|
}
|
||||||
|
|
||||||
class FavoriteCheckerFailure extends FavoriteCheckerState {
|
class FavoriteCheckerFailure extends FavoriteCheckerState {
|
||||||
final String error;
|
|
||||||
|
|
||||||
const FavoriteCheckerFailure(this.error);
|
const FavoriteCheckerFailure(this.error);
|
||||||
|
final String error;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
List<Object> get props => [error];
|
List<Object> get props => [error];
|
||||||
|
|||||||
+1
-1
@@ -33,7 +33,6 @@ EventTransformer<E> throttleDroppable<E>(Duration duration) =>
|
|||||||
(events, mapper) => droppable<E>().call(events.throttle(duration), mapper);
|
(events, mapper) => droppable<E>().call(events.throttle(duration), mapper);
|
||||||
|
|
||||||
class PhotoBloc extends Bloc<PhotoEvent, PhotoState> {
|
class PhotoBloc extends Bloc<PhotoEvent, PhotoState> {
|
||||||
final OpenAlbum _openAlbum;
|
|
||||||
|
|
||||||
PhotoBloc(this._openAlbum) : super(const PhotoState()) {
|
PhotoBloc(this._openAlbum) : super(const PhotoState()) {
|
||||||
on<PhotoFetched>(
|
on<PhotoFetched>(
|
||||||
@@ -41,6 +40,7 @@ class PhotoBloc extends Bloc<PhotoEvent, PhotoState> {
|
|||||||
transformer: throttleDroppable(throttleDuration),
|
transformer: throttleDroppable(throttleDuration),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
final OpenAlbum _openAlbum;
|
||||||
|
|
||||||
Future<void> _onPhotoFetched(
|
Future<void> _onPhotoFetched(
|
||||||
PhotoFetched event,
|
PhotoFetched event,
|
||||||
|
|||||||
+1
-1
@@ -24,7 +24,7 @@ abstract class PhotoEvent extends Equatable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class PhotoFetched extends PhotoEvent {
|
class PhotoFetched extends PhotoEvent {
|
||||||
final int albumId;
|
|
||||||
|
|
||||||
const PhotoFetched(this.albumId);
|
const PhotoFetched(this.albumId);
|
||||||
|
final int albumId;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ dev_dependencies:
|
|||||||
wyatt_analysis:
|
wyatt_analysis:
|
||||||
git:
|
git:
|
||||||
url: https://git.wyatt-studio.fr/Wyatt-FOSS/wyatt-packages
|
url: https://git.wyatt-studio.fr/Wyatt-FOSS/wyatt-packages
|
||||||
ref: wyatt_analysis-v2.3.0
|
ref: wyatt_analysis-v2.4.0
|
||||||
path: packages/wyatt_analysis
|
path: packages/wyatt_analysis
|
||||||
|
|
||||||
# For information on the generic Dart part of this file, see the
|
# For information on the generic Dart part of this file, see the
|
||||||
|
|||||||
@@ -17,9 +17,9 @@
|
|||||||
import 'package:wyatt_type_utils/wyatt_type_utils.dart';
|
import 'package:wyatt_type_utils/wyatt_type_utils.dart';
|
||||||
|
|
||||||
abstract class AppException implements Exception {
|
abstract class AppException implements Exception {
|
||||||
final String? message;
|
|
||||||
|
|
||||||
AppException([this.message]);
|
AppException([this.message]);
|
||||||
|
final String? message;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String toString() {
|
String toString() {
|
||||||
|
|||||||
@@ -24,4 +24,4 @@ dev_dependencies:
|
|||||||
|
|
||||||
wyatt_analysis:
|
wyatt_analysis:
|
||||||
hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub
|
hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub
|
||||||
version: ^2.3.0
|
version: ^2.4.0
|
||||||
@@ -23,7 +23,6 @@
|
|||||||
# Flutter/Dart/Pub related
|
# Flutter/Dart/Pub related
|
||||||
# Libraries should not include pubspec.lock, per https://dart.dev/guides/libraries/private-files#pubspeclock.
|
# Libraries should not include pubspec.lock, per https://dart.dev/guides/libraries/private-files#pubspeclock.
|
||||||
/pubspec.lock
|
/pubspec.lock
|
||||||
**/doc/api/
|
|
||||||
.dart_tool/
|
.dart_tool/
|
||||||
.packages
|
.packages
|
||||||
build/
|
build/
|
||||||
|
|||||||
@@ -1,3 +1,14 @@
|
|||||||
|
## 0.4.1
|
||||||
|
|
||||||
|
- **REFACTOR**: use fromFirebaseUser factory to parse user.
|
||||||
|
- **REFACTOR**: update deps and re-export them.
|
||||||
|
- **FIX**: fix mock on register.
|
||||||
|
- **FEAT**: add google sign in in signIn cubit.
|
||||||
|
- **FEAT**: add google sign in parameter in firebase data source constructor.
|
||||||
|
- **FEAT**: add google sign_in support (closes #59).
|
||||||
|
- **FEAT**: add reauthenticate, updateEmail and updatePassword.
|
||||||
|
- **DOCS**: add correct header.
|
||||||
|
|
||||||
## 0.4.0+3
|
## 0.4.0+3
|
||||||
|
|
||||||
- Update a dependency to the latest release.
|
- Update a dependency to the latest release.
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
* Copyright (C) 2022 WYATT GROUP
|
* Copyright (C) 2023 WYATT GROUP
|
||||||
* Please see the AUTHORS file for details.
|
* Please see the AUTHORS file for details.
|
||||||
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
@@ -7,7 +7,7 @@
|
|||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* any later version.
|
* any later version.
|
||||||
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
* This program is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
@@ -19,9 +19,7 @@
|
|||||||
# Flutter - Authentication BLoC
|
# Flutter - Authentication BLoC
|
||||||
|
|
||||||
<p align="left">
|
<p align="left">
|
||||||
<a href="https://git.wyatt-studio.fr/Wyatt-FOSS/wyatt-packages/src/branch/master/packages/wyatt_analysis">
|
<a href="https://git.wyatt-studio.fr/Wyatt-FOSS/wyatt-packages/src/branch/master/packages/wyatt_analysis"><img src="https://img.shields.io/badge/Style-Wyatt%20Analysis-blue.svg?style=flat-square" alt="Style: Wyatt Analysis" /></a>
|
||||||
<img src="https://img.shields.io/badge/Style-Wyatt%20Analysis-blue.svg?style=flat-square" alt="Style: Wyatt Analysis" />
|
|
||||||
</a>
|
|
||||||
<img src="https://img.shields.io/badge/SDK-Flutter-blue?style=flat-square" alt="SDK: Flutter" />
|
<img src="https://img.shields.io/badge/SDK-Flutter-blue?style=flat-square" alt="SDK: Flutter" />
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@@ -29,37 +27,195 @@ Authentication Bloc for Flutter.
|
|||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
- Wyatt Architecture
|
* 🧐 Wyatt Architecture
|
||||||
- Entities:
|
* 🧱 Entities
|
||||||
- Account : AccountModel -> Contains account information from provider
|
- Account -> Contains account information from provider.
|
||||||
- AccountWrapper : AccountWrapperModel -> Contains account and extra data.
|
- Session -> Contains account and associated data retrieved from an external source.
|
||||||
- Data Sources:
|
- AuthenticationChangeEvent -> Describes an event in authentication change (sign in, sign up, sign out, etc...)
|
||||||
- Local:
|
- SessionWrapper -> Contains latest authentication change event and session.
|
||||||
- Cached Authentication Data : AuthenticationCacheDataSourceImpl -> Provides a cache implementation
|
* 🔑 Powerful and secured authentication repository
|
||||||
- Remote:
|
* 🔥 Multiple data sources
|
||||||
- Remote Authentication Data : AuthenticationFirebaseDataSourceImpl -> Provides a proxy to FirebaseAuth
|
- Mock
|
||||||
- Repositories:
|
- Firebase
|
||||||
- AuthenticationRepository : AuthenticationRepositoryImpl -> Provides all authentication methods
|
* 🧊 Cubits, why make it complicated when you can make it simple?
|
||||||
- Features:
|
- Goes to the essential.
|
||||||
- Authentication:
|
* 📐 Consistent
|
||||||
- AuthenticationBuilder : widget to build reactive view from authentication state
|
- Every class have same naming convention
|
||||||
- AuthenticationCubit : tracks every auth changes, have sign out capability.
|
* 🧪 Tested
|
||||||
- SignUp:
|
* 📚 Documented: [available here](./doc/api/index.md)
|
||||||
- SignUpCubit: implementation of a FormDataCubit from `wyatt_form_bloc` for the sign up
|
|
||||||
- SignIn:
|
|
||||||
- SignUpCubit: implementation of a FormDataCubit from `wyatt_form_bloc` for the sign in
|
|
||||||
- Consistent
|
|
||||||
* Every class have same naming convention
|
|
||||||
- Tested
|
|
||||||
|
|
||||||
## Getting started
|
## Getting started
|
||||||
|
|
||||||
Simply add `wyatt_authentication_bloc` in `pubspec.yaml`, then
|
Simply add `wyatt_authentication_bloc` in `pubspec.yaml` , then
|
||||||
|
|
||||||
```dart
|
```dart
|
||||||
import 'package:wyatt_authentication_bloc/wyatt_authentication_bloc.dart';
|
import 'package:wyatt_authentication_bloc/wyatt_authentication_bloc.dart';
|
||||||
```
|
```
|
||||||
|
|
||||||
## Usage
|
### Data source
|
||||||
|
|
||||||
// TODO
|
The first step is to provide a data source.
|
||||||
|
|
||||||
|
```dart
|
||||||
|
getIt.registerLazySingleton<AuthenticationRemoteDataSource<int>>(
|
||||||
|
() => AuthenticationFirebaseDataSourceImpl<int>(
|
||||||
|
firebaseAuth: FirebaseAuth.instance,
|
||||||
|
googleSignIn:
|
||||||
|
GoogleSignIn(clientId: DefaultFirebaseOptions.ios.iosClientId)),
|
||||||
|
);
|
||||||
|
```
|
||||||
|
|
||||||
|
> Here we use GetIt (see example project)
|
||||||
|
|
||||||
|
### Repository
|
||||||
|
|
||||||
|
Then you can configure your repository.
|
||||||
|
|
||||||
|
```dart
|
||||||
|
final AuthenticationRepository<int> authenticationRepository = AuthenticationRepositoryImpl(
|
||||||
|
authenticationRemoteDataSource:
|
||||||
|
getIt<AuthenticationRemoteDataSource<int>>(),
|
||||||
|
customPasswordValidator: const CustomPassword.pure(),
|
||||||
|
extraSignUpInputs: [
|
||||||
|
FormInput(
|
||||||
|
AuthFormField.confirmPassword,
|
||||||
|
const ConfirmedPassword.pure(),
|
||||||
|
metadata: const FormInputMetadata<void>(export: false),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
```
|
||||||
|
|
||||||
|
> Here we pass some extra inputs for the sign up, and a custom password validator.
|
||||||
|
|
||||||
|
### Cubits
|
||||||
|
|
||||||
|
It is necessary to implement each cubit. Don't panic, most of the work is already done 😊 you just have to customize the logic of these.
|
||||||
|
|
||||||
|
In each of these cubits it is necessary to overload the various callbacks.
|
||||||
|
|
||||||
|
> Here the associated data `Data` is a `int`
|
||||||
|
|
||||||
|
#### Authentication
|
||||||
|
|
||||||
|
In the authentication are managed, the refresh, the deletion of account or the disconnection.
|
||||||
|
|
||||||
|
```dart
|
||||||
|
class ExampleAuthenticationCubit extends AuthenticationCubit<int> {
|
||||||
|
ExampleAuthenticationCubit({required super.authenticationRepository});
|
||||||
|
|
||||||
|
@override
|
||||||
|
FutureOrResult<int?> onReauthenticate(Result<Account, AppException> result) async {
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
FutureOrResult<int?> onRefresh(Result<Account, AppException> result) {
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
FutureOrResult<int?> onSignInFromCache(SessionWrapper<int> wrapper) {
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
FutureOrResult<void> onSignOut() {
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
FutureOrResult<void> onDelete() {
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Sign Up
|
||||||
|
|
||||||
|
```dart
|
||||||
|
class ExampleSignUpCubit extends SignUpCubit<int> {
|
||||||
|
ExampleSignUpCubit({
|
||||||
|
required super.authenticationRepository,
|
||||||
|
});
|
||||||
|
|
||||||
|
@override
|
||||||
|
FutureOrResult<int?> onSignUpWithEmailAndPassword(Result<Account, AppException> result, WyattForm form) async {
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Sign In
|
||||||
|
|
||||||
|
```dart
|
||||||
|
class ExampleSignInCubit extends SignInCubit<int> {
|
||||||
|
ExampleSignInCubit({
|
||||||
|
required super.authenticationRepository,
|
||||||
|
});
|
||||||
|
|
||||||
|
@override
|
||||||
|
FutureOrResult<int?> onSignInWithEmailAndPassword(Result<Account, AppException> result, WyattForm form) {
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
FutureOrResult<int?> onSignInAnonymously(Result<Account, AppException> result, WyattForm form) {
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
FutureOrResult<int?> onSignInWithGoogle(Result<Account, AppException> result, WyattForm form) {
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
After setting up all these cubits you can provide them in the application. And that's it!
|
||||||
|
|
||||||
|
```dart
|
||||||
|
BlocProvider<SignUpCubit<int>>(
|
||||||
|
create: (_) => ExampleSignUpCubit(
|
||||||
|
authenticationRepository: authenticationRepository,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
BlocProvider<SignInCubit<int>>(
|
||||||
|
create: (_) => ExampleSignInCubit(
|
||||||
|
authenticationRepository: authenticationRepository,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
```
|
||||||
|
|
||||||
|
### Widgets
|
||||||
|
|
||||||
|
Widgets are provided to make your life easier. Starting with the `AuthenticationBuilder` which allows you to build according to the authentication state.
|
||||||
|
|
||||||
|
```dart
|
||||||
|
AuthenticationBuilder<int>(
|
||||||
|
authenticated: (context, sessionWrapper) => Text(
|
||||||
|
'Logged as ${sessionWrapper.session?.account.email} | GeneratedId is ${sessionWrapper.session?.data}'),
|
||||||
|
unauthenticated: (context) =>
|
||||||
|
const Text('Not logged (unauthenticated)'),
|
||||||
|
unknown: (context) => const Text('Not logged (unknown)'),
|
||||||
|
),
|
||||||
|
```
|
||||||
|
|
||||||
|
A `BuildContext` extension is also available to access certain attributes more quickly.
|
||||||
|
|
||||||
|
```dart
|
||||||
|
Text('Home | ${context.account<AuthenticationCubit<int>, int>()?.email}'),
|
||||||
|
```
|
||||||
|
|
||||||
|
Listeners are used to listen to the status of the sign in and sign up forms.
|
||||||
|
|
||||||
|
```dart
|
||||||
|
return SignInListener<int>(
|
||||||
|
onError: (context, status, errorMessage) => ScaffoldMessenger.of(context)
|
||||||
|
..hideCurrentSnackBar()
|
||||||
|
..showSnackBar(
|
||||||
|
SnackBar(content: Text(errorMessage ?? 'Sign In Failure')),
|
||||||
|
),
|
||||||
|
child: ...
|
||||||
|
);
|
||||||
|
```
|
||||||
@@ -1,4 +1 @@
|
|||||||
include: package:wyatt_analysis/analysis_options.flutter.yaml
|
include: package:wyatt_analysis/analysis_options.flutter.yaml
|
||||||
|
|
||||||
analyzer:
|
|
||||||
exclude: "!example/**"
|
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# 404
|
||||||
|
|
||||||
|
Oops, something's gone wrong :-(
|
||||||
|
|
||||||
|
You've tried to visit a page that doesn't exist. Luckily this site has other
|
||||||
|
[pages](index.md).
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
[]
|
||||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,214 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# wyatt_authentication_bloc - Dart API docs
|
||||||
|
|
||||||
|
|
||||||
|
<!--
|
||||||
|
* Copyright (C) 2023 WYATT GROUP
|
||||||
|
* Please see the AUTHORS file for details.
|
||||||
|
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* any later version.
|
||||||
|
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
-->
|
||||||
|
<h1 id="flutter---authentication-bloc">Flutter - Authentication BLoC</h1><p align="left">
|
||||||
|
<a href="https://git.wyatt-studio.fr/Wyatt-FOSS/wyatt-packages/src/branch/master/packages/wyatt_analysis"><img src="https://img.shields.io/badge/Style-Wyatt%20Analysis-blue.svg?style=flat-square" alt="Style: Wyatt Analysis"></a>
|
||||||
|
<img src="https://img.shields.io/badge/SDK-Flutter-blue?style=flat-square" alt="SDK: Flutter">
|
||||||
|
</p>
|
||||||
|
<p>Authentication Bloc for Flutter.</p>
|
||||||
|
<h2 id="features">Features</h2>
|
||||||
|
<ul>
|
||||||
|
<li>🧐 Wyatt Architecture</li>
|
||||||
|
<li>🧱 Entities
|
||||||
|
<ul>
|
||||||
|
<li>Account -> Contains account information from provider.</li>
|
||||||
|
<li>Session -> Contains account and associated data retrieved from an external source.</li>
|
||||||
|
<li>AuthenticationChangeEvent -> Describes an event in authentication change (sign in, sign up, sign out, etc...)</li>
|
||||||
|
<li>SessionWrapper -> Contains latest authentication change event and session.</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li>🔑 Powerful and secured authentication repository</li>
|
||||||
|
<li>🔥 Multiple data sources
|
||||||
|
<ul>
|
||||||
|
<li>Mock</li>
|
||||||
|
<li>Firebase</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li>🧊 Cubits, why make it complicated when you can make it simple?
|
||||||
|
<ul>
|
||||||
|
<li>Goes to the essential.</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li>📐 Consistent
|
||||||
|
<ul>
|
||||||
|
<li>Every class have same naming convention</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li>🧪 Tested</li>
|
||||||
|
<li>📚 Documented: <a href="./doc/api/index.md">available here</a></li>
|
||||||
|
</ul>
|
||||||
|
<h2 id="getting-started">Getting started</h2>
|
||||||
|
<p>Simply add <code>wyatt_authentication_bloc</code> in <code>pubspec.yaml</code> , then</p>
|
||||||
|
<pre class="language-dart"><code class="language-dart">import 'package:wyatt_authentication_bloc/wyatt_authentication_bloc.dart';
|
||||||
|
</code></pre>
|
||||||
|
<h3 id="data-source">Data source</h3>
|
||||||
|
<p>The first step is to provide a data source.</p>
|
||||||
|
<pre class="language-dart"><code class="language-dart">getIt.registerLazySingleton<AuthenticationRemoteDataSource<int>>(
|
||||||
|
() => AuthenticationFirebaseDataSourceImpl<int>(
|
||||||
|
firebaseAuth: FirebaseAuth.instance,
|
||||||
|
googleSignIn:
|
||||||
|
GoogleSignIn(clientId: DefaultFirebaseOptions.ios.iosClientId)),
|
||||||
|
);
|
||||||
|
</code></pre>
|
||||||
|
<blockquote>
|
||||||
|
<p>Here we use GetIt (see example project)</p>
|
||||||
|
</blockquote>
|
||||||
|
<h3 id="repository">Repository</h3>
|
||||||
|
<p>Then you can configure your repository.</p>
|
||||||
|
<pre class="language-dart"><code class="language-dart">final AuthenticationRepository<int> authenticationRepository = AuthenticationRepositoryImpl(
|
||||||
|
authenticationRemoteDataSource:
|
||||||
|
getIt<AuthenticationRemoteDataSource<int>>(),
|
||||||
|
customPasswordValidator: const CustomPassword.pure(),
|
||||||
|
extraSignUpInputs: [
|
||||||
|
FormInput(
|
||||||
|
AuthFormField.confirmPassword,
|
||||||
|
const ConfirmedPassword.pure(),
|
||||||
|
metadata: const FormInputMetadata<void>(export: false),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
</code></pre>
|
||||||
|
<blockquote>
|
||||||
|
<p>Here we pass some extra inputs for the sign up, and a custom password validator.</p>
|
||||||
|
</blockquote>
|
||||||
|
<h3 id="cubits">Cubits</h3>
|
||||||
|
<p>It is necessary to implement each cubit. Don't panic, most of the work is already done 😊 you just have to customize the logic of these.</p>
|
||||||
|
<p>In each of these cubits it is necessary to overload the various callbacks.</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>Here the associated data <code>Data</code> is a <code>int</code></p>
|
||||||
|
</blockquote>
|
||||||
|
<h4 id="authentication">Authentication</h4>
|
||||||
|
<p>In the authentication are managed, the refresh, the deletion of account or the disconnection.</p>
|
||||||
|
<pre class="language-dart"><code class="language-dart">class ExampleAuthenticationCubit extends AuthenticationCubit<int> {
|
||||||
|
ExampleAuthenticationCubit({required super.authenticationRepository});
|
||||||
|
|
||||||
|
@override
|
||||||
|
FutureOrResult<int?> onReauthenticate(Result<Account, AppException> result) async {
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
FutureOrResult<int?> onRefresh(Result<Account, AppException> result) {
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
FutureOrResult<int?> onSignInFromCache(SessionWrapper<int> wrapper) {
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
FutureOrResult<void> onSignOut() {
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
FutureOrResult<void> onDelete() {
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</code></pre>
|
||||||
|
<h4 id="sign-up">Sign Up</h4>
|
||||||
|
<pre class="language-dart"><code class="language-dart">class ExampleSignUpCubit extends SignUpCubit<int> {
|
||||||
|
ExampleSignUpCubit({
|
||||||
|
required super.authenticationRepository,
|
||||||
|
});
|
||||||
|
|
||||||
|
@override
|
||||||
|
FutureOrResult<int?> onSignUpWithEmailAndPassword(Result<Account, AppException> result, WyattForm form) async {
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
</code></pre>
|
||||||
|
<h4 id="sign-in">Sign In</h4>
|
||||||
|
<pre class="language-dart"><code class="language-dart">class ExampleSignInCubit extends SignInCubit<int> {
|
||||||
|
ExampleSignInCubit({
|
||||||
|
required super.authenticationRepository,
|
||||||
|
});
|
||||||
|
|
||||||
|
@override
|
||||||
|
FutureOrResult<int?> onSignInWithEmailAndPassword(Result<Account, AppException> result, WyattForm form) {
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
FutureOrResult<int?> onSignInAnonymously(Result<Account, AppException> result, WyattForm form) {
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
FutureOrResult<int?> onSignInWithGoogle(Result<Account, AppException> result, WyattForm form) {
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</code></pre>
|
||||||
|
<p>After setting up all these cubits you can provide them in the application. And that's it!</p>
|
||||||
|
<pre class="language-dart"><code class="language-dart">BlocProvider<SignUpCubit<int>>(
|
||||||
|
create: (_) => ExampleSignUpCubit(
|
||||||
|
authenticationRepository: authenticationRepository,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
BlocProvider<SignInCubit<int>>(
|
||||||
|
create: (_) => ExampleSignInCubit(
|
||||||
|
authenticationRepository: authenticationRepository,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
</code></pre>
|
||||||
|
<h3 id="widgets">Widgets</h3>
|
||||||
|
<p>Widgets are provided to make your life easier. Starting with the <code>AuthenticationBuilder</code> which allows you to build according to the authentication state.</p>
|
||||||
|
<pre class="language-dart"><code class="language-dart">AuthenticationBuilder<int>(
|
||||||
|
authenticated: (context, sessionWrapper) => Text(
|
||||||
|
'Logged as ${sessionWrapper.session?.account.email} | GeneratedId is ${sessionWrapper.session?.data}'),
|
||||||
|
unauthenticated: (context) =>
|
||||||
|
const Text('Not logged (unauthenticated)'),
|
||||||
|
unknown: (context) => const Text('Not logged (unknown)'),
|
||||||
|
),
|
||||||
|
</code></pre>
|
||||||
|
<p>A <code>BuildContext</code> extension is also available to access certain attributes more quickly.</p>
|
||||||
|
<pre class="language-dart"><code class="language-dart">Text('Home | ${context.account<AuthenticationCubit<int>, int>()?.email}'),
|
||||||
|
</code></pre>
|
||||||
|
<p>Listeners are used to listen to the status of the sign in and sign up forms.</p>
|
||||||
|
<pre class="language-dart"><code class="language-dart">return SignInListener<int>(
|
||||||
|
onError: (context, status, errorMessage) => ScaffoldMessenger.of(context)
|
||||||
|
..hideCurrentSnackBar()
|
||||||
|
..showSnackBar(
|
||||||
|
SnackBar(content: Text(errorMessage ?? 'Sign In Failure')),
|
||||||
|
),
|
||||||
|
child: ...
|
||||||
|
);
|
||||||
|
</code></pre>
|
||||||
|
|
||||||
|
|
||||||
|
## Libraries
|
||||||
|
|
||||||
|
##### [wyatt_authentication_bloc](wyatt_authentication_bloc/wyatt_authentication_bloc-library.md)
|
||||||
|
An authentication library for BLoC.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# 404
|
||||||
|
|
||||||
|
Oops, something's gone wrong :-(
|
||||||
|
|
||||||
|
You've tried to visit a page that doesn't exist. Luckily this site has other
|
||||||
|
[pages](index.md).
|
||||||
+237
@@ -0,0 +1,237 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Account class
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>Represents a user <a href="../wyatt_authentication_bloc/Account-class.md">Account</a> in the
|
||||||
|
various identity provisioning systems.</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
**Inheritance**
|
||||||
|
|
||||||
|
- [Object](https://api.flutter.dev/flutter/dart-core/Object-class.html)
|
||||||
|
- [Equatable](https://pub.dev/documentation/equatable/2.0.5/equatable/Equatable-class.html)
|
||||||
|
- Account
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
**Implementers**
|
||||||
|
|
||||||
|
- [AccountModel](../wyatt_authentication_bloc/AccountModel-class.md)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Constructors
|
||||||
|
|
||||||
|
[Account](../wyatt_authentication_bloc/Account/Account.md) ({required [String](https://api.flutter.dev/flutter/dart-core/String-class.html) id, required [bool](https://api.flutter.dev/flutter/dart-core/bool-class.html) isAnonymous, required [bool](https://api.flutter.dev/flutter/dart-core/bool-class.html) emailVerified, required [String](https://api.flutter.dev/flutter/dart-core/String-class.html) providerId, [String](https://api.flutter.dev/flutter/dart-core/String-class.html)? email, [String](https://api.flutter.dev/flutter/dart-core/String-class.html)? phoneNumber, [String](https://api.flutter.dev/flutter/dart-core/String-class.html)? photoURL, [DateTime](https://api.flutter.dev/flutter/dart-core/DateTime-class.html)? creationTime, [DateTime](https://api.flutter.dev/flutter/dart-core/DateTime-class.html)? lastSignInTime, [bool](https://api.flutter.dev/flutter/dart-core/bool-class.html)? isNewUser, [String](https://api.flutter.dev/flutter/dart-core/String-class.html)? accessToken, [String](https://api.flutter.dev/flutter/dart-core/String-class.html)? refreshToken})
|
||||||
|
|
||||||
|
_const_
|
||||||
|
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
|
||||||
|
##### [accessToken](../wyatt_authentication_bloc/Account/accessToken.md) → [String](https://api.flutter.dev/flutter/dart-core/String-class.html)?
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The user access token
|
||||||
|
_<span class="feature">final</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [creationTime](../wyatt_authentication_bloc/Account/creationTime.md) → [DateTime](https://api.flutter.dev/flutter/dart-core/DateTime-class.html)?
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Returns the users account creation time.
|
||||||
|
_<span class="feature">final</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [email](../wyatt_authentication_bloc/Account/email.md) → [String](https://api.flutter.dev/flutter/dart-core/String-class.html)?
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The users email address.
|
||||||
|
_<span class="feature">final</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [emailVerified](../wyatt_authentication_bloc/Account/emailVerified.md) → [bool](https://api.flutter.dev/flutter/dart-core/bool-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Returns whether the users email address has been verified.
|
||||||
|
_<span class="feature">final</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [hashCode](https://pub.dev/documentation/equatable/2.0.5/equatable/Equatable/hashCode.html) → [int](https://api.flutter.dev/flutter/dart-core/int-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The hash code for this object.
|
||||||
|
_<span class="feature">read-only</span><span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [id](../wyatt_authentication_bloc/Account/id.md) → [String](https://api.flutter.dev/flutter/dart-core/String-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The user's unique ID.
|
||||||
|
_<span class="feature">final</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [isAnonymous](../wyatt_authentication_bloc/Account/isAnonymous.md) → [bool](https://api.flutter.dev/flutter/dart-core/bool-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Returns whether the user is a anonymous.
|
||||||
|
_<span class="feature">final</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [isNewUser](../wyatt_authentication_bloc/Account/isNewUser.md) → [bool](https://api.flutter.dev/flutter/dart-core/bool-class.html)?
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Whether the user account has been recently created.
|
||||||
|
_<span class="feature">final</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [lastSignInTime](../wyatt_authentication_bloc/Account/lastSignInTime.md) → [DateTime](https://api.flutter.dev/flutter/dart-core/DateTime-class.html)?
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
When the user last signed in as dictated by the server clock.
|
||||||
|
_<span class="feature">final</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [phoneNumber](../wyatt_authentication_bloc/Account/phoneNumber.md) → [String](https://api.flutter.dev/flutter/dart-core/String-class.html)?
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Returns the users phone number.
|
||||||
|
_<span class="feature">final</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [photoURL](../wyatt_authentication_bloc/Account/photoURL.md) → [String](https://api.flutter.dev/flutter/dart-core/String-class.html)?
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Returns a photo URL for the user.
|
||||||
|
_<span class="feature">final</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [props](../wyatt_authentication_bloc/Account/props.md) → [List](https://api.flutter.dev/flutter/dart-core/List-class.html)<[Object](https://api.flutter.dev/flutter/dart-core/Object-class.html)?>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The list of properties that will be used to determine whether
|
||||||
|
two instances are equal.
|
||||||
|
_<span class="feature">read-only</span><span class="feature">override</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [providerId](../wyatt_authentication_bloc/Account/providerId.md) → [String](https://api.flutter.dev/flutter/dart-core/String-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The provider ID for the user.
|
||||||
|
_<span class="feature">final</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [refreshToken](../wyatt_authentication_bloc/Account/refreshToken.md) → [String](https://api.flutter.dev/flutter/dart-core/String-class.html)?
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The user refresh token
|
||||||
|
_<span class="feature">final</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [runtimeType](https://api.flutter.dev/flutter/dart-core/Object/runtimeType.html) → [Type](https://api.flutter.dev/flutter/dart-core/Type-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
A representation of the runtime type of the object.
|
||||||
|
_<span class="feature">read-only</span><span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [stringify](../wyatt_authentication_bloc/Account/stringify.md) → [bool](https://api.flutter.dev/flutter/dart-core/bool-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
If set to <code>true</code>, the <a href="https://pub.dev/documentation/equatable/2.0.5/equatable/Equatable/toString.html">toString</a> method will be overridden to output
|
||||||
|
this instance's <a href="../wyatt_authentication_bloc/Account/props.md">props</a>.
|
||||||
|
_<span class="feature">read-only</span><span class="feature">override</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Methods
|
||||||
|
|
||||||
|
##### [noSuchMethod](https://api.flutter.dev/flutter/dart-core/Object/noSuchMethod.html)([Invocation](https://api.flutter.dev/flutter/dart-core/Invocation-class.html) invocation) dynamic
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Invoked when a non-existent method or property is accessed.
|
||||||
|
_<span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [toString](https://pub.dev/documentation/equatable/2.0.5/equatable/Equatable/toString.html)() [String](https://api.flutter.dev/flutter/dart-core/String-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
A string representation of this object.
|
||||||
|
_<span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Operators
|
||||||
|
|
||||||
|
##### [operator ==](https://pub.dev/documentation/equatable/2.0.5/equatable/Equatable/operator_equals.html)([Object](https://api.flutter.dev/flutter/dart-core/Object-class.html) other) [bool](https://api.flutter.dev/flutter/dart-core/bool-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The equality operator.
|
||||||
|
_<span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+43
@@ -0,0 +1,43 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Account constructor
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
const
|
||||||
|
Account({required [String](https://api.flutter.dev/flutter/dart-core/String-class.html) id, required [bool](https://api.flutter.dev/flutter/dart-core/bool-class.html) isAnonymous, required [bool](https://api.flutter.dev/flutter/dart-core/bool-class.html) emailVerified, required [String](https://api.flutter.dev/flutter/dart-core/String-class.html) providerId, [String](https://api.flutter.dev/flutter/dart-core/String-class.html)? email, [String](https://api.flutter.dev/flutter/dart-core/String-class.html)? phoneNumber, [String](https://api.flutter.dev/flutter/dart-core/String-class.html)? photoURL, [DateTime](https://api.flutter.dev/flutter/dart-core/DateTime-class.html)? creationTime, [DateTime](https://api.flutter.dev/flutter/dart-core/DateTime-class.html)? lastSignInTime, [bool](https://api.flutter.dev/flutter/dart-core/bool-class.html)? isNewUser, [String](https://api.flutter.dev/flutter/dart-core/String-class.html)? accessToken, [String](https://api.flutter.dev/flutter/dart-core/String-class.html)? refreshToken})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
|
||||||
|
```dart
|
||||||
|
const Account({
|
||||||
|
required this.id,
|
||||||
|
required this.isAnonymous,
|
||||||
|
required this.emailVerified,
|
||||||
|
required this.providerId,
|
||||||
|
this.email,
|
||||||
|
this.phoneNumber,
|
||||||
|
this.photoURL,
|
||||||
|
this.creationTime,
|
||||||
|
this.lastSignInTime,
|
||||||
|
this.isNewUser,
|
||||||
|
this.accessToken,
|
||||||
|
this.refreshToken,
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+34
@@ -0,0 +1,34 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# accessToken property
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[String](https://api.flutter.dev/flutter/dart-core/String-class.html)? accessToken
|
||||||
|
|
||||||
|
_<span class="feature">final</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>The user access token</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
|
||||||
|
```dart
|
||||||
|
final String? accessToken;
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+35
@@ -0,0 +1,35 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# creationTime property
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[DateTime](https://api.flutter.dev/flutter/dart-core/DateTime-class.html)? creationTime
|
||||||
|
|
||||||
|
_<span class="feature">final</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>Returns the users account creation time.</p>
|
||||||
|
<p>When this account was created as dictated by the server clock.</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
|
||||||
|
```dart
|
||||||
|
final DateTime? creationTime;
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# email property
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[String](https://api.flutter.dev/flutter/dart-core/String-class.html)? email
|
||||||
|
|
||||||
|
_<span class="feature">final</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>The users email address.</p>
|
||||||
|
<p>Will be <code>null</code> if signing in anonymously.</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
|
||||||
|
```dart
|
||||||
|
final String? email;
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+35
@@ -0,0 +1,35 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# emailVerified property
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[bool](https://api.flutter.dev/flutter/dart-core/bool-class.html) emailVerified
|
||||||
|
|
||||||
|
_<span class="feature">final</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>Returns whether the users email address has been verified.</p>
|
||||||
|
<p>To send a verification email, see <code>SendEmailVerification</code>.</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
|
||||||
|
```dart
|
||||||
|
final bool emailVerified;
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# id property
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[String](https://api.flutter.dev/flutter/dart-core/String-class.html) id
|
||||||
|
|
||||||
|
_<span class="feature">final</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>The user's unique ID.</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
|
||||||
|
```dart
|
||||||
|
final String id;
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+34
@@ -0,0 +1,34 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# isAnonymous property
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[bool](https://api.flutter.dev/flutter/dart-core/bool-class.html) isAnonymous
|
||||||
|
|
||||||
|
_<span class="feature">final</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>Returns whether the user is a anonymous.</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
|
||||||
|
```dart
|
||||||
|
final bool isAnonymous;
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+34
@@ -0,0 +1,34 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# isNewUser property
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[bool](https://api.flutter.dev/flutter/dart-core/bool-class.html)? isNewUser
|
||||||
|
|
||||||
|
_<span class="feature">final</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>Whether the user account has been recently created.</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
|
||||||
|
```dart
|
||||||
|
final bool? isNewUser;
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+34
@@ -0,0 +1,34 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# lastSignInTime property
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[DateTime](https://api.flutter.dev/flutter/dart-core/DateTime-class.html)? lastSignInTime
|
||||||
|
|
||||||
|
_<span class="feature">final</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>When the user last signed in as dictated by the server clock.</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
|
||||||
|
```dart
|
||||||
|
final DateTime? lastSignInTime;
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+36
@@ -0,0 +1,36 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# phoneNumber property
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[String](https://api.flutter.dev/flutter/dart-core/String-class.html)? phoneNumber
|
||||||
|
|
||||||
|
_<span class="feature">final</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>Returns the users phone number.</p>
|
||||||
|
<p>This property will be <code>null</code> if the user has not signed in or been has
|
||||||
|
their phone number linked.</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
|
||||||
|
```dart
|
||||||
|
final String? phoneNumber;
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+36
@@ -0,0 +1,36 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# photoURL property
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[String](https://api.flutter.dev/flutter/dart-core/String-class.html)? photoURL
|
||||||
|
|
||||||
|
_<span class="feature">final</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>Returns a photo URL for the user.</p>
|
||||||
|
<p>This property will be populated if the user has signed in or been linked
|
||||||
|
with a 3rd party OAuth provider (such as Google).</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
|
||||||
|
```dart
|
||||||
|
final String? photoURL;
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,55 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# props property
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
**Annotations**
|
||||||
|
|
||||||
|
- @[override](https://api.flutter.dev/flutter/dart-core/override-constant.html)
|
||||||
|
[List](https://api.flutter.dev/flutter/dart-core/List-class.html)<[Object](https://api.flutter.dev/flutter/dart-core/Object-class.html)?> props
|
||||||
|
|
||||||
|
_<span class="feature">override</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>The list of properties that will be used to determine whether
|
||||||
|
two instances are equal.</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
|
||||||
|
```dart
|
||||||
|
@override
|
||||||
|
List<Object?> get props => [
|
||||||
|
id,
|
||||||
|
isAnonymous,
|
||||||
|
email,
|
||||||
|
emailVerified,
|
||||||
|
phoneNumber,
|
||||||
|
photoURL,
|
||||||
|
creationTime,
|
||||||
|
lastSignInTime,
|
||||||
|
providerId,
|
||||||
|
isNewUser,
|
||||||
|
accessToken,
|
||||||
|
refreshToken,
|
||||||
|
];
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+34
@@ -0,0 +1,34 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# providerId property
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[String](https://api.flutter.dev/flutter/dart-core/String-class.html) providerId
|
||||||
|
|
||||||
|
_<span class="feature">final</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>The provider ID for the user.</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
|
||||||
|
```dart
|
||||||
|
final String providerId;
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+34
@@ -0,0 +1,34 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# refreshToken property
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[String](https://api.flutter.dev/flutter/dart-core/String-class.html)? refreshToken
|
||||||
|
|
||||||
|
_<span class="feature">final</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>The user refresh token</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
|
||||||
|
```dart
|
||||||
|
final String? refreshToken;
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+47
@@ -0,0 +1,47 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# stringify property
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
**Annotations**
|
||||||
|
|
||||||
|
- @[override](https://api.flutter.dev/flutter/dart-core/override-constant.html)
|
||||||
|
[bool](https://api.flutter.dev/flutter/dart-core/bool-class.html) stringify
|
||||||
|
|
||||||
|
_<span class="feature">override</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>If set to <code>true</code>, the <a href="https://pub.dev/documentation/equatable/2.0.5/equatable/Equatable/toString.html">toString</a> method will be overridden to output
|
||||||
|
this instance's <a href="../../wyatt_authentication_bloc/Account/props.md">props</a>.</p>
|
||||||
|
<p>A global default value for <a href="../../wyatt_authentication_bloc/Account/stringify.md">stringify</a> can be set using
|
||||||
|
<code>EquatableConfig.stringify</code>.</p>
|
||||||
|
<p>If this instance's <a href="../../wyatt_authentication_bloc/Account/stringify.md">stringify</a> is set to null, the value of
|
||||||
|
<code>EquatableConfig.stringify</code> will be used instead. This defaults to
|
||||||
|
<code>false</code>.</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
|
||||||
|
```dart
|
||||||
|
@override
|
||||||
|
bool get stringify => true;
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+247
@@ -0,0 +1,247 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# AccountModel class
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>Account Model to parse Firebase User data</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
**Inheritance**
|
||||||
|
|
||||||
|
- [Object](https://api.flutter.dev/flutter/dart-core/Object-class.html)
|
||||||
|
- [Equatable](https://pub.dev/documentation/equatable/2.0.5/equatable/Equatable-class.html)
|
||||||
|
- [Account](../wyatt_authentication_bloc/Account-class.md)
|
||||||
|
- AccountModel
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Constructors
|
||||||
|
|
||||||
|
[AccountModel.fromFirebaseUser](../wyatt_authentication_bloc/AccountModel/AccountModel.fromFirebaseUser.md) ([User](https://pub.dev/documentation/firebase_auth/4.2.0/firebase_auth/User-class.html)? user, {[String](https://api.flutter.dev/flutter/dart-core/String-class.html)? accessToken})
|
||||||
|
|
||||||
|
_factory_
|
||||||
|
|
||||||
|
[AccountModel.fromFirebaseUserCredential](../wyatt_authentication_bloc/AccountModel/AccountModel.fromFirebaseUserCredential.md) ([UserCredential](https://pub.dev/documentation/firebase_auth/4.2.0/firebase_auth/UserCredential-class.html)? userCredential)
|
||||||
|
|
||||||
|
_factory_
|
||||||
|
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
|
||||||
|
##### [accessToken](../wyatt_authentication_bloc/Account/accessToken.md) → [String](https://api.flutter.dev/flutter/dart-core/String-class.html)?
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The user access token
|
||||||
|
_<span class="feature">final</span><span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [creationTime](../wyatt_authentication_bloc/Account/creationTime.md) → [DateTime](https://api.flutter.dev/flutter/dart-core/DateTime-class.html)?
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Returns the users account creation time.
|
||||||
|
_<span class="feature">final</span><span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [email](../wyatt_authentication_bloc/Account/email.md) → [String](https://api.flutter.dev/flutter/dart-core/String-class.html)?
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The users email address.
|
||||||
|
_<span class="feature">final</span><span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [emailVerified](../wyatt_authentication_bloc/Account/emailVerified.md) → [bool](https://api.flutter.dev/flutter/dart-core/bool-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Returns whether the users email address has been verified.
|
||||||
|
_<span class="feature">final</span><span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [hashCode](https://pub.dev/documentation/equatable/2.0.5/equatable/Equatable/hashCode.html) → [int](https://api.flutter.dev/flutter/dart-core/int-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The hash code for this object.
|
||||||
|
_<span class="feature">read-only</span><span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [id](../wyatt_authentication_bloc/Account/id.md) → [String](https://api.flutter.dev/flutter/dart-core/String-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The user's unique ID.
|
||||||
|
_<span class="feature">final</span><span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [isAnonymous](../wyatt_authentication_bloc/Account/isAnonymous.md) → [bool](https://api.flutter.dev/flutter/dart-core/bool-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Returns whether the user is a anonymous.
|
||||||
|
_<span class="feature">final</span><span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [isNewUser](../wyatt_authentication_bloc/Account/isNewUser.md) → [bool](https://api.flutter.dev/flutter/dart-core/bool-class.html)?
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Whether the user account has been recently created.
|
||||||
|
_<span class="feature">final</span><span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [lastSignInTime](../wyatt_authentication_bloc/Account/lastSignInTime.md) → [DateTime](https://api.flutter.dev/flutter/dart-core/DateTime-class.html)?
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
When the user last signed in as dictated by the server clock.
|
||||||
|
_<span class="feature">final</span><span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [phoneNumber](../wyatt_authentication_bloc/Account/phoneNumber.md) → [String](https://api.flutter.dev/flutter/dart-core/String-class.html)?
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Returns the users phone number.
|
||||||
|
_<span class="feature">final</span><span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [photoURL](../wyatt_authentication_bloc/Account/photoURL.md) → [String](https://api.flutter.dev/flutter/dart-core/String-class.html)?
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Returns a photo URL for the user.
|
||||||
|
_<span class="feature">final</span><span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [props](../wyatt_authentication_bloc/Account/props.md) → [List](https://api.flutter.dev/flutter/dart-core/List-class.html)<[Object](https://api.flutter.dev/flutter/dart-core/Object-class.html)?>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The list of properties that will be used to determine whether
|
||||||
|
two instances are equal.
|
||||||
|
_<span class="feature">read-only</span><span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [providerId](../wyatt_authentication_bloc/Account/providerId.md) → [String](https://api.flutter.dev/flutter/dart-core/String-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The provider ID for the user.
|
||||||
|
_<span class="feature">final</span><span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [refreshToken](../wyatt_authentication_bloc/AccountModel/refreshToken.md) → [String](https://api.flutter.dev/flutter/dart-core/String-class.html)?
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The user refresh token
|
||||||
|
_<span class="feature">read-only</span><span class="feature">override</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [runtimeType](https://api.flutter.dev/flutter/dart-core/Object/runtimeType.html) → [Type](https://api.flutter.dev/flutter/dart-core/Type-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
A representation of the runtime type of the object.
|
||||||
|
_<span class="feature">read-only</span><span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [stringify](../wyatt_authentication_bloc/Account/stringify.md) → [bool](https://api.flutter.dev/flutter/dart-core/bool-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
If set to <code>true</code>, the <a href="https://pub.dev/documentation/equatable/2.0.5/equatable/Equatable/toString.html">toString</a> method will be overridden to output
|
||||||
|
this instance's <a href="../wyatt_authentication_bloc/Account/props.md">props</a>.
|
||||||
|
_<span class="feature">read-only</span><span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [user](../wyatt_authentication_bloc/AccountModel/user.md) → [User](https://pub.dev/documentation/firebase_auth/4.2.0/firebase_auth/User-class.html)?
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
_<span class="feature">final</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Methods
|
||||||
|
|
||||||
|
##### [noSuchMethod](https://api.flutter.dev/flutter/dart-core/Object/noSuchMethod.html)([Invocation](https://api.flutter.dev/flutter/dart-core/Invocation-class.html) invocation) dynamic
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Invoked when a non-existent method or property is accessed.
|
||||||
|
_<span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [toString](https://pub.dev/documentation/equatable/2.0.5/equatable/Equatable/toString.html)() [String](https://api.flutter.dev/flutter/dart-core/String-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
A string representation of this object.
|
||||||
|
_<span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Operators
|
||||||
|
|
||||||
|
##### [operator ==](https://pub.dev/documentation/equatable/2.0.5/equatable/Equatable/operator_equals.html)([Object](https://api.flutter.dev/flutter/dart-core/Object-class.html) other) [bool](https://api.flutter.dev/flutter/dart-core/bool-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The equality operator.
|
||||||
|
_<span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+51
@@ -0,0 +1,51 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# AccountModel.fromFirebaseUser constructor
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
AccountModel.fromFirebaseUser([User](https://pub.dev/documentation/firebase_auth/4.2.0/firebase_auth/User-class.html)? user, {[String](https://api.flutter.dev/flutter/dart-core/String-class.html)? accessToken})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
|
||||||
|
```dart
|
||||||
|
factory AccountModel.fromFirebaseUser(User? user, {String? accessToken}) {
|
||||||
|
if (user != null) {
|
||||||
|
final providerId =
|
||||||
|
(user.providerData.isEmpty) ? '' : user.providerData.first.providerId;
|
||||||
|
return AccountModel._(
|
||||||
|
user: user,
|
||||||
|
id: user.uid,
|
||||||
|
emailVerified: user.emailVerified,
|
||||||
|
isAnonymous: user.isAnonymous,
|
||||||
|
providerId: providerId,
|
||||||
|
creationTime: user.metadata.creationTime,
|
||||||
|
lastSignInTime: user.metadata.lastSignInTime,
|
||||||
|
isNewUser: false,
|
||||||
|
email: user.email,
|
||||||
|
phoneNumber: user.phoneNumber,
|
||||||
|
photoURL: user.photoURL,
|
||||||
|
accessToken: accessToken,
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
throw ModelParsingFailureFirebase('null-user', 'User cannot be null');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+54
@@ -0,0 +1,54 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# AccountModel.fromFirebaseUserCredential constructor
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
AccountModel.fromFirebaseUserCredential([UserCredential](https://pub.dev/documentation/firebase_auth/4.2.0/firebase_auth/UserCredential-class.html)? userCredential)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
|
||||||
|
```dart
|
||||||
|
factory AccountModel.fromFirebaseUserCredential(
|
||||||
|
UserCredential? userCredential,
|
||||||
|
) {
|
||||||
|
final user = userCredential?.user;
|
||||||
|
if (user != null) {
|
||||||
|
final providerId =
|
||||||
|
(user.providerData.isEmpty) ? '' : user.providerData.first.providerId;
|
||||||
|
return AccountModel._(
|
||||||
|
user: user,
|
||||||
|
id: user.uid,
|
||||||
|
emailVerified: user.emailVerified,
|
||||||
|
isAnonymous: user.isAnonymous,
|
||||||
|
providerId: providerId,
|
||||||
|
creationTime: user.metadata.creationTime,
|
||||||
|
lastSignInTime: user.metadata.lastSignInTime,
|
||||||
|
isNewUser: userCredential?.additionalUserInfo?.isNewUser,
|
||||||
|
email: user.email,
|
||||||
|
phoneNumber: user.phoneNumber,
|
||||||
|
photoURL: user.photoURL,
|
||||||
|
accessToken: userCredential?.credential?.accessToken,
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
throw ModelParsingFailureFirebase('null-user', 'User cannot be null');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+41
@@ -0,0 +1,41 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# refreshToken property
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
**Annotations**
|
||||||
|
|
||||||
|
- @[override](https://api.flutter.dev/flutter/dart-core/override-constant.html)
|
||||||
|
[String](https://api.flutter.dev/flutter/dart-core/String-class.html)? refreshToken
|
||||||
|
|
||||||
|
_<span class="feature">override</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>The user refresh token</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
|
||||||
|
```dart
|
||||||
|
@override
|
||||||
|
String? get refreshToken => user?.refreshToken;
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+33
@@ -0,0 +1,33 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# user property
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[User](https://pub.dev/documentation/firebase_auth/4.2.0/firebase_auth/User-class.html)? user
|
||||||
|
|
||||||
|
_<span class="feature">final</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
|
||||||
|
```dart
|
||||||
|
final User? user;
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+137
@@ -0,0 +1,137 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ApplyActionCodeFailureFirebase class
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>Thrown if during the apply action code process if a failure occurs.</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
**Inheritance**
|
||||||
|
|
||||||
|
- [Object](https://api.flutter.dev/flutter/dart-core/Object-class.html)
|
||||||
|
- [AuthenticationFailureInterface](../wyatt_authentication_bloc/AuthenticationFailureInterface-class.md)
|
||||||
|
- [ApplyActionCodeFailureInterface](../wyatt_authentication_bloc/ApplyActionCodeFailureInterface-class.md)
|
||||||
|
- ApplyActionCodeFailureFirebase
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Constructors
|
||||||
|
|
||||||
|
[ApplyActionCodeFailureFirebase](../wyatt_authentication_bloc/ApplyActionCodeFailureFirebase/ApplyActionCodeFailureFirebase.md) ([[String](https://api.flutter.dev/flutter/dart-core/String-class.html)? code, [String](https://api.flutter.dev/flutter/dart-core/String-class.html)? msg])
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[ApplyActionCodeFailureFirebase.fromCode](../wyatt_authentication_bloc/ApplyActionCodeFailureFirebase/ApplyActionCodeFailureFirebase.fromCode.md) ([String](https://api.flutter.dev/flutter/dart-core/String-class.html) code)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
|
||||||
|
##### [code](../wyatt_authentication_bloc/AuthenticationFailureInterface/code.md) ↔ [String](https://api.flutter.dev/flutter/dart-core/String-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
_<span class="feature">read / write</span><span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [hashCode](https://api.flutter.dev/flutter/dart-core/Object/hashCode.html) → [int](https://api.flutter.dev/flutter/dart-core/int-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The hash code for this object.
|
||||||
|
_<span class="feature">read-only</span><span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [message](../wyatt_authentication_bloc/AuthenticationFailureInterface/message.md) → [String](https://api.flutter.dev/flutter/dart-core/String-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
_<span class="feature">read-only</span><span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [msg](../wyatt_authentication_bloc/AuthenticationFailureInterface/msg.md) ↔ [String](https://api.flutter.dev/flutter/dart-core/String-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
_<span class="feature">read / write</span><span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [runtimeType](https://api.flutter.dev/flutter/dart-core/Object/runtimeType.html) → [Type](https://api.flutter.dev/flutter/dart-core/Type-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
A representation of the runtime type of the object.
|
||||||
|
_<span class="feature">read-only</span><span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Methods
|
||||||
|
|
||||||
|
##### [noSuchMethod](https://api.flutter.dev/flutter/dart-core/Object/noSuchMethod.html)([Invocation](https://api.flutter.dev/flutter/dart-core/Invocation-class.html) invocation) dynamic
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Invoked when a non-existent method or property is accessed.
|
||||||
|
_<span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [toString](../wyatt_authentication_bloc/AuthenticationFailureInterface/toString.md)() [String](https://api.flutter.dev/flutter/dart-core/String-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
A string representation of this object.
|
||||||
|
_<span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Operators
|
||||||
|
|
||||||
|
##### [operator ==](https://api.flutter.dev/flutter/dart-core/Object/operator_equals.html)([Object](https://api.flutter.dev/flutter/dart-core/Object-class.html) other) [bool](https://api.flutter.dev/flutter/dart-core/bool-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The equality operator.
|
||||||
|
_<span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+49
@@ -0,0 +1,49 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ApplyActionCodeFailureFirebase.fromCode constructor
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ApplyActionCodeFailureFirebase.fromCode([String](https://api.flutter.dev/flutter/dart-core/String-class.html) code)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
|
||||||
|
```dart
|
||||||
|
ApplyActionCodeFailureFirebase.fromCode(String code) : super.fromCode(code) {
|
||||||
|
switch (code) {
|
||||||
|
case 'expired-action-code':
|
||||||
|
msg = 'Action code has expired.';
|
||||||
|
break;
|
||||||
|
case 'invalid-action-code':
|
||||||
|
msg = 'Action code is invalid.';
|
||||||
|
break;
|
||||||
|
case 'user-disabled':
|
||||||
|
msg = 'This user has been disabled. Please contact support for help.';
|
||||||
|
break;
|
||||||
|
case 'user-not-found':
|
||||||
|
msg = 'Email is not found, please create an account.';
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
this.code = 'unknown';
|
||||||
|
msg = 'An unknown error occurred.';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+31
@@ -0,0 +1,31 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ApplyActionCodeFailureFirebase constructor
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ApplyActionCodeFailureFirebase([[String](https://api.flutter.dev/flutter/dart-core/String-class.html)? code, [String](https://api.flutter.dev/flutter/dart-core/String-class.html)? msg])
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
|
||||||
|
```dart
|
||||||
|
ApplyActionCodeFailureFirebase([String? code, String? msg])
|
||||||
|
: super(code ?? 'unknown', msg ?? 'An unknown error occurred.');
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+139
@@ -0,0 +1,139 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ApplyActionCodeFailureInterface class
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>Thrown if during the apply action code process if a failure occurs.</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
**Inheritance**
|
||||||
|
|
||||||
|
- [Object](https://api.flutter.dev/flutter/dart-core/Object-class.html)
|
||||||
|
- [AuthenticationFailureInterface](../wyatt_authentication_bloc/AuthenticationFailureInterface-class.md)
|
||||||
|
- ApplyActionCodeFailureInterface
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
**Implementers**
|
||||||
|
|
||||||
|
- [ApplyActionCodeFailureFirebase](../wyatt_authentication_bloc/ApplyActionCodeFailureFirebase-class.md)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Constructors
|
||||||
|
|
||||||
|
[ApplyActionCodeFailureInterface](../wyatt_authentication_bloc/ApplyActionCodeFailureInterface/ApplyActionCodeFailureInterface.md) ([String](https://api.flutter.dev/flutter/dart-core/String-class.html) code, [String](https://api.flutter.dev/flutter/dart-core/String-class.html) msg)
|
||||||
|
|
||||||
|
Thrown if during the apply action code process if a failure occurs.
|
||||||
|
|
||||||
|
[ApplyActionCodeFailureInterface.fromCode](../wyatt_authentication_bloc/ApplyActionCodeFailureInterface/ApplyActionCodeFailureInterface.fromCode.md) ([String](https://api.flutter.dev/flutter/dart-core/String-class.html) code)
|
||||||
|
|
||||||
|
Thrown if during the apply action code process if a failure occurs.
|
||||||
|
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
|
||||||
|
##### [code](../wyatt_authentication_bloc/AuthenticationFailureInterface/code.md) ↔ [String](https://api.flutter.dev/flutter/dart-core/String-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
_<span class="feature">read / write</span><span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [hashCode](https://api.flutter.dev/flutter/dart-core/Object/hashCode.html) → [int](https://api.flutter.dev/flutter/dart-core/int-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The hash code for this object.
|
||||||
|
_<span class="feature">read-only</span><span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [message](../wyatt_authentication_bloc/AuthenticationFailureInterface/message.md) → [String](https://api.flutter.dev/flutter/dart-core/String-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
_<span class="feature">read-only</span><span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [msg](../wyatt_authentication_bloc/AuthenticationFailureInterface/msg.md) ↔ [String](https://api.flutter.dev/flutter/dart-core/String-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
_<span class="feature">read / write</span><span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [runtimeType](https://api.flutter.dev/flutter/dart-core/Object/runtimeType.html) → [Type](https://api.flutter.dev/flutter/dart-core/Type-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
A representation of the runtime type of the object.
|
||||||
|
_<span class="feature">read-only</span><span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Methods
|
||||||
|
|
||||||
|
##### [noSuchMethod](https://api.flutter.dev/flutter/dart-core/Object/noSuchMethod.html)([Invocation](https://api.flutter.dev/flutter/dart-core/Invocation-class.html) invocation) dynamic
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Invoked when a non-existent method or property is accessed.
|
||||||
|
_<span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [toString](../wyatt_authentication_bloc/AuthenticationFailureInterface/toString.md)() [String](https://api.flutter.dev/flutter/dart-core/String-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
A string representation of this object.
|
||||||
|
_<span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Operators
|
||||||
|
|
||||||
|
##### [operator ==](https://api.flutter.dev/flutter/dart-core/Object/operator_equals.html)([Object](https://api.flutter.dev/flutter/dart-core/Object-class.html) other) [bool](https://api.flutter.dev/flutter/dart-core/bool-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The equality operator.
|
||||||
|
_<span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+31
@@ -0,0 +1,31 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ApplyActionCodeFailureInterface.fromCode constructor
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ApplyActionCodeFailureInterface.fromCode([String](https://api.flutter.dev/flutter/dart-core/String-class.html) code)
|
||||||
|
|
||||||
|
|
||||||
|
<p>Thrown if during the apply action code process if a failure occurs.</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
|
||||||
|
```dart
|
||||||
|
ApplyActionCodeFailureInterface.fromCode(super.code) : super.fromCode();
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+31
@@ -0,0 +1,31 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ApplyActionCodeFailureInterface constructor
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ApplyActionCodeFailureInterface([String](https://api.flutter.dev/flutter/dart-core/String-class.html) code, [String](https://api.flutter.dev/flutter/dart-core/String-class.html) msg)
|
||||||
|
|
||||||
|
|
||||||
|
<p>Thrown if during the apply action code process if a failure occurs.</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
|
||||||
|
```dart
|
||||||
|
ApplyActionCodeFailureInterface(super.code, super.msg);
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+122
@@ -0,0 +1,122 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# AuthFormField class
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>Default authentication form fields name</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Constructors
|
||||||
|
|
||||||
|
[AuthFormField](../wyatt_authentication_bloc/AuthFormField/AuthFormField.md) ()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
|
||||||
|
##### [hashCode](https://api.flutter.dev/flutter/dart-core/Object/hashCode.html) → [int](https://api.flutter.dev/flutter/dart-core/int-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The hash code for this object.
|
||||||
|
_<span class="feature">read-only</span><span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [runtimeType](https://api.flutter.dev/flutter/dart-core/Object/runtimeType.html) → [Type](https://api.flutter.dev/flutter/dart-core/Type-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
A representation of the runtime type of the object.
|
||||||
|
_<span class="feature">read-only</span><span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Methods
|
||||||
|
|
||||||
|
##### [noSuchMethod](https://api.flutter.dev/flutter/dart-core/Object/noSuchMethod.html)([Invocation](https://api.flutter.dev/flutter/dart-core/Invocation-class.html) invocation) dynamic
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Invoked when a non-existent method or property is accessed.
|
||||||
|
_<span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [toString](https://api.flutter.dev/flutter/dart-core/Object/toString.html)() [String](https://api.flutter.dev/flutter/dart-core/String-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
A string representation of this object.
|
||||||
|
_<span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Operators
|
||||||
|
|
||||||
|
##### [operator ==](https://api.flutter.dev/flutter/dart-core/Object/operator_equals.html)([Object](https://api.flutter.dev/flutter/dart-core/Object-class.html) other) [bool](https://api.flutter.dev/flutter/dart-core/bool-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The equality operator.
|
||||||
|
_<span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Constants
|
||||||
|
|
||||||
|
##### [confirmPassword](../wyatt_authentication_bloc/AuthFormField/confirmPassword-constant.md) const [String](https://api.flutter.dev/flutter/dart-core/String-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Confirm Password field: <code>wyattConfirmPasswordField</code>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [email](../wyatt_authentication_bloc/AuthFormField/email-constant.md) const [String](https://api.flutter.dev/flutter/dart-core/String-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Email field: <code>wyattEmailField</code>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [password](../wyatt_authentication_bloc/AuthFormField/password-constant.md) const [String](https://api.flutter.dev/flutter/dart-core/String-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Password field: <code>wyattPasswordField</code>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+25
@@ -0,0 +1,25 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# AuthFormField constructor
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
AuthFormField()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+34
@@ -0,0 +1,34 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# confirmPassword constant
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[String](https://api.flutter.dev/flutter/dart-core/String-class.html) const confirmPassword
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>Confirm Password field: <code>wyattConfirmPasswordField</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
|
||||||
|
```dart
|
||||||
|
static const confirmPassword = 'wyattConfirmPasswordField';
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+34
@@ -0,0 +1,34 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# email constant
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[String](https://api.flutter.dev/flutter/dart-core/String-class.html) const email
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>Email field: <code>wyattEmailField</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
|
||||||
|
```dart
|
||||||
|
static const email = 'wyattEmailField';
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+34
@@ -0,0 +1,34 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# password constant
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[String](https://api.flutter.dev/flutter/dart-core/String-class.html) const password
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>Password field: <code>wyattPasswordField</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
|
||||||
|
```dart
|
||||||
|
static const password = 'wyattPasswordField';
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+131
@@ -0,0 +1,131 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# AuthFormName class
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>Default authentication form name</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Constructors
|
||||||
|
|
||||||
|
[AuthFormName](../wyatt_authentication_bloc/AuthFormName/AuthFormName.md) ()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
|
||||||
|
##### [hashCode](https://api.flutter.dev/flutter/dart-core/Object/hashCode.html) → [int](https://api.flutter.dev/flutter/dart-core/int-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The hash code for this object.
|
||||||
|
_<span class="feature">read-only</span><span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [runtimeType](https://api.flutter.dev/flutter/dart-core/Object/runtimeType.html) → [Type](https://api.flutter.dev/flutter/dart-core/Type-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
A representation of the runtime type of the object.
|
||||||
|
_<span class="feature">read-only</span><span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Methods
|
||||||
|
|
||||||
|
##### [noSuchMethod](https://api.flutter.dev/flutter/dart-core/Object/noSuchMethod.html)([Invocation](https://api.flutter.dev/flutter/dart-core/Invocation-class.html) invocation) dynamic
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Invoked when a non-existent method or property is accessed.
|
||||||
|
_<span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [toString](https://api.flutter.dev/flutter/dart-core/Object/toString.html)() [String](https://api.flutter.dev/flutter/dart-core/String-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
A string representation of this object.
|
||||||
|
_<span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Operators
|
||||||
|
|
||||||
|
##### [operator ==](https://api.flutter.dev/flutter/dart-core/Object/operator_equals.html)([Object](https://api.flutter.dev/flutter/dart-core/Object-class.html) other) [bool](https://api.flutter.dev/flutter/dart-core/bool-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The equality operator.
|
||||||
|
_<span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Constants
|
||||||
|
|
||||||
|
##### [editAccountForm](../wyatt_authentication_bloc/AuthFormName/editAccountForm-constant.md) const [String](https://api.flutter.dev/flutter/dart-core/String-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Edit account form: <code>wyattEditAccountForm</code>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [passwordResetForm](../wyatt_authentication_bloc/AuthFormName/passwordResetForm-constant.md) const [String](https://api.flutter.dev/flutter/dart-core/String-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Password reset form: <code>wyattPasswordResetForm</code>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [signInForm](../wyatt_authentication_bloc/AuthFormName/signInForm-constant.md) const [String](https://api.flutter.dev/flutter/dart-core/String-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Sign In form: <code>wyattSignInForm</code>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [signUpForm](../wyatt_authentication_bloc/AuthFormName/signUpForm-constant.md) const [String](https://api.flutter.dev/flutter/dart-core/String-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Sign Up form: <code>wyattSignUpForm</code>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+25
@@ -0,0 +1,25 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# AuthFormName constructor
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
AuthFormName()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+34
@@ -0,0 +1,34 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# editAccountForm constant
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[String](https://api.flutter.dev/flutter/dart-core/String-class.html) const editAccountForm
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>Edit account form: <code>wyattEditAccountForm</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
|
||||||
|
```dart
|
||||||
|
static const String editAccountForm = 'wyattEditAccountForm';
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+34
@@ -0,0 +1,34 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# passwordResetForm constant
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[String](https://api.flutter.dev/flutter/dart-core/String-class.html) const passwordResetForm
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>Password reset form: <code>wyattPasswordResetForm</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
|
||||||
|
```dart
|
||||||
|
static const String passwordResetForm = 'wyattPasswordResetForm';
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+34
@@ -0,0 +1,34 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# signInForm constant
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[String](https://api.flutter.dev/flutter/dart-core/String-class.html) const signInForm
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>Sign In form: <code>wyattSignInForm</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
|
||||||
|
```dart
|
||||||
|
static const String signInForm = 'wyattSignInForm';
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+34
@@ -0,0 +1,34 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# signUpForm constant
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[String](https://api.flutter.dev/flutter/dart-core/String-class.html) const signUpForm
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>Sign Up form: <code>wyattSignUpForm</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
|
||||||
|
```dart
|
||||||
|
static const String signUpForm = 'wyattSignUpForm';
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+216
@@ -0,0 +1,216 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# AuthenticationBuilder<Data> class
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
**Inheritance**
|
||||||
|
|
||||||
|
- [Object](https://api.flutter.dev/flutter/dart-core/Object-class.html)
|
||||||
|
- [DiagnosticableTree](https://api.flutter.dev/flutter/foundation/DiagnosticableTree-class.html)
|
||||||
|
- [Widget](https://api.flutter.dev/flutter/widgets/Widget-class.html)
|
||||||
|
- [StatelessWidget](https://api.flutter.dev/flutter/widgets/StatelessWidget-class.html)
|
||||||
|
- AuthenticationBuilder
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Constructors
|
||||||
|
|
||||||
|
[AuthenticationBuilder](../wyatt_authentication_bloc/AuthenticationBuilder/AuthenticationBuilder.md) ({required [Widget](https://api.flutter.dev/flutter/widgets/Widget-class.html) authenticated([BuildContext](https://api.flutter.dev/flutter/widgets/BuildContext-class.html) context, [SessionWrapper](../wyatt_authentication_bloc/SessionWrapper-class.md)<Data> sessionWrapper), required [Widget](https://api.flutter.dev/flutter/widgets/Widget-class.html) unauthenticated([BuildContext](https://api.flutter.dev/flutter/widgets/BuildContext-class.html) context), required [Widget](https://api.flutter.dev/flutter/widgets/Widget-class.html) unknown([BuildContext](https://api.flutter.dev/flutter/widgets/BuildContext-class.html) context), [Key](https://api.flutter.dev/flutter/foundation/Key-class.html)? key})
|
||||||
|
|
||||||
|
_const_
|
||||||
|
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
|
||||||
|
##### [authenticated](../wyatt_authentication_bloc/AuthenticationBuilder/authenticated.md) → [Widget](https://api.flutter.dev/flutter/widgets/Widget-class.html) Function([BuildContext](https://api.flutter.dev/flutter/widgets/BuildContext-class.html) context, [SessionWrapper](../wyatt_authentication_bloc/SessionWrapper-class.md)<Data> sessionWrapper)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
_<span class="feature">final</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [hashCode](https://api.flutter.dev/flutter/widgets/Widget/hashCode.html) → [int](https://api.flutter.dev/flutter/dart-core/int-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The hash code for this object.
|
||||||
|
_<span class="feature">read-only</span><span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [key](https://api.flutter.dev/flutter/widgets/Widget/key.html) → [Key](https://api.flutter.dev/flutter/foundation/Key-class.html)?
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Controls how one widget replaces another widget in the tree.
|
||||||
|
_<span class="feature">final</span><span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [runtimeType](https://api.flutter.dev/flutter/dart-core/Object/runtimeType.html) → [Type](https://api.flutter.dev/flutter/dart-core/Type-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
A representation of the runtime type of the object.
|
||||||
|
_<span class="feature">read-only</span><span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [unauthenticated](../wyatt_authentication_bloc/AuthenticationBuilder/unauthenticated.md) → [Widget](https://api.flutter.dev/flutter/widgets/Widget-class.html) Function([BuildContext](https://api.flutter.dev/flutter/widgets/BuildContext-class.html) context)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
_<span class="feature">final</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [unknown](../wyatt_authentication_bloc/AuthenticationBuilder/unknown.md) → [Widget](https://api.flutter.dev/flutter/widgets/Widget-class.html) Function([BuildContext](https://api.flutter.dev/flutter/widgets/BuildContext-class.html) context)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
_<span class="feature">final</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Methods
|
||||||
|
|
||||||
|
##### [build](../wyatt_authentication_bloc/AuthenticationBuilder/build.md)([BuildContext](https://api.flutter.dev/flutter/widgets/BuildContext-class.html) context) [Widget](https://api.flutter.dev/flutter/widgets/Widget-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Describes the part of the user interface represented by this widget.
|
||||||
|
_<span class="feature">override</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [createElement](https://api.flutter.dev/flutter/widgets/StatelessWidget/createElement.html)() [StatelessElement](https://api.flutter.dev/flutter/widgets/StatelessElement-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Creates a <a href="https://api.flutter.dev/flutter/widgets/StatelessElement-class.html">StatelessElement</a> to manage this widget's location in the tree.
|
||||||
|
_<span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [debugDescribeChildren](https://api.flutter.dev/flutter/foundation/DiagnosticableTree/debugDescribeChildren.html)() [List](https://api.flutter.dev/flutter/dart-core/List-class.html)<[DiagnosticsNode](https://api.flutter.dev/flutter/foundation/DiagnosticsNode-class.html)>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Returns a list of <code>DiagnosticsNode</code> objects describing this node's
|
||||||
|
children.
|
||||||
|
_<span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [debugFillProperties](https://api.flutter.dev/flutter/widgets/Widget/debugFillProperties.html)([DiagnosticPropertiesBuilder](https://api.flutter.dev/flutter/foundation/DiagnosticPropertiesBuilder-class.html) properties) void
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Add additional properties associated with the node.
|
||||||
|
_<span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [noSuchMethod](https://api.flutter.dev/flutter/dart-core/Object/noSuchMethod.html)([Invocation](https://api.flutter.dev/flutter/dart-core/Invocation-class.html) invocation) dynamic
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Invoked when a non-existent method or property is accessed.
|
||||||
|
_<span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [toDiagnosticsNode](https://api.flutter.dev/flutter/foundation/DiagnosticableTree/toDiagnosticsNode.html)({[String](https://api.flutter.dev/flutter/dart-core/String-class.html)? name, [DiagnosticsTreeStyle](https://api.flutter.dev/flutter/foundation/DiagnosticsTreeStyle.html)? style}) [DiagnosticsNode](https://api.flutter.dev/flutter/foundation/DiagnosticsNode-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Returns a debug representation of the object that is used by debugging
|
||||||
|
tools and by <a href="https://api.flutter.dev/flutter/foundation/DiagnosticsNode/toStringDeep.html">DiagnosticsNode.toStringDeep</a>.
|
||||||
|
_<span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [toString](https://api.flutter.dev/flutter/foundation/Diagnosticable/toString.html)({[DiagnosticLevel](https://api.flutter.dev/flutter/foundation/DiagnosticLevel.html) minLevel = DiagnosticLevel.info}) [String](https://api.flutter.dev/flutter/dart-core/String-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
A string representation of this object.
|
||||||
|
_<span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [toStringDeep](https://api.flutter.dev/flutter/foundation/DiagnosticableTree/toStringDeep.html)({[String](https://api.flutter.dev/flutter/dart-core/String-class.html) prefixLineOne = '', [String](https://api.flutter.dev/flutter/dart-core/String-class.html)? prefixOtherLines, [DiagnosticLevel](https://api.flutter.dev/flutter/foundation/DiagnosticLevel.html) minLevel = DiagnosticLevel.debug}) [String](https://api.flutter.dev/flutter/dart-core/String-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Returns a string representation of this node and its descendants.
|
||||||
|
_<span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [toStringShallow](https://api.flutter.dev/flutter/foundation/DiagnosticableTree/toStringShallow.html)({[String](https://api.flutter.dev/flutter/dart-core/String-class.html) joiner = ', ', [DiagnosticLevel](https://api.flutter.dev/flutter/foundation/DiagnosticLevel.html) minLevel = DiagnosticLevel.debug}) [String](https://api.flutter.dev/flutter/dart-core/String-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Returns a one-line detailed description of the object.
|
||||||
|
_<span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [toStringShort](https://api.flutter.dev/flutter/widgets/Widget/toStringShort.html)() [String](https://api.flutter.dev/flutter/dart-core/String-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
A short, textual description of this widget.
|
||||||
|
_<span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Operators
|
||||||
|
|
||||||
|
##### [operator ==](https://api.flutter.dev/flutter/widgets/Widget/operator_equals.html)([Object](https://api.flutter.dev/flutter/dart-core/Object-class.html) other) [bool](https://api.flutter.dev/flutter/dart-core/bool-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The equality operator.
|
||||||
|
_<span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+35
@@ -0,0 +1,35 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# AuthenticationBuilder<Data> constructor
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
const
|
||||||
|
AuthenticationBuilder<Data>({required [Widget](https://api.flutter.dev/flutter/widgets/Widget-class.html) authenticated([BuildContext](https://api.flutter.dev/flutter/widgets/BuildContext-class.html) context, [SessionWrapper](../../wyatt_authentication_bloc/SessionWrapper-class.md)<Data> sessionWrapper), required [Widget](https://api.flutter.dev/flutter/widgets/Widget-class.html) unauthenticated([BuildContext](https://api.flutter.dev/flutter/widgets/BuildContext-class.html) context), required [Widget](https://api.flutter.dev/flutter/widgets/Widget-class.html) unknown([BuildContext](https://api.flutter.dev/flutter/widgets/BuildContext-class.html) context), [Key](https://api.flutter.dev/flutter/foundation/Key-class.html)? key})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
|
||||||
|
```dart
|
||||||
|
const AuthenticationBuilder({
|
||||||
|
required this.authenticated,
|
||||||
|
required this.unauthenticated,
|
||||||
|
required this.unknown,
|
||||||
|
super.key,
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+36
@@ -0,0 +1,36 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# authenticated property
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[Widget](https://api.flutter.dev/flutter/widgets/Widget-class.html) Function([BuildContext](https://api.flutter.dev/flutter/widgets/BuildContext-class.html) context, [SessionWrapper](../../wyatt_authentication_bloc/SessionWrapper-class.md)<Data> sessionWrapper) authenticated
|
||||||
|
|
||||||
|
_<span class="feature">final</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
|
||||||
|
```dart
|
||||||
|
final Widget Function(
|
||||||
|
BuildContext context,
|
||||||
|
SessionWrapper<Data> sessionWrapper,
|
||||||
|
) authenticated;
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+85
@@ -0,0 +1,85 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# build method
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
- @[override](https://api.flutter.dev/flutter/dart-core/override-constant.html)
|
||||||
|
|
||||||
|
[Widget](https://api.flutter.dev/flutter/widgets/Widget-class.html) build
|
||||||
|
([BuildContext](https://api.flutter.dev/flutter/widgets/BuildContext-class.html) context)
|
||||||
|
|
||||||
|
_<span class="feature">override</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>Describes the part of the user interface represented by this widget.</p>
|
||||||
|
<p>The framework calls this method when this widget is inserted into the tree
|
||||||
|
in a given <a href="https://api.flutter.dev/flutter/widgets/BuildContext-class.html">BuildContext</a> and when the dependencies of this widget change
|
||||||
|
(e.g., an <a href="https://api.flutter.dev/flutter/widgets/InheritedWidget-class.html">InheritedWidget</a> referenced by this widget changes). This
|
||||||
|
method can potentially be called in every frame and should not have any side
|
||||||
|
effects beyond building a widget.</p>
|
||||||
|
<p>The framework replaces the subtree below this widget with the widget
|
||||||
|
returned by this method, either by updating the existing subtree or by
|
||||||
|
removing the subtree and inflating a new subtree, depending on whether the
|
||||||
|
widget returned by this method can update the root of the existing
|
||||||
|
subtree, as determined by calling <a href="https://api.flutter.dev/flutter/widgets/Widget/canUpdate.html">Widget.canUpdate</a>.</p>
|
||||||
|
<p>Typically implementations return a newly created constellation of widgets
|
||||||
|
that are configured with information from this widget's constructor and
|
||||||
|
from the given <a href="https://api.flutter.dev/flutter/widgets/BuildContext-class.html">BuildContext</a>.</p>
|
||||||
|
<p>The given <a href="https://api.flutter.dev/flutter/widgets/BuildContext-class.html">BuildContext</a> contains information about the location in the
|
||||||
|
tree at which this widget is being built. For example, the context
|
||||||
|
provides the set of inherited widgets for this location in the tree. A
|
||||||
|
given widget might be built with multiple different <a href="https://api.flutter.dev/flutter/widgets/BuildContext-class.html">BuildContext</a>
|
||||||
|
arguments over time if the widget is moved around the tree or if the
|
||||||
|
widget is inserted into the tree in multiple places at once.</p>
|
||||||
|
<p>The implementation of this method must only depend on:</p>
|
||||||
|
<ul>
|
||||||
|
<li>the fields of the widget, which themselves must not change over time,
|
||||||
|
and</li>
|
||||||
|
<li>any ambient state obtained from the <code>context</code> using
|
||||||
|
<a href="https://api.flutter.dev/flutter/widgets/BuildContext/dependOnInheritedWidgetOfExactType.html">BuildContext.dependOnInheritedWidgetOfExactType</a>.</li>
|
||||||
|
</ul>
|
||||||
|
<p>If a widget's <a href="../../wyatt_authentication_bloc/AuthenticationBuilder/build.md">build</a> method is to depend on anything else, use a
|
||||||
|
<a href="https://api.flutter.dev/flutter/widgets/StatefulWidget-class.html">StatefulWidget</a> instead.</p>
|
||||||
|
<p>See also:</p>
|
||||||
|
<ul>
|
||||||
|
<li><a href="https://api.flutter.dev/flutter/widgets/StatelessWidget-class.html">StatelessWidget</a>, which contains the discussion on performance considerations.</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
|
||||||
|
```dart
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) =>
|
||||||
|
BlocBuilder<AuthenticationCubit<Data>, AuthenticationState<Data>>(
|
||||||
|
builder: (context, state) {
|
||||||
|
if (state.status == AuthenticationStatus.authenticated) {
|
||||||
|
if (state.wrapper != null) {
|
||||||
|
return authenticated(context, state.wrapper!);
|
||||||
|
} else {
|
||||||
|
return unauthenticated(context);
|
||||||
|
}
|
||||||
|
} else if (state.status == AuthenticationStatus.unauthenticated) {
|
||||||
|
return unauthenticated(context);
|
||||||
|
} else {
|
||||||
|
return unknown(context);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
);
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+33
@@ -0,0 +1,33 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# unauthenticated property
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[Widget](https://api.flutter.dev/flutter/widgets/Widget-class.html) Function([BuildContext](https://api.flutter.dev/flutter/widgets/BuildContext-class.html) context) unauthenticated
|
||||||
|
|
||||||
|
_<span class="feature">final</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
|
||||||
|
```dart
|
||||||
|
final Widget Function(BuildContext context) unauthenticated;
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+33
@@ -0,0 +1,33 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# unknown property
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[Widget](https://api.flutter.dev/flutter/widgets/Widget-class.html) Function([BuildContext](https://api.flutter.dev/flutter/widgets/BuildContext-class.html) context) unknown
|
||||||
|
|
||||||
|
_<span class="feature">final</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
|
||||||
|
```dart
|
||||||
|
final Widget Function(BuildContext context) unknown;
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+137
@@ -0,0 +1,137 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# AuthenticationChangeEvent class
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>Represents an event initiated by a change in
|
||||||
|
the user's authentication status.</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
**Inheritance**
|
||||||
|
|
||||||
|
- [Object](https://api.flutter.dev/flutter/dart-core/Object-class.html)
|
||||||
|
- [Equatable](https://pub.dev/documentation/equatable/2.0.5/equatable/Equatable-class.html)
|
||||||
|
- AuthenticationChangeEvent
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
**Implementers**
|
||||||
|
|
||||||
|
- [DeletedEvent](../wyatt_authentication_bloc/DeletedEvent-class.md)
|
||||||
|
- [ReauthenticatedEvent](../wyatt_authentication_bloc/ReauthenticatedEvent-class.md)
|
||||||
|
- [RefreshedEvent](../wyatt_authentication_bloc/RefreshedEvent-class.md)
|
||||||
|
- [SignedInEvent](../wyatt_authentication_bloc/SignedInEvent-class.md)
|
||||||
|
- [SignedInFromCacheEvent](../wyatt_authentication_bloc/SignedInFromCacheEvent-class.md)
|
||||||
|
- [SignedOutEvent](../wyatt_authentication_bloc/SignedOutEvent-class.md)
|
||||||
|
- [SignedUpEvent](../wyatt_authentication_bloc/SignedUpEvent-class.md)
|
||||||
|
- [UnknownAuthenticationEvent](../wyatt_authentication_bloc/UnknownAuthenticationEvent-class.md)
|
||||||
|
- [UpdatedEvent](../wyatt_authentication_bloc/UpdatedEvent-class.md)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Constructors
|
||||||
|
|
||||||
|
[AuthenticationChangeEvent](../wyatt_authentication_bloc/AuthenticationChangeEvent/AuthenticationChangeEvent.md) ()
|
||||||
|
|
||||||
|
_const_
|
||||||
|
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
|
||||||
|
##### [hashCode](https://pub.dev/documentation/equatable/2.0.5/equatable/Equatable/hashCode.html) → [int](https://api.flutter.dev/flutter/dart-core/int-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The hash code for this object.
|
||||||
|
_<span class="feature">read-only</span><span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [props](../wyatt_authentication_bloc/AuthenticationChangeEvent/props.md) → [List](https://api.flutter.dev/flutter/dart-core/List-class.html)<[Object](https://api.flutter.dev/flutter/dart-core/Object-class.html)?>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The list of properties that will be used to determine whether
|
||||||
|
two instances are equal.
|
||||||
|
_<span class="feature">read-only</span><span class="feature">override</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [runtimeType](https://api.flutter.dev/flutter/dart-core/Object/runtimeType.html) → [Type](https://api.flutter.dev/flutter/dart-core/Type-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
A representation of the runtime type of the object.
|
||||||
|
_<span class="feature">read-only</span><span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [stringify](../wyatt_authentication_bloc/AuthenticationChangeEvent/stringify.md) → [bool](https://api.flutter.dev/flutter/dart-core/bool-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
If set to <code>true</code>, the <a href="https://pub.dev/documentation/equatable/2.0.5/equatable/Equatable/toString.html">toString</a> method will be overridden to output
|
||||||
|
this instance's <a href="../wyatt_authentication_bloc/AuthenticationChangeEvent/props.md">props</a>.
|
||||||
|
_<span class="feature">read-only</span><span class="feature">override</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Methods
|
||||||
|
|
||||||
|
##### [noSuchMethod](https://api.flutter.dev/flutter/dart-core/Object/noSuchMethod.html)([Invocation](https://api.flutter.dev/flutter/dart-core/Invocation-class.html) invocation) dynamic
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Invoked when a non-existent method or property is accessed.
|
||||||
|
_<span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [toString](https://pub.dev/documentation/equatable/2.0.5/equatable/Equatable/toString.html)() [String](https://api.flutter.dev/flutter/dart-core/String-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
A string representation of this object.
|
||||||
|
_<span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Operators
|
||||||
|
|
||||||
|
##### [operator ==](https://pub.dev/documentation/equatable/2.0.5/equatable/Equatable/operator_equals.html)([Object](https://api.flutter.dev/flutter/dart-core/Object-class.html) other) [bool](https://api.flutter.dev/flutter/dart-core/bool-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The equality operator.
|
||||||
|
_<span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+30
@@ -0,0 +1,30 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# AuthenticationChangeEvent constructor
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
const
|
||||||
|
AuthenticationChangeEvent()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
|
||||||
|
```dart
|
||||||
|
const AuthenticationChangeEvent();
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+42
@@ -0,0 +1,42 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# props property
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
**Annotations**
|
||||||
|
|
||||||
|
- @[override](https://api.flutter.dev/flutter/dart-core/override-constant.html)
|
||||||
|
[List](https://api.flutter.dev/flutter/dart-core/List-class.html)<[Object](https://api.flutter.dev/flutter/dart-core/Object-class.html)?> props
|
||||||
|
|
||||||
|
_<span class="feature">override</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>The list of properties that will be used to determine whether
|
||||||
|
two instances are equal.</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
|
||||||
|
```dart
|
||||||
|
@override
|
||||||
|
List<Object?> get props => [];
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+47
@@ -0,0 +1,47 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# stringify property
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
**Annotations**
|
||||||
|
|
||||||
|
- @[override](https://api.flutter.dev/flutter/dart-core/override-constant.html)
|
||||||
|
[bool](https://api.flutter.dev/flutter/dart-core/bool-class.html) stringify
|
||||||
|
|
||||||
|
_<span class="feature">override</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>If set to <code>true</code>, the <a href="https://pub.dev/documentation/equatable/2.0.5/equatable/Equatable/toString.html">toString</a> method will be overridden to output
|
||||||
|
this instance's <a href="../../wyatt_authentication_bloc/AuthenticationChangeEvent/props.md">props</a>.</p>
|
||||||
|
<p>A global default value for <a href="../../wyatt_authentication_bloc/AuthenticationChangeEvent/stringify.md">stringify</a> can be set using
|
||||||
|
<code>EquatableConfig.stringify</code>.</p>
|
||||||
|
<p>If this instance's <a href="../../wyatt_authentication_bloc/AuthenticationChangeEvent/stringify.md">stringify</a> is set to null, the value of
|
||||||
|
<code>EquatableConfig.stringify</code> will be used instead. This defaults to
|
||||||
|
<code>false</code>.</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
|
||||||
|
```dart
|
||||||
|
@override
|
||||||
|
bool get stringify => true;
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+292
@@ -0,0 +1,292 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# AuthenticationCubit<Data> class
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>Abstract authentication cubit class needs to be implemented in application.</p>
|
||||||
|
<p>This cubit is in charge of managing the global authentication state of
|
||||||
|
the application.</p>
|
||||||
|
<p>Its here you can override every callbacks and add your custom logic.</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
**Inheritance**
|
||||||
|
|
||||||
|
- [Object](https://api.flutter.dev/flutter/dart-core/Object-class.html)
|
||||||
|
- [BlocBase](https://pub.dev/documentation/bloc/8.1.0/bloc/BlocBase-class.html)<[AuthenticationState](../wyatt_authentication_bloc/AuthenticationState-class.md)<Data>>
|
||||||
|
- [Cubit](https://pub.dev/documentation/bloc/8.1.0/bloc/Cubit-class.html)<[AuthenticationState](../wyatt_authentication_bloc/AuthenticationState-class.md)<Data>>
|
||||||
|
- AuthenticationCubit
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Constructors
|
||||||
|
|
||||||
|
[AuthenticationCubit](../wyatt_authentication_bloc/AuthenticationCubit/AuthenticationCubit.md) ({required [AuthenticationRepository](../wyatt_authentication_bloc/AuthenticationRepository-class.md)<Data> authenticationRepository})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
|
||||||
|
##### [authenticationRepository](../wyatt_authentication_bloc/AuthenticationCubit/authenticationRepository.md) → [AuthenticationRepository](../wyatt_authentication_bloc/AuthenticationRepository-class.md)<Data>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
_<span class="feature">final</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [hashCode](https://api.flutter.dev/flutter/dart-core/Object/hashCode.html) → [int](https://api.flutter.dev/flutter/dart-core/int-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The hash code for this object.
|
||||||
|
_<span class="feature">read-only</span><span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [isClosed](https://pub.dev/documentation/bloc/8.1.0/bloc/BlocBase/isClosed.html) → [bool](https://api.flutter.dev/flutter/dart-core/bool-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Whether the bloc is closed.
|
||||||
|
_<span class="feature">read-only</span><span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [runtimeType](https://api.flutter.dev/flutter/dart-core/Object/runtimeType.html) → [Type](https://api.flutter.dev/flutter/dart-core/Type-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
A representation of the runtime type of the object.
|
||||||
|
_<span class="feature">read-only</span><span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [state](https://pub.dev/documentation/bloc/8.1.0/bloc/BlocBase/state.html) → [AuthenticationState](../wyatt_authentication_bloc/AuthenticationState-class.md)<Data>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The current <a href="https://pub.dev/documentation/bloc/8.1.0/bloc/BlocBase/state.html">state</a>.
|
||||||
|
_<span class="feature">read-only</span><span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [stream](https://pub.dev/documentation/bloc/8.1.0/bloc/BlocBase/stream.html) → [Stream](https://api.flutter.dev/flutter/dart-async/Stream-class.html)<[AuthenticationState](../wyatt_authentication_bloc/AuthenticationState-class.md)<Data>>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The current <a href="https://pub.dev/documentation/bloc/8.1.0/bloc/BlocBase/stream.html">stream</a> of states.
|
||||||
|
_<span class="feature">read-only</span><span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Methods
|
||||||
|
|
||||||
|
##### [addError](https://pub.dev/documentation/bloc/8.1.0/bloc/BlocBase/addError.html)([Object](https://api.flutter.dev/flutter/dart-core/Object-class.html) error, [[StackTrace](https://api.flutter.dev/flutter/dart-core/StackTrace-class.html)? stackTrace]) void
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Reports an <code>error</code> which triggers <a href="https://pub.dev/documentation/bloc/8.1.0/bloc/BlocBase/onError.html">onError</a> with an optional <a href="https://api.flutter.dev/flutter/dart-core/StackTrace-class.html">StackTrace</a>.
|
||||||
|
_<span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [close](https://pub.dev/documentation/bloc/8.1.0/bloc/BlocBase/close.html)() [Future](https://api.flutter.dev/flutter/dart-async/Future-class.html)<void>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Closes the instance.
|
||||||
|
This method should be called when the instance is no longer needed.
|
||||||
|
Once <a href="https://pub.dev/documentation/bloc/8.1.0/bloc/BlocBase/close.html">close</a> is called, the instance can no longer be used.
|
||||||
|
_<span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [currentSession](../wyatt_authentication_bloc/AuthenticationCubit/currentSession.md)() [SessionWrapper](../wyatt_authentication_bloc/SessionWrapper-class.md)<Data>?
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Returns latest session wrapper.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [delete](../wyatt_authentication_bloc/AuthenticationCubit/delete.md)() [FutureOr](https://api.flutter.dev/flutter/dart-async/FutureOr-class.html)<void>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Delete account.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [emit](https://pub.dev/documentation/bloc/8.1.0/bloc/BlocBase/emit.html)([AuthenticationState](../wyatt_authentication_bloc/AuthenticationState-class.md)<Data> state) void
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Updates the <code>state</code> to the provided <code>state</code>.
|
||||||
|
<a href="https://pub.dev/documentation/bloc/8.1.0/bloc/BlocBase/emit.html">emit</a> does nothing if the <code>state</code> being emitted
|
||||||
|
is equal to the current <code>state</code>.
|
||||||
|
_<span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [noSuchMethod](https://api.flutter.dev/flutter/dart-core/Object/noSuchMethod.html)([Invocation](https://api.flutter.dev/flutter/dart-core/Invocation-class.html) invocation) dynamic
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Invoked when a non-existent method or property is accessed.
|
||||||
|
_<span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [onChange](https://pub.dev/documentation/bloc/8.1.0/bloc/BlocBase/onChange.html)([Change](https://pub.dev/documentation/bloc/8.1.0/bloc/Change-class.html)<[AuthenticationState](../wyatt_authentication_bloc/AuthenticationState-class.md)<Data>> change) void
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Called whenever a <code>change</code> occurs with the given <code>change</code>.
|
||||||
|
A <code>change</code> occurs when a new <code>state</code> is emitted.
|
||||||
|
<a href="https://pub.dev/documentation/bloc/8.1.0/bloc/BlocBase/onChange.html">onChange</a> is called before the <code>state</code> of the <code>cubit</code> is updated.
|
||||||
|
<a href="https://pub.dev/documentation/bloc/8.1.0/bloc/BlocBase/onChange.html">onChange</a> is a great spot to add logging/analytics for a specific <code>cubit</code>.
|
||||||
|
_<span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [onDelete](../wyatt_authentication_bloc/AuthenticationCubit/onDelete.md)() FutureOrResult<void>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
This callback is triggered when the current account is deleted from
|
||||||
|
the remote.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [onError](https://pub.dev/documentation/bloc/8.1.0/bloc/BlocBase/onError.html)([Object](https://api.flutter.dev/flutter/dart-core/Object-class.html) error, [StackTrace](https://api.flutter.dev/flutter/dart-core/StackTrace-class.html) stackTrace) void
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Called whenever an <code>error</code> occurs and notifies <a href="https://pub.dev/documentation/bloc/8.1.0/bloc/BlocObserver/onError.html">BlocObserver.onError</a>.
|
||||||
|
_<span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [onReauthenticate](../wyatt_authentication_bloc/AuthenticationCubit/onReauthenticate.md)(Result<[Account](../wyatt_authentication_bloc/Account-class.md), AppException> result) FutureOrResult<Data?>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
This callback is triggered when the account is re-authenticated
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [onRefresh](../wyatt_authentication_bloc/AuthenticationCubit/onRefresh.md)(Result<[Account](../wyatt_authentication_bloc/Account-class.md), AppException> result) FutureOrResult<Data?>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
This callback is triggered when the account is refreshed.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [onSignInFromCache](../wyatt_authentication_bloc/AuthenticationCubit/onSignInFromCache.md)([SessionWrapper](../wyatt_authentication_bloc/SessionWrapper-class.md)<Data> wrapper) FutureOrResult<Data?>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
This callback is triggered when the user is automaticcaly logged in from
|
||||||
|
the cache.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [onSignOut](../wyatt_authentication_bloc/AuthenticationCubit/onSignOut.md)() FutureOrResult<void>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
This callback is triggered when the user is logged out.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [reauthenticate](../wyatt_authentication_bloc/AuthenticationCubit/reauthenticate.md)() [FutureOr](https://api.flutter.dev/flutter/dart-async/FutureOr-class.html)<void>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Some security-sensitive actions—such as deleting an account,
|
||||||
|
setting a primary email address, and changing a password—require that
|
||||||
|
the user has recently signed in.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [refresh](../wyatt_authentication_bloc/AuthenticationCubit/refresh.md)() [FutureOr](https://api.flutter.dev/flutter/dart-async/FutureOr-class.html)<void>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Refreshes the current user, if signed in.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [signOut](../wyatt_authentication_bloc/AuthenticationCubit/signOut.md)() [FutureOr](https://api.flutter.dev/flutter/dart-async/FutureOr-class.html)<void>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Signs out the current user.
|
||||||
|
It also clears the cache and the associated data.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### [toString](https://api.flutter.dev/flutter/dart-core/Object/toString.html)() [String](https://api.flutter.dev/flutter/dart-core/String-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
A string representation of this object.
|
||||||
|
_<span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Operators
|
||||||
|
|
||||||
|
##### [operator ==](https://api.flutter.dev/flutter/dart-core/Object/operator_equals.html)([Object](https://api.flutter.dev/flutter/dart-core/Object-class.html) other) [bool](https://api.flutter.dev/flutter/dart-core/bool-class.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The equality operator.
|
||||||
|
_<span class="feature">inherited</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+34
@@ -0,0 +1,34 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# AuthenticationCubit<Data> constructor
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
AuthenticationCubit<Data>({required [AuthenticationRepository](../../wyatt_authentication_bloc/AuthenticationRepository-class.md)<Data> authenticationRepository})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
|
||||||
|
```dart
|
||||||
|
AuthenticationCubit({
|
||||||
|
required this.authenticationRepository,
|
||||||
|
}) : super(const AuthenticationState.unknown()) {
|
||||||
|
_listenForAuthenticationChanges();
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+33
@@ -0,0 +1,33 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# authenticationRepository property
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[AuthenticationRepository](../../wyatt_authentication_bloc/AuthenticationRepository-class.md)<Data> authenticationRepository
|
||||||
|
|
||||||
|
_<span class="feature">final</span>_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
|
||||||
|
```dart
|
||||||
|
final AuthenticationRepository<Data> authenticationRepository;
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+37
@@ -0,0 +1,37 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# currentSession method
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[SessionWrapper](../../wyatt_authentication_bloc/SessionWrapper-class.md)<Data>? currentSession
|
||||||
|
()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>Returns latest session wrapper.</p>
|
||||||
|
<p>Contains latest event and latest session data (account + extra data)</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
|
||||||
|
```dart
|
||||||
|
SessionWrapper<Data>? currentSession() => _latestSession;
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+44
@@ -0,0 +1,44 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# delete method
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[FutureOr](https://api.flutter.dev/flutter/dart-async/FutureOr-class.html)<void> delete
|
||||||
|
()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>Delete account.</p>
|
||||||
|
<p>Throws a DeleteAccountFailureInterface if
|
||||||
|
an exception occurs.</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
|
||||||
|
```dart
|
||||||
|
FutureOr<void> delete() async => CustomRoutine<void, void>(
|
||||||
|
routine: authenticationRepository.delete,
|
||||||
|
attachedLogic: (routineResult) => onDelete(),
|
||||||
|
onError: addError,
|
||||||
|
onSuccess: (result, data) => authenticationRepository
|
||||||
|
.addSession(SessionWrapper<Data>(event: const DeletedEvent())),
|
||||||
|
).call();
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+38
@@ -0,0 +1,38 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# onDelete method
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
FutureOrResult<void> onDelete
|
||||||
|
()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>This callback is triggered when the current account is deleted from
|
||||||
|
the remote.</p>
|
||||||
|
<p>For example: when the user wants to delete his account from Firebase</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
|
||||||
|
```dart
|
||||||
|
FutureOrResult<void> onDelete();
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+38
@@ -0,0 +1,38 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# onReauthenticate method
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
FutureOrResult<Data?> onReauthenticate
|
||||||
|
(Result<[Account](../../wyatt_authentication_bloc/Account-class.md), AppException> result)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>This callback is triggered when the account is re-authenticated</p>
|
||||||
|
<p>For example: when the user is logged in and sign in
|
||||||
|
from an another provider</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
|
||||||
|
```dart
|
||||||
|
FutureOrResult<Data?> onReauthenticate(Result<Account, AppException> result);
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+37
@@ -0,0 +1,37 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# onRefresh method
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
FutureOrResult<Data?> onRefresh
|
||||||
|
(Result<[Account](../../wyatt_authentication_bloc/Account-class.md), AppException> result)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>This callback is triggered when the account is refreshed.</p>
|
||||||
|
<p>For example: when the access token is refreshed.</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
|
||||||
|
```dart
|
||||||
|
FutureOrResult<Data?> onRefresh(Result<Account, AppException> result);
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+38
@@ -0,0 +1,38 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# onSignInFromCache method
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
FutureOrResult<Data?> onSignInFromCache
|
||||||
|
([SessionWrapper](../../wyatt_authentication_bloc/SessionWrapper-class.md)<Data> wrapper)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>This callback is triggered when the user is automaticcaly logged in from
|
||||||
|
the cache.</p>
|
||||||
|
<p>For example: when the user is sign in from the Firebase cache.</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
|
||||||
|
```dart
|
||||||
|
FutureOrResult<Data?> onSignInFromCache(SessionWrapper<Data> wrapper);
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+37
@@ -0,0 +1,37 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# onSignOut method
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
FutureOrResult<void> onSignOut
|
||||||
|
()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>This callback is triggered when the user is logged out.</p>
|
||||||
|
<p>For example: when the user clicks on the logout button.</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
|
||||||
|
```dart
|
||||||
|
FutureOrResult<void> onSignOut();
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+53
@@ -0,0 +1,53 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# reauthenticate method
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*[<Null safety>](https://dart.dev/null-safety)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[FutureOr](https://api.flutter.dev/flutter/dart-async/FutureOr-class.html)<void> reauthenticate
|
||||||
|
()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>Some security-sensitive actions—such as deleting an account,
|
||||||
|
setting a primary email address, and changing a password—require that
|
||||||
|
the user has recently signed in.</p>
|
||||||
|
<p>Throws a ReauthenticateFailureInterface if
|
||||||
|
an exception occurs.</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
|
||||||
|
```dart
|
||||||
|
FutureOr<void> reauthenticate() async => CustomRoutine<Account, Data?>(
|
||||||
|
routine: authenticationRepository.reauthenticate,
|
||||||
|
attachedLogic: onReauthenticate,
|
||||||
|
onError: addError,
|
||||||
|
onSuccess: (result, data) => authenticationRepository.addSession(
|
||||||
|
SessionWrapper(
|
||||||
|
event: ReauthenticatedEvent(account: result),
|
||||||
|
session: Session<Data>(
|
||||||
|
account: result,
|
||||||
|
data: data,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
).call();
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user