|
- import 'package:farm_tpf/utils/validators.dart';
- import 'package:flutter/material.dart';
- import 'package:flutter_datetime_picker/flutter_datetime_picker.dart';
- import 'package:get/get.dart';
- import 'package:get/get_state_manager/get_state_manager.dart';
- import 'package:farm_tpf/utils/formatter.dart';
-
- import 'widget_field_time_picker.dart';
-
- class FieldDateWidget extends StatefulWidget {
- final String hint;
- final String value;
- final Function(DateTime) onPressed;
- final String invalidMessage;
- final String tag;
- FieldDateWidget(
- {@required this.hint,
- @required this.tag,
- this.value,
- @required this.onPressed,
- this.invalidMessage});
-
- @override
- _FieldDateWidgetState createState() => _FieldDateWidgetState();
- }
-
- class _FieldDateWidgetState extends State<FieldDateWidget> {
- ChangeDateTimePicker controller;
-
- @override
- void initState() {
- super.initState();
- controller = Get.put(ChangeDateTimePicker(), tag: widget.tag);
- }
-
- @override
- Widget build(BuildContext context) {
- return GetBuilder<ChangeDateTimePicker>(
- tag: widget.tag,
- builder: (data) {
- return SizedBox(
- width: double.infinity,
- height: Validators.stringNotNullOrEmpty(widget.invalidMessage)
- ? 85
- : 65,
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Text(
- widget.hint ?? '',
- style: TextStyle(
- color:
- Validators.stringNotNullOrEmpty(widget.invalidMessage)
- ? Colors.red
- : Colors.black54,
- fontSize: 13.0),
- ),
- SizedBox(
- width: double.infinity,
- height: 44,
- child: FlatButton(
- padding: EdgeInsets.only(
- top: 0.0, right: 0.0, bottom: 0.0, left: 0.0),
- onPressed: () {
- DatePicker.showDateTimePicker(context,
- showTitleActions: true,
- onChanged: (date) {}, onConfirm: (date) {
- controller.change(date);
- widget.onPressed(date);
- },
- currentTime: data?.selectedDateTime,
- locale: LocaleType.vi);
- },
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Container(
- padding: EdgeInsets.only(
- top: 0.0,
- right: 0.0,
- bottom: 10.5,
- left: 0.0),
- decoration: BoxDecoration(
- border: Border(
- bottom: BorderSide(
- width: 0.5,
- color: Validators.stringNotNullOrEmpty(
- widget.invalidMessage)
- ? Colors.red
- : Colors.black54)),
- ),
- child: Row(
- children: [
- Expanded(
- child: Text(
- data?.selectedDateTime
- ?.displayDateTime_DDMMYYYY_HHmm() ??
- widget.hint,
- style: TextStyle(
- fontSize: 14.0,
- color: Colors.black))),
- Icon(
- Icons.date_range,
- color: Colors.grey,
- ),
- ],
- ))
- ],
- )),
- ),
- Validators.stringNotNullOrEmpty(widget.invalidMessage)
- ? Text(
- widget.invalidMessage ?? '',
- style: TextStyle(
- fontSize: 12.0,
- color: Colors.red,
- fontWeight: FontWeight.normal),
- textAlign: TextAlign.left,
- )
- : SizedBox(),
- ],
- ),
- );
- });
- }
- }
|