|
@@ -84,15 +84,23 @@ class DateCellCalendarBloc
|
|
bool? includeTime,
|
|
bool? includeTime,
|
|
}) {
|
|
}) {
|
|
final DateCellData newDateData = state.dateCellData.fold(
|
|
final DateCellData newDateData = state.dateCellData.fold(
|
|
- () => DateCellData(
|
|
|
|
- date: date ?? DateTime.now(),
|
|
|
|
- time: time,
|
|
|
|
- includeTime: includeTime ?? false,
|
|
|
|
- ),
|
|
|
|
|
|
+ () {
|
|
|
|
+ DateTime newDate = DateTime.now();
|
|
|
|
+ if (date != null) {
|
|
|
|
+ newDate = _utcToLocalAddTime(date);
|
|
|
|
+ }
|
|
|
|
+ return DateCellData(
|
|
|
|
+ date: newDate,
|
|
|
|
+ time: time,
|
|
|
|
+ includeTime: includeTime ?? false,
|
|
|
|
+ );
|
|
|
|
+ },
|
|
(dateData) {
|
|
(dateData) {
|
|
var newDateData = dateData;
|
|
var newDateData = dateData;
|
|
if (date != null && !isSameDay(newDateData.date, date)) {
|
|
if (date != null && !isSameDay(newDateData.date, date)) {
|
|
- newDateData = newDateData.copyWith(date: date);
|
|
|
|
|
|
+ newDateData = newDateData.copyWith(
|
|
|
|
+ date: _utcToLocalAddTime(date),
|
|
|
|
+ );
|
|
}
|
|
}
|
|
|
|
|
|
if (newDateData.time != time) {
|
|
if (newDateData.time != time) {
|
|
@@ -151,6 +159,21 @@ class DateCellCalendarBloc
|
|
);
|
|
);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ DateTime _utcToLocalAddTime(DateTime date) {
|
|
|
|
+ final now = DateTime.now();
|
|
|
|
+ // the incoming date is Utc. this trick converts it into Local
|
|
|
|
+ // and add the current time, though
|
|
|
|
+ // the time may be overwritten by explicitly provided time string
|
|
|
|
+ return DateTime(
|
|
|
|
+ date.year,
|
|
|
|
+ date.month,
|
|
|
|
+ date.day,
|
|
|
|
+ now.hour,
|
|
|
|
+ now.minute,
|
|
|
|
+ now.second,
|
|
|
|
+ );
|
|
|
|
+ }
|
|
|
|
+
|
|
String timeFormatPrompt(FlowyError error) {
|
|
String timeFormatPrompt(FlowyError error) {
|
|
String msg = "${LocaleKeys.grid_field_invalidTimeFormat.tr()}.";
|
|
String msg = "${LocaleKeys.grid_field_invalidTimeFormat.tr()}.";
|
|
switch (state.dateTypeOptionPB.timeFormat) {
|
|
switch (state.dateTypeOptionPB.timeFormat) {
|