import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart';
import 'package:flutter_markdown/flutter_markdown.dart';

/// Markdown组件
class MarkdownViewer extends StatelessWidget {
  /// 内容
  final String content;

  /// 内容是否可以滚动
  final bool enableContentScroll;

  const MarkdownViewer({
    super.key,
    required this.content,
    required this.enableContentScroll,
  });

  @override
  Widget build(BuildContext context) {
    return Markdown(
      // 文档内容
      data: content,
      // 让Markdown高度自适应内容
      shrinkWrap: !enableContentScroll,
      // 禁用自身滚动
      physics:
          enableContentScroll
              // 允许滑动
              ? ClampingScrollPhysics()
              // 禁止滑动
              : const NeverScrollableScrollPhysics(),
      // 配置图片加载器
      imageBuilder:
          (uri, title, alt) => CachedNetworkImage(imageUrl: uri.toString()),
    );
  }
}
