From 84b5762017638f5b8808aee58350c3d9970d3c6c Mon Sep 17 00:00:00 2001 From: Vincent Chan Date: Thu, 25 Aug 2022 11:45:51 +0800 Subject: [PATCH] feat: unify styles --- .../presentation/widgets/row/row_detail.dart | 1 - .../settings/settings_dialog.dart | 67 ++++++++++--------- .../flowy_infra_ui/lib/flowy_infra_ui.dart | 1 + .../lib/src/flowy_overlay/flowy_dialog.dart | 36 +++++----- 4 files changed, 58 insertions(+), 47 deletions(-) diff --git a/frontend/app_flowy/lib/plugins/grid/presentation/widgets/row/row_detail.dart b/frontend/app_flowy/lib/plugins/grid/presentation/widgets/row/row_detail.dart index ea4d94fc17..a2cba8b2fb 100644 --- a/frontend/app_flowy/lib/plugins/grid/presentation/widgets/row/row_detail.dart +++ b/frontend/app_flowy/lib/plugins/grid/presentation/widgets/row/row_detail.dart @@ -4,7 +4,6 @@ import 'package:app_flowy/plugins/grid/application/row/row_data_controller.dart' import 'package:app_flowy/plugins/grid/application/row/row_detail_bloc.dart'; import 'package:flowy_infra/image.dart'; import 'package:flowy_infra/theme.dart'; -import 'package:flowy_infra_ui/src/flowy_overlay/flowy_dialog.dart'; import 'package:flowy_infra_ui/flowy_infra_ui.dart'; import 'package:flowy_infra_ui/style_widget/icon_button.dart'; import 'package:flowy_infra_ui/style_widget/scrolling/styled_scroll_bar.dart'; diff --git a/frontend/app_flowy/lib/workspace/presentation/settings/settings_dialog.dart b/frontend/app_flowy/lib/workspace/presentation/settings/settings_dialog.dart index eaf09d770f..6de69029a5 100644 --- a/frontend/app_flowy/lib/workspace/presentation/settings/settings_dialog.dart +++ b/frontend/app_flowy/lib/workspace/presentation/settings/settings_dialog.dart @@ -6,6 +6,7 @@ import 'package:app_flowy/workspace/presentation/settings/widgets/settings_langu import 'package:app_flowy/workspace/presentation/settings/widgets/settings_user_view.dart'; import 'package:app_flowy/workspace/presentation/settings/widgets/settings_menu.dart'; import 'package:app_flowy/workspace/application/settings/settings_dialog_bloc.dart'; +import 'package:flowy_infra_ui/flowy_infra_ui.dart'; import 'package:flowy_sdk/protobuf/flowy-user/user_profile.pb.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; @@ -28,46 +29,50 @@ class SettingsDialog extends StatelessWidget { @override Widget build(BuildContext context) { return BlocProvider( - create: (context) => getIt(param1: user)..add(const SettingsDialogEvent.initial()), + create: (context) => getIt(param1: user) + ..add(const SettingsDialogEvent.initial()), child: BlocBuilder( builder: (context, state) => ChangeNotifierProvider.value( - value: Provider.of(context, listen: true), - child: AlertDialog( - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(10), - ), + value: Provider.of(context, + listen: true), + child: FlowyDialog( title: Text( LocaleKeys.settings_title.tr(), style: const TextStyle( fontWeight: FontWeight.bold, ), ), - content: ConstrainedBox( - constraints: const BoxConstraints( - maxHeight: 600, - minWidth: 600, - maxWidth: 1000, - ), - child: Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - SizedBox( - width: 200, - child: SettingsMenu( - changeSelectedIndex: (index) { - context.read().add(SettingsDialogEvent.setViewIndex(index)); - }, - currentIndex: context.read().state.viewIndex, - ), + child: Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + SizedBox( + width: 200, + child: SettingsMenu( + changeSelectedIndex: (index) { + context + .read() + .add(SettingsDialogEvent.setViewIndex(index)); + }, + currentIndex: context + .read() + .state + .viewIndex, ), - const VerticalDivider(), - const SizedBox(width: 10), - Expanded( - child: getSettingsView(context.read().state.viewIndex, - context.read().state.userProfile), - ) - ], - ), + ), + const VerticalDivider(), + const SizedBox(width: 10), + Expanded( + child: getSettingsView( + context + .read() + .state + .viewIndex, + context + .read() + .state + .userProfile), + ) + ], ), ), ))); diff --git a/frontend/app_flowy/packages/flowy_infra_ui/lib/flowy_infra_ui.dart b/frontend/app_flowy/packages/flowy_infra_ui/lib/flowy_infra_ui.dart index 91768bd645..6ec4b64a51 100644 --- a/frontend/app_flowy/packages/flowy_infra_ui/lib/flowy_infra_ui.dart +++ b/frontend/app_flowy/packages/flowy_infra_ui/lib/flowy_infra_ui.dart @@ -8,3 +8,4 @@ export 'src/keyboard/keyboard_visibility_detector.dart'; export 'src/flowy_overlay/flowy_overlay.dart'; export 'src/flowy_overlay/list_overlay.dart'; export 'src/flowy_overlay/option_overlay.dart'; +export 'src/flowy_overlay/flowy_dialog.dart'; diff --git a/frontend/app_flowy/packages/flowy_infra_ui/lib/src/flowy_overlay/flowy_dialog.dart b/frontend/app_flowy/packages/flowy_infra_ui/lib/src/flowy_overlay/flowy_dialog.dart index 0c5caeb840..e0158d5c0c 100644 --- a/frontend/app_flowy/packages/flowy_infra_ui/lib/src/flowy_overlay/flowy_dialog.dart +++ b/frontend/app_flowy/packages/flowy_infra_ui/lib/src/flowy_overlay/flowy_dialog.dart @@ -1,20 +1,22 @@ import 'package:flutter/material.dart'; import 'dart:math'; -const overlayContainerPadding = EdgeInsets.all(12); +const _overlayContainerPadding = EdgeInsets.all(12); const overlayContainerMaxWidth = 760.0; const overlayContainerMinWidth = 320.0; class FlowyDialog extends StatelessWidget { final Widget? title; + final ShapeBorder? shape; final Widget child; final BoxConstraints? constraints; final EdgeInsets padding; const FlowyDialog({ required this.child, this.title, + this.shape, this.constraints, - this.padding = overlayContainerPadding, + this.padding = _overlayContainerPadding, Key? key, }) : super(key: key); @@ -22,18 +24,22 @@ class FlowyDialog extends StatelessWidget { Widget build(BuildContext context) { final windowSize = MediaQuery.of(context).size; final size = windowSize * 0.7; - return SimpleDialog(title: title, children: [ - Material( - type: MaterialType.transparency, - child: Container( - padding: padding, - height: size.height, - width: max(min(size.width, overlayContainerMaxWidth), - overlayContainerMinWidth), - constraints: constraints, - child: child, - ), - ) - ]); + return SimpleDialog( + title: title, + shape: shape ?? + RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)), + children: [ + Material( + type: MaterialType.transparency, + child: Container( + padding: padding, + height: size.height, + width: max(min(size.width, overlayContainerMaxWidth), + overlayContainerMinWidth), + constraints: constraints, + child: child, + ), + ) + ]); } }