import 'dart:math' as math; import 'package:auto_route/auto_route.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; import 'package:gap/gap.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:island/route.gr.dart'; import 'package:island/screens/creators/publishers.dart'; import 'package:island/widgets/content/cloud_files.dart'; import 'package:styled_widget/styled_widget.dart'; class PublisherModal extends HookConsumerWidget { const PublisherModal({super.key}); @override Widget build(BuildContext context, WidgetRef ref) { final publishers = ref.watch(publishersManagedProvider); return SizedBox( height: math.min(MediaQuery.of(context).size.height * 0.4, 480), child: Column( children: [ Expanded( child: publishers.when( data: (value) => value.isEmpty ? ConstrainedBox( constraints: BoxConstraints(maxWidth: 280), child: Column( crossAxisAlignment: CrossAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center, children: [ Text( 'publishersEmpty', textAlign: TextAlign.center, ).tr().fontSize(17).bold(), Text( 'publishersEmptyDescription', textAlign: TextAlign.center, ).tr(), const Gap(12), ElevatedButton( onPressed: () { context.router .push(NewPublisherRoute()) .then((value) { if (value != null) { ref.invalidate( publishersManagedProvider, ); } }); }, child: Text('createPublisher').tr(), ), ], ).center(), ) : SingleChildScrollView( child: Column( children: [ for (final publisher in value) ListTile( leading: ProfilePictureWidget( fileId: publisher.picture?.id, ), title: Text(publisher.nick), subtitle: Text('@${publisher.name}'), onTap: () { Navigator.pop(context, publisher); }, ), ], ), ), loading: () => const Center(child: CircularProgressIndicator()), error: (e, _) => Text('Error: $e'), ), ), ], ), ); } }