🐛 Fix bugs in file list
This commit is contained in:
@@ -43,6 +43,7 @@ class FileListScreen extends HookConsumerWidget {
|
|||||||
constraints: const BoxConstraints(maxWidth: 400, minHeight: 32),
|
constraints: const BoxConstraints(maxWidth: 400, minHeight: 32),
|
||||||
hintText: 'Search files...',
|
hintText: 'Search files...',
|
||||||
hintStyle: WidgetStatePropertyAll(TextStyle(fontSize: 14)),
|
hintStyle: WidgetStatePropertyAll(TextStyle(fontSize: 14)),
|
||||||
|
textStyle: WidgetStatePropertyAll(TextStyle(fontSize: 14)),
|
||||||
onChanged: (value) {
|
onChanged: (value) {
|
||||||
// Update the query state that will be passed to FileListView
|
// Update the query state that will be passed to FileListView
|
||||||
query.value = value.isEmpty ? null : value;
|
query.value = value.isEmpty ? null : value;
|
||||||
@@ -104,25 +105,26 @@ class FileListScreen extends HookConsumerWidget {
|
|||||||
)
|
)
|
||||||
: null,
|
: null,
|
||||||
body: usageAsync.when(
|
body: usageAsync.when(
|
||||||
data: (usage) => quotaAsync.when(
|
data: (usage) => quotaAsync.when(
|
||||||
data: (quota) => FileListView(
|
data: (quota) => FileListView(
|
||||||
usage: usage,
|
usage: usage,
|
||||||
quota: quota,
|
quota: quota,
|
||||||
currentPath: currentPath,
|
currentPath: currentPath,
|
||||||
selectedPool: selectedPool,
|
selectedPool: selectedPool,
|
||||||
onPickAndUpload: () => _pickAndUploadFile(
|
onPickAndUpload: () => _pickAndUploadFile(
|
||||||
ref,
|
ref,
|
||||||
currentPath.value,
|
currentPath.value,
|
||||||
selectedPool.value?.id,
|
selectedPool.value?.id,
|
||||||
|
),
|
||||||
|
onShowCreateDirectory: _showCreateDirectoryDialog,
|
||||||
|
mode: mode,
|
||||||
|
viewMode: viewMode,
|
||||||
|
isSelectionMode: isSelectionMode,
|
||||||
|
query: query,
|
||||||
),
|
),
|
||||||
onShowCreateDirectory: _showCreateDirectoryDialog,
|
loading: () => const Center(child: CircularProgressIndicator()),
|
||||||
mode: mode,
|
error: (e, _) => Center(child: Text('Error loading quota')),
|
||||||
viewMode: viewMode,
|
|
||||||
isSelectionMode: isSelectionMode,
|
|
||||||
),
|
),
|
||||||
loading: () => const Center(child: CircularProgressIndicator()),
|
|
||||||
error: (e, _) => Center(child: Text('Error loading quota')),
|
|
||||||
),
|
|
||||||
loading: () => const Center(child: CircularProgressIndicator()),
|
loading: () => const Center(child: CircularProgressIndicator()),
|
||||||
error: (e, _) => Center(child: Text('Error loading usage')),
|
error: (e, _) => Center(child: Text('Error loading usage')),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ class FileListView extends HookConsumerWidget {
|
|||||||
final ValueNotifier<FileListMode> mode;
|
final ValueNotifier<FileListMode> mode;
|
||||||
final ValueNotifier<FileListViewMode> viewMode;
|
final ValueNotifier<FileListViewMode> viewMode;
|
||||||
final ValueNotifier<bool> isSelectionMode;
|
final ValueNotifier<bool> isSelectionMode;
|
||||||
|
final ValueNotifier<String?> query;
|
||||||
|
|
||||||
const FileListView({
|
const FileListView({
|
||||||
required this.usage,
|
required this.usage,
|
||||||
@@ -51,6 +52,7 @@ class FileListView extends HookConsumerWidget {
|
|||||||
required this.mode,
|
required this.mode,
|
||||||
required this.viewMode,
|
required this.viewMode,
|
||||||
required this.isSelectionMode,
|
required this.isSelectionMode,
|
||||||
|
required this.query,
|
||||||
super.key,
|
super.key,
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -75,7 +77,6 @@ class FileListView extends HookConsumerWidget {
|
|||||||
final isSelectionMode = useState<bool>(false);
|
final isSelectionMode = useState<bool>(false);
|
||||||
final selectedFileIds = useState<Set<String>>({});
|
final selectedFileIds = useState<Set<String>>({});
|
||||||
final currentVisibleItems = useState<List<FileListItem>>([]);
|
final currentVisibleItems = useState<List<FileListItem>>([]);
|
||||||
final query = useState<String?>(null);
|
|
||||||
final order = useState<String?>('date');
|
final order = useState<String?>('date');
|
||||||
final orderDesc = useState<bool>(true);
|
final orderDesc = useState<bool>(true);
|
||||||
final queryDebounceTimer = useRef<Timer?>(null);
|
final queryDebounceTimer = useRef<Timer?>(null);
|
||||||
@@ -101,16 +102,16 @@ class FileListView extends HookConsumerWidget {
|
|||||||
useEffect(() {
|
useEffect(() {
|
||||||
// Sync query, order, and orderDesc filters
|
// Sync query, order, and orderDesc filters
|
||||||
if (mode.value == FileListMode.unindexed) {
|
if (mode.value == FileListMode.unindexed) {
|
||||||
unindexedNotifier.setQuery(query.value);
|
unindexedNotifier.setQuery(this.query.value);
|
||||||
unindexedNotifier.setOrder(order.value);
|
unindexedNotifier.setOrder(order.value);
|
||||||
unindexedNotifier.setOrderDesc(orderDesc.value);
|
unindexedNotifier.setOrderDesc(orderDesc.value);
|
||||||
} else {
|
} else {
|
||||||
cloudNotifier.setQuery(query.value);
|
cloudNotifier.setQuery(this.query.value);
|
||||||
cloudNotifier.setOrder(order.value);
|
cloudNotifier.setOrder(order.value);
|
||||||
cloudNotifier.setOrderDesc(orderDesc.value);
|
cloudNotifier.setOrderDesc(orderDesc.value);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}, [query.value, order.value, orderDesc.value, mode.value]);
|
}, [this.query.value, order.value, orderDesc.value, mode.value]);
|
||||||
|
|
||||||
final isRefreshing = ref.watch(
|
final isRefreshing = ref.watch(
|
||||||
mode.value == FileListMode.normal
|
mode.value == FileListMode.normal
|
||||||
|
|||||||
Reference in New Issue
Block a user