import 'package:marianum_mobile/api/apiResponse.dart'; import 'package:marianum_mobile/api/marianumcloud/webdav/queries/listFiles/listFilesCache.dart'; import 'package:marianum_mobile/api/marianumcloud/webdav/queries/listFiles/listFilesResponse.dart'; import 'package:marianum_mobile/data/dataHolder.dart'; extension ExtendedList on List { T indexOrNull(int index) => index +1 <= length ? this[index] : null; T firstOrNull() => isEmpty ? null : first; T lastOrNull() => isEmpty ? null : last; } class FilesProps extends DataHolder { List folderPath = List.empty(growable: true); String currentFolderName = "Home"; String? backPath; ListFilesResponse? _listFilesResponse; ListFilesResponse get listFilesResponse => _listFilesResponse!; @override List properties() { return [_listFilesResponse]; } @override void run() { _listFilesResponse = null; notifyListeners(); ListFilesCache( path: folderPath.isEmpty ? "/" : folderPath.join("/"), onUpdate: (ListFilesResponse data) => { _listFilesResponse = data, notifyListeners(), } ); } void enterFolder(String name) { folderPath.add(name); currentFolderName = name; run(); } void popFolder() { folderPath.removeLast(); if(folderPath.isEmpty) currentFolderName = "Home"; run(); } }