New eveal #32

Merged
Sirttas merged 115 commits from new-eveal into main 2026-07-14 17:15:11 +02:00
7 changed files with 32 additions and 17 deletions
Showing only changes of commit 2622d9f01e - Show all commits
+1
View File
@@ -1,3 +1,4 @@
export {default as SourceLabel} from './SourceLabel.vue'; export {default as SourceLabel} from './SourceLabel.vue';
export {onActivitiesProcessed} from './activitiesProcessed'; export {onActivitiesProcessed} from './activitiesProcessed';
export {useActivitiesProcessed} from './useActivitiesProcessed'; export {useActivitiesProcessed} from './useActivitiesProcessed';
export {useProcessedResource} from './useProcessedResource';
+15
View File
@@ -0,0 +1,15 @@
import {ref, type Ref, watchEffect} from "vue";
import {useActivitiesProcessed} from "./useActivitiesProcessed";
export const useProcessedResource = <T>(loader: () => Promise<T>, initial: T): Ref<T> => {
const data = ref(initial) as Ref<T>;
const load = async () => {
data.value = await loader();
};
watchEffect(load);
useActivitiesProcessed(load);
return data;
};
+3
View File
@@ -13,6 +13,7 @@ import {defineStore} from "pinia";
import {computed, ref, triggerRef} from "vue"; import {computed, ref, triggerRef} from "vue";
import {ledgerApi, transactionApi} from "@/mammon"; import {ledgerApi, transactionApi} from "@/mammon";
import {useRouteParams} from "@vueuse/router"; import {useRouteParams} from "@vueuse/router";
import {onActivitiesProcessed} from "@/activity";
export const LedgerTypes = { export const LedgerTypes = {
Main: 'MAIN', Main: 'MAIN',
@@ -71,6 +72,8 @@ export const useLedgersStore = defineStore('ledgers', () => {
refresh(); refresh();
onActivitiesProcessed(refresh);
return {ledgers, findById, findAllById, createMain, createCombined, updateMain, updateCombined, refresh}; return {ledgers, findById, findAllById, createMain, createCombined, updateMain, updateCombined, refresh};
}) })
+5 -7
View File
@@ -7,19 +7,17 @@ import {IskLabel} from "@/market";
import {SortableHeader, useSort, VirtualScrollTable} from "@/components/table"; import {SortableHeader, useSort, VirtualScrollTable} from "@/components/table";
import {TransferList, TransferTypes} from "@/transaction"; import {TransferList, TransferTypes} from "@/transaction";
import {Dropdown} from "@/components"; import {Dropdown} from "@/components";
import {SourceLabel} from "@/activity"; import {SourceLabel, useProcessedResource} from "@/activity";
import {useCharactersStore} from "@/characters"; import {useCharactersStore} from "@/characters";
import {formatEveDate} from "@/formaters.ts"; import {formatEveDate} from "@/formaters.ts";
const {ledgerId} = useLedgerParam(); const {ledgerId} = useLedgerParam();
const charactersStore = useCharactersStore(); const charactersStore = useCharactersStore();
const transactions = computedAsync<TransactionResponse[]>(async () => { const transactions = useProcessedResource<TransactionResponse[]>(
if (ledgerId.value) { () => ledgerId.value ? findAllTransactionInLeger(ledgerId.value) : Promise.resolve([]),
return await findAllTransactionInLeger(ledgerId.value); [],
} );
return [];
}, []);
const { sortedArray, headerProps } = useSort(computedAsync(() => Promise.all(transactions.value.map(async transaction => { const { sortedArray, headerProps } = useSort(computedAsync(() => Promise.all(transactions.value.map(async transaction => {
const source = transaction.source; const source = transaction.source;
-1
View File
@@ -14,7 +14,6 @@ const editLedgerModal = ref<typeof EditLedgerModal>();
const processActivities = async () => { const processActivities = async () => {
await activityApi.fetchAllNewActivities(); await activityApi.fetchAllNewActivities();
await activityApi.processNewActivities(); await activityApi.processNewActivities();
await ledgersStore.refresh();
} }
const { sortedArray, headerProps } = useSort<Ledger>(() => ledgersStore.ledgers); const { sortedArray, headerProps } = useSort<Ledger>(() => ledgersStore.ledgers);
+3 -3
View File
@@ -1,12 +1,12 @@
<script setup lang="ts"> <script setup lang="ts">
import {AcquisitionsPanel, toAcquiredType} from '@/market/acquisition'; import {AcquisitionsPanel, RawAcquiredType, toAcquiredType} from '@/market/acquisition';
import {useLedgerParam} from "@/ledger"; import {useLedgerParam} from "@/ledger";
import {acquisitionApi} from "@/mammon"; import {acquisitionApi} from "@/mammon";
import {computedAsync} from "@vueuse/core"; import {useProcessedResource} from "@/activity";
const {ledgerId} = useLedgerParam(); const {ledgerId} = useLedgerParam();
const items = computedAsync(async () => { const items = useProcessedResource<RawAcquiredType[]>(async () => {
if (!ledgerId.value) { if (!ledgerId.value) {
return []; return [];
} }
+5 -6
View File
@@ -4,15 +4,14 @@ import {computedAsync} from "@vueuse/core";
import {BalanceResponse} from "@/generated/mammon"; import {BalanceResponse} from "@/generated/mammon";
import {getMarketType, MarketTypeLabel} from "@/market"; import {getMarketType, MarketTypeLabel} from "@/market";
import {SortableHeader, useSort, VirtualScrollTable} from "@/components/table"; import {SortableHeader, useSort, VirtualScrollTable} from "@/components/table";
import {useProcessedResource} from "@/activity";
const {ledgerId} = useLedgerParam(); const {ledgerId} = useLedgerParam();
const balance = computedAsync<BalanceResponse>(async () => { const balance = useProcessedResource<BalanceResponse | undefined>(
if (ledgerId.value) { () => ledgerId.value ? getLedgerBalance(ledgerId.value) : Promise.resolve(undefined),
return await getLedgerBalance(ledgerId.value); undefined,
} );
return undefined;
});
const { sortedArray, headerProps } = useSort(computedAsync(async () => { const { sortedArray, headerProps } = useSort(computedAsync(async () => {
const itemBalances = balance.value?.itemBalances; const itemBalances = balance.value?.itemBalances;