loris/lib/partials/post_options.dart

47 lines
1.4 KiB
Dart

import 'package:flutter/material.dart';
import 'package:localization/localization.dart';
import 'package:loris/business_logic/interactions/interactions.dart';
import 'package:loris/business_logic/timeline/timeline.dart';
import 'package:loris/partials/interaction_button.dart';
import 'package:url_launcher/url_launcher.dart';
void popupPostOptions(context, PostModel model) {
showModalBottomSheet(
context: context,
builder: (context) {
List<Widget?> c = [
SelectableText("post-options".i18n(),
style: Theme.of(context).textTheme.displayMedium),
SelectableText(model.createdAt),
TextButton.icon(
onPressed: () {
launchUrl(
Uri.parse(model.uri),
);
},
icon: const Icon(Icons.open_in_browser),
label: Text("show-in-browser".i18n()),
),
model.visibility.boostable
? InteractionButton(
model: model,
type: InteractionType.reblog,
extended: true,
)
: null,
InteractionButton(
model: model,
type: InteractionType.favorite,
extended: true,
),
];
return Scrollable(
viewportBuilder: ((context, position) =>
Column(mainAxisAlignment: MainAxisAlignment.center, children: [
for (var i in c)
if (i != null) i
])));
},
);
}