update db

This commit is contained in:
PhilReact 2024-11-30 13:08:24 +02:00
parent 6cc918c25a
commit 4f365a3b98
2 changed files with 30 additions and 31 deletions

View File

@ -215,8 +215,9 @@ const [fileSystem, setFileSystem] = useMemo(() => {
}; };
useEffect(() => { useEffect(() => {
if(!myAddress?.address) return
const fetchFileSystem = async () => { const fetchFileSystem = async () => {
const data = await getFileSystemQManagerFromDB(); const data = await getFileSystemQManagerFromDB(myAddress?.address);
if (data?.private && data?.public){ if (data?.private && data?.public){
setFileSystemPublic(data?.public) setFileSystemPublic(data?.public)
setFileSystemPrivate(data?.private) setFileSystemPrivate(data?.private)
@ -229,13 +230,13 @@ const [fileSystem, setFileSystem] = useMemo(() => {
} }
}; };
fetchFileSystem(); fetchFileSystem();
}, []); }, [myAddress?.address]);
useEffect(() => { useEffect(() => {
if (fileSystemPublic && fileSystemPrivate) { if (fileSystemPublic && fileSystemPrivate && myAddress?.address) {
saveFileSystemQManagerToDB({public: fileSystemPublic, private: fileSystemPrivate, group: fileSystemGroup}); saveFileSystemQManagerToDB({public: fileSystemPublic, private: fileSystemPrivate, group: fileSystemGroup}, myAddress?.address);
} }
}, [fileSystemPublic , fileSystemPrivate, fileSystemGroup]); }, [fileSystemPublic , fileSystemPrivate, fileSystemGroup, myAddress?.address]);
const addDirectoryToCurrent = (directoryName) => { const addDirectoryToCurrent = (directoryName) => {
if (!directoryName || currentPath.length === 0) return false; if (!directoryName || currentPath.length === 0) return false;

View File

@ -1,35 +1,33 @@
const initializeDB = () => { const initializeDB = () => {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
const request = indexedDB.open("FileSystemDB", 1); const request = indexedDB.open("FileSystemDB", 1);
request.onupgradeneeded = (event) => { request.onupgradeneeded = (event) => {
const db = event.target.result; const db = event.target.result;
if (!db.objectStoreNames.contains("fileSystemQManager")) { if (!db.objectStoreNames.contains("fileSystemQManager")) {
db.createObjectStore("fileSystemQManager", { keyPath: "id" }); // `id` will be used as the key // Create object store with `address` as the keyPath
} db.createObjectStore("fileSystemQManager", { keyPath: "address" });
}; }
};
request.onsuccess = () => resolve(request.result);
request.onerror = (event) => reject(event.target.error); request.onsuccess = () => resolve(request.result);
}); request.onerror = (event) => reject(event.target.error);
}; });
};
export const saveFileSystemQManagerToDB = async (fileSystemQManager) => { export const saveFileSystemQManagerToDB = async ( fileSystemQManager, address) => {
try { try {
const db = await initializeDB(); const db = await initializeDB();
const transaction = db.transaction("fileSystemQManager", "readwrite"); const transaction = db.transaction("fileSystemQManager", "readwrite");
const store = transaction.objectStore("fileSystemQManager"); const store = transaction.objectStore("fileSystemQManager");
// Clear existing data // Save or update data for the specific address
store.clear(); store.put({ address, data: fileSystemQManager });
// Save new data
store.put({ id: 1, data: fileSystemQManager });
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
transaction.oncomplete = () => resolve("FileSystemQManager saved successfully"); transaction.oncomplete = () => resolve(`FileSystemQManager for address ${address} saved successfully`);
transaction.onerror = (event) => reject(event.target.error); transaction.onerror = (event) => reject(event.target.error);
}); });
} catch (error) { } catch (error) {
@ -37,21 +35,20 @@ const initializeDB = () => {
} }
}; };
export const getFileSystemQManagerFromDB = async (address) => {
export const getFileSystemQManagerFromDB = async () => {
try { try {
const db = await initializeDB(); const db = await initializeDB();
const transaction = db.transaction("fileSystemQManager", "readonly"); const transaction = db.transaction("fileSystemQManager", "readonly");
const store = transaction.objectStore("fileSystemQManager"); const store = transaction.objectStore("fileSystemQManager");
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
const request = store.get(1); const request = store.get(address);
request.onsuccess = (event) => { request.onsuccess = (event) => {
if (event.target.result) { if (event.target.result) {
resolve(event.target.result.data); resolve(event.target.result.data);
} else { } else {
resolve(null); // No data found resolve(null); // No data found for this address
} }
}; };
request.onerror = (event) => reject(event.target.error); request.onerror = (event) => reject(event.target.error);
@ -60,4 +57,5 @@ const initializeDB = () => {
console.error("Error retrieving fileSystemQManager from IndexedDB:", error); console.error("Error retrieving fileSystemQManager from IndexedDB:", error);
} }
}; };