From f6f80b48c946d66e43b0b1349ddc6653d5ca0d15 Mon Sep 17 00:00:00 2001 From: Richard Shiue <71320345+richardshiue@users.noreply.github.com> Date: Thu, 14 Sep 2023 19:30:33 +0800 Subject: [PATCH] fix: some UI issues (#3403) --- .../presentation/calendar_event_card.dart | 23 +++++++++++++++++++ .../widgets/filter/create_filter_list.dart | 4 ++-- .../widgets/filter/filter_menu.dart | 1 - .../widgets/sort/create_sort_list.dart | 4 ++-- .../widgets/card/cells/card_cell.dart | 11 +++++++++ 5 files changed, 38 insertions(+), 5 deletions(-) diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/calendar/presentation/calendar_event_card.dart b/frontend/appflowy_flutter/lib/plugins/database_view/calendar/presentation/calendar_event_card.dart index 45831d0ac3..85f9ec36f9 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/calendar/presentation/calendar_event_card.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/calendar/presentation/calendar_event_card.dart @@ -167,6 +167,29 @@ class EventCard extends StatelessWidget { ); }); + renderHook.addTimestampCellHook((cellData, cardData, _) { + return Align( + alignment: Alignment.centerLeft, + child: Padding( + padding: const EdgeInsets.symmetric(vertical: 2), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Flexible( + flex: 3, + child: FlowyText.regular( + cellData.dateTime, + fontSize: 10, + color: Theme.of(context).hintColor, + overflow: TextOverflow.ellipsis, + ), + ), + ], + ), + ), + ); + }); + renderHook.addSelectOptionHook((selectedOptions, cardData, _) { if (selectedOptions.isEmpty) { return const SizedBox.shrink(); diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/filter/create_filter_list.dart b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/filter/create_filter_list.dart index 8a92d573ac..dee400002e 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/filter/create_filter_list.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/filter/create_filter_list.dart @@ -114,7 +114,7 @@ class _GridCreateFilterListState extends State { class _FilterTextFieldDelegate extends SliverPersistentHeaderDelegate { _FilterTextFieldDelegate(); - double fixHeight = 46; + double fixHeight = 36; @override Widget build( @@ -123,7 +123,7 @@ class _FilterTextFieldDelegate extends SliverPersistentHeaderDelegate { bool overlapsContent, ) { return Container( - padding: const EdgeInsets.only(top: 4), + padding: const EdgeInsets.only(bottom: 4), height: fixHeight, child: FlowyTextField( hintText: LocaleKeys.grid_settings_filterBy.tr(), diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/filter/filter_menu.dart b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/filter/filter_menu.dart index ad0df4d485..80b326abf4 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/filter/filter_menu.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/filter/filter_menu.dart @@ -105,7 +105,6 @@ class _AddFilterButtonState extends State { return AppFlowyPopover( controller: popoverController, constraints: BoxConstraints.loose(const Size(200, 300)), - margin: const EdgeInsets.all(6), triggerActions: PopoverTriggerFlags.none, child: child, popupBuilder: (BuildContext context) { diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/sort/create_sort_list.dart b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/sort/create_sort_list.dart index 440b2405e9..97238c6ed8 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/sort/create_sort_list.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/sort/create_sort_list.dart @@ -114,7 +114,7 @@ class _GridCreateSortListState extends State { class _SortTextFieldDelegate extends SliverPersistentHeaderDelegate { _SortTextFieldDelegate(); - double fixHeight = 46; + double fixHeight = 36; @override Widget build( @@ -123,7 +123,7 @@ class _SortTextFieldDelegate extends SliverPersistentHeaderDelegate { bool overlapsContent, ) { return Container( - padding: const EdgeInsets.only(top: 4), + padding: const EdgeInsets.only(bottom: 4), height: fixHeight, child: FlowyTextField( hintText: LocaleKeys.grid_settings_sortBy.tr(), diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/widgets/card/cells/card_cell.dart b/frontend/appflowy_flutter/lib/plugins/database_view/widgets/card/cells/card_cell.dart index db71945acd..71f57995f2 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/widgets/card/cells/card_cell.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/widgets/card/cells/card_cell.dart @@ -4,6 +4,7 @@ import 'package:appflowy_backend/protobuf/flowy-database2/date_entities.pb.dart' import 'package:appflowy_backend/protobuf/flowy-database2/field_entities.pbenum.dart'; import 'package:appflowy_backend/protobuf/flowy-database2/select_option.pb.dart'; import 'package:appflowy_backend/log.dart'; +import 'package:appflowy_backend/protobuf/flowy-database2/timestamp_entities.pb.dart'; import 'package:flutter/material.dart'; typedef CellRenderHook = Widget? Function( @@ -50,6 +51,16 @@ class RowCardRenderHook { renderHook[FieldType.DateTime] = _typeSafeHook(hook); } + /// Add a render hook for [FieldType.LastEditedTime] and [FieldType.CreatedTime] + void addTimestampCellHook( + CellRenderHook hook, + ) { + renderHook[FieldType.LastEditedTime] = + _typeSafeHook(hook); + renderHook[FieldType.CreatedTime] = + _typeSafeHook(hook); + } + CellRenderHook _typeSafeHook( CellRenderHook hook, ) {