D1APP-12 authentication (password)

This commit is contained in:
MohammadTaha Basiri 2021-12-08 16:05:26 +03:30
parent 89a63b200c
commit 10b708d5c8
14 changed files with 50 additions and 10 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -15,8 +15,9 @@ class DesignConfig {
colorScheme: lightColorScheme, colorScheme: lightColorScheme,
fontFamily: 'dana-fa', fontFamily: 'dana-fa',
textTheme: const TextTheme( textTheme: const TextTheme(
bodyText1: body1TextStyle, bodyText1: body1Text,
caption: captionTextStyle, caption: captionText,
subtitle2: subtitle2Text,
), ),
); );
@ -36,10 +37,14 @@ class DesignConfig {
brightness: Brightness.light, brightness: Brightness.light,
); );
static const TextStyle body1TextStyle = TextStyle( static const TextStyle subtitle2Text = TextStyle(
fontSize: 15,
fontWeight: FontWeight.w700,
);
static const TextStyle body1Text = TextStyle(
fontSize: 14, fontSize: 14,
); );
static const TextStyle captionTextStyle = TextStyle( static const TextStyle captionText = TextStyle(
fontSize: 13, fontSize: 13,
); );

View File

@ -2,7 +2,7 @@ import 'package:didvan/config/design_config.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
class DidvanText extends StatelessWidget { class DidvanText extends StatelessWidget {
final TextStyle style; final TextStyle? style;
final String text; final String text;
final Color? color; final Color? color;
final FontWeight? fontWeight; final FontWeight? fontWeight;
@ -11,7 +11,7 @@ class DidvanText extends StatelessWidget {
const DidvanText( const DidvanText(
this.text, { this.text, {
Key? key, Key? key,
this.style = DesignConfig.body1TextStyle, this.style = DesignConfig.body1Text,
this.color, this.color,
this.fontSize, this.fontSize,
this.fontWeight, this.fontWeight,
@ -21,7 +21,7 @@ class DidvanText extends StatelessWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Text( return Text(
text, text,
style: style.copyWith( style: style!.copyWith(
color: color, color: color,
fontWeight: fontWeight, fontWeight: fontWeight,
fontSize: fontSize, fontSize: fontSize,

View File

@ -9,6 +9,7 @@ class DidvanTextField extends StatefulWidget {
final String? title; final String? title;
final String? hintText; final String? hintText;
final dynamic initialValue; final dynamic initialValue;
final bool obsecureText;
final String? Function(String? value)? validator; final String? Function(String? value)? validator;
final TextInputType? textInputType; final TextInputType? textInputType;
const DidvanTextField({ const DidvanTextField({
@ -21,6 +22,7 @@ class DidvanTextField extends StatefulWidget {
this.validator, this.validator,
this.textInputType, this.textInputType,
this.textAlign = TextAlign.right, this.textAlign = TextAlign.right,
this.obsecureText = false,
}) : super(key: key); }) : super(key: key);
@override @override
@ -32,9 +34,11 @@ class _DidvanTextFieldState extends State<DidvanTextField> {
final TextEditingController _controller = TextEditingController(); final TextEditingController _controller = TextEditingController();
bool _hasError = false; bool _hasError = false;
bool _hideContent = false;
@override @override
void initState() { void initState() {
_hideContent = widget.obsecureText;
_focusNode.addListener(() { _focusNode.addListener(() {
setState(() {}); setState(() {});
}); });
@ -50,20 +54,25 @@ class _DidvanTextFieldState extends State<DidvanTextField> {
if (widget.title != null) DidvanText(widget.title!), if (widget.title != null) DidvanText(widget.title!),
if (widget.title != null) const SizedBox(height: 8), if (widget.title != null) const SizedBox(height: 8),
Container( Container(
padding: const EdgeInsets.symmetric(horizontal: 12), padding: const EdgeInsets.symmetric(horizontal: 12).copyWith(
left: widget.obsecureText ? 0 : 12,
),
decoration: BoxDecoration( decoration: BoxDecoration(
color: _fillColor(), color: _fillColor(),
borderRadius: DesignConfig.lowBorderRadius, borderRadius: DesignConfig.lowBorderRadius,
border: Border.all(color: _borderColor()), border: Border.all(color: _borderColor()),
), ),
child: TextFormField( child: TextFormField(
obscureText: _hideContent,
textAlign: widget.textAlign, textAlign: widget.textAlign,
keyboardType: widget.textInputType, keyboardType: widget.textInputType,
focusNode: _focusNode, focusNode: _focusNode,
controller: _controller, controller: _controller,
onChanged: _onChanged, onChanged: _onChanged,
validator: _validator, validator: _validator,
obscuringCharacter: '*',
decoration: InputDecoration( decoration: InputDecoration(
suffixIcon: _suffixBuilder(),
enabled: widget.enabled, enabled: widget.enabled,
border: InputBorder.none, border: InputBorder.none,
hintText: widget.hintText, hintText: widget.hintText,
@ -96,6 +105,24 @@ class _DidvanTextFieldState extends State<DidvanTextField> {
return Theme.of(context).colorScheme.surface; return Theme.of(context).colorScheme.surface;
} }
Widget? _suffixBuilder() {
if (widget.obsecureText) {
return FittedBox(
fit: BoxFit.scaleDown,
child: GestureDetector(
onTap: () {
setState(() {
_hideContent = !_hideContent;
});
},
child: Icon(
_hideContent ? Icons.remove_red_eye : Icons.remove_red_eye_outlined,
),
),
);
}
}
void _onChanged(String value) { void _onChanged(String value) {
if (widget.onChanged != null) { if (widget.onChanged != null) {
widget.onChanged!(value); widget.onChanged!(value);

View File

@ -81,11 +81,19 @@ flutter:
fonts: fonts:
- family: dana-fa - family: dana-fa
fonts: fonts:
- asset: lib/assets/fonts/dana-fa.ttf - asset: lib/assets/fonts/Dana-FaNum-Black.ttf
- asset: lib/assets/fonts/Dana-FaNum-Bold.ttf
- asset: lib/assets/fonts/Dana-FaNum-SemiBold.ttf
- asset: lib/assets/fonts/Dana-FaNum-ExtraBold.ttf
- asset: lib/assets/fonts/Dana-FaNum-Light.ttf
- asset: lib/assets/fonts/Dana-FaNum-Medium.ttf
- asset: lib/assets/fonts/Dana-FaNum-Regular.ttf
- asset: lib/assets/fonts/Dana-FaNum-Thin.ttf
- asset: lib/assets/fonts/Dana-FaNum-UltraBold.ttf
- family: dana - family: dana
fonts: fonts:
- asset: lib/assets/fonts/dana-fa.ttf - asset: lib/assets/fonts/Dana.ttf
# fonts: # fonts:
# - family: Schyler # - family: Schyler
# fonts: # fonts: