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: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';

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_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<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>(
builder: (context, state) => ChangeNotifierProvider.value(
value: Provider.of<AppearanceSettingModel>(context, listen: true),
child: AlertDialog(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10),
),
value: Provider.of<AppearanceSettingModel>(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<SettingsDialogBloc>().add(SettingsDialogEvent.setViewIndex(index));
},
currentIndex: context.read<SettingsDialogBloc>().state.viewIndex,
),
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
SizedBox(
width: 200,
child: SettingsMenu(
changeSelectedIndex: (index) {
context
.read<SettingsDialogBloc>()
.add(SettingsDialogEvent.setViewIndex(index));
},
currentIndex: context
.read<SettingsDialogBloc>()
.state
.viewIndex,
),
const VerticalDivider(),
const SizedBox(width: 10),
Expanded(
child: getSettingsView(context.read<SettingsDialogBloc>().state.viewIndex,
context.read<SettingsDialogBloc>().state.userProfile),
)
],
),
),
const VerticalDivider(),
const SizedBox(width: 10),
Expanded(
child: getSettingsView(
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/list_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 '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,
),
)
]);
}
}