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'));