diff --git a/CHANGELOG.md b/CHANGELOG.md index a6be1d4..4187467 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ au](https://solidcommunity.au/docs/solidui) ## 0.4.0 Refine and Tune ++ Add get key if required to login [0.3.10 20260406 tonypioneer] + List files/folder count in FileBrowser, not just file count [0.3.9 20260402 gjw] + Add keep login and other webid to SolidLogin() [0.3.8 20260326 tonypioneer] + Adds additional layout width checks [0.3.7 20260326 tonypioneer] diff --git a/lib/src/widgets/solid_login.dart b/lib/src/widgets/solid_login.dart index f39496b..3783ea9 100644 --- a/lib/src/widgets/solid_login.dart +++ b/lib/src/widgets/solid_login.dart @@ -51,6 +51,8 @@ import 'package:solidpod/solidpod.dart' import 'package:solidui/src/constants/solid_config.dart'; import 'package:solidui/src/handlers/solid_auth_handler.dart'; import 'package:solidui/src/models/snackbar_config.dart'; +import 'package:solidui/src/utils/solid_pod_helpers.dart' + show getKeyFromUserIfRequired; import 'package:solidui/src/widgets/solid_animation_dialog.dart'; import 'package:solidui/src/widgets/solid_login_asset_helper.dart'; import 'package:solidui/src/widgets/solid_login_auth_handler.dart'; @@ -499,6 +501,12 @@ class _SolidLoginState extends State with WidgetsBindingObserver { if (!context.mounted) return; + // Ensure security key has been fetched once logged in + if (isLoggedIn) { + await getKeyFromUserIfRequired(context, widget.child); + if (!context.mounted) return; + } + await pushReplacement(context, widget.child); } diff --git a/lib/src/widgets/solid_login_auth_handler.dart b/lib/src/widgets/solid_login_auth_handler.dart index 341e10c..e9a39a3 100644 --- a/lib/src/widgets/solid_login_auth_handler.dart +++ b/lib/src/widgets/solid_login_auth_handler.dart @@ -46,6 +46,8 @@ import 'package:solidpod/solidpod.dart' solidAuthenticate; import 'package:solidui/src/screens/initial_setup_screen.dart'; +import 'package:solidui/src/utils/solid_pod_helpers.dart' + show getKeyFromUserIfRequired; import 'package:solidui/src/widgets/solid_animation_dialog.dart'; import 'package:solidui/src/widgets/solid_login_helper.dart'; @@ -149,6 +151,8 @@ class SolidLoginAuthHandler { } if (!context.mounted) return false; + await getKeyFromUserIfRequired(context, childWidget); + if (!context.mounted) return true; await pushReplacement(context, childWidget); } @@ -351,6 +355,8 @@ class SolidLoginAuthHandler { } if (!context.mounted) return false; + await getKeyFromUserIfRequired(context, childWidget); + if (!context.mounted) return true; await pushReplacement(context, childWidget); } diff --git a/pubspec.yaml b/pubspec.yaml index 4900a97..a85f717 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: solidui description: 'A UI library for building Solid applications with Flutter.' -version: 0.3.9 +version: 0.3.10 homepage: https://github.com/anusii/solidui environment: