Ver código fonte

feat: typedef Map<String, Object> to Attributes

Lucas.Xu 3 anos atrás
pai
commit
d2e62f882b

+ 0 - 1
frontend/app_flowy/packages/flowy_editor/assets/document.json

@@ -40,7 +40,6 @@
         "attributes": {
           "url": "x.mp4"
         }
-        
       }
     ]
   }

+ 8 - 6
frontend/app_flowy/packages/flowy_editor/lib/document/node.dart

@@ -1,11 +1,13 @@
 import 'dart:collection';
 import 'package:flowy_editor/document/path.dart';
 
+typedef Attributes = Map<String, Object>;
+
 class Node extends LinkedListEntry<Node> {
   Node? parent;
   final String type;
   final LinkedList<Node> children;
-  final Map<String, Object> attributes;
+  final Attributes attributes;
 
   Node({
     required this.type,
@@ -20,15 +22,15 @@ class Node extends LinkedListEntry<Node> {
     final jType = json['type'] as String;
     final jChildren = json['children'] as List?;
     final jAttributes = json['attributes'] != null
-        ? Map<String, Object>.from(json['attributes'] as Map)
-        : <String, Object>{};
+        ? Attributes.from(json['attributes'] as Map)
+        : Attributes.from({});
 
     final LinkedList<Node> children = LinkedList();
     if (jChildren != null) {
       children.addAll(
         jChildren.map(
-          (jnode) => Node.fromJson(
-            Map<String, Object>.from(jnode),
+          (jChild) => Node.fromJson(
+            Map<String, Object>.from(jChild),
           ),
         ),
       );
@@ -47,7 +49,7 @@ class Node extends LinkedListEntry<Node> {
     return node;
   }
 
-  void updateAttributes(Map<String, Object> attributes) {
+  void updateAttributes(Attributes attributes) {
     for (final attribute in attributes.entries) {
       this.attributes[attribute.key] = attribute.value;
     }

+ 2 - 2
frontend/app_flowy/packages/flowy_editor/lib/document/state_tree.dart

@@ -6,7 +6,7 @@ class StateTree {
 
   StateTree({required this.root});
 
-  factory StateTree.fromJson(Map<String, Object> json) {
+  factory StateTree.fromJson(Attributes json) {
     assert(json['document'] is Map);
 
     final document = Map<String, Object>.from(json['document'] as Map);
@@ -41,7 +41,7 @@ class StateTree {
     return deletedNode;
   }
 
-  Map<String, Object>? update(Path path, Map<String, Object> attributes) {
+  Attributes? update(Path path, Attributes attributes) {
     if (path.isEmpty) {
       return null;
     }