feat: override block component validator (#924)

This commit is contained in:
Lucas 2024-10-14 10:06:07 +08:00 • committed by GitHub
commit 9580c6d0c6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
12 changed files with 64 additions and 71 deletions

View file

@ -60,7 +60,7 @@ class BulletedListBlockComponentBuilder extends BlockComponentBuilder {
} }
@override @override
bool validate(Node node) => node.delta != null; BlockComponentValidate get validate => (node) => node.delta != null;
} }
class BulletedListBlockComponentWidget extends BlockComponentStatefulWidget { class BulletedListBlockComponentWidget extends BlockComponentStatefulWidget {

View file

@ -52,7 +52,7 @@ class DividerBlockComponentBuilder extends BlockComponentBuilder {
} }
@override @override
bool validate(Node node) => node.children.isEmpty; BlockComponentValidate get validate => (node) => node.children.isEmpty;
} }
class DividerBlockComponentWidget extends BlockComponentStatefulWidget { class DividerBlockComponentWidget extends BlockComponentStatefulWidget {

View file

@ -63,9 +63,6 @@ class HeadingBlockComponentBuilder extends BlockComponentBuilder {
), ),
); );
} }
@override
bool validate(Node node) => true;
} }
class HeadingBlockComponentWidget extends BlockComponentStatefulWidget { class HeadingBlockComponentWidget extends BlockComponentStatefulWidget {

View file

@ -83,7 +83,8 @@ class ImageBlockComponentBuilder extends BlockComponentBuilder {
} }
@override @override
bool validate(Node node) => node.delta == null && node.children.isEmpty; BlockComponentValidate get validate =>
(node) => node.delta == null && node.children.isEmpty;
} }
class ImageBlockComponentWidget extends BlockComponentStatefulWidget { class ImageBlockComponentWidget extends BlockComponentStatefulWidget {

View file

@ -70,7 +70,7 @@ class NumberedListBlockComponentBuilder extends BlockComponentBuilder {
} }
@override @override
bool validate(Node node) => node.delta != null; BlockComponentValidate get validate => (node) => node.delta != null;
} }
class NumberedListBlockComponentWidget extends BlockComponentStatefulWidget { class NumberedListBlockComponentWidget extends BlockComponentStatefulWidget {

View file

@ -60,9 +60,7 @@ class ParagraphBlockComponentBuilder extends BlockComponentBuilder {
} }
@override @override
bool validate(Node node) { BlockComponentValidate get validate => (node) => node.delta != null;
return node.delta != null;
}
} }
class ParagraphBlockComponentWidget extends BlockComponentStatefulWidget { class ParagraphBlockComponentWidget extends BlockComponentStatefulWidget {

View file

@ -57,7 +57,7 @@ class QuoteBlockComponentBuilder extends BlockComponentBuilder {
} }
@override @override
bool validate(Node node) => node.delta != null; BlockComponentValidate get validate => (node) => node.delta != null;
} }
class QuoteBlockComponentWidget extends BlockComponentStatefulWidget { class QuoteBlockComponentWidget extends BlockComponentStatefulWidget {

View file

@ -110,7 +110,7 @@ class TableBlockComponentBuilder extends BlockComponentBuilder {
} }
@override @override
bool validate(Node node) { BlockComponentValidate get validate => (node) {
// check the node is valid // check the node is valid
if (node.attributes.isEmpty) { if (node.attributes.isEmpty) {
AppFlowyEditorLog.editor AppFlowyEditorLog.editor
@ -171,7 +171,7 @@ class TableBlockComponentBuilder extends BlockComponentBuilder {
} }
return true; return true;
} };
} }
class TableBlockComponentWidget extends BlockComponentStatefulWidget { class TableBlockComponentWidget extends BlockComponentStatefulWidget {

View file

@ -68,7 +68,7 @@ class TableCellBlockComponentBuilder extends BlockComponentBuilder {
} }
@override @override
bool validate(Node node) => BlockComponentValidate get validate => (node) =>
node.attributes.isNotEmpty && node.attributes.isNotEmpty &&
node.attributes.containsKey(TableCellBlockKeys.rowPosition) && node.attributes.containsKey(TableCellBlockKeys.rowPosition) &&
node.attributes.containsKey(TableCellBlockKeys.colPosition); node.attributes.containsKey(TableCellBlockKeys.colPosition);

View file

@ -81,9 +81,7 @@ class TodoListBlockComponentBuilder extends BlockComponentBuilder {
} }
@override @override
bool validate(Node node) { BlockComponentValidate get validate => (node) => node.delta != null;
return node.delta != null;
}
} }
class TodoListBlockComponentWidget extends BlockComponentStatefulWidget { class TodoListBlockComponentWidget extends BlockComponentStatefulWidget {

View file

@ -12,6 +12,8 @@ typedef BlockActionBuilder = Widget Function(
BlockComponentActionState state, BlockComponentActionState state,
); );
typedef BlockComponentValidate = bool Function(Node node);
abstract class BlockComponentActionState { abstract class BlockComponentActionState {
set alwaysShowActions(bool alwaysShowActions); set alwaysShowActions(bool alwaysShowActions);
} }
@ -27,11 +29,11 @@ abstract class BlockComponentBuilder with BlockComponentSelectable {
/// return true if the node is valid. /// return true if the node is valid.
/// return false if the node is invalid, /// return false if the node is invalid,
/// and the node will be displayed as a PlaceHolder widget. /// and the node will be displayed as a PlaceHolder widget.
bool validate(Node node) => true; BlockComponentValidate validate = (_) => true;
BlockComponentWidget build(BlockComponentContext blockComponentContext); BlockComponentWidget build(BlockComponentContext blockComponentContext);
bool Function(Node) showActions = (_) => false; bool Function(Node node) showActions = (_) => false;
BlockActionBuilder actionBuilder = (_, __) => const SizedBox.shrink(); BlockActionBuilder actionBuilder = (_, __) => const SizedBox.shrink();

View file

@ -89,9 +89,6 @@ class ErrorBlockComponentBuilder extends BlockComponentBuilder {
), ),
); );
} }
@override
bool validate(Node node) => true;
} }
class ErrorBlockComponentWidget extends BlockComponentStatefulWidget { class ErrorBlockComponentWidget extends BlockComponentStatefulWidget {