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

View File

@ -1,35 +1,33 @@
const initializeDB = () => {
return new Promise((resolve, reject) => {
const request = indexedDB.open("FileSystemDB", 1);
return new Promise((resolve, reject) => {
const request = indexedDB.open("FileSystemDB", 1);
request.onupgradeneeded = (event) => {
const db = event.target.result;
if (!db.objectStoreNames.contains("fileSystemQManager")) {
db.createObjectStore("fileSystemQManager", { keyPath: "id" }); // `id` will be used as the key
}
};
request.onupgradeneeded = (event) => {
const db = event.target.result;
if (!db.objectStoreNames.contains("fileSystemQManager")) {
// 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 {
const db = await initializeDB();
const transaction = db.transaction("fileSystemQManager", "readwrite");
const store = transaction.objectStore("fileSystemQManager");
// Clear existing data
store.clear();
// Save new data
store.put({ id: 1, data: fileSystemQManager });
// Save or update data for the specific address
store.put({ address, data: fileSystemQManager });
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);
});
} catch (error) {
@ -37,21 +35,20 @@ const initializeDB = () => {
}
};
export const getFileSystemQManagerFromDB = async () => {
export const getFileSystemQManagerFromDB = async (address) => {
try {
const db = await initializeDB();
const transaction = db.transaction("fileSystemQManager", "readonly");
const store = transaction.objectStore("fileSystemQManager");
return new Promise((resolve, reject) => {
const request = store.get(1);
const request = store.get(address);
request.onsuccess = (event) => {
if (event.target.result) {
resolve(event.target.result.data);
} else {
resolve(null); // No data found
resolve(null); // No data found for this address
}
};
request.onerror = (event) => reject(event.target.error);
@ -61,3 +58,4 @@ const initializeDB = () => {
}
};