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

View File

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

View File

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