From 03426ec638c7d46b3511e45a3429c28c93a3147f Mon Sep 17 00:00:00 2001 From: dab246 Date: Thu, 27 Jul 2023 18:41:08 +0700 Subject: [PATCH] TF-2057 Add event description detail widget (cherry picked from commit 7f8693755c849e2cf3d4cbb37290da4e20050bc8) --- assets/images/ic_format_quote.svg | 5 ++ .../extensions/color_extension.dart | 1 + .../presentation/resources/image_paths.dart | 1 + ...vent_description_detail_widget_styles.dart | 7 +++ .../event_description_detail_widget.dart | 47 +++++++++++++++++++ 5 files changed, 61 insertions(+) create mode 100644 assets/images/ic_format_quote.svg create mode 100644 lib/features/email/presentation/styles/event_description_detail_widget_styles.dart create mode 100644 lib/features/email/presentation/widgets/calendar_event/event_description_detail_widget.dart diff --git a/assets/images/ic_format_quote.svg b/assets/images/ic_format_quote.svg new file mode 100644 index 000000000..6806d928a --- /dev/null +++ b/assets/images/ic_format_quote.svg @@ -0,0 +1,5 @@ + + + diff --git a/core/lib/presentation/extensions/color_extension.dart b/core/lib/presentation/extensions/color_extension.dart index 680f0bc6a..34b215718 100644 --- a/core/lib/presentation/extensions/color_extension.dart +++ b/core/lib/presentation/extensions/color_extension.dart @@ -196,6 +196,7 @@ extension AppColor on Color { static const colorShadowCalendarDateIcon = Color(0x26000000); static const colorOrganizerMailto = Color(0xFFB3B3B3); static const colorMailto = Color(0xFFB3B3B3); + static const colorEventDescriptionBackground = Color(0x05000000); static const mapGradientColor = [ [Color(0xFF21D4FD), Color(0xFFB721FF)], diff --git a/core/lib/presentation/resources/image_paths.dart b/core/lib/presentation/resources/image_paths.dart index d5a010dd7..cea00d9f5 100644 --- a/core/lib/presentation/resources/image_paths.dart +++ b/core/lib/presentation/resources/image_paths.dart @@ -198,6 +198,7 @@ class ImagePaths { String get icEventInvited => _getImagePath('ic_event_invited.svg'); String get icEventUpdated => _getImagePath('ic_event_updated.svg'); String get icEventCanceled => _getImagePath('ic_event_canceled.svg'); + String get icFormatQuote => _getImagePath('ic_format_quote.svg'); String _getImagePath(String imageName) { return AssetsPaths.images + imageName; diff --git a/lib/features/email/presentation/styles/event_description_detail_widget_styles.dart b/lib/features/email/presentation/styles/event_description_detail_widget_styles.dart new file mode 100644 index 000000000..427b7a794 --- /dev/null +++ b/lib/features/email/presentation/styles/event_description_detail_widget_styles.dart @@ -0,0 +1,7 @@ + +class EventDescriptionDetailWidgetStyles { + static const double textSize = 16; + static const double borderRadius = 16; + static const double contentPadding = 16; + static const double fieldTopPadding = 16; +} \ No newline at end of file diff --git a/lib/features/email/presentation/widgets/calendar_event/event_description_detail_widget.dart b/lib/features/email/presentation/widgets/calendar_event/event_description_detail_widget.dart new file mode 100644 index 000000000..c430c5420 --- /dev/null +++ b/lib/features/email/presentation/widgets/calendar_event/event_description_detail_widget.dart @@ -0,0 +1,47 @@ + +import 'package:core/presentation/extensions/color_extension.dart'; +import 'package:core/presentation/resources/image_paths.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_svg/flutter_svg.dart'; +import 'package:get/get.dart'; +import 'package:tmail_ui_user/features/email/presentation/styles/event_description_detail_widget_styles.dart'; + +class EventDescriptionDetailWidget extends StatelessWidget { + + final String description; + + const EventDescriptionDetailWidget({ + super.key, + required this.description + }); + + @override + Widget build(BuildContext context) { + final imagePath = Get.find(); + return Container( + clipBehavior: Clip.antiAlias, + decoration: const BoxDecoration( + color: AppColor.colorEventDescriptionBackground, + borderRadius: BorderRadius.all(Radius.circular(EventDescriptionDetailWidgetStyles.borderRadius)), + ), + padding: const EdgeInsetsDirectional.all(EventDescriptionDetailWidgetStyles.contentPadding), + child: Stack( + children: [ + Text( + description, + style: const TextStyle( + fontWeight: FontWeight.w500, + fontSize: EventDescriptionDetailWidgetStyles.textSize, + color: Colors.black + ) + ), + PositionedDirectional( + top: 0, + end: 0, + child: SvgPicture.asset(imagePath.icFormatQuote) + ) + ], + ), + ); + } +} \ No newline at end of file