Explorar o código

feat: customizes checkbox text style

Lucas.Xu %!s(int64=2) %!d(string=hai) anos
pai
achega
59838f5845

+ 21 - 0
frontend/app_flowy/packages/flowy_editor/lib/render/rich_text/checkbox_text.dart

@@ -86,6 +86,7 @@ class _CheckboxNodeWidgetState extends State<CheckboxNodeWidget>
           key: _richTextKey,
           placeholderText: 'To-do',
           textNode: widget.textNode,
+          textSpanDecorator: _textSpanDecorator,
           editorState: widget.editorState,
         )
       ],
@@ -121,4 +122,24 @@ class _CheckboxNodeWidgetState extends State<CheckboxNodeWidget>
       ],
     );
   }
+
+  TextSpan _textSpanDecorator(TextSpan textSpan) {
+    return TextSpan(
+      children: textSpan.children
+          ?.whereType<TextSpan>()
+          .map(
+            (span) => TextSpan(
+              text: span.text,
+              style: widget.textNode.attributes.check
+                  ? span.style?.copyWith(
+                      color: Colors.grey,
+                      decoration: TextDecoration.lineThrough,
+                    )
+                  : span.style,
+              recognizer: span.recognizer,
+            ),
+          )
+          .toList(),
+    );
+  }
 }