Add HTML render
parent
19c7113493
commit
db60869fba
@ -0,0 +1,41 @@
|
|||||||
|
import 'package:famedlysdk/famedlysdk.dart';
|
||||||
|
import 'package:flutter_matrix_html/flutter_html.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:url_launcher/url_launcher.dart';
|
||||||
|
|
||||||
|
import 'matrix.dart';
|
||||||
|
|
||||||
|
class HtmlMessage extends StatelessWidget {
|
||||||
|
final String html;
|
||||||
|
final Color textColor;
|
||||||
|
final int maxLines;
|
||||||
|
|
||||||
|
const HtmlMessage({this.html, this.textColor, this.maxLines});
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
// there is no need to pre-validate the html, as we validate it while rendering
|
||||||
|
|
||||||
|
return Html(
|
||||||
|
data: html,
|
||||||
|
defaultTextStyle: TextStyle(color: textColor),
|
||||||
|
shrinkToFit: true,
|
||||||
|
maxLines: maxLines,
|
||||||
|
onLinkTap: (String url) {
|
||||||
|
if (url == null || url.isEmpty) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
launch(url);
|
||||||
|
},
|
||||||
|
getMxcUrl: (String mxc, double width, double height) {
|
||||||
|
final ratio = MediaQuery.of(context).devicePixelRatio;
|
||||||
|
return Uri.parse(mxc)?.getThumbnail(
|
||||||
|
Matrix.of(context).client,
|
||||||
|
width: (width ?? 800) * ratio,
|
||||||
|
height: (height ?? 800) * ratio,
|
||||||
|
method: ThumbnailMethod.scale,
|
||||||
|
);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue