import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import '../controls/standard_appbar.dart'; import '../controls/timeline/timeline_panel.dart'; import '../globals.dart'; import '../models/TimelineIdentifiers.dart'; import '../routes.dart'; import '../services/network_status_service.dart'; import '../services/timeline_manager.dart'; class UserPostsScreen extends StatelessWidget { final String userId; const UserPostsScreen({super.key, required this.userId}); @override Widget build(BuildContext context) { final nss = getIt(); final manager = context.watch(); final timeline = TimelineIdentifiers.profile(userId); return Scaffold( appBar: StandardAppBar.build( context, 'User Posts', actions: [ ValueListenableBuilder( valueListenable: nss.timelineLoadingStatus, builder: (context2, executing, _) { if (executing) { final theme = Theme.of(context); final size = theme.appBarTheme.actionsIconTheme?.size ?? theme.iconTheme.size ?? 24; return Center( child: SizedBox( width: size, height: size, child: CircularProgressIndicator( color: Theme.of(context).canvasColor, ), ), ); } return IconButton( onPressed: () async => await manager.updateTimeline( timeline, TimelineRefreshType.refresh), icon: Icon( Icons.refresh, )); }), IconButton( onPressed: () { Navigator.of(context).popUntil((route) { return route.settings.name == ScreenPaths.timelines; }); }, icon: const Icon(Icons.home), ), ], ), body: Center( child: TimelinePanel( timeline: timeline, ), ), ); } }