|
@@ -3,16 +3,16 @@ import 'package:flowy_infra/theme.dart';
|
|
|
import 'package:flutter/material.dart';
|
|
|
import 'package:provider/provider.dart';
|
|
|
|
|
|
+const _baseFontSize = 14.0;
|
|
|
+
|
|
|
EditorStyle customEditorTheme(BuildContext context) {
|
|
|
final theme = context.watch<AppTheme>();
|
|
|
- const baseFontSize = 14.0;
|
|
|
- const basePadding = 12.0;
|
|
|
|
|
|
var editorStyle = theme.isDark ? EditorStyle.dark : EditorStyle.light;
|
|
|
editorStyle = editorStyle.copyWith(
|
|
|
textStyle: editorStyle.textStyle?.copyWith(
|
|
|
fontFamily: 'poppins',
|
|
|
- fontSize: baseFontSize,
|
|
|
+ fontSize: _baseFontSize,
|
|
|
),
|
|
|
bold: editorStyle.bold?.copyWith(
|
|
|
fontWeight: FontWeight.w500,
|
|
@@ -23,65 +23,39 @@ EditorStyle customEditorTheme(BuildContext context) {
|
|
|
|
|
|
Iterable<ThemeExtension<dynamic>> customPluginTheme(BuildContext context) {
|
|
|
final theme = context.watch<AppTheme>();
|
|
|
-
|
|
|
- return theme.isDark ? darkPlguinStyleExtension : lightPlguinStyleExtension;
|
|
|
+ const basePadding = 12.0;
|
|
|
+ var headingPluginStyle =
|
|
|
+ theme.isDark ? HeadingPluginStyle.dark : HeadingPluginStyle.light;
|
|
|
+ headingPluginStyle = headingPluginStyle.copyWith(
|
|
|
+ textStyle: (EditorState editorState, Node node) {
|
|
|
+ final headingToFontSize = {
|
|
|
+ 'h1': _baseFontSize + 12,
|
|
|
+ 'h2': _baseFontSize + 8,
|
|
|
+ 'h3': _baseFontSize + 4,
|
|
|
+ 'h4': _baseFontSize,
|
|
|
+ 'h5': _baseFontSize,
|
|
|
+ 'h6': _baseFontSize,
|
|
|
+ };
|
|
|
+ final fontSize =
|
|
|
+ headingToFontSize[node.attributes.heading] ?? _baseFontSize;
|
|
|
+ return TextStyle(fontSize: fontSize, fontWeight: FontWeight.w600);
|
|
|
+ },
|
|
|
+ padding: (EditorState editorState, Node node) {
|
|
|
+ final headingToPadding = {
|
|
|
+ 'h1': basePadding + 6,
|
|
|
+ 'h2': basePadding + 4,
|
|
|
+ 'h3': basePadding + 2,
|
|
|
+ 'h4': basePadding,
|
|
|
+ 'h5': basePadding,
|
|
|
+ 'h6': basePadding,
|
|
|
+ };
|
|
|
+ final padding = headingToPadding[node.attributes.heading] ?? basePadding;
|
|
|
+ return EdgeInsets.only(bottom: padding);
|
|
|
+ },
|
|
|
+ );
|
|
|
+ final pluginTheme =
|
|
|
+ theme.isDark ? darkPlguinStyleExtension : lightPlguinStyleExtension;
|
|
|
+ return pluginTheme.toList()
|
|
|
+ ..removeWhere((element) => element is HeadingPluginStyle)
|
|
|
+ ..add(headingPluginStyle);
|
|
|
}
|
|
|
-
|
|
|
-// return EditorStyle.defaultStyle().copyWith(
|
|
|
-// padding = const EdgeInsets.symmetric(horizontal: 80),
|
|
|
-// textStyle = textStyle,
|
|
|
-// pluginStyles = {
|
|
|
-// 'text/heading': builtInPluginStyle
|
|
|
-// ..update(
|
|
|
-// 'textStyle',
|
|
|
-// (_) => (EditorState editorState, Node node) {
|
|
|
-// final headingToFontSize = {
|
|
|
-// 'h1': baseFontSize + 12,
|
|
|
-// 'h2': baseFontSize + 8,
|
|
|
-// 'h3': baseFontSize + 4,
|
|
|
-// 'h4': baseFontSize,
|
|
|
-// 'h5': baseFontSize,
|
|
|
-// 'h6': baseFontSize,
|
|
|
-// };
|
|
|
-// final fontSize =
|
|
|
-// headingToFontSize[node.attributes.heading] ?? baseFontSize;
|
|
|
-// return TextStyle(fontSize: fontSize, fontWeight: FontWeight.w600);
|
|
|
-// },
|
|
|
-// )
|
|
|
-// ..update(
|
|
|
-// 'padding',
|
|
|
-// (_) => (EditorState editorState, Node node) {
|
|
|
-// final headingToPadding = {
|
|
|
-// 'h1': basePadding + 6,
|
|
|
-// 'h2': basePadding + 4,
|
|
|
-// 'h3': basePadding + 2,
|
|
|
-// 'h4': basePadding,
|
|
|
-// 'h5': basePadding,
|
|
|
-// 'h6': basePadding,
|
|
|
-// };
|
|
|
-// final padding =
|
|
|
-// headingToPadding[node.attributes.heading] ?? basePadding;
|
|
|
-// return EdgeInsets.only(bottom: padding);
|
|
|
-// },
|
|
|
-// ),
|
|
|
-// 'text/number-list': builtInPluginStyle
|
|
|
-// ..addAll(
|
|
|
-// {
|
|
|
-// 'numberColor': (EditorState editorState, Node node) {
|
|
|
-// final theme = context.watch<AppTheme>();
|
|
|
-// return theme.isDark ? Colors.white : Colors.black;
|
|
|
-// },
|
|
|
-// },
|
|
|
-// ),
|
|
|
-// 'text/bulleted-list': builtInPluginStyle
|
|
|
-// ..addAll(
|
|
|
-// {
|
|
|
-// 'bulletColor': (EditorState editorState, Node node) {
|
|
|
-// final theme = context.watch<AppTheme>();
|
|
|
-// return theme.isDark ? Colors.white : Colors.black;
|
|
|
-// },
|
|
|
-// },
|
|
|
-// ),
|
|
|
-// },
|
|
|
-// );
|
|
|
-// }
|