chore: add extension for themedata

This commit is contained in:
Lucas.Xu 2022-10-25 22:15:31 +08:00
parent 6a853036a5
commit 8656cfeb1e
6 changed files with 20 additions and 5 deletions

View File

@ -0,0 +1,10 @@
import 'package:flutter/material.dart';
extension ThemeExtension on ThemeData {
T? extensionOrNull<T>() {
if (extensions.containsKey(T)) {
return extensions[T] as T;
}
return null;
}
}

View File

@ -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<TextNode> {
@override
@ -61,7 +62,7 @@ class _BulletedListTextNodeWidgetState extends State<BulletedListTextNodeWidget>
}
BulletedListPluginStyle get style =>
Theme.of(context).extension<BulletedListPluginStyle>() ??
Theme.of(context).extensionOrNull<BulletedListPluginStyle>() ??
BulletedListPluginStyle.light;
EdgeInsets get padding => style.padding(

View File

@ -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<TextNode> {
@override
@ -54,7 +55,7 @@ class _CheckboxNodeWidgetState extends State<CheckboxNodeWidget>
}
CheckboxPluginStyle get style =>
Theme.of(context).extension<CheckboxPluginStyle>() ??
Theme.of(context).extensionOrNull<CheckboxPluginStyle>() ??
CheckboxPluginStyle.light;
EdgeInsets get padding => style.padding(

View File

@ -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<TextNode> {
@override
@ -60,7 +61,7 @@ class _HeadingTextNodeWidgetState extends State<HeadingTextNodeWidget>
}
HeadingPluginStyle get style =>
Theme.of(context).extension<HeadingPluginStyle>() ??
Theme.of(context).extensionOrNull<HeadingPluginStyle>() ??
HeadingPluginStyle.light;
EdgeInsets get padding => style.padding(

View File

@ -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<TextNode> {
@override
@ -60,7 +61,7 @@ class _NumberListTextNodeWidgetState extends State<NumberListTextNodeWidget>
}
NumberListPluginStyle get style =>
Theme.of(context).extension<NumberListPluginStyle>() ??
Theme.of(context).extensionOrNull<NumberListPluginStyle>() ??
NumberListPluginStyle.light;
EdgeInsets get padding => style.padding(

View File

@ -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<TextNode> {
@override
@ -60,7 +61,7 @@ class _QuotedTextNodeWidgetState extends State<QuotedTextNodeWidget>
}
QuotedTextPluginStyle get style =>
Theme.of(context).extension<QuotedTextPluginStyle>() ??
Theme.of(context).extensionOrNull<QuotedTextPluginStyle>() ??
QuotedTextPluginStyle.light;
EdgeInsets get padding => style.padding(