Fix unit test calendar_event_extension_test file to avoid build failed
This commit is contained in:
@@ -298,37 +298,46 @@ extension CalendarEventExtension on CalendarEvent {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
String dateTimeStringForAllDayEvent(DateTime startDate, DateTime endDate) {
|
String dateTimeStringForAllDayEvent({
|
||||||
final timeZoneOffset = DateTime.now().timeZoneOffset.inHours;
|
required DateTime startDate,
|
||||||
final timeZoneOffsetAsString = timeZoneOffset >= 0 ? '+$timeZoneOffset' : '$timeZoneOffset';
|
required DateTime endDate,
|
||||||
|
required date_format.DateLocale dateLocale,
|
||||||
final dateStart = formatDate(AppUtils.getCurrentDateLocale(), startDate);
|
required String timeZone
|
||||||
|
}) {
|
||||||
|
final dateStart = formatDate(dateLocale, startDate);
|
||||||
final endDateToDisplay = endDate.subtract(const Duration(days: 1));
|
final endDateToDisplay = endDate.subtract(const Duration(days: 1));
|
||||||
final dateEnd = formatDate(AppUtils.getCurrentDateLocale(), endDateToDisplay);
|
final dateEnd = formatDate(dateLocale, endDateToDisplay);
|
||||||
|
|
||||||
if (DateUtils.isSameDay(startDate, endDateToDisplay)) {
|
if (DateUtils.isSameDay(startDate, endDateToDisplay)) {
|
||||||
return '$dateStart (GMT$timeZoneOffsetAsString)';
|
return '$dateStart ($timeZone)';
|
||||||
} else {
|
} else {
|
||||||
return '$dateStart - $dateEnd (GMT$timeZoneOffsetAsString)';
|
return '$dateStart - $dateEnd ($timeZone)';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
String get dateTimeEventAsString {
|
String getDateTimeEvent({
|
||||||
|
required date_format.DateLocale dateLocale,
|
||||||
|
required String timeZone
|
||||||
|
}) {
|
||||||
if (isAllDayEvent) {
|
if (isAllDayEvent) {
|
||||||
return dateTimeStringForAllDayEvent(startUtcDate!.value, endUtcDate!.value);
|
return dateTimeStringForAllDayEvent(
|
||||||
|
startDate: startUtcDate!.value,
|
||||||
|
endDate: endUtcDate!.value,
|
||||||
|
dateLocale: dateLocale,
|
||||||
|
timeZone: timeZone,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (localStartDate != null && localEndDate != null) {
|
if (localStartDate != null && localEndDate != null) {
|
||||||
final timeStart = formatDateTime(AppUtils.getCurrentDateLocale(), localStartDate!);
|
final timeStart = formatDateTime(dateLocale, localStartDate!);
|
||||||
final timeEnd = DateUtils.isSameDay(localStartDate, localEndDate)
|
final timeEnd = DateUtils.isSameDay(localStartDate, localEndDate)
|
||||||
? formatTime(AppUtils.getCurrentDateLocale(), localEndDate!)
|
? formatTime(dateLocale, localEndDate!)
|
||||||
: formatDateTime(AppUtils.getCurrentDateLocale(), localEndDate!);
|
: formatDateTime(dateLocale, localEndDate!);
|
||||||
return '$timeStart - $timeEnd';
|
return '$timeStart - $timeEnd';
|
||||||
} else if (localStartDate != null) {
|
} else if (localStartDate != null) {
|
||||||
return formatDateTime(AppUtils.getCurrentDateLocale(), localStartDate!);
|
return formatDateTime(dateLocale, localStartDate!);
|
||||||
} else if (localEndDate != null) {
|
} else if (localEndDate != null) {
|
||||||
return formatDateTime(AppUtils.getCurrentDateLocale(), localEndDate!);
|
return formatDateTime(dateLocale, localEndDate!);
|
||||||
} else {
|
} else {
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
|
|||||||
+17
-5
@@ -13,6 +13,7 @@ import 'package:tmail_ui_user/features/email/presentation/widgets/calendar_event
|
|||||||
import 'package:tmail_ui_user/features/email/presentation/widgets/calendar_event/event_location_detail_widget.dart';
|
import 'package:tmail_ui_user/features/email/presentation/widgets/calendar_event/event_location_detail_widget.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/widgets/calendar_event/event_time_detail_widget.dart';
|
import 'package:tmail_ui_user/features/email/presentation/widgets/calendar_event/event_time_detail_widget.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/widgets/calendar_event/event_title_widget.dart';
|
import 'package:tmail_ui_user/features/email/presentation/widgets/calendar_event/event_title_widget.dart';
|
||||||
|
import 'package:tmail_ui_user/main/utils/app_utils.dart';
|
||||||
|
|
||||||
class CalendarEventDetailWidget extends StatelessWidget {
|
class CalendarEventDetailWidget extends StatelessWidget {
|
||||||
|
|
||||||
@@ -77,11 +78,7 @@ class CalendarEventDetailWidget extends StatelessWidget {
|
|||||||
onMailtoDelegateAction: onMailtoDelegateAction,
|
onMailtoDelegateAction: onMailtoDelegateAction,
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
if (calendarEvent.dateTimeEventAsString.isNotEmpty)
|
_buildEventTimeWidget(),
|
||||||
Padding(
|
|
||||||
padding: const EdgeInsets.only(top: CalendarEventDetailWidgetStyles.fieldTopPadding),
|
|
||||||
child: EventTimeWidgetWidget(timeEvent: calendarEvent.dateTimeEventAsString),
|
|
||||||
),
|
|
||||||
if (calendarEvent.videoConferences.isNotEmpty)
|
if (calendarEvent.videoConferences.isNotEmpty)
|
||||||
Padding(
|
Padding(
|
||||||
padding: const EdgeInsets.only(top: CalendarEventDetailWidgetStyles.fieldTopPadding),
|
padding: const EdgeInsets.only(top: CalendarEventDetailWidgetStyles.fieldTopPadding),
|
||||||
@@ -110,4 +107,19 @@ class CalendarEventDetailWidget extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Widget _buildEventTimeWidget() {
|
||||||
|
final dateTimeEvent = calendarEvent.getDateTimeEvent(
|
||||||
|
dateLocale: AppUtils.getCurrentDateLocale(),
|
||||||
|
timeZone: AppUtils.getTimeZone()
|
||||||
|
);
|
||||||
|
if (dateTimeEvent.isNotEmpty) {
|
||||||
|
return Padding(
|
||||||
|
padding: const EdgeInsets.only(top: CalendarEventDetailWidgetStyles.fieldTopPadding),
|
||||||
|
child: EventTimeWidgetWidget(timeEvent: dateTimeEvent),
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
return const SizedBox.shrink();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+19
-11
@@ -7,14 +7,15 @@ import 'package:jmap_dart_client/jmap/mail/calendar/calendar_event.dart';
|
|||||||
import 'package:tmail_ui_user/features/email/domain/model/event_action.dart';
|
import 'package:tmail_ui_user/features/email/domain/model/event_action.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/extensions/calendar_event_extension.dart';
|
import 'package:tmail_ui_user/features/email/presentation/extensions/calendar_event_extension.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/styles/calendar_event_information_widget_styles.dart';
|
import 'package:tmail_ui_user/features/email/presentation/styles/calendar_event_information_widget_styles.dart';
|
||||||
|
import 'package:tmail_ui_user/features/email/presentation/widgets/calendar_event/calendar_date_icon_widget.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/widgets/calendar_event/calendar_event_action_button_widget.dart';
|
import 'package:tmail_ui_user/features/email/presentation/widgets/calendar_event/calendar_event_action_button_widget.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/widgets/calendar_event/event_attendee_information_widget.dart';
|
import 'package:tmail_ui_user/features/email/presentation/widgets/calendar_event/event_attendee_information_widget.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/widgets/calendar_event/calendar_date_icon_widget.dart';
|
|
||||||
import 'package:tmail_ui_user/features/email/presentation/widgets/calendar_event/event_location_detail_widget.dart';
|
import 'package:tmail_ui_user/features/email/presentation/widgets/calendar_event/event_location_detail_widget.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/widgets/calendar_event/event_location_information_widget.dart';
|
import 'package:tmail_ui_user/features/email/presentation/widgets/calendar_event/event_location_information_widget.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/widgets/calendar_event/event_time_information_widget.dart';
|
import 'package:tmail_ui_user/features/email/presentation/widgets/calendar_event/event_time_information_widget.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/widgets/calendar_event/event_title_widget.dart';
|
import 'package:tmail_ui_user/features/email/presentation/widgets/calendar_event/event_title_widget.dart';
|
||||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||||
|
import 'package:tmail_ui_user/main/utils/app_utils.dart';
|
||||||
|
|
||||||
class CalendarEventInformationWidget extends StatelessWidget {
|
class CalendarEventInformationWidget extends StatelessWidget {
|
||||||
|
|
||||||
@@ -94,11 +95,7 @@ class CalendarEventInformationWidget extends StatelessWidget {
|
|||||||
const SizedBox(height: CalendarEventInformationWidgetStyles.space),
|
const SizedBox(height: CalendarEventInformationWidgetStyles.space),
|
||||||
if (calendarEvent.title?.isNotEmpty == true)
|
if (calendarEvent.title?.isNotEmpty == true)
|
||||||
EventTitleWidget(title: calendarEvent.title!),
|
EventTitleWidget(title: calendarEvent.title!),
|
||||||
if (calendarEvent.dateTimeEventAsString.isNotEmpty)
|
_buildEventTimeInformationWidget(),
|
||||||
Padding(
|
|
||||||
padding: const EdgeInsets.only(top: CalendarEventInformationWidgetStyles.fieldTopPadding),
|
|
||||||
child: EventTimeInformationWidget(timeEvent: calendarEvent.dateTimeEventAsString),
|
|
||||||
),
|
|
||||||
if (calendarEvent.location?.isNotEmpty == true)
|
if (calendarEvent.location?.isNotEmpty == true)
|
||||||
Padding(
|
Padding(
|
||||||
padding: const EdgeInsets.only(top: CalendarEventInformationWidgetStyles.fieldTopPadding),
|
padding: const EdgeInsets.only(top: CalendarEventInformationWidgetStyles.fieldTopPadding),
|
||||||
@@ -168,11 +165,7 @@ class CalendarEventInformationWidget extends StatelessWidget {
|
|||||||
const SizedBox(height: CalendarEventInformationWidgetStyles.space),
|
const SizedBox(height: CalendarEventInformationWidgetStyles.space),
|
||||||
if (calendarEvent.title?.isNotEmpty == true)
|
if (calendarEvent.title?.isNotEmpty == true)
|
||||||
EventTitleWidget(title: calendarEvent.title!),
|
EventTitleWidget(title: calendarEvent.title!),
|
||||||
if (calendarEvent.dateTimeEventAsString.isNotEmpty)
|
_buildEventTimeInformationWidget(),
|
||||||
Padding(
|
|
||||||
padding: const EdgeInsets.only(top: CalendarEventInformationWidgetStyles.fieldTopPadding),
|
|
||||||
child: EventTimeInformationWidget(timeEvent: calendarEvent.dateTimeEventAsString),
|
|
||||||
),
|
|
||||||
if (calendarEvent.location?.isNotEmpty == true)
|
if (calendarEvent.location?.isNotEmpty == true)
|
||||||
Padding(
|
Padding(
|
||||||
padding: const EdgeInsets.only(top: CalendarEventInformationWidgetStyles.fieldTopPadding),
|
padding: const EdgeInsets.only(top: CalendarEventInformationWidgetStyles.fieldTopPadding),
|
||||||
@@ -202,4 +195,19 @@ class CalendarEventInformationWidget extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Widget _buildEventTimeInformationWidget() {
|
||||||
|
final dateTimeEvent = calendarEvent.getDateTimeEvent(
|
||||||
|
dateLocale: AppUtils.getCurrentDateLocale(),
|
||||||
|
timeZone: AppUtils.getTimeZone()
|
||||||
|
);
|
||||||
|
if (dateTimeEvent.isNotEmpty) {
|
||||||
|
return Padding(
|
||||||
|
padding: const EdgeInsets.only(top: CalendarEventInformationWidgetStyles.fieldTopPadding),
|
||||||
|
child: EventTimeInformationWidget(timeEvent: dateTimeEvent),
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
return const SizedBox.shrink();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -68,4 +68,10 @@ class AppUtils {
|
|||||||
return const date_format.EnglishDateLocale();
|
return const date_format.EnglishDateLocale();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static String getTimeZone() {
|
||||||
|
final timeZoneOffset = DateTime.now().timeZoneOffset.inHours;
|
||||||
|
final timeZoneOffsetAsString = timeZoneOffset >= 0 ? '+$timeZoneOffset' : '$timeZoneOffset';
|
||||||
|
return 'GMT$timeZoneOffsetAsString';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
+9
-2
@@ -1,3 +1,4 @@
|
|||||||
|
import 'package:date_format/date_format.dart';
|
||||||
import 'package:flutter_test/flutter_test.dart';
|
import 'package:flutter_test/flutter_test.dart';
|
||||||
import 'package:jmap_dart_client/jmap/core/utc_date.dart';
|
import 'package:jmap_dart_client/jmap/core/utc_date.dart';
|
||||||
import 'package:jmap_dart_client/jmap/mail/calendar/calendar_event.dart';
|
import 'package:jmap_dart_client/jmap/mail/calendar/calendar_event.dart';
|
||||||
@@ -18,7 +19,10 @@ void main() {
|
|||||||
endUtcDate: UTCDate(endDate),
|
endUtcDate: UTCDate(endDate),
|
||||||
);
|
);
|
||||||
|
|
||||||
final formattedDateString = calendarEvent.dateTimeEventAsString;
|
final formattedDateString = calendarEvent.getDateTimeEvent(
|
||||||
|
timeZone: 'GMT+0',
|
||||||
|
dateLocale: const EnglishDateLocale()
|
||||||
|
);
|
||||||
|
|
||||||
expect(formattedDateString, expectedFormattedDateString);
|
expect(formattedDateString, expectedFormattedDateString);
|
||||||
});
|
});
|
||||||
@@ -36,7 +40,10 @@ void main() {
|
|||||||
endUtcDate: UTCDate(endDate),
|
endUtcDate: UTCDate(endDate),
|
||||||
);
|
);
|
||||||
|
|
||||||
final formattedDateString = calendarEvent.dateTimeEventAsString;
|
final formattedDateString = calendarEvent.getDateTimeEvent(
|
||||||
|
timeZone: 'GMT+0',
|
||||||
|
dateLocale: const EnglishDateLocale()
|
||||||
|
);
|
||||||
|
|
||||||
expect(formattedDateString, expectedFormattedDateString);
|
expect(formattedDateString, expectedFormattedDateString);
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user