mirror of
https://gitlab.com/famedly/fluffychat.git
synced 2024-12-18 19:02:34 +01:00
48 lines
1.3 KiB
Dart
48 lines
1.3 KiB
Dart
import 'package:cached_network_image/cached_network_image.dart';
|
|
import 'package:famedlysdk/famedlysdk.dart';
|
|
import 'package:fluffychat/components/matrix.dart';
|
|
import 'package:fluffychat/utils/app_route.dart';
|
|
import 'package:flutter/foundation.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:photo_view/photo_view.dart';
|
|
import 'package:url_launcher/url_launcher.dart';
|
|
|
|
class ImageViewer extends StatelessWidget {
|
|
final MxContent mxContent;
|
|
|
|
const ImageViewer(this.mxContent);
|
|
|
|
static show(BuildContext context, MxContent content) {
|
|
if (kIsWeb) {
|
|
launch(content.getDownloadLink(Matrix.of(context).client));
|
|
} else {
|
|
Navigator.of(context).push(
|
|
AppRoute(
|
|
ImageViewer(content),
|
|
),
|
|
);
|
|
}
|
|
}
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
final String url = mxContent.getDownloadLink(Matrix.of(context).client);
|
|
return Scaffold(
|
|
appBar: AppBar(
|
|
actions: <Widget>[
|
|
IconButton(
|
|
icon: Icon(Icons.file_download),
|
|
onPressed: () => launch(url),
|
|
),
|
|
],
|
|
),
|
|
body: PhotoView(
|
|
loadingBuilder: (c, i) => Center(child: CircularProgressIndicator()),
|
|
imageProvider: CachedNetworkImageProvider(
|
|
url,
|
|
),
|
|
),
|
|
);
|
|
}
|
|
}
|