2022-11-23 20:48:09 +00:00
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
import 'package:provider/provider.dart';
|
|
|
|
|
2023-01-07 16:30:16 +00:00
|
|
|
import '../controls/timeline/post_control.dart';
|
2022-11-23 20:48:09 +00:00
|
|
|
import '../services/timeline_manager.dart';
|
|
|
|
|
|
|
|
class PostScreen extends StatelessWidget {
|
|
|
|
final String id;
|
|
|
|
|
2023-01-15 15:39:05 +00:00
|
|
|
final String goToId;
|
|
|
|
|
|
|
|
const PostScreen({
|
|
|
|
super.key,
|
|
|
|
required this.id,
|
|
|
|
required this.goToId,
|
|
|
|
});
|
2022-11-23 20:48:09 +00:00
|
|
|
|
|
|
|
@override
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
final manager = context.watch<TimelineManager>();
|
|
|
|
final body = manager.getPostTreeEntryBy(id).fold(
|
2022-12-17 17:17:54 +00:00
|
|
|
onSuccess: (post) => RefreshIndicator(
|
|
|
|
onRefresh: () async {
|
|
|
|
await manager.refreshStatusChain(id);
|
|
|
|
},
|
2023-01-15 15:39:05 +00:00
|
|
|
child: PostControl(
|
|
|
|
originalItem: post,
|
|
|
|
scrollToId: goToId,
|
|
|
|
openRemote: true,
|
|
|
|
showStatusOpenButton: true,
|
|
|
|
isRoot: true,
|
2022-11-30 00:56:14 +00:00
|
|
|
),
|
2022-11-23 20:48:09 +00:00
|
|
|
),
|
|
|
|
onError: (error) => Text('Error getting post: $error'));
|
|
|
|
return Scaffold(
|
|
|
|
appBar: AppBar(
|
|
|
|
title: Text('View Post'),
|
|
|
|
),
|
2022-12-13 12:17:35 +00:00
|
|
|
body: Padding(
|
|
|
|
padding: const EdgeInsets.all(8.0),
|
2022-11-23 20:48:09 +00:00
|
|
|
child: body,
|
|
|
|
));
|
|
|
|
}
|
|
|
|
}
|