diff --git a/src/components/tabs/StorageTab.vue b/src/components/tabs/StorageTab.vue index 5d0bfa3..cec127d 100644 --- a/src/components/tabs/StorageTab.vue +++ b/src/components/tabs/StorageTab.vue @@ -45,12 +45,7 @@
{{ $t('storage.stock-title') }} - {{ - storageEntry.stockString - .split(';') - .map((s) => s.split(/:|,/)[0]) - .join(' + ') - }} + {{ shortenStockString(storageEntry.stockString) }}
@@ -106,6 +101,19 @@ export default defineComponent({ }, methods: { + shortenStockString(stockString: string) { + return Array.from( + stockString.split(';').reduce( + (acc, s) => { + const stockName = s.split(/:|,/)[0]; + acc.set(stockName, (acc.get(stockName) ?? 0) + 1); + + return acc; + }, + new Map() as Map + ) + ).map(([stockName, count]) => `${count}x ${stockName.replace(/_/g, ' ')}`).join(', '); + }, removeStockIndexFromStorage(stockName: string) { let removeConfirm = confirm(this.$t('storage.remove-confirm'));