feat: ledger source label

This commit is contained in:
Sirttas
2026-07-07 18:40:28 +02:00
parent a22845add8
commit 7caa45a1fb
+9 -2
View File
@@ -1,9 +1,11 @@
<script setup lang="ts"> <script setup lang="ts">
import {computed} from "vue";
import {computedAsync} from "@vueuse/core"; import {computedAsync} from "@vueuse/core";
import {ActivitySourceResponse, ActivitySourceResponseTypeEnum} from "@/generated/mammon"; import {ActivitySourceResponse, ActivitySourceResponseTypeEnum} from "@/generated/mammon";
import {CharacterLabel, useCharactersStore} from "@/characters"; import {CharacterLabel, useCharactersStore} from "@/characters";
import {CorporationLabel} from "@/corporations"; import {CorporationLabel} from "@/corporations";
import {LedgerLabel, useLedgersStore} from "@/ledger";
interface Props { interface Props {
source: ActivitySourceResponse; source: ActivitySourceResponse;
@@ -15,6 +17,7 @@ const props = withDefaults(defineProps<Props>(), {
}); });
const charactersStore = useCharactersStore(); const charactersStore = useCharactersStore();
const ledgersStore = useLedgersStore();
const character = computedAsync(async () => { const character = computedAsync(async () => {
if (props.source.type === ActivitySourceResponseTypeEnum.Character && props.source.characterId) { if (props.source.type === ActivitySourceResponseTypeEnum.Character && props.source.characterId) {
@@ -22,11 +25,15 @@ const character = computedAsync(async () => {
} }
return undefined; return undefined;
}, undefined); }, undefined);
const ledger = computed(() =>
props.source.type === ActivitySourceResponseTypeEnum.Ledger && props.source.ledgerId
? ledgersStore.findById(props.source.ledgerId)
: undefined);
</script> </script>
<template> <template>
<CharacterLabel v-if="source.type === ActivitySourceResponseTypeEnum.Character && character" :character="character" :size="size" /> <CharacterLabel v-if="source.type === ActivitySourceResponseTypeEnum.Character && character" :character="character" :size="size" />
<CorporationLabel v-else-if="source.type === ActivitySourceResponseTypeEnum.Corporation && source.corporationId" :corporation-id="source.corporationId" :division="source.division" :size="size" /> <CorporationLabel v-else-if="source.type === ActivitySourceResponseTypeEnum.Corporation && source.corporationId" :corporation-id="source.corporationId" :division="source.division" :size="size" />
<LedgerLabel v-else-if="ledger" :ledger="ledger" link />
<span v-else class="text-slate-400">&mdash;</span>
</template> </template>