42 lines
1.2 KiB
Dart
42 lines
1.2 KiB
Dart
import 'package:flutter/material.dart';
|
|
|
|
import 'package:pin_code_fields/pin_code_fields.dart';
|
|
|
|
|
|
class TwoFactorCodeInput extends StatelessWidget {
|
|
final void Function(String) onCompleted;
|
|
|
|
const TwoFactorCodeInput({super.key, required this.onCompleted});
|
|
|
|
@override
|
|
Widget build(BuildContext context){
|
|
final theme = Theme.of(context).colorScheme;
|
|
|
|
return Center(
|
|
child: ConstrainedBox(
|
|
constraints: const BoxConstraints(maxWidth: 300),
|
|
child: MaterialPinField(
|
|
length: 6,
|
|
autoFocus: true,
|
|
keyboardType: TextInputType.number,
|
|
theme: MaterialPinTheme(
|
|
entryAnimation: MaterialPinAnimation.fade,
|
|
shape: MaterialPinShape.outlined,
|
|
borderRadius: BorderRadius.circular(4),
|
|
cellSize: Size(40, 48),
|
|
borderColor: theme.primaryContainer.withValues(alpha: 0.2),
|
|
focusedBorderColor: theme.primary,
|
|
filledBorderColor: theme.primary,
|
|
cursorColor: theme.primary,
|
|
focusedFillColor: theme.onSecondary,
|
|
filledFillColor: theme.onSecondary,
|
|
fillColor: theme.onSecondary,
|
|
),
|
|
onCompleted: onCompleted,
|
|
onChanged: (_) {},
|
|
),
|
|
),
|
|
);
|
|
}
|
|
}
|