import 'package:auto_route/auto_route.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; import 'package:flutter_hooks/flutter_hooks.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:island/widgets/app_scaffold.dart'; import 'package:island/widgets/content/sheet.dart'; import 'package:island/widgets/post/post_list.dart'; import 'package:material_symbols_icons/symbols.dart'; @RoutePage() class CreatorPostListScreen extends HookConsumerWidget { final String pubName; const CreatorPostListScreen({ super.key, @PathParam('name') required this.pubName, }); @override Widget build(BuildContext context, WidgetRef ref) { final refreshKey = useState(0); void showCreatePostSheet() { showModalBottomSheet( context: context, builder: (context) => SheetScaffold( titleText: 'create'.tr(), child: Column( children: [ ListTile( leading: const Icon(Symbols.edit), title: Text('postContent'.tr()), subtitle: Text('Create a regular post'), onTap: () async { Navigator.pop(context); final result = await context.router.pushPath( '/posts/compose?type=0', ); if (result == true) { refreshKey.value++; } }, ), ListTile( leading: const Icon(Symbols.article), title: Text('Article'), subtitle: Text('Create a detailed article'), onTap: () async { Navigator.pop(context); final result = await context.router.pushPath( '/posts/compose?type=1', ); if (result == true) { refreshKey.value++; } }, ), ], ), ), ); } return AppScaffold( appBar: AppBar(title: Text('posts').tr()), body: CustomScrollView( key: ValueKey(refreshKey.value), slivers: [ SliverPostList(pubName: pubName, itemType: PostItemType.creator), ], ), floatingActionButton: FloatingActionButton( onPressed: showCreatePostSheet, child: const Icon(Symbols.add), ), ); } }