New eveal #32
@@ -1,3 +1,4 @@
|
||||
export {default as SourceLabel} from './SourceLabel.vue';
|
||||
export {onActivitiesProcessed} from './activitiesProcessed';
|
||||
export {useActivitiesProcessed} from './useActivitiesProcessed';
|
||||
export {useProcessedResource} from './useProcessedResource';
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
@@ -13,6 +13,7 @@ import {defineStore} from "pinia";
|
||||
import {computed, ref, triggerRef} from "vue";
|
||||
import {ledgerApi, transactionApi} from "@/mammon";
|
||||
import {useRouteParams} from "@vueuse/router";
|
||||
import {onActivitiesProcessed} from "@/activity";
|
||||
|
||||
export const LedgerTypes = {
|
||||
Main: 'MAIN',
|
||||
@@ -71,6 +72,8 @@ export const useLedgersStore = defineStore('ledgers', () => {
|
||||
|
||||
refresh();
|
||||
|
||||
onActivitiesProcessed(refresh);
|
||||
|
||||
return {ledgers, findById, findAllById, createMain, createCombined, updateMain, updateCombined, refresh};
|
||||
})
|
||||
|
||||
|
||||
@@ -7,19 +7,17 @@ import {IskLabel} from "@/market";
|
||||
import {SortableHeader, useSort, VirtualScrollTable} from "@/components/table";
|
||||
import {TransferList, TransferTypes} from "@/transaction";
|
||||
import {Dropdown} from "@/components";
|
||||
import {SourceLabel} from "@/activity";
|
||||
import {SourceLabel, useProcessedResource} from "@/activity";
|
||||
import {useCharactersStore} from "@/characters";
|
||||
import {formatEveDate} from "@/formaters.ts";
|
||||
|
||||
const {ledgerId} = useLedgerParam();
|
||||
const charactersStore = useCharactersStore();
|
||||
|
||||
const transactions = computedAsync<TransactionResponse[]>(async () => {
|
||||
if (ledgerId.value) {
|
||||
return await findAllTransactionInLeger(ledgerId.value);
|
||||
}
|
||||
return [];
|
||||
}, []);
|
||||
const transactions = useProcessedResource<TransactionResponse[]>(
|
||||
() => ledgerId.value ? findAllTransactionInLeger(ledgerId.value) : Promise.resolve([]),
|
||||
[],
|
||||
);
|
||||
|
||||
const { sortedArray, headerProps } = useSort(computedAsync(() => Promise.all(transactions.value.map(async transaction => {
|
||||
const source = transaction.source;
|
||||
|
||||
@@ -14,7 +14,6 @@ const editLedgerModal = ref<typeof EditLedgerModal>();
|
||||
const processActivities = async () => {
|
||||
await activityApi.fetchAllNewActivities();
|
||||
await activityApi.processNewActivities();
|
||||
await ledgersStore.refresh();
|
||||
}
|
||||
|
||||
const { sortedArray, headerProps } = useSort<Ledger>(() => ledgersStore.ledgers);
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
<script setup lang="ts">
|
||||
import {AcquisitionsPanel, toAcquiredType} from '@/market/acquisition';
|
||||
import {AcquisitionsPanel, RawAcquiredType, toAcquiredType} from '@/market/acquisition';
|
||||
import {useLedgerParam} from "@/ledger";
|
||||
import {acquisitionApi} from "@/mammon";
|
||||
import {computedAsync} from "@vueuse/core";
|
||||
import {useProcessedResource} from "@/activity";
|
||||
|
||||
const {ledgerId} = useLedgerParam();
|
||||
|
||||
const items = computedAsync(async () => {
|
||||
const items = useProcessedResource<RawAcquiredType[]>(async () => {
|
||||
if (!ledgerId.value) {
|
||||
return [];
|
||||
}
|
||||
|
||||
@@ -4,15 +4,14 @@ import {computedAsync} from "@vueuse/core";
|
||||
import {BalanceResponse} from "@/generated/mammon";
|
||||
import {getMarketType, MarketTypeLabel} from "@/market";
|
||||
import {SortableHeader, useSort, VirtualScrollTable} from "@/components/table";
|
||||
import {useProcessedResource} from "@/activity";
|
||||
|
||||
const {ledgerId} = useLedgerParam();
|
||||
|
||||
const balance = computedAsync<BalanceResponse>(async () => {
|
||||
if (ledgerId.value) {
|
||||
return await getLedgerBalance(ledgerId.value);
|
||||
}
|
||||
return undefined;
|
||||
});
|
||||
const balance = useProcessedResource<BalanceResponse | undefined>(
|
||||
() => ledgerId.value ? getLedgerBalance(ledgerId.value) : Promise.resolve(undefined),
|
||||
undefined,
|
||||
);
|
||||
|
||||
const { sortedArray, headerProps } = useSort(computedAsync(async () => {
|
||||
const itemBalances = balance.value?.itemBalances;
|
||||
|
||||
Reference in New Issue
Block a user