part of '../neon_files.dart'; class FilesMainPage extends StatefulWidget { const FilesMainPage({ super.key, }); @override State createState() => _FilesMainPageState(); } class _FilesMainPageState extends State { late FilesBloc bloc; @override void initState() { super.initState(); bloc = Provider.of(context, listen: false); bloc.errors.listen((final error) { NeonException.showSnackbar(context, error); }); } @override Widget build(final BuildContext context) => Scaffold( body: FilesBrowserView( bloc: bloc.browser, filesBloc: bloc, onPickFile: (final details) async { final sizeWarning = bloc.options.downloadSizeWarning.value; if (sizeWarning != null && details.size != null && details.size! > sizeWarning) { if (!(await showConfirmationDialog( context, AppLocalizations.of(context).downloadConfirmSizeWarning( filesize(sizeWarning), filesize(details.size), ), ))) { return; } } bloc.openFile(details.path, details.etag!, details.mimeType); }, ), floatingActionButton: FloatingActionButton( onPressed: () async { await showDialog( context: context, builder: (final context) => FilesChooseCreateDialog( bloc: bloc, basePath: bloc.browser.path.value, ), ); }, tooltip: AppLocalizations.of(context).uploadFiles, child: const Icon(Icons.add), ), ); }