Forráskód Böngészése

feat: open the event details page when a new one is create (#2388)

* style: code style improvement

* chore: open cal event details page upon creation
Richard Shiue 2 éve
szülő
commit
cd1202d3dc

+ 3 - 5
frontend/appflowy_flutter/lib/plugins/database_view/calendar/presentation/calendar_day.dart

@@ -49,7 +49,7 @@ class CalendarDayCard extends StatelessWidget {
 
     return ChangeNotifierProvider(
       create: (_) => _CardEnterNotifier(),
-      builder: ((context, child) {
+      builder: (context, child) {
         final children = events.map((event) {
           return _DayEventCell(
             event: event,
@@ -101,7 +101,7 @@ class CalendarDayCard extends StatelessWidget {
             ),
           ),
         );
-      }),
+      },
     );
   }
 
@@ -247,7 +247,7 @@ class _DayBadge extends StatelessWidget {
       dayTextColor = Theme.of(context).disabledColor;
     }
 
-    Widget day = Container(
+    return Container(
       decoration: BoxDecoration(
         color: isToday ? Theme.of(context).colorScheme.primary : null,
         borderRadius: Corners.s6Border,
@@ -258,8 +258,6 @@ class _DayBadge extends StatelessWidget {
         color: dayTextColor,
       ),
     );
-
-    return day;
   }
 }
 

+ 24 - 0
frontend/appflowy_flutter/lib/plugins/database_view/calendar/presentation/calendar_page.dart

@@ -9,6 +9,9 @@ import 'package:flowy_infra_ui/flowy_infra_ui.dart';
 import 'package:flutter/material.dart';
 import 'package:flutter_bloc/flutter_bloc.dart';
 
+import '../../application/row/row_data_controller.dart';
+import '../../widgets/row/cell_builder.dart';
+import '../../widgets/row/row_detail.dart';
 import 'calendar_day.dart';
 import 'layout/sizes.dart';
 import 'toolbar/calendar_toolbar.dart';
@@ -88,6 +91,7 @@ class _CalendarPageState extends State<CalendarPage> {
                 if (state.newEvent != null) {
                   _eventController.add(state.newEvent!);
                 }
+                _showRowDetailPage(state.newEvent!.event!, context);
               },
             ),
           ],
@@ -208,4 +212,24 @@ class _CalendarPageState extends State<CalendarPage> {
     // MonthView places the first day of week on the second column for some reason.
     return WeekDays.values[(dayOfWeek + 1) % 7];
   }
+
+  void _showRowDetailPage(CalendarDayEvent event, BuildContext context) {
+    final dataController = RowController(
+      rowId: event.cellId.rowId,
+      viewId: widget.view.id,
+      rowCache: _calendarBloc.rowCache,
+    );
+
+    FlowyOverlay.show(
+      context: context,
+      builder: (BuildContext context) {
+        return RowDetailPage(
+          cellBuilder: GridCellBuilder(
+            cellCache: _calendarBloc.rowCache.cellCache,
+          ),
+          dataController: dataController,
+        );
+      },
+    );
+  }
 }