first commit
This commit is contained in:
50
lib/screens/auth/widgets/pin_code.dart
Normal file
50
lib/screens/auth/widgets/pin_code.dart
Normal file
@@ -0,0 +1,50 @@
|
||||
// Flutter imports:
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:pin_code_fields/pin_code_fields.dart';
|
||||
import 'package:remever/common/resources.dart';
|
||||
import 'package:remever/components/extensions/context.dart';
|
||||
|
||||
class PinCode extends StatefulWidget {
|
||||
const PinCode({super.key, required this.pinController});
|
||||
|
||||
final TextEditingController pinController;
|
||||
|
||||
@override
|
||||
State<PinCode> createState() => _PinCodeState();
|
||||
}
|
||||
|
||||
class _PinCodeState extends State<PinCode> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return PinCodeTextField(
|
||||
controller: widget.pinController,
|
||||
appContext: context,
|
||||
length: 6,
|
||||
keyboardType: TextInputType.number,
|
||||
animationType: AnimationType.slide,
|
||||
hapticFeedbackTypes: HapticFeedbackTypes.medium,
|
||||
autoFocus: true,
|
||||
enableActiveFill: true,
|
||||
cursorColor: AppColors.primary,
|
||||
validator: (value) {
|
||||
if (value == null || value.isEmpty) return 'Поле не может быть пустым';
|
||||
if (value.length < 5) return 'Слишком мало символов';
|
||||
return null;
|
||||
},
|
||||
pinTheme: PinTheme(
|
||||
fieldWidth: 48.w,
|
||||
fieldHeight: 62.h,
|
||||
borderRadius: BorderRadius.circular(8).r,
|
||||
activeFillColor: AppColors.white,
|
||||
selectedFillColor: AppColors.white,
|
||||
inactiveColor: AppColors.white,
|
||||
|
||||
selectedColor: AppColors.white,
|
||||
activeColor: AppColors.white,
|
||||
shape: PinCodeFieldShape.box,
|
||||
inactiveFillColor: AppColors.white,
|
||||
),
|
||||
onCompleted: (String value) async {},
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user