diff --git a/apps/frontend/components/items/guild-banks/Tab.svelte b/apps/frontend/components/items/BankTab.svelte
similarity index 68%
rename from apps/frontend/components/items/guild-banks/Tab.svelte
rename to apps/frontend/components/items/BankTab.svelte
index dfeb68ef0..5fb2422a2 100644
--- a/apps/frontend/components/items/guild-banks/Tab.svelte
+++ b/apps/frontend/components/items/BankTab.svelte
@@ -1,27 +1,19 @@
+
+
- |
+ |
diff --git a/apps/frontend/components/tooltips/vault-world/TooltipVaultWorld.svelte b/apps/frontend/components/tooltips/vault-world/TooltipVaultWorld.svelte
index df01736a8..ff72ed235 100644
--- a/apps/frontend/components/tooltips/vault-world/TooltipVaultWorld.svelte
+++ b/apps/frontend/components/tooltips/vault-world/TooltipVaultWorld.svelte
@@ -81,6 +81,7 @@
250: 'Normal Prey', // probably
251: 'Hard Prey',
252: 'Nightmare Prey',
+ 257: 'Ritual Site',
258: 'Purging the Vaults',
259: 'Labyrinth',
263: 'Labyrinth Boss',
diff --git a/apps/frontend/data/constants.ts b/apps/frontend/data/constants.ts
index bd6e74176..f472f92a1 100644
--- a/apps/frontend/data/constants.ts
+++ b/apps/frontend/data/constants.ts
@@ -5,10 +5,10 @@ export const MAX_TASKS = 100;
export const MAX_VIEWS = 100;
export abstract class Constants {
+ static readonly bankTabItems = 98;
static readonly characterMaxLevel: number = 90;
static readonly charactersPerAccount: number = 70;
static readonly expansion: number = 11;
- static readonly guildBankTabItems = 98;
static readonly lockoutDifficultyMultiplier = 1_000_000;
static readonly maxRenown: number = 80;
static readonly restedDuration: number = 10 * 24 * 60 * 60; // 10 days
diff --git a/apps/frontend/types/guild/item.ts b/apps/frontend/types/guild/item.ts
index 1a574a335..6fd1f8e9b 100644
--- a/apps/frontend/types/guild/item.ts
+++ b/apps/frontend/types/guild/item.ts
@@ -1,6 +1,6 @@
import { ItemLocation } from '@/enums/item-location';
import type { ItemQuality } from '@/enums/item-quality';
-import type { UserItem } from '../shared';
+import type { UserItem } from '../shared/user-item';
export class GuildItem implements UserItem {
public bonusIds: number[];
@@ -23,7 +23,7 @@ export class GuildItem implements UserItem {
public quality: ItemQuality,
public suffix: number,
bonusIds?: number[],
- gemIds?: number[],
+ gemIds?: number[]
) {
this.enchantmentIds = enchantId ? [enchantId] : [];
this.bonusIds = bonusIds || [];
diff --git a/apps/frontend/user-home/components/reputations/AccountWide.svelte b/apps/frontend/user-home/components/reputations/AccountWide.svelte
index 1c60a1357..bd8801049 100644
--- a/apps/frontend/user-home/components/reputations/AccountWide.svelte
+++ b/apps/frontend/user-home/components/reputations/AccountWide.svelte
@@ -1,14 +1,7 @@
+
+
+
+ ({
+ characterRep: characterRep.value,
+ dataRep,
+ renownCurrent,
+ renownMax,
+ }),
+ }}
+>
+
+
+
+
+
+ {#if hasAlliance && !hasHorde}
+
+
+
+ {:else if !hasAlliance && hasHorde}
+
+
+
+ {/if}
+
+
+
+ {dataRep.name}
+
+ {#if renownMax}
+ {Math.floor(renownCurrent)} / {renownMax}
+ {:else if repTier && repTier.maxValue === 0}
+ {repTier.name}
+ {/if}
+
+
+
+ {#if characterParagon && ((renownMax && renownCurrent === renownMax) || repTier?.tier === 1)}
+
+ {:else if repTier && repTier.maxValue > 0}
+
+ {:else if dataRep && renownCurrent < renownMax}
+ {@const perRenown = dataRep.maxValues[0]}
+
+ {/if}
+
+
diff --git a/apps/frontend/utils/items/group-bank-items.ts b/apps/frontend/utils/items/group-bank-items.ts
new file mode 100644
index 000000000..a874ed741
--- /dev/null
+++ b/apps/frontend/utils/items/group-bank-items.ts
@@ -0,0 +1,22 @@
+import groupBy from 'lodash/groupBy';
+import keyBy from 'lodash/keyBy';
+
+import { Constants } from '@/data/constants';
+import { getNumberKeyedEntries } from '@/utils/get-number-keyed-entries';
+import type { UserItem } from '@/types/shared';
+
+export function groupBankItems(items: UserItem[]) {
+ const ret: Record = {};
+
+ const itemsByTab = groupBy(items || [], (item) => item.containerId);
+ for (const [tabId, tabItems] of getNumberKeyedEntries(itemsByTab)) {
+ ret[tabId] = [];
+
+ const itemBySlot = keyBy(tabItems, (item) => item.slot);
+ for (let slot = 1; slot <= Constants.bankTabItems; slot++) {
+ ret[tabId].push(itemBySlot[slot]);
+ }
+ }
+
+ return ret;
+}
|