build method

  1. @override
Widget build(
  1. BuildContext context
)
override

Describes the part of the UI represented by this widget.

Implementation

@override
Widget build(BuildContext context) {
  final theme = ThemeScope.of(context);
  final color = linkColor ?? theme.resolvedInfo;
  final resolvedStyle = _copyStyle(style ?? theme.bodyMedium)
    ..foreground(color)
    ..underline()
    ..hyperlink(url);

  final displayText = label ?? url;
  final styledLink = resolvedStyle.render(displayText);

  // Show URL in parens when label is different and showUrl is enabled.
  if (showUrl && label != null && label != url) {
    final urlStyle = _copyStyle(Style())..foreground(theme.muted);
    return Row(
      gap: 1,
      children: [Text(styledLink), Text('(${urlStyle.render(url)})')],
    );
  }

  return Text(styledLink);
}