mirror of
https://github.com/Qortal/Q-Manager.git
synced 2025-06-15 15:21:20 +00:00
update db
This commit is contained in:
parent
6cc918c25a
commit
4f365a3b98
@ -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;
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user