🐛 Fix bugs in file list

This commit is contained in:
2026-01-17 22:04:20 +08:00
parent 6487a1ff65
commit 41df5f3907
2 changed files with 25 additions and 22 deletions

View File

@@ -43,6 +43,7 @@ class FileListScreen extends HookConsumerWidget {
constraints: const BoxConstraints(maxWidth: 400, minHeight: 32),
hintText: 'Search files...',
hintStyle: WidgetStatePropertyAll(TextStyle(fontSize: 14)),
textStyle: WidgetStatePropertyAll(TextStyle(fontSize: 14)),
onChanged: (value) {
// Update the query state that will be passed to FileListView
query.value = value.isEmpty ? null : value;
@@ -104,25 +105,26 @@ class FileListScreen extends HookConsumerWidget {
)
: null,
body: usageAsync.when(
data: (usage) => quotaAsync.when(
data: (quota) => FileListView(
usage: usage,
quota: quota,
currentPath: currentPath,
selectedPool: selectedPool,
onPickAndUpload: () => _pickAndUploadFile(
ref,
currentPath.value,
selectedPool.value?.id,
data: (usage) => quotaAsync.when(
data: (quota) => FileListView(
usage: usage,
quota: quota,
currentPath: currentPath,
selectedPool: selectedPool,
onPickAndUpload: () => _pickAndUploadFile(
ref,
currentPath.value,
selectedPool.value?.id,
),
onShowCreateDirectory: _showCreateDirectoryDialog,
mode: mode,
viewMode: viewMode,
isSelectionMode: isSelectionMode,
query: query,
),
onShowCreateDirectory: _showCreateDirectoryDialog,
mode: mode,
viewMode: viewMode,
isSelectionMode: isSelectionMode,
loading: () => const Center(child: CircularProgressIndicator()),
error: (e, _) => Center(child: Text('Error loading quota')),
),
loading: () => const Center(child: CircularProgressIndicator()),
error: (e, _) => Center(child: Text('Error loading quota')),
),
loading: () => const Center(child: CircularProgressIndicator()),
error: (e, _) => Center(child: Text('Error loading usage')),
),

View File

@@ -40,6 +40,7 @@ class FileListView extends HookConsumerWidget {
final ValueNotifier<FileListMode> mode;
final ValueNotifier<FileListViewMode> viewMode;
final ValueNotifier<bool> isSelectionMode;
final ValueNotifier<String?> query;
const FileListView({
required this.usage,
@@ -51,6 +52,7 @@ class FileListView extends HookConsumerWidget {
required this.mode,
required this.viewMode,
required this.isSelectionMode,
required this.query,
super.key,
});
@@ -75,7 +77,6 @@ class FileListView extends HookConsumerWidget {
final isSelectionMode = useState<bool>(false);
final selectedFileIds = useState<Set<String>>({});
final currentVisibleItems = useState<List<FileListItem>>([]);
final query = useState<String?>(null);
final order = useState<String?>('date');
final orderDesc = useState<bool>(true);
final queryDebounceTimer = useRef<Timer?>(null);
@@ -101,16 +102,16 @@ class FileListView extends HookConsumerWidget {
useEffect(() {
// Sync query, order, and orderDesc filters
if (mode.value == FileListMode.unindexed) {
unindexedNotifier.setQuery(query.value);
unindexedNotifier.setQuery(this.query.value);
unindexedNotifier.setOrder(order.value);
unindexedNotifier.setOrderDesc(orderDesc.value);
} else {
cloudNotifier.setQuery(query.value);
cloudNotifier.setQuery(this.query.value);
cloudNotifier.setOrder(order.value);
cloudNotifier.setOrderDesc(orderDesc.value);
}
return null;
}, [query.value, order.value, orderDesc.value, mode.value]);
}, [this.query.value, order.value, orderDesc.value, mode.value]);
final isRefreshing = ref.watch(
mode.value == FileListMode.normal