relatica/lib/controls/timeline/link_preview_control.dart

41 wiersze
1.2 KiB
Dart

import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart';
import '../../models/link_preview_data.dart';
import '../../utils/string_utils.dart';
import '../../utils/url_opening_utils.dart';
class LinkPreviewControl extends StatelessWidget {
final LinkPreviewData preview;
const LinkPreviewControl({super.key, required this.preview});
@override
Widget build(BuildContext context) {
const width = 128.0;
return Container(
decoration: BoxDecoration(
border: Border.all(width: 0.5),
borderRadius: BorderRadius.circular(2.0)),
child: GestureDetector(
onTap: () async {
await openUrlStringInSystembrowser(context, preview.link, 'link');
},
child: Row(
children: [
Container(
width: width,
child: CachedNetworkImage(imageUrl: preview.selectedImageUrl),
),
Expanded(
child: ListTile(
title: Text(preview.title),
subtitle: Text(preview.description.truncate(length: 128))),
),
],
),
),
);
}
}