add fcs shipment apis
This commit is contained in:
99
lib/pages/widgets/input_date.dart
Normal file
99
lib/pages/widgets/input_date.dart
Normal file
@@ -0,0 +1,99 @@
|
||||
import 'package:fcs/helpers/theme.dart';
|
||||
import 'package:fcs/localization/app_translations.dart';
|
||||
import 'package:fcs/pages/main/model/language_model.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class InputDate extends StatelessWidget {
|
||||
final String labelTextKey;
|
||||
final IconData iconData;
|
||||
final TextEditingController controller;
|
||||
final FormFieldValidator<String> validator;
|
||||
final int maxLines;
|
||||
final bool withBorder;
|
||||
final Color borderColor;
|
||||
final TextInputType textInputType;
|
||||
final bool autoFocus;
|
||||
final String dateFormatString;
|
||||
|
||||
const InputDate(
|
||||
{Key key,
|
||||
this.labelTextKey,
|
||||
this.iconData,
|
||||
this.controller,
|
||||
this.validator,
|
||||
this.maxLines = 1,
|
||||
this.withBorder = false,
|
||||
this.borderColor,
|
||||
this.autoFocus = false,
|
||||
this.dateFormatString = "dd MMM yyyy",
|
||||
this.textInputType})
|
||||
: super(key: key);
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var languageModel = Provider.of<LanguageModel>(context);
|
||||
|
||||
return Padding(
|
||||
padding: const EdgeInsets.only(top: 15.0, bottom: 5),
|
||||
child: TextFormField(
|
||||
readOnly: true,
|
||||
onTap: () async {
|
||||
var dateFormatter = new DateFormat(dateFormatString);
|
||||
FocusScope.of(context).unfocus();
|
||||
var initialDate = DateTime.now();
|
||||
if (controller != null) {
|
||||
try {
|
||||
initialDate = dateFormatter.parse(controller.text);
|
||||
} catch (e) {} // ignore error
|
||||
}
|
||||
var d = await showDatePicker(
|
||||
context: context,
|
||||
firstDate: DateTime(0),
|
||||
lastDate: DateTime(2025),
|
||||
initialDate: initialDate,
|
||||
);
|
||||
if (d != null && controller != null) {
|
||||
controller.text = dateFormatter.format(d);
|
||||
}
|
||||
},
|
||||
controller: controller,
|
||||
autofocus: autoFocus,
|
||||
cursorColor: primaryColor,
|
||||
style: textStyle,
|
||||
maxLines: maxLines,
|
||||
keyboardType: textInputType,
|
||||
decoration: new InputDecoration(
|
||||
// hintText: '',
|
||||
hintStyle: TextStyle(
|
||||
height: 1.5,
|
||||
),
|
||||
labelText: labelTextKey == null
|
||||
? null
|
||||
: AppTranslations.of(context).text(labelTextKey),
|
||||
labelStyle: languageModel.isEng ? labelStyle : labelStyleMM,
|
||||
icon: iconData == null
|
||||
? null
|
||||
: Icon(
|
||||
iconData,
|
||||
color: primaryColor,
|
||||
),
|
||||
enabledBorder: withBorder
|
||||
? OutlineInputBorder(
|
||||
borderSide: BorderSide(color: primaryColor, width: 1.0),
|
||||
)
|
||||
: UnderlineInputBorder(
|
||||
borderSide: BorderSide(color: primaryColor, width: 1.0)),
|
||||
focusedBorder: withBorder
|
||||
? OutlineInputBorder(
|
||||
borderSide: BorderSide(color: primaryColor, width: 1.0),
|
||||
)
|
||||
: UnderlineInputBorder(
|
||||
borderSide: BorderSide(color: primaryColor, width: 1.0)),
|
||||
),
|
||||
validator: validator),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user