better loading indicators for timetables, talk and files

This commit is contained in:
2026-05-05 21:07:48 +02:00
parent bee5c02a4f
commit db9c3386f1
25 changed files with 439 additions and 203 deletions
+4 -1
View File
@@ -1,5 +1,6 @@
import 'dart:io';
import 'package:dio/dio.dart';
import 'package:filesize/filesize.dart';
import 'package:flowder/flowder.dart';
import 'package:flutter/foundation.dart';
@@ -12,6 +13,7 @@ import 'package:path_provider/path_provider.dart';
import '../../../api/marianumcloud/webdav/queries/listFiles/cacheableFile.dart';
import '../../../api/marianumcloud/webdav/webdavApi.dart';
import '../../../model/accountData.dart';
import '../../../model/endpointData.dart';
import '../../../widget/centeredLeading.dart';
import '../../../widget/confirmDialog.dart';
@@ -41,6 +43,7 @@ class FileElement extends StatefulWidget {
file: File(local),
progress: ProgressImplementation(),
deleteOnCancel: true,
client: Dio(BaseOptions(headers: AccountData().authHeaders())),
onDone: () {
//Future<OpenResult> result = OpenFile.open(local); // TODO legacy - refactor: remove onDone parameter
Navigator.of(context).push(MaterialPageRoute(builder: (context) => FileViewer(path: local)));
@@ -52,7 +55,7 @@ class FileElement extends StatefulWidget {
);
return await Flowder.download(
'${await WebdavApi.webdavConnectString}$encodedPath',
'${WebdavApi.buildWebdavUrl()}$encodedPath',
options,
);
}
+2 -2
View File
@@ -164,9 +164,9 @@ class _FilesViewState extends State<_FilesView> {
child: const Icon(Icons.add),
),
body: LoadableStateConsumer<FilesBloc, FilesState>(
isReady: (state) => state.listing != null,
child: (state, _) {
final listing = state.listing;
if (listing == null) return const SizedBox.shrink();
final listing = state.listing!;
if (listing.files.isEmpty) {
return const PlaceholderView(icon: Icons.folder_off_rounded, text: 'Der Ordner ist leer');
}