toWidget method
Widget
toWidget(
- RenderContext context
)
override
Implementation
@override
Widget toWidget(RenderContext context) {
List<InlineSpan>? childrenList =
children.map((tree) => context.parser.parseTree(context, tree)).toList();
List<InlineSpan> toRemove = [];
for (InlineSpan child in childrenList) {
if (child is TextSpan && child.text != null && child.text!.trim().isEmpty) {
toRemove.add(child);
}
}
for (InlineSpan child in toRemove) {
childrenList.remove(child);
}
InlineSpan? firstChild = childrenList.isNotEmpty == true ? childrenList.first : null;
return ExpansionTile(
key: AnchorKey.of(context.parser.key, this),
expandedAlignment: Alignment.centerLeft,
title: elementList.isNotEmpty == true && elementList.first.localName == "summary"
? CssBoxWidget.withInlineSpanChildren(
children: firstChild == null ? [] : [firstChild],
style: style,
)
: const Text("Details"),
children: [
CssBoxWidget.withInlineSpanChildren(
children: getChildren(
childrenList,
context,
elementList.isNotEmpty == true && elementList.first.localName == "summary"
? firstChild
: null),
style: style,
),
]);
}