This commit is contained in:
Hillel Coren 2018-12-25 12:23:35 +02:00
parent 705f197f3b
commit 565a0083c3
3 changed files with 35 additions and 35 deletions

View File

@ -27,7 +27,7 @@ class _TimePickerState extends State<TimePicker> {
void didChangeDependencies() {
if (widget.timeOfDay != null) {
_textController.text = formatDate(
_convertToDate(widget.timeOfDay).toIso8601String(), context,
convertTimeOfDayToDateTime(widget.timeOfDay).toIso8601String(), context,
showDate: false, showTime: true);
}
@ -40,15 +40,6 @@ class _TimePickerState extends State<TimePicker> {
super.dispose();
}
DateTime _convertToDate(TimeOfDay timeOfDay) {
final now = new DateTime.now();
final date = DateTime(now.year, now.month, now.day, timeOfDay?.hour ?? 0,
timeOfDay?.minute ?? 0)
.toUtc();
return date;
}
void _showDatePicker() async {
final selectedDate = widget.timeOfDay;
final now = DateTime.now();
@ -61,7 +52,7 @@ class _TimePickerState extends State<TimePicker> {
if (selectedTime != null) {
_textController.text = formatDate(
_convertToDate(selectedTime).toIso8601String(), context,
convertTimeOfDayToDateTime(selectedTime).toIso8601String(), context,
showTime: true, showDate: false);
widget.onSelected(selectedTime);

View File

@ -103,12 +103,12 @@ class TimeEditDetailsState extends State<TimeEditDetails> {
String _date;
TimeOfDay _startTime;
TimeOfDay _endTime;
DurationLength _duration;
final _durationController = TextEditingController();
@override
void didChangeDependencies() {
print('didChangeDependencies...');
_date = widget.taskTime.startDate.toIso8601String();
_startTime = TimeOfDay(
hour: widget.taskTime.startDate.hour,
@ -185,34 +185,35 @@ class TimeEditDetailsState extends State<TimeEditDetails> {
),
TimePicker(
labelText: localization.startTime,
timeOfDay: TimeOfDay(
hour: widget.taskTime.startDate.hour,
minute: widget.taskTime.startDate.minute),
timeOfDay: convertDateTimeToTimeOfDay(widget.taskTime.startDate),
onSelected: (timeOfDay) => _startTime = timeOfDay,
),
TimePicker(
labelText: localization.endTime,
timeOfDay: widget.taskTime.endDate != null
? TimeOfDay(
hour: widget.taskTime.endDate.hour,
minute: widget.taskTime.endDate.minute)
? convertDateTimeToTimeOfDay(widget.taskTime.endDate)
: null,
onSelected: (timeOfDay) => _endTime = timeOfDay,
),
PopupMenuButton<int>(
padding: EdgeInsets.zero,
initialValue: null,
itemBuilder: (BuildContext context) => [15, 30].map((minutes) => PopupMenuItem<int>(
child: Text(minutes.toString()),
value: minutes,
)).toList(),
onSelected: (paymentTerm) {
/*
viewModel.onChanged(client
.rebuild((b) => b..paymentTerms = paymentTerm.numDays));
_paymentTermsController.text =
paymentTerm.getPaymentTerm(localization.net);
*/
itemBuilder: (BuildContext context) =>
[15, 30, 45, 60, 75, 90, 105, 120]
.map((minutes) => PopupMenuItem<int>(
child: Text(formatDuration(
Duration(minutes: minutes),
showSeconds: false)),
value: minutes,
))
.toList(),
onSelected: (duration) {
setState(() {
_durationController.text = duration.toString();
final dateTime = convertTimeOfDayToDateTime(_startTime)
.add(Duration(minutes: duration));
_endTime = convertDateTimeToTimeOfDay(dateTime);
});
},
child: InkWell(
child: IgnorePointer(
@ -232,8 +233,3 @@ class TimeEditDetailsState extends State<TimeEditDetails> {
);
}
}
class DurationLength {
DurationLength();
}

View File

@ -1,4 +1,5 @@
import 'dart:math';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_redux/flutter_redux.dart';
import 'package:intl/intl.dart';
@ -198,7 +199,7 @@ String convertTimestampToDateString(int timestamp) =>
String formatDuration(Duration duration, {bool showSeconds = true}) {
final time = duration.toString().split('.')[0];
if (showSeconds) {
return time;
} else {
@ -207,6 +208,18 @@ String formatDuration(Duration duration, {bool showSeconds = true}) {
}
}
DateTime convertTimeOfDayToDateTime(TimeOfDay timeOfDay) {
final now = new DateTime.now();
final date = DateTime(now.year, now.month, now.day, timeOfDay?.hour ?? 0,
timeOfDay?.minute ?? 0)
.toUtc();
return date;
}
TimeOfDay convertDateTimeToTimeOfDay(DateTime dateTime) =>
TimeOfDay(hour: dateTime?.hour ?? 0, minute: dateTime?.minute ?? 0);
String formatDateRange(String startDate, String endDate, BuildContext context) {
final today = DateTime.now();