import 'package:flutter/material.dart'; import 'package:localization/localization.dart'; import 'package:loris/business_logic/timeline/media.dart'; class MediaAttachments extends StatelessWidget { const MediaAttachments({required this.models, Key? key}) : super(key: key); final List models; @override Widget build(BuildContext context) { List children = []; for (int i = 0; i < models.length; i++) { if (models[i].type == MediaAttachmentType.image) { children.add(ImageAttachmentDisplay(model: models[i])); } else { children.add(Text("media-not-supported".i18n())); } } return Column( children: children, ); } } class ImageAttachmentDisplay extends StatelessWidget { const ImageAttachmentDisplay({required this.model, Key? key}) : super(key: key); final MediaAttachmentModel model; @override Widget build(BuildContext context) { return Column(crossAxisAlignment: CrossAxisAlignment.start, children: [ Image.network(model.url, width: double.infinity), AltText(text: model.description.toString()) ]); } } class AltText extends StatelessWidget { const AltText({ required this.text, Key? key, }) : super(key: key); final String text; @override Widget build(BuildContext context) { return SelectableText( text, style: Theme.of(context).textTheme.bodySmall, ); } }