From 477833abe4eaf2907d8d3b3f04422fa6d6a21eeb Mon Sep 17 00:00:00 2001 From: Abhishek Shroff Date: Wed, 16 Jul 2025 01:55:12 +0530 Subject: [PATCH] [client][login] Add divider --- client/lib/ui/login/instance_config.dart | 2 +- client/lib/ui/login/login_fragment.dart | 29 +++++++++++++++--------- 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/client/lib/ui/login/instance_config.dart b/client/lib/ui/login/instance_config.dart index 3b7efa78..74d1e927 100644 --- a/client/lib/ui/login/instance_config.dart +++ b/client/lib/ui/login/instance_config.dart @@ -7,7 +7,7 @@ class InstanceConfig { final bool magicLink; final List openIDProviders; - bool get hasEmailLogin => password || magicLink; + bool get email => password || magicLink; InstanceConfig( {required this.url, diff --git a/client/lib/ui/login/login_fragment.dart b/client/lib/ui/login/login_fragment.dart index 018d3e16..ca02fe4c 100644 --- a/client/lib/ui/login/login_fragment.dart +++ b/client/lib/ui/login/login_fragment.dart @@ -1,6 +1,5 @@ import 'dart:convert'; -import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:http/http.dart'; import 'package:offtheline/offtheline.dart'; @@ -39,7 +38,7 @@ class _LoginFragmentState extends State { Widget build(BuildContext context) { return AutofillGroup( child: Padding( - padding: const EdgeInsets.only(bottom: 24), + padding: const EdgeInsets.only(bottom: 12), child: Column( children: [ ListTile( @@ -49,7 +48,7 @@ class _LoginFragmentState extends State { leading: Icon(Icons.storage), trailing: IconButton(onPressed: widget.onBackPressed, icon: Icon(Icons.close)), ), - if (widget.instanceConfig.hasEmailLogin) + if (widget.instanceConfig.email) TextField( decoration: const InputDecoration( label: Text('Email'), @@ -90,14 +89,22 @@ class _LoginFragmentState extends State { ), ], ), - ...widget.instanceConfig.openIDProviders.map((p) => TextButton( - onPressed: () async { - final builder = UriBuilder.fromUri(widget.instanceConfig.url); - builder.path += '/api/v1/auth/oauth/start'; - builder.queryParameters['provider'] = p.id; - startOAuthFlow(context, builder, p.name); - }, - child: Text('Log In with ${p.name}'))), + if (widget.instanceConfig.email && widget.instanceConfig.openIDProviders.isNotEmpty) + const Padding( + padding: EdgeInsets.only(top: 12, left: 48, right: 48), + child: Divider(), + ), + ...widget.instanceConfig.openIDProviders.map((p) => Padding( + padding: const EdgeInsets.all(6.0), + child: TextButton( + onPressed: () async { + final builder = UriBuilder.fromUri(widget.instanceConfig.url); + builder.path += '/api/v1/auth/oauth/start'; + builder.queryParameters['provider'] = p.id; + startOAuthFlow(context, builder, p.name); + }, + child: Text('Log In with ${p.name}')), + )), ], ), ),