pinia+track
This commit is contained in:
@@ -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" />
|
||||
|
||||
Reference in New Issue
Block a user