diff --git a/frontend/app_flowy/packages/appflowy_editor/lib/src/extensions/theme_extension.dart b/frontend/app_flowy/packages/appflowy_editor/lib/src/extensions/theme_extension.dart new file mode 100644 index 0000000000..9b8f01aafa --- /dev/null +++ b/frontend/app_flowy/packages/appflowy_editor/lib/src/extensions/theme_extension.dart @@ -0,0 +1,10 @@ +import 'package:flutter/material.dart'; + +extension ThemeExtension on ThemeData { + T? extensionOrNull() { + if (extensions.containsKey(T)) { + return extensions[T] as T; + } + return null; + } +} diff --git a/frontend/app_flowy/packages/appflowy_editor/lib/src/render/rich_text/bulleted_list_text.dart b/frontend/app_flowy/packages/appflowy_editor/lib/src/render/rich_text/bulleted_list_text.dart index 77092f75b3..3f6927df4c 100644 --- a/frontend/app_flowy/packages/appflowy_editor/lib/src/render/rich_text/bulleted_list_text.dart +++ b/frontend/app_flowy/packages/appflowy_editor/lib/src/render/rich_text/bulleted_list_text.dart @@ -8,6 +8,7 @@ import 'package:appflowy_editor/src/render/style/plugin_styles.dart'; import 'package:appflowy_editor/src/service/render_plugin_service.dart'; import 'package:flutter/material.dart'; import 'package:appflowy_editor/src/extensions/text_style_extension.dart'; +import 'package:appflowy_editor/src/extensions/theme_extension.dart'; class BulletedListTextNodeWidgetBuilder extends NodeWidgetBuilder { @override @@ -61,7 +62,7 @@ class _BulletedListTextNodeWidgetState extends State } BulletedListPluginStyle get style => - Theme.of(context).extension() ?? + Theme.of(context).extensionOrNull() ?? BulletedListPluginStyle.light; EdgeInsets get padding => style.padding( diff --git a/frontend/app_flowy/packages/appflowy_editor/lib/src/render/rich_text/checkbox_text.dart b/frontend/app_flowy/packages/appflowy_editor/lib/src/render/rich_text/checkbox_text.dart index 39115b69e8..a2e0aa5d32 100644 --- a/frontend/app_flowy/packages/appflowy_editor/lib/src/render/rich_text/checkbox_text.dart +++ b/frontend/app_flowy/packages/appflowy_editor/lib/src/render/rich_text/checkbox_text.dart @@ -4,6 +4,7 @@ import 'package:appflowy_editor/src/render/rich_text/built_in_text_widget.dart'; import 'package:appflowy_editor/src/extensions/text_style_extension.dart'; import 'package:flutter/material.dart'; +import 'package:appflowy_editor/src/extensions/theme_extension.dart'; class CheckboxNodeWidgetBuilder extends NodeWidgetBuilder { @override @@ -54,7 +55,7 @@ class _CheckboxNodeWidgetState extends State } CheckboxPluginStyle get style => - Theme.of(context).extension() ?? + Theme.of(context).extensionOrNull() ?? CheckboxPluginStyle.light; EdgeInsets get padding => style.padding( diff --git a/frontend/app_flowy/packages/appflowy_editor/lib/src/render/rich_text/heading_text.dart b/frontend/app_flowy/packages/appflowy_editor/lib/src/render/rich_text/heading_text.dart index 60803a7fe9..f8f5bd0f92 100644 --- a/frontend/app_flowy/packages/appflowy_editor/lib/src/render/rich_text/heading_text.dart +++ b/frontend/app_flowy/packages/appflowy_editor/lib/src/render/rich_text/heading_text.dart @@ -9,6 +9,7 @@ import 'package:appflowy_editor/src/service/render_plugin_service.dart'; import 'package:flutter/material.dart'; import 'package:appflowy_editor/src/extensions/attributes_extension.dart'; import 'package:appflowy_editor/src/extensions/text_style_extension.dart'; +import 'package:appflowy_editor/src/extensions/theme_extension.dart'; class HeadingTextNodeWidgetBuilder extends NodeWidgetBuilder { @override @@ -60,7 +61,7 @@ class _HeadingTextNodeWidgetState extends State } HeadingPluginStyle get style => - Theme.of(context).extension() ?? + Theme.of(context).extensionOrNull() ?? HeadingPluginStyle.light; EdgeInsets get padding => style.padding( diff --git a/frontend/app_flowy/packages/appflowy_editor/lib/src/render/rich_text/number_list_text.dart b/frontend/app_flowy/packages/appflowy_editor/lib/src/render/rich_text/number_list_text.dart index cb2a1a68cd..60698d6aad 100644 --- a/frontend/app_flowy/packages/appflowy_editor/lib/src/render/rich_text/number_list_text.dart +++ b/frontend/app_flowy/packages/appflowy_editor/lib/src/render/rich_text/number_list_text.dart @@ -9,6 +9,7 @@ import 'package:appflowy_editor/src/service/render_plugin_service.dart'; import 'package:flutter/material.dart'; import 'package:appflowy_editor/src/extensions/attributes_extension.dart'; import 'package:appflowy_editor/src/extensions/text_style_extension.dart'; +import 'package:appflowy_editor/src/extensions/theme_extension.dart'; class NumberListTextNodeWidgetBuilder extends NodeWidgetBuilder { @override @@ -60,7 +61,7 @@ class _NumberListTextNodeWidgetState extends State } NumberListPluginStyle get style => - Theme.of(context).extension() ?? + Theme.of(context).extensionOrNull() ?? NumberListPluginStyle.light; EdgeInsets get padding => style.padding( diff --git a/frontend/app_flowy/packages/appflowy_editor/lib/src/render/rich_text/quoted_text.dart b/frontend/app_flowy/packages/appflowy_editor/lib/src/render/rich_text/quoted_text.dart index 3182ba9eae..370d328d1e 100644 --- a/frontend/app_flowy/packages/appflowy_editor/lib/src/render/rich_text/quoted_text.dart +++ b/frontend/app_flowy/packages/appflowy_editor/lib/src/render/rich_text/quoted_text.dart @@ -8,6 +8,7 @@ import 'package:appflowy_editor/src/render/style/plugin_styles.dart'; import 'package:appflowy_editor/src/service/render_plugin_service.dart'; import 'package:flutter/material.dart'; import 'package:appflowy_editor/src/extensions/text_style_extension.dart'; +import 'package:appflowy_editor/src/extensions/theme_extension.dart'; class QuotedTextNodeWidgetBuilder extends NodeWidgetBuilder { @override @@ -60,7 +61,7 @@ class _QuotedTextNodeWidgetState extends State } QuotedTextPluginStyle get style => - Theme.of(context).extension() ?? + Theme.of(context).extensionOrNull() ?? QuotedTextPluginStyle.light; EdgeInsets get padding => style.padding(