pinia+track

This commit is contained in:
2023-09-20 21:42:31 +02:00
parent d64cb69f1e
commit dabadaa1c9
16 changed files with 216 additions and 113 deletions

View File

@@ -1,16 +1,11 @@
<script setup lang="ts">
import Modal from '@/Modal.vue';
import { MarketType } from '@/market';
import { useTrackedItemsStorage } from '@/market/track';
import { ref } from 'vue';
import { useTrackedItemStore } from './track';
interface Emit {
(e: 'removed'): void;
}
const emit = defineEmits<Emit>();
const itemsStorage = useTrackedItemsStorage();
const trackedItemStore = useTrackedItemStore();
const modalOpen = ref<boolean>(false);
const type = ref<MarketType>();
@@ -29,26 +24,7 @@ const remove = () => {
return;
}
const oldItem = itemsStorage.value.find(i => i.typeID === id);
if (!oldItem) {
modalOpen.value = false;
return;
}
const c = oldItem.count - count.value;
if (c > 0) {
const item = {
typeID: id,
count: oldItem.count - count.value,
averagePrice: oldItem.averagePrice
};
itemsStorage.value = itemsStorage.value.map(i => i.typeID === id ? item : i);
} else {
itemsStorage.value = itemsStorage.value.filter(i => i.typeID !== id);
}
emit('removed');
trackedItemStore.removeTrackedItem(id, count.value);
modalOpen.value = false;
}
@@ -57,7 +33,7 @@ defineExpose({ open });
<template>
<Modal v-model:open="modalOpen">
<div class="p-4 bg-slate-800 rounded mt-20 flex">
<div class="p-4 bg-slate-800 rounded flex">
<div class="flex me-2 mb-auto">
<span>Count: </span>
<input class="ms-2" type="number" min="0" step="1" v-model="count" />