forked from Qortal/Q-Manager
update db
This commit is contained in:
parent
6cc918c25a
commit
4f365a3b98
@ -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;
|
||||
|
@ -1,35 +1,33 @@
|
||||
const initializeDB = () => {
|
||||
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.onsuccess = () => resolve(request.result);
|
||||
request.onerror = (event) => reject(event.target.error);
|
||||
});
|
||||
};
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
const request = indexedDB.open("FileSystemDB", 1);
|
||||
|
||||
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);
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
|
||||
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);
|
||||
@ -60,4 +57,5 @@ const initializeDB = () => {
|
||||
console.error("Error retrieving fileSystemQManager from IndexedDB:", error);
|
||||
}
|
||||
};
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user