Files
haex-hub-mirror/src/stores/vault/lastVaults.ts
haex dceb49ae90 Add context menu for vault actions and trash functionality
- 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
2025-10-31 22:57:56 +01:00

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,
}
})