feat: unify styles

This commit is contained in:
Vincent Chan 2022-08-25 11:45:51 +08:00
parent 58ad84b7df
commit 84b5762017
4 changed files with 58 additions and 47 deletions

View File

@ -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:app_flowy/plugins/grid/application/row/row_detail_bloc.dart';
import 'package:flowy_infra/image.dart'; import 'package:flowy_infra/image.dart';
import 'package:flowy_infra/theme.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/flowy_infra_ui.dart';
import 'package:flowy_infra_ui/style_widget/icon_button.dart'; import 'package:flowy_infra_ui/style_widget/icon_button.dart';
import 'package:flowy_infra_ui/style_widget/scrolling/styled_scroll_bar.dart'; import 'package:flowy_infra_ui/style_widget/scrolling/styled_scroll_bar.dart';

View File

@ -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_user_view.dart';
import 'package:app_flowy/workspace/presentation/settings/widgets/settings_menu.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: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:flowy_sdk/protobuf/flowy-user/user_profile.pb.dart';
import 'package:easy_localization/easy_localization.dart'; import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@ -28,26 +29,19 @@ class SettingsDialog extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return BlocProvider<SettingsDialogBloc>( return BlocProvider<SettingsDialogBloc>(
create: (context) => getIt<SettingsDialogBloc>(param1: user)..add(const SettingsDialogEvent.initial()), create: (context) => getIt<SettingsDialogBloc>(param1: user)
..add(const SettingsDialogEvent.initial()),
child: BlocBuilder<SettingsDialogBloc, SettingsDialogState>( child: BlocBuilder<SettingsDialogBloc, SettingsDialogState>(
builder: (context, state) => ChangeNotifierProvider.value( builder: (context, state) => ChangeNotifierProvider.value(
value: Provider.of<AppearanceSettingModel>(context, listen: true), value: Provider.of<AppearanceSettingModel>(context,
child: AlertDialog( listen: true),
shape: RoundedRectangleBorder( child: FlowyDialog(
borderRadius: BorderRadius.circular(10),
),
title: Text( title: Text(
LocaleKeys.settings_title.tr(), LocaleKeys.settings_title.tr(),
style: const TextStyle( style: const TextStyle(
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
), ),
), ),
content: ConstrainedBox(
constraints: const BoxConstraints(
maxHeight: 600,
minWidth: 600,
maxWidth: 1000,
),
child: Row( child: Row(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
@ -55,21 +49,32 @@ class SettingsDialog extends StatelessWidget {
width: 200, width: 200,
child: SettingsMenu( child: SettingsMenu(
changeSelectedIndex: (index) { changeSelectedIndex: (index) {
context.read<SettingsDialogBloc>().add(SettingsDialogEvent.setViewIndex(index)); context
.read<SettingsDialogBloc>()
.add(SettingsDialogEvent.setViewIndex(index));
}, },
currentIndex: context.read<SettingsDialogBloc>().state.viewIndex, currentIndex: context
.read<SettingsDialogBloc>()
.state
.viewIndex,
), ),
), ),
const VerticalDivider(), const VerticalDivider(),
const SizedBox(width: 10), const SizedBox(width: 10),
Expanded( Expanded(
child: getSettingsView(context.read<SettingsDialogBloc>().state.viewIndex, child: getSettingsView(
context.read<SettingsDialogBloc>().state.userProfile), context
.read<SettingsDialogBloc>()
.state
.viewIndex,
context
.read<SettingsDialogBloc>()
.state
.userProfile),
) )
], ],
), ),
), ),
),
))); )));
} }
} }

View File

@ -8,3 +8,4 @@ export 'src/keyboard/keyboard_visibility_detector.dart';
export 'src/flowy_overlay/flowy_overlay.dart'; export 'src/flowy_overlay/flowy_overlay.dart';
export 'src/flowy_overlay/list_overlay.dart'; export 'src/flowy_overlay/list_overlay.dart';
export 'src/flowy_overlay/option_overlay.dart'; export 'src/flowy_overlay/option_overlay.dart';
export 'src/flowy_overlay/flowy_dialog.dart';

View File

@ -1,20 +1,22 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'dart:math'; import 'dart:math';
const overlayContainerPadding = EdgeInsets.all(12); const _overlayContainerPadding = EdgeInsets.all(12);
const overlayContainerMaxWidth = 760.0; const overlayContainerMaxWidth = 760.0;
const overlayContainerMinWidth = 320.0; const overlayContainerMinWidth = 320.0;
class FlowyDialog extends StatelessWidget { class FlowyDialog extends StatelessWidget {
final Widget? title; final Widget? title;
final ShapeBorder? shape;
final Widget child; final Widget child;
final BoxConstraints? constraints; final BoxConstraints? constraints;
final EdgeInsets padding; final EdgeInsets padding;
const FlowyDialog({ const FlowyDialog({
required this.child, required this.child,
this.title, this.title,
this.shape,
this.constraints, this.constraints,
this.padding = overlayContainerPadding, this.padding = _overlayContainerPadding,
Key? key, Key? key,
}) : super(key: key); }) : super(key: key);
@ -22,7 +24,11 @@ class FlowyDialog extends StatelessWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
final windowSize = MediaQuery.of(context).size; final windowSize = MediaQuery.of(context).size;
final size = windowSize * 0.7; final size = windowSize * 0.7;
return SimpleDialog(title: title, children: [ return SimpleDialog(
title: title,
shape: shape ??
RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)),
children: [
Material( Material(
type: MaterialType.transparency, type: MaterialType.transparency,
child: Container( child: Container(