feat(ui): Ark chip in transaction rail filter (shown when Ark txs exist)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Dorian 2026-07-14 22:05:17 +01:00
parent 128c13e965
commit 768c358546

View File

@ -122,19 +122,23 @@ const props = defineProps<{
const emit = defineEmits<{ close: [] }>() const emit = defineEmits<{ close: [] }>()
const { t } = useI18n() const { t } = useI18n()
type FilterKey = 'all' | 'onchain' | 'lightning' | 'ecash' type FilterKey = 'all' | 'onchain' | 'lightning' | 'ecash' | 'ark'
const filters: Array<{ key: FilterKey; label: string }> = [ // The Ark chip only appears once an Ark transaction exists most nodes
// don't run the barkd sidecar.
const filters = computed<Array<{ key: FilterKey; label: string }>>(() => [
{ key: 'all', label: 'All' }, { key: 'all', label: 'All' },
{ key: 'onchain', label: 'On-chain' }, { key: 'onchain', label: 'On-chain' },
{ key: 'lightning', label: '⚡ Lightning' }, { key: 'lightning', label: '⚡ Lightning' },
{ key: 'ecash', label: 'Ecash' }, { key: 'ecash', label: 'Ecash' },
] ...(props.transactions.some(tx => tx.kind === 'ark') ? [{ key: 'ark' as const, label: 'Ark' }] : []),
])
const activeFilter = ref<FilterKey>('all') const activeFilter = ref<FilterKey>('all')
function matchesFilter(tx: WalletTransaction, f: FilterKey): boolean { function matchesFilter(tx: WalletTransaction, f: FilterKey): boolean {
if (f === 'all') return true if (f === 'all') return true
if (f === 'onchain') return isOnchain(tx) if (f === 'onchain') return isOnchain(tx)
if (f === 'lightning') return tx.kind === 'lightning' if (f === 'lightning') return tx.kind === 'lightning'
if (f === 'ark') return tx.kind === 'ark'
return tx.kind === 'cashu' || tx.kind === 'fedimint' return tx.kind === 'cashu' || tx.kind === 'fedimint'
} }