Skip to content

Gigya Web SDK integration - screen sets #54

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 226 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
226 commits
Select commit Hold shift + click to select a range
12c3965
update .metadata file
navaronbracke Jun 5, 2023
bd380fd
add web entrypoint for example app
navaronbracke Jun 5, 2023
ee90bab
bump example app Dart & Flutter version
navaronbracke Jun 5, 2023
f4f2c10
update example app Android resources
navaronbracke Jun 5, 2023
8758055
fix minor issues with the example app
navaronbracke Jun 5, 2023
9e97114
move method channel impl to subfolder
navaronbracke Jun 5, 2023
97e78da
model fixes
navaronbracke Jun 5, 2023
04c07ad
format
navaronbracke Jun 5, 2023
43a1881
convert screenset yield generator to use a tear-off
navaronbracke Jun 7, 2023
3910ebb
fix cast failure
navaronbracke Jun 7, 2023
e5913b1
add TODO for biometrics service
navaronbracke Sep 8, 2023
1d0cd6a
remove outdated comment
navaronbracke Sep 24, 2023
15f1542
correct timestamp attribute names in account
navaronbracke Sep 24, 2023
cdba949
make emails optional in the account constructor; support data map
navaronbracke Sep 24, 2023
9fe1cef
fix version constraint
navaronbracke Sep 24, 2023
59e1ab7
format
navaronbracke Sep 24, 2023
c9b732a
implement stub for GigyaFlutterPlugin on the web
navaronbracke Mar 14, 2023
d5a1859
move method channel implementation to src/method_channel; move servic…
navaronbracke Mar 14, 2023
2a4a47f
update web implementation path in pubspec.yaml
navaronbracke Mar 14, 2023
f6f17ff
depend on package:js
navaronbracke Mar 14, 2023
857cc89
create static interop class for JSWindow
navaronbracke Mar 14, 2023
337baf3
implement initSdk() for web
navaronbracke Mar 14, 2023
4c84d13
fix bug with initSdk()
navaronbracke Mar 14, 2023
9b99f19
add stubs for login & logout
navaronbracke Mar 14, 2023
e9a25a9
add stub for gigya JS object through static interop
navaronbracke Mar 14, 2023
2d38e5f
fix window.gigya getter
navaronbracke Mar 14, 2023
6bbdc45
remove the old static interop file
navaronbracke Mar 15, 2023
b2f5740
move the window JS interop to its own file
navaronbracke Mar 15, 2023
5bdc2f1
move the gigya web sdk interop to its own file
navaronbracke Mar 15, 2023
4687c6b
add link to docs
navaronbracke Mar 15, 2023
c9a758f
add static interop for the response class
navaronbracke Mar 15, 2023
b685a96
use relative import for implementation details
navaronbracke Mar 15, 2023
5a5451c
implement opaque object for Gigya Web SDK method params
navaronbracke Mar 15, 2023
6705edd
remove TODO for now
navaronbracke Mar 15, 2023
4df546c
add error details & api version to web response
navaronbracke Mar 15, 2023
3a14c84
implement web error code enum
navaronbracke Mar 15, 2023
cfea2d2
add TODO for method channel error codes enum
navaronbracke Mar 15, 2023
02fac62
implement account & session interop classes
navaronbracke Mar 15, 2023
5caa3c0
implment isLoggedIn & logout
navaronbracke Mar 15, 2023
77ccf74
wrap callbacks in allowInterop()
navaronbracke Mar 15, 2023
24e0be0
move login parameters into parameters.dart
navaronbracke Mar 16, 2023
4958ae5
refactor Account.lastLoginTimestamp to be a `DateTime?`
navaronbracke Mar 16, 2023
be585f9
make response error message nullable in interop binding
navaronbracke Mar 16, 2023
7b0e997
add base login response static interop class
navaronbracke Mar 16, 2023
5e24be2
use a login response object as callback argument; format
navaronbracke Mar 16, 2023
f456791
implement emails static interop class
navaronbracke Mar 16, 2023
fdd5c29
implement session info static interop class; fix typo
navaronbracke Mar 16, 2023
0307289
add remaining properties for login response static interop implementa…
navaronbracke Mar 16, 2023
4ec4086
add profile stub for static interop
navaronbracke Mar 16, 2023
dcc7ffb
move response interop classes to their own files
navaronbracke Mar 16, 2023
d427b85
implement static interop class for Profile
navaronbracke Mar 16, 2023
a74be9e
implement certification static interop class
navaronbracke Mar 16, 2023
16869eb
implement static LoginResponse.toMap() method
navaronbracke Mar 16, 2023
2ee8ca3
implement education static interop class
navaronbracke Mar 16, 2023
298921c
implement phone static interop class
navaronbracke Mar 16, 2023
0fe57a1
implement work static interop class
navaronbracke Mar 16, 2023
f443631
implement skill static interop class
navaronbracke Mar 16, 2023
7b90f0f
implement the static interop class for the publication object
navaronbracke Mar 16, 2023
18622ee
remove non-existent oidc data from web profile implementation
navaronbracke Mar 16, 2023
1f46260
remove non-existent lastLoginLocation from web profile implementation
navaronbracke Mar 16, 2023
d634236
implement like static interop class
navaronbracke Mar 16, 2023
24406b9
implement patent static interop class
navaronbracke Mar 16, 2023
fb45209
implement favorite / favorites static interop class
navaronbracke Mar 16, 2023
e28af50
implement static certification to map method
navaronbracke Mar 16, 2023
c2e40fb
implement static like to map method
navaronbracke Mar 16, 2023
872dde0
implement static work to map method
navaronbracke Mar 16, 2023
c254d44
implement static education to map method
navaronbracke Mar 16, 2023
f56f57a
implement static favorite(s) to map method; fix missing music key in …
navaronbracke Mar 16, 2023
46b1c74
fix type
navaronbracke Mar 16, 2023
3b1916b
implement static patent to map method
navaronbracke Mar 16, 2023
f982a5d
implement static publication to map method
navaronbracke Mar 16, 2023
e785b6e
implement static phone to map method
navaronbracke Mar 16, 2023
bfead48
implement static skill to map method
navaronbracke Mar 16, 2023
7514356
implement Profile to map static method
navaronbracke Mar 16, 2023
9f36886
add missing attributes to login response constructor
navaronbracke Mar 16, 2023
6fa824e
implement static interop class for coordinates and location
navaronbracke Mar 16, 2023
eb58ab1
implement to map static method for location static interop class; fix…
navaronbracke Mar 17, 2023
53490bc
add last login location to login response
navaronbracke Mar 17, 2023
9b821ec
handle null session info & emails
navaronbracke Mar 17, 2023
255be52
amend last login location to profile
navaronbracke Mar 17, 2023
7835ac8
fix import
navaronbracke Mar 17, 2023
bd93f01
fix constructor
navaronbracke Mar 17, 2023
50cfec5
implement login function
navaronbracke Mar 17, 2023
c1f13ef
remove context from response class
navaronbracke Mar 17, 2023
a0c4705
convert response classes to `@staticInterop` and add inheritance
navaronbracke Mar 17, 2023
c6be684
add getConflictingAccount to the static interop binding
navaronbracke Mar 17, 2023
684a9bc
convert certification to static interop
navaronbracke Mar 17, 2023
c6b2412
convert education to static interop
navaronbracke Mar 17, 2023
09e163b
convert emails to static interop
navaronbracke Mar 17, 2023
b8ea419
convert favorites to static interop
navaronbracke Mar 17, 2023
fd462aa
convert like to static interop
navaronbracke Mar 17, 2023
074f366
convert location to static interop
navaronbracke Mar 17, 2023
437695b
convert phone to static interop
navaronbracke Mar 17, 2023
292182b
convert patent to static interop
navaronbracke Mar 17, 2023
429349d
convert publication to static interop
navaronbracke Mar 17, 2023
b396f3b
convert session info to static interop
navaronbracke Mar 17, 2023
5c80f2d
convert skill to static interop
navaronbracke Mar 17, 2023
c933e10
convert work to static interop
navaronbracke Mar 17, 2023
2670716
convert profile to static interop
navaronbracke Mar 17, 2023
7f81e6b
move static interop model classes into /models sub folder
navaronbracke Mar 17, 2023
7b7a2b2
update import
navaronbracke Mar 17, 2023
bbf0eb4
move login parameters to subfolder
navaronbracke Mar 17, 2023
c6fc328
rename GigyaMethodParameters to BasicParameters and move to different…
navaronbracke Mar 17, 2023
ba026d6
implement conflicting account parameters class
navaronbracke Mar 17, 2023
bf4879c
implement conflciting account static interop class
navaronbracke Mar 17, 2023
0250da0
add missing getter
navaronbracke Mar 17, 2023
7e61f4b
export response classes in response.dart
navaronbracke Mar 17, 2023
7bc2ae9
prefix javascript conflciting account to avoid name clash with model
navaronbracke Mar 17, 2023
c23c54b
add stub for interruption resolver factory
navaronbracke Mar 17, 2023
9812f0d
return resolver factory on web
navaronbracke Mar 17, 2023
c2579eb
remove TODO
navaronbracke Mar 17, 2023
91a58fe
fix import
navaronbracke Apr 11, 2023
ca7cc11
remove unnecessary external factory constructors from response intero…
navaronbracke Apr 11, 2023
376ad0b
remove external factory constructors from model classes
navaronbracke Apr 11, 2023
5088930
fix interop for conflicting account login provider list type
navaronbracke Apr 11, 2023
24dd17d
fix interop for emails list type
navaronbracke Apr 11, 2023
7ab9432
fix interop for favorites list type
navaronbracke Apr 11, 2023
0ad65a0
fix list types in interop definition of Profile
navaronbracke Apr 11, 2023
8980255
add additional parameters to the login method for web
navaronbracke Apr 11, 2023
028bffa
add regToken, regSource and isNewUser to web login response
navaronbracke Apr 12, 2023
6a286f5
add TODO
navaronbracke Apr 12, 2023
cfc1641
fix typo: createdTimestamp should be the created field
navaronbracke Apr 12, 2023
fc59d48
fix profile attribute names in static interop definition
navaronbracke Apr 13, 2023
87b6e4e
add isConnected, isSiteUID, isSiteUser, loginProvider, loginProviderU…
navaronbracke Apr 13, 2023
4ab9fb7
remove isSiteUID; fix profile url in static interop definition
navaronbracke Apr 13, 2023
d358216
fix thumbnail url in static interop binding of profile object
navaronbracke Apr 13, 2023
70304fe
await onGigyaService before calling logout(); fail if onGigyaServiceR…
navaronbracke Apr 24, 2023
9f60239
abort logout on web if not logged in
navaronbracke May 5, 2023
4ec595c
fix hot reload on the web
navaronbracke May 11, 2023
ec79205
use nullable lists in interop types
navaronbracke May 11, 2023
1aeb3f8
fix null favorites
navaronbracke May 11, 2023
91b627a
fix session info null value
navaronbracke May 11, 2023
30fb424
fix error details on the web
navaronbracke Jun 1, 2023
b608e06
fix isDefinedAndNotNull check; bump lockfile
navaronbracke Jul 7, 2023
1092fb6
implement static favorite(s) to map method; fix missing music key in …
navaronbracke Mar 16, 2023
b8b6b66
depend on package:web; enable extension types experiment
navaronbracke Sep 19, 2023
3fac157
convert the window to extension type
navaronbracke Sep 19, 2023
52a1ac2
convert the GigyaWebSdk JS definition to extension type; move 'window…
navaronbracke Sep 19, 2023
79bfe9e
use instance getter
navaronbracke Sep 19, 2023
b630b22
refactor window setup with package:web
navaronbracke Sep 19, 2023
bd031d9
fix import
navaronbracke Sep 19, 2023
fdb0786
use forceLogout false as default everywhere
navaronbracke Sep 19, 2023
de2965d
fix script constructor; fix onReady function signature
navaronbracke Sep 19, 2023
6ed9771
make window.gigya nullable
navaronbracke Sep 19, 2023
46e66a1
convert BasicParameters to extension type
navaronbracke Sep 22, 2023
5700619
convert Response to extension type
navaronbracke Sep 22, 2023
a054a01
convert LoginResponse to extension type; fix type for signatureTimestamp
navaronbracke Sep 22, 2023
af65142
convert ConflictingAccountParameters to extension type
navaronbracke Sep 22, 2023
33ecd2c
convert LoginParameters to extension type
navaronbracke Sep 22, 2023
739e961
convert conflicting account response to extension type
navaronbracke Sep 22, 2023
cb22322
move web error code enum to web/enums
navaronbracke Sep 22, 2023
a912411
rename web interruption resolver classes to shorter names
navaronbracke Sep 22, 2023
8a3730d
convert the accounts namespace to an extension type
navaronbracke Sep 22, 2023
a74578c
convert the session namespace to an extension type
navaronbracke Sep 22, 2023
1218c92
convert like into extension type
navaronbracke Sep 22, 2023
b6c9cfb
convert work into extension type
navaronbracke Sep 22, 2023
2859e46
convert skill into extension type
navaronbracke Sep 22, 2023
7b10c6c
convert certifiation into extension type
navaronbracke Sep 22, 2023
0b76f9a
convert patent into extension type
navaronbracke Sep 22, 2023
c9ac2cd
convert publication into extension type
navaronbracke Sep 22, 2023
05c16b7
convert phone into extension type
navaronbracke Sep 22, 2023
09a4b63
convert education into extension type
navaronbracke Sep 22, 2023
b5285e7
convert session info into extension type; make session info attribute…
navaronbracke Sep 22, 2023
1cc17af
convert location & coordinates to extension types; make lat & lon non…
navaronbracke Sep 22, 2023
2ad158c
fix check
navaronbracke Sep 22, 2023
d1b2a1d
convert emails to extension type; add toMap() method
navaronbracke Sep 23, 2023
3cc6bfc
convert favorites to extension type
navaronbracke Sep 23, 2023
9c04107
convert profile to extension type
navaronbracke Sep 23, 2023
7387f94
convert conflicting account to extension type
navaronbracke Sep 23, 2023
a6d236a
fix name conflict
navaronbracke Sep 23, 2023
2adabf9
fix allowInterop() handles; use representation type for missing attri…
navaronbracke Sep 23, 2023
6bae9f8
document JS return types for JSFunction handles; adjust type of onReady
navaronbracke Sep 23, 2023
fdff987
let parameter interop types implement JSObject
navaronbracke Sep 26, 2023
e3cbf4c
fix JSFunction callables with callAsFunction()
navaronbracke Sep 26, 2023
a412103
fix non-null cast for getter
navaronbracke Sep 26, 2023
13a257b
make session cookie nullable again
navaronbracke Sep 26, 2023
2b95b8b
Merge pull request #2 from navaronbracke/gigya_web_sdk_extension_types
navaronbracke Sep 26, 2023
b7693b1
remove unused file
navaronbracke Sep 28, 2023
226ac46
fix import with show combinator
navaronbracke Sep 29, 2023
942bca3
refactor Account.registeredTimestamp to be a `DateTime?`
navaronbracke Mar 16, 2023
ebd9580
implement login global event response interop class
navaronbracke Apr 24, 2023
8db6945
implement add events handlers method in static interop definition
navaronbracke Apr 24, 2023
c1acad3
add show screenset method to static interop definition
navaronbracke Apr 27, 2023
68a2303
add login response toMap()
navaronbracke Apr 28, 2023
626619f
remove callback from add event handlers parameters
navaronbracke Apr 28, 2023
a4862db
implement hide screenset
navaronbracke Apr 28, 2023
fe52143
implement show screenset (basic parameters + global events)
navaronbracke Apr 28, 2023
2cf5c16
implement screenset error event interop type
navaronbracke Apr 29, 2023
2463a16
implement screenset parameters (no handlers yet)
navaronbracke Apr 29, 2023
480e079
implement screenset onError handler
navaronbracke Apr 29, 2023
c48147e
export screenset interop types in a single file
navaronbracke Apr 29, 2023
3bfe792
port a workaround for Promises
navaronbracke Apr 29, 2023
5487f4f
implement screenset onBeforeValidation handler
navaronbracke Apr 29, 2023
eb62b95
implement screenset onAfterValidation handler
navaronbracke Apr 29, 2023
c9255c7
use Profile object in screenset events, to optimize uses of dartify()
navaronbracke Apr 29, 2023
f342bed
doc fixes
navaronbracke Apr 29, 2023
1603857
implement screenset onBeforeSubmit handler
navaronbracke Apr 29, 2023
53465ed
implement screenset onSubmit handler
navaronbracke Apr 29, 2023
af77d78
implement screenset onAfterSubmit handler
navaronbracke Apr 29, 2023
cb7d965
implement screenset onBeforeScreenLoad handler
navaronbracke Apr 29, 2023
e1b4f26
implement screenset onAfterScreenLoad handler
navaronbracke Apr 29, 2023
1324f14
implement screenset onFieldChanged handler
navaronbracke Apr 29, 2023
fcaddbd
implement screenset onHide handler
navaronbracke Apr 29, 2023
e7fc9f8
fix type argument
navaronbracke Apr 29, 2023
2275e5d
remove the promise stub
navaronbracke Sep 26, 2023
6227bf6
adjust hide/show screenset JS typings to use JSFunction
navaronbracke Sep 26, 2023
062d502
convert login global event to extension type
navaronbracke Sep 26, 2023
038f76e
rename type
navaronbracke Sep 26, 2023
012771a
convert AddEventHandlersParameters to extension type
navaronbracke Sep 26, 2023
5fc9a30
move login event to global events folder
navaronbracke Sep 26, 2023
6cbd7cd
convert screenset parameters to extension type
navaronbracke Sep 26, 2023
5cfe20d
move the screenset web implementation to a delegate class
navaronbracke Sep 28, 2023
d30a4ad
convert add event handlers parameters to extension type
navaronbracke Sep 28, 2023
f5dd64c
convert screenset show / hide parameters to extension types
navaronbracke Sep 28, 2023
13b424e
convert after screen load event to extension type
navaronbracke Sep 28, 2023
2e86169
convert after submit event to extension type
navaronbracke Sep 28, 2023
fe42a8e
convert after validation event to extension type
navaronbracke Sep 28, 2023
2e6373a
convert submit event to extension type
navaronbracke Sep 28, 2023
b298ab3
convert the hide event to extension type
navaronbracke Sep 28, 2023
cf083f4
convert field changed event to extension type
navaronbracke Sep 28, 2023
17008df
convert error event to extension type
navaronbracke Sep 28, 2023
3738bd6
convert before screen load event to extension type
navaronbracke Sep 28, 2023
c768d62
convert before submit event to extension type
navaronbracke Sep 28, 2023
c02847c
convert before validation event to extension type
navaronbracke Sep 28, 2023
605b4b5
fix import
navaronbracke Sep 29, 2023
5411620
use a switch pattern
navaronbracke Oct 2, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 28 additions & 2 deletions .metadata
Original file line number Diff line number Diff line change
@@ -1,10 +1,36 @@
# This file tracks properties of this Flutter project.
# Used by Flutter tool to assess capabilities and perform upgrades etc.
#
# This file should be version controlled and should not be manually edited.
# This file should be version controlled.

version:
revision: 84f3d28555368a70270e9ac8390a9441df95e752
revision: 2ad6cd72c040113b47ee9055e722606a490ef0da
channel: stable

project_type: plugin

# Tracks metadata for the flutter migrate command
migration:
platforms:
- platform: root
create_revision: 2ad6cd72c040113b47ee9055e722606a490ef0da
base_revision: 2ad6cd72c040113b47ee9055e722606a490ef0da
- platform: android
create_revision: 2ad6cd72c040113b47ee9055e722606a490ef0da
base_revision: 2ad6cd72c040113b47ee9055e722606a490ef0da
- platform: ios
create_revision: 2ad6cd72c040113b47ee9055e722606a490ef0da
base_revision: 2ad6cd72c040113b47ee9055e722606a490ef0da
- platform: web
create_revision: 2ad6cd72c040113b47ee9055e722606a490ef0da
base_revision: 2ad6cd72c040113b47ee9055e722606a490ef0da

# User provided section

# List of Local paths (relative to this file) that should be
# ignored by the migrate tool.
#
# Files that are not part of the templates will be ignored by default.
unmanaged_files:
- 'lib/main.dart'
- 'ios/Runner.xcodeproj/project.pbxproj'
4 changes: 4 additions & 0 deletions analysis_options.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@ analyzer:
strict-inference: true
strict-raw-types: true

# TODO: remove this once it is no longer an experiment
enable-experiment:
- inline-class

linter:
rules:
always_declare_return_types: true
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Modify this file to customize your launch splash screen -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="?android:colorBackground" />

<!-- You can insert your own image assets here -->
<!-- <item>
<bitmap
android:gravity="center"
android:src="@mipmap/launch_image" />
</item> -->
</layer-list>
18 changes: 18 additions & 0 deletions example/android/app/src/main/res/values-night/styles.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is on -->
<style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
<!-- Show a splash screen on the activity. Automatically removed when
the Flutter engine draws its first frame -->
<item name="android:windowBackground">@drawable/launch_background</item>
</style>
<!-- Theme applied to the Android Window as soon as the process has started.
This theme determines the color of the Android Window while your
Flutter UI initializes, as well as behind your Flutter UI while its
running.
This Theme is only used starting with V2 of Flutter's Android embedding. -->
<style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar">
<item name="android:windowBackground">?android:colorBackground</item>
</style>
</resources>
3 changes: 1 addition & 2 deletions example/lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,7 @@ void main() async {

// Demonstrate explicit initialization before calling `runApp()`,
// using the configuration for the example app.
const String exampleAppApiKey =
'YOUR-API-KEY-HERE';
const String exampleAppApiKey = 'YOUR-API-KEY-HERE';
const String exampleAppApiDomain = 'us1.gigya.com';

try {
Expand Down
4 changes: 2 additions & 2 deletions example/lib/routes/account_information_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -238,9 +238,9 @@ class _AccountInformationPageState extends State<AccountInformationPage> {
case ConnectionState.active:
case ConnectionState.none:
case ConnectionState.waiting:
return Column(
return const Column(
mainAxisAlignment: MainAxisAlignment.center,
children: const <Widget>[
children: <Widget>[
CircularProgressIndicator(),
Text('Fetching account...'),
],
Expand Down
4 changes: 2 additions & 2 deletions example/lib/routes/home_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -192,9 +192,9 @@ class _HomePageState extends State<HomePage> {
case ConnectionState.none:
case ConnectionState.active:
case ConnectionState.waiting:
return Column(
return const Column(
mainAxisAlignment: MainAxisAlignment.center,
children: const <Widget>[
children: <Widget>[
CircularProgressIndicator(),
Padding(
padding: EdgeInsets.all(8),
Expand Down
14 changes: 8 additions & 6 deletions example/lib/routes/login_with_credentials_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ class _LoginWithCredentialsPageState extends State<LoginWithCredentialsPage> {
if (mounted) {
setState(() {
_inProgress = false;
_requestResult = 'Login success: \n\n ${account.uid}';
_requestResult = 'Login success: \n\n ${account.toJson()}';
});
}
}
Expand Down Expand Up @@ -112,15 +112,15 @@ class _LoginWithCredentialsPageState extends State<LoginWithCredentialsPage> {
}

void _resolveLinkAccount(LinkAccountResolver resolver) async {
final ConflictingAccounts? conflictingAccounts =
await resolver.conflictingAccounts;
final ConflictingAccount? conflictingAccount =
await resolver.conflictingAccount;

if (!mounted || conflictingAccounts == null) {
if (!mounted || conflictingAccount == null) {
return;
}

if (conflictingAccounts.loginProviders.contains('site')) {
_showLinkToSiteBottomSheet(conflictingAccounts.loginID, resolver);
if (conflictingAccount.loginProviders.contains('site')) {
_showLinkToSiteBottomSheet(conflictingAccount.loginID, resolver);
} else {
_showLinkToSocialBottomSheet(resolver);
}
Expand Down Expand Up @@ -234,6 +234,7 @@ class _LoginWithCredentialsPageState extends State<LoginWithCredentialsPage> {
),
TextField(
controller: _linkPasswordController,
obscureText: true,
decoration: const InputDecoration(hintText: 'password'),
),
Padding(
Expand Down Expand Up @@ -351,6 +352,7 @@ class _LoginWithCredentialsPageState extends State<LoginWithCredentialsPage> {
padding: const EdgeInsets.all(8.0),
child: TextFormField(
controller: _passwordController,
obscureText: true,
decoration: const InputDecoration(hintText: 'Enter password'),
validator: (String? value) {
if (value == null || value.trim().isEmpty) {
Expand Down
14 changes: 9 additions & 5 deletions example/lib/routes/manage_connections_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -79,9 +79,9 @@ class _ManageConnectionsPageState extends State<ManageConnectionsPage> {
case ConnectionState.none:
case ConnectionState.active:
case ConnectionState.waiting:
return Column(
return const Column(
mainAxisAlignment: MainAxisAlignment.center,
children: const <Widget>[
children: <Widget>[
CircularProgressIndicator(),
Text('Fetching account...'),
],
Expand Down Expand Up @@ -109,19 +109,23 @@ class _ManageConnectionsPageState extends State<ManageConnectionsPage> {
}

final Account account = snapshot.data!;
final String socialProviders = account.socialProviders ?? '';

return Column(
children: <Widget>[
const Text('Social connections for this account'),
Expanded(
child: socialProviders.isEmpty
child: account.socialProviders.isEmpty
? const Center(
child: Text(
'No social connections for this account',
),
)
: Text(socialProviders),
: ListView.builder(
itemBuilder: (_, int index) => Text(
account.socialProviders[index],
),
itemCount: account.socialProviders.length,
),
),
Padding(
padding: const EdgeInsets.symmetric(vertical: 16),
Expand Down
Loading