authentication screens layout

This commit is contained in:
MohammadTaha Basiri 2021-12-11 10:32:44 +03:30
parent fc0745abfe
commit 9b49dc5f1a
4 changed files with 191 additions and 199 deletions

View File

@ -1,9 +1,8 @@
import 'package:didvan/pages/authentication/authentication_state.dart'; import 'package:didvan/pages/authentication/authentication_state.dart';
import 'package:didvan/pages/authentication/widgets/authentication_app_bar.dart'; import 'package:didvan/pages/authentication/widgets/authentication_layout.dart';
import 'package:didvan/widgets/didvan/button.dart'; import 'package:didvan/widgets/didvan/button.dart';
import 'package:didvan/widgets/didvan/text.dart'; import 'package:didvan/widgets/didvan/text.dart';
import 'package:didvan/widgets/didvan/text_field.dart'; import 'package:didvan/widgets/didvan/text_field.dart';
import 'package:didvan/widgets/logos/didvan_horizontal_logo.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
@ -13,24 +12,9 @@ class PasswordInput extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final AuthenticationState state = context.read<AuthenticationState>(); final AuthenticationState state = context.read<AuthenticationState>();
return SingleChildScrollView( return AuthenticationLayout(
padding: const EdgeInsets.symmetric(horizontal: 20), appBarTitle: 'ورود با شماره موبایل ' + state.phoneNumber,
child: SizedBox(
height: MediaQuery.of(context).size.height,
child: Column(
children: [ children: [
AuthenticationAppBar(
title: 'ورود با شماره موبایل ' + state.phoneNumber,
),
const Padding(
padding: EdgeInsets.only(
bottom: 44,
top: 34,
left: 100,
right: 100,
),
child: DidvanVerticalLogo(),
),
DidvanTextField( DidvanTextField(
onChanged: (value) => state.password = value, onChanged: (value) => state.password = value,
autoFocus: true, autoFocus: true,
@ -58,8 +42,6 @@ class PasswordInput extends StatelessWidget {
height: 48, height: 48,
), ),
], ],
),
),
); );
} }
} }

View File

@ -1,7 +1,7 @@
import 'package:didvan/pages/authentication/authentication_state.dart'; import 'package:didvan/pages/authentication/authentication_state.dart';
import 'package:didvan/pages/authentication/widgets/authentication_layout.dart';
import 'package:didvan/widgets/didvan/button.dart'; import 'package:didvan/widgets/didvan/button.dart';
import 'package:didvan/widgets/didvan/text_field.dart'; import 'package:didvan/widgets/didvan/text_field.dart';
import 'package:didvan/widgets/logos/didvan_horizontal_logo.dart';
import 'package:flutter/gestures.dart'; import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
@ -14,22 +14,8 @@ class PhoneNumberInput extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final AuthenticationState state = context.read<AuthenticationState>(); final AuthenticationState state = context.read<AuthenticationState>();
return SingleChildScrollView( return AuthenticationLayout(
physics: const NeverScrollableScrollPhysics(),
padding: const EdgeInsets.all(20),
child: SizedBox(
height: MediaQuery.of(context).size.height,
child: Column(
children: [ children: [
const Padding(
padding: EdgeInsets.only(
top: 80,
left: 100,
right: 100,
bottom: 40,
),
child: DidvanVerticalLogo(),
),
DidvanTextField( DidvanTextField(
title: 'شماره موبایل', title: 'شماره موبایل',
textInputType: TextInputType.phone, textInputType: TextInputType.phone,
@ -89,8 +75,6 @@ class PhoneNumberInput extends StatelessWidget {
height: 48, height: 48,
), ),
], ],
),
),
); );
} }
} }

View File

@ -1,9 +1,8 @@
import 'package:didvan/config/design_config.dart'; import 'package:didvan/config/design_config.dart';
import 'package:didvan/pages/authentication/authentication_state.dart'; import 'package:didvan/pages/authentication/authentication_state.dart';
import 'package:didvan/pages/authentication/widgets/authentication_app_bar.dart'; import 'package:didvan/pages/authentication/widgets/authentication_layout.dart';
import 'package:didvan/widgets/didvan/button.dart'; import 'package:didvan/widgets/didvan/button.dart';
import 'package:didvan/widgets/didvan/text.dart'; import 'package:didvan/widgets/didvan/text.dart';
import 'package:didvan/widgets/logos/didvan_horizontal_logo.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:pin_code_fields/pin_code_fields.dart'; import 'package:pin_code_fields/pin_code_fields.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
@ -14,25 +13,9 @@ class Verification extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final AuthenticationState state = context.read<AuthenticationState>(); final AuthenticationState state = context.read<AuthenticationState>();
return SingleChildScrollView( return AuthenticationLayout(
physics: const NeverScrollableScrollPhysics(), appBarTitle: 'تغییر رمز عبور',
padding: const EdgeInsets.symmetric(horizontal: 20),
child: SizedBox(
height: MediaQuery.of(context).size.height,
child: Column(
children: [ children: [
const AuthenticationAppBar(
title: 'تغییر رمز عبور',
),
const Padding(
padding: EdgeInsets.only(
bottom: 24,
top: 34,
left: 100,
right: 100,
),
child: DidvanVerticalLogo(),
),
DidvanText( DidvanText(
'کد 6 رقممی ارسال شده به موبایل', 'کد 6 رقممی ارسال شده به موبایل',
style: Theme.of(context).textTheme.subtitle2, style: Theme.of(context).textTheme.subtitle2,
@ -85,8 +68,6 @@ class Verification extends StatelessWidget {
height: 48, height: 48,
), ),
], ],
),
),
); );
} }
} }

View File

@ -0,0 +1,45 @@
import 'package:didvan/pages/authentication/widgets/authentication_app_bar.dart';
import 'package:didvan/widgets/logos/didvan_horizontal_logo.dart';
import 'package:flutter/material.dart';
class AuthenticationLayout extends StatelessWidget {
final List<Widget> children;
final String? appBarTitle;
const AuthenticationLayout(
{Key? key, required this.children, this.appBarTitle})
: super(key: key);
@override
Widget build(BuildContext context) {
return SingleChildScrollView(
padding: const EdgeInsets.symmetric(horizontal: 20),
physics: const NeverScrollableScrollPhysics(),
child: SizedBox(
height: MediaQuery.of(context).size.height,
child: Column(
children: [
if (appBarTitle != null)
AuthenticationAppBar(
title: appBarTitle,
),
if (appBarTitle == null)
const SizedBox(
height: 66,
),
const Padding(
padding: EdgeInsets.only(
top: 44,
left: 100,
right: 100,
bottom: 40,
),
child: DidvanVerticalLogo(),
),
...children,
],
),
),
);
}
}