Browse Source

fix: revert delta of bold

Vincent Chan 2 years ago
parent
commit
8f6eb5a0d6

+ 1 - 1
frontend/app_flowy/packages/flowy_editor/lib/src/document/attributes.dart

@@ -15,7 +15,7 @@ Attributes invertAttributes(Attributes? attr, Attributes? base) {
     return memo;
   });
   return attr.keys.fold(baseInverted, (memo, key) {
-    if (attr![key] != base![key] && base.containsKey(key)) {
+    if (attr![key] != base![key] && !base.containsKey(key)) {
       memo[key] = null;
     }
     return memo;

+ 12 - 8
frontend/app_flowy/packages/flowy_editor/test/delta_test.dart

@@ -230,14 +230,18 @@ void main() {
       expect(expected, inverted);
       expect(base.compose(delta).compose(inverted), base);
     });
-    // test('retain', () {
-    //   final delta = Delta().retain(2).retain(3, {'bold': true});
-    //   final base = Delta().insert('123456');
-    //   final expected = Delta().retain(2).retain(3, {'bold': null});
-    //   final inverted = delta.invert(base);
-    //   expect(expected, inverted);
-    //   expect(base.compose(delta).compose(inverted), base);
-    // });
+    test('retain', () {
+      final delta = Delta()
+        ..retain(2)
+        ..retain(3, {'bold': true});
+      final base = Delta()..insert('123456');
+      final expected = Delta()
+        ..retain(2)
+        ..retain(3, {'bold': null});
+      final inverted = delta.invert(base);
+      expect(expected, inverted);
+      expect(base.compose(delta).compose(inverted), base);
+    });
   });
   group('json', () {
     test('toJson()', () {