load local files

This commit is contained in:
m
2026-07-27 15:52:51 +02:00
parent 8efa1e18c2
commit 0cc261105a
13 changed files with 737 additions and 45 deletions
+44
View File
@@ -0,0 +1,44 @@
import { useMemo } from 'react';
import { useDeviceFiles } from './useDeviceFiles';
import { localFileRegistry } from '../services/localFileRegistry';
import { LocalFileEntry } from '../types';
export function useLocalFiles() {
const { files: deviceFiles, isLoading: deviceLoading, hasPermission, requestPermission, rescan } = useDeviceFiles();
const registryEntries = useMemo(() => localFileRegistry.getAll(), []);
const localFiles = useMemo(() => {
const merged = new Map<string, LocalFileEntry>();
for (const entry of registryEntries) {
merged.set(entry.id, entry);
}
for (const df of deviceFiles) {
if (!merged.has(df.id)) {
merged.set(df.id, {
id: df.id,
localUri: df.uri,
name: df.name,
mimeType: df.mimeType,
size: df.size,
syncStatus: 'local',
createdAt: df.createdAt,
});
}
}
const result = Array.from(merged.values());
console.log(`[useLocalFiles] registry=${registryEntries.length} device=${deviceFiles.length} merged=${result.length}`);
return result;
}, [deviceFiles, registryEntries]);
return {
localFiles,
isLoading: deviceLoading,
hasPermission,
requestPermission,
rescan,
};
}