Dodanie obsługi odświeżania tabeli transakcji

- Dodano funkcję `handleRefresh`, aby ponownie pobierać dane z `rePullTradeDeals`.
- W `TradeDetailsTableAdmin` dodano zdarzenie `refresh-table`, aby umożliwić odświeżanie tabeli.
- W `newTradeDealForm.vue` dodano emitowanie zdarzenia `trade-added`, które po dodaniu nowej transakcji wywołuje odświeżenie tabeli.
This commit is contained in:
2025-04-01 21:05:05 +02:00
parent 64ed5be68a
commit c61477c6b9
3 changed files with 39 additions and 9 deletions

View File

@@ -4,8 +4,17 @@ const props = defineProps<{
description: string;
}>();
const { tradeDealsPresentTurn, tradeDealsFollowingTurn, presentTurn, followingTurn } =
await useFetchTradeAdminTab();
const {
tradeDealsPresentTurn,
tradeDealsFollowingTurn,
presentTurn,
followingTurn,
rePullTradeDeals
} = await useFetchTradeAdminTab();
const handleRefresh = async () => {
await rePullTradeDeals();
};
</script>
<template>
@@ -27,11 +36,19 @@ const { tradeDealsPresentTurn, tradeDealsFollowingTurn, presentTurn, followingTu
</TabsList>
<TabsContent value="presentTurn">
<TradeDetailsTableAdmin :tradeDeals="tradeDealsPresentTurn" :turn="presentTurn" />
<TradeDetailsTableAdmin
:tradeDeals="tradeDealsPresentTurn"
:turn="presentTurn"
@refresh-table="handleRefresh"
/>
</TabsContent>
<TabsContent value="followingTurn">
<TradeDetailsTableAdmin :tradeDeals="tradeDealsFollowingTurn" :turn="followingTurn" />
<TradeDetailsTableAdmin
:tradeDeals="tradeDealsFollowingTurn"
:turn="followingTurn"
@refresh-table="handleRefresh"
/>
</TabsContent>
</Tabs>
</CardContent>

View File

@@ -1,20 +1,27 @@
<script lang="ts" setup>
import type { TradesResponse, TurnsResponse } from '@/types/pb-types';
import { X } from 'lucide-vue-next';
import { X } from 'lucide-vue-next';
defineProps<{
tradeDeals: TradesResponse<unknown>[];
turn: TurnsResponse<unknown>;
}>();
const emit = defineEmits<{
'refresh-table': [];
}>();
const refreshTable = () => {
emit('refresh-table');
};
const { tradeDealsStates: states } = await useFetchTradeAdminTab();
// TODO: Odświeżenie tabelki
</script>
<template>
<Table class="h-full w-full">
<TableCaption>
<NewTradeDealForm :turn="turn" :states="states" />
<NewTradeDealForm :turn="turn" :states="states" @trade-added="refreshTable" />
</TableCaption>
<TableHeader>

View File

@@ -1,13 +1,17 @@
<script lang="ts" setup>
import { FormField } from '@/components/ui/form';
import { FormField } from '@/components/ui/form';
import type { StatesResponse, TurnsResponse } from '@/types/pb-types';
import { useForm } from 'vee-validate';
import { useForm } from 'vee-validate';
const props = defineProps<{
turn: TurnsResponse<unknown>;
states: StatesResponse<unknown, unknown, unknown, unknown, unknown>[];
}>();
const emit = defineEmits<{
'trade-added': [];
}>();
const pb = usePocketBase();
const { flushTradeDealsCache, rePullTradeDeals } = await useFetchTradeAdminTab();
@@ -51,6 +55,8 @@ const onSubmit = handleSubmit(async values => {
await flushTradeDealsCache();
await rePullTradeDeals();
emit('trade-added');
openDialog.value = false;
}
});