mirror of
https://github.com/Iconica-Development/flutter_login_widget.git
synced 2025-05-19 05:33:45 +02:00
feat: mfa_widget
This commit is contained in:
parent
d4c639c247
commit
fc920dc36d
6 changed files with 172 additions and 32 deletions
2
.flutter-plugins
Normal file
2
.flutter-plugins
Normal file
|
@ -0,0 +1,2 @@
|
|||
# This is a generated file; do not edit or check into version control.
|
||||
smart_auth=C:\\Users\\miked\\AppData\\Local\\Pub\\Cache\\hosted\\pub.dev\\smart_auth-1.0.8\\
|
1
.flutter-plugins-dependencies
Normal file
1
.flutter-plugins-dependencies
Normal file
|
@ -0,0 +1 @@
|
|||
{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"smart_auth","path":"C:\\\\Users\\\\miked\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\smart_auth-1.0.8\\\\","native_build":true,"dependencies":[]}],"android":[{"name":"smart_auth","path":"C:\\\\Users\\\\miked\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\smart_auth-1.0.8\\\\","native_build":true,"dependencies":[]}],"macos":[{"name":"smart_auth","path":"C:\\\\Users\\\\miked\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\smart_auth-1.0.8\\\\","native_build":true,"dependencies":[]}],"linux":[{"name":"smart_auth","path":"C:\\\\Users\\\\miked\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\smart_auth-1.0.8\\\\","native_build":true,"dependencies":[]}],"windows":[{"name":"smart_auth","path":"C:\\\\Users\\\\miked\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\smart_auth-1.0.8\\\\","native_build":true,"dependencies":[]}],"web":[{"name":"smart_auth","path":"C:\\\\Users\\\\miked\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\smart_auth-1.0.8\\\\","dependencies":[]}]},"dependencyGraph":[{"name":"smart_auth","dependencies":[]}],"date_created":"2023-03-07 10:10:48.544860","version":"3.7.3"}
|
|
@ -5,42 +5,48 @@ packages:
|
|||
dependency: transitive
|
||||
description:
|
||||
name: async
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.9.0"
|
||||
version: "2.10.0"
|
||||
boolean_selector:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: boolean_selector
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.0"
|
||||
version: "2.1.1"
|
||||
characters:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: characters
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: e6a326c8af69605aec75ed6c187d06b349707a27fbff8222ca9cc2cff167975c
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.2.1"
|
||||
clock:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: clock
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.1.1"
|
||||
collection:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: collection
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: cfc915e6923fe5ce6e153b0723c753045de46de1b4d63771530504004a45fae0
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.16.0"
|
||||
version: "1.17.0"
|
||||
fake_async:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: fake_async
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.3.1"
|
||||
flutter:
|
||||
|
@ -52,7 +58,8 @@ packages:
|
|||
dependency: "direct dev"
|
||||
description:
|
||||
name: flutter_lints
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: aeb0b80a8b3709709c9cc496cdc027c5b3216796bc0af0ce1007eaf24464fd4c
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.1"
|
||||
flutter_login:
|
||||
|
@ -61,101 +68,150 @@ packages:
|
|||
path: ".."
|
||||
relative: true
|
||||
source: path
|
||||
version: "3.1.0"
|
||||
version: "3.1.2"
|
||||
flutter_test:
|
||||
dependency: "direct dev"
|
||||
description: flutter
|
||||
source: sdk
|
||||
version: "0.0.0"
|
||||
flutter_web_plugins:
|
||||
dependency: transitive
|
||||
description: flutter
|
||||
source: sdk
|
||||
version: "0.0.0"
|
||||
js:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: js
|
||||
sha256: "5528c2f391ededb7775ec1daa69e65a2d61276f7552de2b5f7b8d34ee9fd4ab7"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.6.5"
|
||||
lints:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: lints
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "5cfd6509652ff5e7fe149b6df4859e687fca9048437857cb2e65c8d780f396e3"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.0"
|
||||
matcher:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: matcher
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "16db949ceee371e9b99d22f88fa3a73c4e59fd0afed0bd25fc336eb76c198b72"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.12.12"
|
||||
version: "0.12.13"
|
||||
material_color_utilities:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: material_color_utilities
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.1.5"
|
||||
version: "0.2.0"
|
||||
meta:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: meta
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "6c268b42ed578a53088d834796959e4a1814b5e9e164f147f580a386e5decf42"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.8.0"
|
||||
path:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: path
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: db9d4f58c908a4ba5953fcee2ae317c94889433e5024c27ce74a37f94267945b
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.8.2"
|
||||
pinput:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: pinput
|
||||
sha256: "1773743c188cdd2f8d0398ea708ec72645bb41ac9311755c4f7bb03a4184bdcf"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.2.31"
|
||||
sky_engine:
|
||||
dependency: transitive
|
||||
description: flutter
|
||||
source: sdk
|
||||
version: "0.0.99"
|
||||
smart_auth:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: smart_auth
|
||||
sha256: "8cfaec55b77d5930ed1666bb7ae70db5bade099bb1422401386853b400962113"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.0.8"
|
||||
source_span:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: source_span
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.9.0"
|
||||
version: "1.9.1"
|
||||
stack_trace:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: stack_trace
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.10.0"
|
||||
version: "1.11.0"
|
||||
stream_channel:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: stream_channel
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.0"
|
||||
version: "2.1.1"
|
||||
string_scanner:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: string_scanner
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.1.1"
|
||||
version: "1.2.0"
|
||||
term_glyph:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: term_glyph
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.2.1"
|
||||
test_api:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: test_api
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: ad540f65f92caa91bf21dfc8ffb8c589d6e4dc0c2267818b4cc2792857706206
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.4.12"
|
||||
version: "0.4.16"
|
||||
universal_platform:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: universal_platform
|
||||
sha256: d315be0f6641898b280ffa34e2ddb14f3d12b1a37882557869646e0cc363d0cc
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.0.0+1"
|
||||
vector_math:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: vector_math
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.2"
|
||||
version: "2.1.4"
|
||||
sdks:
|
||||
dart: ">=2.18.1 <3.0.0"
|
||||
flutter: ">=1.17.0"
|
||||
flutter: ">=3.7.0"
|
||||
|
|
|
@ -4,3 +4,4 @@ export 'src/config/login_options.dart';
|
|||
export 'src/widgets/email_password_login.dart';
|
||||
export 'src/widgets/forgot_password_form.dart';
|
||||
export 'src/service/validation.dart';
|
||||
export 'src/widgets/mfa_widget.dart';
|
||||
|
|
79
lib/src/widgets/mfa_widget.dart
Normal file
79
lib/src/widgets/mfa_widget.dart
Normal file
|
@ -0,0 +1,79 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:pinput/pinput.dart';
|
||||
|
||||
class MFAWidget extends StatefulWidget {
|
||||
const MFAWidget(
|
||||
{required this.onCompleted,
|
||||
this.onSubmitted,
|
||||
this.defaultPinTheme,
|
||||
this.focusedPinTheme,
|
||||
this.submittedPinTheme,
|
||||
this.followingPinTheme,
|
||||
this.disabledPinTheme,
|
||||
this.errorPinTheme,
|
||||
this.seperatorPositions,
|
||||
this.errorBuilder,
|
||||
this.errorText,
|
||||
this.errorTextStyle,
|
||||
this.validator,
|
||||
this.submitButtonBuilder,
|
||||
super.key})
|
||||
: assert(
|
||||
onSubmitted != null && submitButtonBuilder != null,
|
||||
);
|
||||
|
||||
final Function(String code) onCompleted;
|
||||
final Function(String code)? onSubmitted;
|
||||
final PinTheme? defaultPinTheme;
|
||||
final PinTheme? focusedPinTheme;
|
||||
final PinTheme? submittedPinTheme;
|
||||
final PinTheme? followingPinTheme;
|
||||
final PinTheme? disabledPinTheme;
|
||||
final PinTheme? errorPinTheme;
|
||||
final List<int>? seperatorPositions;
|
||||
final String? errorText;
|
||||
final String? Function(String?)? validator;
|
||||
final Widget Function(String?, String)? errorBuilder;
|
||||
final TextStyle? errorTextStyle;
|
||||
final Widget Function(Function onTap)? submitButtonBuilder;
|
||||
|
||||
@override
|
||||
State<MFAWidget> createState() => _MFAWidgetState();
|
||||
}
|
||||
|
||||
class _MFAWidgetState extends State<MFAWidget> {
|
||||
final TextEditingController _controller = TextEditingController();
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
Pinput(
|
||||
defaultPinTheme: widget.defaultPinTheme,
|
||||
focusedPinTheme: widget.focusedPinTheme,
|
||||
submittedPinTheme: widget.submittedPinTheme,
|
||||
followingPinTheme: widget.followingPinTheme,
|
||||
disabledPinTheme: widget.disabledPinTheme,
|
||||
errorPinTheme: widget.errorPinTheme,
|
||||
separatorPositions: widget.seperatorPositions,
|
||||
errorBuilder: widget.errorBuilder,
|
||||
errorText: widget.errorText,
|
||||
errorTextStyle: widget.errorTextStyle,
|
||||
validator: widget.validator,
|
||||
controller: _controller,
|
||||
length: 6,
|
||||
onCompleted: (_) {
|
||||
widget.onCompleted(_controller.text);
|
||||
},
|
||||
),
|
||||
if (widget.onSubmitted != null &&
|
||||
widget.submitButtonBuilder != null) ...[
|
||||
widget.submitButtonBuilder!(() {
|
||||
widget.onSubmitted!(_controller.text);
|
||||
}),
|
||||
],
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
|
@ -9,6 +9,7 @@ environment:
|
|||
dependencies:
|
||||
flutter:
|
||||
sdk: flutter
|
||||
pinput: ^2.2.31
|
||||
|
||||
dev_dependencies:
|
||||
flutter_test:
|
||||
|
|
Loading…
Reference in a new issue