Skip to content

Commit

Permalink
Merge pull request #192 from NearHuscarl/login-provider-label
Browse files Browse the repository at this point in the history
Login provider label
  • Loading branch information
juliansteenbakker committed Jun 28, 2021
2 parents 807b191 + 0ca10af commit 8b676f9
Show file tree
Hide file tree
Showing 5 changed files with 33 additions and 24 deletions.
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -215,6 +215,7 @@ class LoginScreen extends StatelessWidget {
loginProviders: <LoginProvider>[
LoginProvider(
icon: FontAwesomeIcons.google,
label: 'Google',
callback: () async {
print('start google sign in');
await Future.delayed(loginTime);
Expand All @@ -224,6 +225,7 @@ class LoginScreen extends StatelessWidget {
),
LoginProvider(
icon: FontAwesomeIcons.facebookF,
label: 'Facebook',
callback: () async {
print('start facebook sign in');
await Future.delayed(loginTime);
Expand Down
2 changes: 2 additions & 0 deletions example/lib/login_screen.dart
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ class LoginScreen extends StatelessWidget {
loginProviders: [
LoginProvider(
icon: FontAwesomeIcons.google,
label: 'Google',
callback: () async {
print('start google sign in');
await Future.delayed(loginTime);
Expand All @@ -52,6 +53,7 @@ class LoginScreen extends StatelessWidget {
),
LoginProvider(
icon: FontAwesomeIcons.linkedinIn,
label: 'LinkedIn',
callback: () async {
print('start linkdin sign in');
await Future.delayed(loginTime);
Expand Down
3 changes: 2 additions & 1 deletion lib/flutter_login.dart
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,10 @@ import 'src/constants.dart';

class LoginProvider {
final IconData icon;
final String label;
final ProviderAuthCallback callback;

LoginProvider({required this.icon, required this.callback});
LoginProvider({required this.icon, required this.callback, this.label = ''});
}

class _AnimationTimeDilationDropdown extends StatelessWidget {
Expand Down
4 changes: 2 additions & 2 deletions lib/src/widgets/auth_card.dart
Original file line number Diff line number Diff line change
Expand Up @@ -186,9 +186,9 @@ class AuthCardState extends State<AuthCard> with TickerProviderStateMixin {
final isLogin = Provider.of<Auth>(context, listen: false).isLogin;
final deviceSize = MediaQuery.of(context).size;
final cardSize = getWidgetSize(_cardKey)!;
// add .35 to make sure the scaling will cover the whole screen
// add .45 to make sure the scaling will cover the whole screen
final widthRatio =
deviceSize.width / cardSize.height + (isLogin ? .35 : .65);
deviceSize.width / cardSize.height + (isLogin ? .45 : .65);
final heightRatio = deviceSize.height / cardSize.width + .25;

_cardSize2AnimationX =
Expand Down
46 changes: 25 additions & 21 deletions lib/src/widgets/login_card.dart
Original file line number Diff line number Diff line change
Expand Up @@ -373,29 +373,33 @@ class _LoginCardState extends State<_LoginCard> with TickerProviderStateMixin {
Widget _buildProvidersLogInButton(ThemeData theme, LoginMessages messages,
Auth auth, LoginTheme loginTheme) {
return Row(
mainAxisAlignment: MainAxisAlignment.center,
children: auth.loginProviders.map((loginProvider) {
var index = auth.loginProviders.indexOf(loginProvider);
return Padding(
padding: loginTheme.providerButtonPadding ??
const EdgeInsets.symmetric(horizontal: 6.0, vertical: 8.0),
child: ScaleTransition(
scale: _buttonScaleAnimation,
child: AnimatedIconButton(
icon: loginProvider.icon,
controller: _providerControllerList[index],
tooltip: '',
onPressed: () => _loginProviderSubmit(
control: _providerControllerList[index],
callback: () {
return loginProvider.callback();
},
mainAxisAlignment: MainAxisAlignment.center,
children: auth.loginProviders.map((loginProvider) {
var index = auth.loginProviders.indexOf(loginProvider);
return Padding(
padding: loginTheme.providerButtonPadding ??
const EdgeInsets.symmetric(horizontal: 6.0, vertical: 8.0),
child: ScaleTransition(
scale: _buttonScaleAnimation,
child: Column(
children: [
AnimatedIconButton(
icon: loginProvider.icon,
controller: _providerControllerList[index],
tooltip: '',
onPressed: () => _loginProviderSubmit(
control: _providerControllerList[index],
callback: () {
return loginProvider.callback();
},
),
),
Text(loginProvider.label)
],
),
),
),
);
}).toList(),
);
);
}).toList());
}

Widget _buildProvidersTitle(LoginMessages messages) {
Expand Down

0 comments on commit 8b676f9

Please sign in to comment.