diff --git a/apps/frontend/components/home/table/row/HomeTableRowCurrencies.svelte b/apps/frontend/components/home/table/row/HomeTableRowCurrencies.svelte index 1c3a68538..10cc39a89 100644 --- a/apps/frontend/components/home/table/row/HomeTableRowCurrencies.svelte +++ b/apps/frontend/components/home/table/row/HomeTableRowCurrencies.svelte @@ -26,17 +26,18 @@ {@const currency = currencyId < 1000000 ? wowthingData.static.currencyById.get(currencyId) : undefined} {@const itemId = currencyId > 1000000 ? currencyId - 1000000 : 0} - {@const { amount, amountRaw, percent, tooltip } = getCurrencyData( + {@const { amount, amountRaw, percent, tooltip, weekAmount, weekMax } = getCurrencyData( $timeStore, character, currency, itemId )} {#if amount} - {@const good = currencyGood[currencyId]} + {@const checkAmount = weekMax ? weekAmount : amountRaw} + {@const good = currencyGood[currencyId] || weekMax || 0} = good} + class:status-success={good && checkAmount >= good} class:status-shrug={percent >= 50 && percent < 100} class:status-fail={percent >= 100} class:got-none={amount === '0' && percent === 0} diff --git a/apps/frontend/components/tooltips/reputation/RenownRewards.svelte b/apps/frontend/components/tooltips/reputation/RenownRewards.svelte new file mode 100644 index 000000000..00991f19d --- /dev/null +++ b/apps/frontend/components/tooltips/reputation/RenownRewards.svelte @@ -0,0 +1,56 @@ + + + + + + + {#each rewards as { level, names, toastDescriptions } (level)} + + + + + {/each} + +
{level} + {#each { length: names.length }, index} + {@const name = names[index]} + {@const desc = toastDescriptions[index]} +
+ {#if useName(level, index)} + Quests - {name} + {:else if desc} + {desc} + {:else} + {name || '???'} - ??? + {/if} +
+ {/each} +
diff --git a/apps/frontend/components/tooltips/reputation/TooltipReputationRenown.svelte b/apps/frontend/components/tooltips/reputation/TooltipReputationRenown.svelte index 42aebe0a7..3319dd7f6 100644 --- a/apps/frontend/components/tooltips/reputation/TooltipReputationRenown.svelte +++ b/apps/frontend/components/tooltips/reputation/TooltipReputationRenown.svelte @@ -2,33 +2,39 @@ import { Constants } from '@/data/constants'; import { wowthingData } from '@/shared/stores/data'; import type { StaticDataReputation } from '@/shared/stores/static/types'; - import type { Character, CharacterReputationParagon } from '@/types'; + import type { CharacterReputationParagon } from '@/types'; import type { ManualDataReputationSet } from '@/types/data/manual'; + import type { CharacterProps } from '@/types/props'; import ProgressBar from '@/components/common/ProgressBar.svelte'; + import RenownRewards from './RenownRewards.svelte'; import WowthingImage from '@/shared/components/images/sources/WowthingImage.svelte'; - export let character: Character; - export let characterParagon: CharacterReputationParagon = undefined; - export let characterRep: number; - export let dataRep: StaticDataReputation; - export let reputation: ManualDataReputationSet = undefined; + type Props = CharacterProps & { + characterRep: number; + dataRep: StaticDataReputation; + characterParagon?: CharacterReputationParagon; + reputation?: ManualDataReputationSet; + }; + let { character, characterRep, dataRep, characterParagon, reputation }: Props = $props(); - let progress: number; - let tier: number; + let maxRenown = $derived( + wowthingData.static.currencyById.get(dataRep.renownCurrencyId)?.maxTotal || 1 + ); + let renownValue = $derived(dataRep.maxValues[0] || 2500); + let tier = $derived(Math.floor(characterRep / renownValue)); + let progress = $derived( + tier < maxRenown ? characterRep % renownValue : characterParagon?.current || 0 + ); - $: maxRenown = wowthingData.static.currencyById.get(dataRep.renownCurrencyId)?.maxTotal || 1; - $: renownValue = dataRep.maxValues[0] || 2500; - $: { - tier = Math.floor(characterRep / renownValue); - progress = tier < maxRenown ? characterRep % renownValue : characterParagon?.current || 0; - } + let upcomingRewards = $derived( + (wowthingData.static.renownRewards[dataRep.id] || []).filter( + (reward) => reward.level > tier + ) + ); -
+
0 ? '25rem' : '15rem'}>

{#if reputation?.both === undefined && character} + + {#if upcomingRewards.length > 0} + + {/if}

diff --git a/apps/frontend/components/tooltips/task/TooltipTaskRow.svelte b/apps/frontend/components/tooltips/task/TooltipTaskRow.svelte index 58f6451e9..a96c597dd 100644 --- a/apps/frontend/components/tooltips/task/TooltipTaskRow.svelte +++ b/apps/frontend/components/tooltips/task/TooltipTaskRow.svelte @@ -1,4 +1,5 @@