Add Saving Icon

This commit is contained in:
Kwaroran
2024-12-23 17:07:19 +09:00
parent 50cf5e65b8
commit 8f667d6394
8 changed files with 126 additions and 72 deletions

View File

@@ -302,6 +302,9 @@ export async function loadAsset(id:string){
}
let lastSave = ''
export let saving = $state({
state: false
})
/**
* Saves the current state of the database.
@@ -335,19 +338,25 @@ export async function saveDb(){
$effect.root(() => {
let selIdState = $state(0)
let oldSaveHash = ''
selectedCharID.subscribe((v) => {
selIdState = v
})
$effect(() => {
$state.snapshot(DBState?.db?.characters?.[selIdState])
let newSaveHash = ''
newSaveHash += JSON.stringify(DBState?.db?.characters?.[selIdState])
for(const key in DBState.db){
if(key !== 'characters'){
$state.snapshot(DBState.db[key])
newSaveHash += (DBState.db[key])
}
}
changed = true
if(newSaveHash !== oldSaveHash){
changed = true
oldSaveHash = newSaveHash
}
})
})
@@ -356,10 +365,11 @@ export async function saveDb(){
await sleep(1000)
while(true){
if(!changed){
await sleep(1000)
await sleep(500)
continue
}
saving.state = true
changed = false
try {
@@ -430,6 +440,8 @@ export async function saveDb(){
console.error(error)
}
}
saving.state = false
}
}