FormeCupertinoTimerField constructor
FormeCupertinoTimerField({
- Duration? initialValue,
- required String name,
- bool readOnly = false,
- FormeCupertinoTimerFieldModel? model,
- Key? key,
- FormeDecoratorBuilder<
Duration?> ? decoratorBuilder, - int? maxLines = 1,
- FormeValueFieldListener<
Duration?, FormeValueFieldController< ? listener,Duration?, FormeCupertinoTimerFieldModel> > - int? order,
- bool quietlyValidate = false,
Implementation
FormeCupertinoTimerField({
Duration? initialValue,
required String name,
bool readOnly = false,
FormeCupertinoTimerFieldModel? model,
Key? key,
FormeDecoratorBuilder<Duration?>? decoratorBuilder,
int? maxLines = 1,
FormeValueFieldListener<
Duration?,
FormeValueFieldController<Duration?,
FormeCupertinoTimerFieldModel>>?
listener,
int? order,
bool quietlyValidate = false,
}) : super(
quietlyValidate: quietlyValidate,
listener: listener,
decoratorBuilder: decoratorBuilder,
key: key,
model: (model ?? FormeCupertinoTimerFieldModel()).copyWith(
FormeCupertinoTimerFieldModel(
textFieldModel: FormeCupertinoTextFieldModel(
maxLines: maxLines,
),
),
),
name: name,
initialValue: initialValue,
builder: (state) {
bool readOnly = state.readOnly;
FocusNode focusNode = state.focusNode;
TextEditingController textEditingController =
(state as _FormeCupertinoTimerFieldState).textEditingController;
void pickDuration() {
state.duration = null;
FormeCupertinos.showFormeCupertinoModalPopup(
context: state.context,
data: state.model.modelPopupData,
builder: (context) {
return Container(
color: CupertinoColors.systemBackground,
child: Wrap(children: [
Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
CupertinoButton(
onPressed: () {
if (state.duration == null) {
if (state.value == null) {
state.didChange(Duration.zero);
}
} else {
state.didChange(state.duration);
}
state.duration = null;
Navigator.of(context).pop();
},
child: (state.model.confirmWidget ??
const Icon(
CupertinoIcons.check_mark,
)),
),
],
),
CupertinoTimerPicker(
minuteInterval: state.model.minuteInterval ?? 1,
secondInterval: state.model.secondInterval ?? 1,
backgroundColor: state.model.backgroundColor,
alignment: state.model.alignment ?? Alignment.center,
initialTimerDuration: state.value ?? Duration.zero,
mode: state.mode,
onTimerDurationChanged: (Duration changedtimer) {
state.duration = changedtimer;
},
),
]),
);
},
).whenComplete(() => state.requestFocus());
}
return FormeCupertinos.cupertinoTextField(
textEditingController: textEditingController,
focusNode: focusNode,
model: FormeCupertinoTextFieldModel(
inputFormatters: [],
onTap: readOnly ? () {} : pickDuration,
readOnly: true,
).copyWith(state.model.textFieldModel ??
FormeCupertinoTextFieldModel()));
},
);