zwischenstand

This commit is contained in:
2025-05-28 11:35:02 +02:00
parent 07ff15aba0
commit 4774d3fdc1
105 changed files with 4129 additions and 1438 deletions

View File

@ -1,63 +1,63 @@
import { load, Store } from '@tauri-apps/plugin-store';
import { load } from '@tauri-apps/plugin-store'
interface ILastVault {
lastUsed: Date;
name: string;
path: string;
lastUsed: Date
name: string
path: string
}
export const useLastVaultStore = defineStore('lastVaultStore', () => {
const {
public: { haexVault },
} = useRuntimeConfig();
} = useRuntimeConfig()
const lastVaults = ref<ILastVault[]>([]);
const lastVaults = ref<ILastVault[]>([])
const keyName = 'lastVaults';
const keyName = 'lastVaults'
const getStoreAsync = async () => {
return await load(haexVault.lastVaultFileName);
};
return await load(haexVault.lastVaultFileName)
}
const syncLastVaultsAsync = async () => {
const store = await getStoreAsync();
const store = await getStoreAsync()
lastVaults.value =
(await store.get<ILastVault[]>(keyName))?.sort(
(a, b) => +new Date(b.lastUsed) - +new Date(a.lastUsed)
) ?? [];
(a, b) => +new Date(b.lastUsed) - +new Date(a.lastUsed),
) ?? []
return lastVaults.value;
};
return lastVaults.value
}
const addVaultAsync = async ({
name,
path,
}: {
name?: string;
path: string;
name?: string
path: string
}) => {
if (!lastVaults.value) await syncLastVaultsAsync();
if (!lastVaults.value) await syncLastVaultsAsync()
const saveName = name || getFileNameFromPath(path);
lastVaults.value = lastVaults.value.filter((vault) => vault.path !== path);
lastVaults.value.push({ lastUsed: new Date(), name: saveName, path });
await saveLastVaultsAsync();
};
const saveName = name || getFileNameFromPath(path)
lastVaults.value = lastVaults.value.filter((vault) => vault.path !== path)
lastVaults.value.push({ lastUsed: new Date(), name: saveName, path })
await saveLastVaultsAsync()
}
const removeVaultAsync = async (vaultPath: string) => {
console.log('remove', vaultPath, lastVaults.value);
console.log('remove', vaultPath, lastVaults.value)
lastVaults.value = lastVaults.value.filter(
(vault) => vault.path !== vaultPath
);
await saveLastVaultsAsync();
};
(vault) => vault.path !== vaultPath,
)
await saveLastVaultsAsync()
}
const saveLastVaultsAsync = async () => {
const store = await getStoreAsync();
console.log('save lastVaults', keyName, lastVaults.value);
await store.set(keyName, lastVaults.value);
await syncLastVaultsAsync();
};
const store = await getStoreAsync()
console.log('save lastVaults', keyName, lastVaults.value)
await store.set(keyName, lastVaults.value)
await syncLastVaultsAsync()
}
return {
addVaultAsync,
@ -65,16 +65,16 @@ export const useLastVaultStore = defineStore('lastVaultStore', () => {
lastVaults,
removeVaultAsync,
saveLastVaultsAsync,
};
});
}
})
const getFileNameFromPath = (path: string) => {
const lastBackslashIndex = path.lastIndexOf('\\');
const lastSlashIndex = path.lastIndexOf('/');
const lastBackslashIndex = path.lastIndexOf('\\')
const lastSlashIndex = path.lastIndexOf('/')
const lastIndex = Math.max(lastBackslashIndex, lastSlashIndex);
const lastIndex = Math.max(lastBackslashIndex, lastSlashIndex)
const fileName = path.substring(lastIndex + 1);
const fileName = path.substring(lastIndex + 1)
return fileName;
};
return fileName
}