mirror of
https://github.com/haexhub/haex-hub.git
synced 2025-12-18 23:10:51 +01:00
- Add UiButtonContext component for context menu support on buttons - Implement vault trash functionality using trash crate - Move vaults to system trash on desktop (with fallback to permanent delete on mobile) - Add context menu to vault list items for better mobile UX - Keep hover delete button for desktop users
36 lines
939 B
TypeScript
36 lines
939 B
TypeScript
import { invoke } from '@tauri-apps/api/core'
|
|
import type { VaultInfo } from '@bindings/VaultInfo'
|
|
|
|
export const useLastVaultStore = defineStore('lastVaultStore', () => {
|
|
const lastVaults = ref<VaultInfo[]>([])
|
|
|
|
const syncLastVaultsAsync = async () => {
|
|
lastVaults.value =
|
|
(await listVaultsAsync()).sort(
|
|
(a, b) => +new Date(`${b.lastAccess}`) - +new Date(`${a.lastAccess}`),
|
|
) ?? []
|
|
|
|
return lastVaults.value
|
|
}
|
|
|
|
const listVaultsAsync = async () => {
|
|
lastVaults.value = await invoke<VaultInfo[]>('list_vaults')
|
|
return lastVaults.value
|
|
}
|
|
|
|
const removeVaultAsync = async (vaultName: string) => {
|
|
return await invoke('delete_vault', { vaultName })
|
|
}
|
|
|
|
const moveVaultToTrashAsync = async (vaultName: string) => {
|
|
return await invoke('move_vault_to_trash', { vaultName })
|
|
}
|
|
|
|
return {
|
|
syncLastVaultsAsync,
|
|
lastVaults,
|
|
removeVaultAsync,
|
|
moveVaultToTrashAsync,
|
|
}
|
|
})
|