From 57c8ea3d9d26e3e44cf36b3d0f6f8e631567089f Mon Sep 17 00:00:00 2001 From: Freddie Date: Sat, 11 Jul 2026 09:57:50 -0700 Subject: [PATCH 1/3] Add "Mythic only" filter for raid transmog sets --- apps/frontend/shared/state/browser.svelte.ts | 6 +++ .../transmog-sets/TableCategory.svelte | 37 +++++++++++++------ .../utils/transmog/get-filtered-sets.ts | 12 ++++-- 3 files changed, 40 insertions(+), 15 deletions(-) diff --git a/apps/frontend/shared/state/browser.svelte.ts b/apps/frontend/shared/state/browser.svelte.ts index fda59b444..29f278283 100644 --- a/apps/frontend/shared/state/browser.svelte.ts +++ b/apps/frontend/shared/state/browser.svelte.ts @@ -125,6 +125,9 @@ interface BrowserStateIdk { showCollected: boolean; showUncollected: boolean; }; + transmogSets: { + mythicOnly: boolean; + }; vendors: { filtersExpanded: boolean; @@ -282,6 +285,9 @@ const initialState: BrowserStateIdk = { showCollected: true, showUncollected: true, }, + transmogSets: { + mythicOnly: false, + }, vendors: { filtersExpanded: false, highlightMissing: true, diff --git a/apps/frontend/user-home/components/transmog-sets/TableCategory.svelte b/apps/frontend/user-home/components/transmog-sets/TableCategory.svelte index 9b4b35f11..3bb664211 100644 --- a/apps/frontend/user-home/components/transmog-sets/TableCategory.svelte +++ b/apps/frontend/user-home/components/transmog-sets/TableCategory.svelte @@ -3,6 +3,7 @@ import { Constants } from '@/data/constants'; import { transmogSets } from '@/data/transmog'; import { iconLibrary, uiIcons } from '@/shared/icons'; + import { browserState } from '@/shared/state/browser.svelte'; import { settingsState } from '@/shared/state/settings.svelte'; import { userStore } from '@/stores'; import { transmogSetsState } from '@/stores/local-storage'; @@ -15,6 +16,7 @@ import { tradingPostKeys } from './data'; + import CheckboxInput from '@/shared/components/forms/CheckboxInput.svelte'; import ClassIcon from '@/shared/components/images/ClassIcon.svelte'; import CovenantIcon from '@/shared/components/images/CovenantIcon.svelte'; import IconifyWrapper from '@/shared/components/images/IconifyWrapper.svelte'; @@ -36,6 +38,11 @@ ); let setKey = $derived(slugs.join('--')); + let raidWithMythic = $derived( + (category.name === 'Raids' || slugs.includes('raids')) && + category.groups.some((group) => group.sets.includes('Mythic')) + ); + const getTransmogSets = function (group: ManualDataTransmogGroup): TransmogSetData[] { if (group.type === 'multi') { return Object.keys(group.data).map( @@ -157,9 +164,7 @@ color: var(--color-success); } .percent { - position: absolute; - right: 0.5rem; - word-spacing: -0.2ch; + word-spacing: -0.3ch; } .percent-cell { --width: 3.4rem; @@ -193,13 +198,23 @@ - {category.name} - - {#if showPercent} - - {Math.floor(categoryPercent).toFixed(0)} % - - {/if} +
+ {category.name} + + {#if raidWithMythic} + Mythic only + {/if} + + {#if showPercent} + + {Math.floor(categoryPercent).toFixed(0)} % + + {/if} +
{#if currentType === 'covenant'} @@ -363,7 +378,7 @@ {/if} {#if isExpanded} - {#each getFilteredSets(settingsState.value, $userStore, group) as [setShow, setName], setIndex} + {#each getFilteredSets(settingsState.value, $userStore, group, raidWithMythic) as [setShow, setName], setIndex} {#if setShow} {@const setPercent = getPercent(groupIndex, setIndex)} diff --git a/apps/frontend/utils/transmog/get-filtered-sets.ts b/apps/frontend/utils/transmog/get-filtered-sets.ts index 9fda2a1db..878d34732 100644 --- a/apps/frontend/utils/transmog/get-filtered-sets.ts +++ b/apps/frontend/utils/transmog/get-filtered-sets.ts @@ -1,3 +1,4 @@ +import { browserState } from '@/shared/state/browser.svelte'; import type { Settings } from '@/shared/stores/settings/types'; import type { UserData } from '@/types'; import type { ManualDataTransmogGroup, ManualDataTransmogGroupData } from '@/types/data/manual'; @@ -6,12 +7,14 @@ export default function getFilteredSets( settings: Settings, userData: UserData, group: ManualDataTransmogGroup, + raidWithMythic: boolean ): [boolean, string][] { const ret: [boolean, string][] = []; const skipAlliance = !settings.transmog.showAllianceOnly; const skipHorde = !settings.transmog.showHordeOnly; const skipUnavailable = settings.collections.hideUnavailable; + const skipNonMythic = raidWithMythic && browserState.current.transmogSets.mythicOnly; for (let setIndex = 0; setIndex < group.sets.length; setIndex++) { const setName = group.sets[setIndex]; @@ -23,8 +26,9 @@ export default function getFilteredSets( setName.endsWith('*') && !hasAnyOfSets( userData, - Object.values(group.data).map((datas) => datas[setIndex]), - )) + Object.values(group.data).map((datas) => datas[setIndex]) + )) || + (skipNonMythic && setName !== 'Mythic') ), setName, ]); @@ -36,7 +40,7 @@ export default function getFilteredSets( function hasAnyOfSets(userData: UserData, sets: ManualDataTransmogGroupData[]): boolean { return sets.some((set) => Object.values(set.items || {}).some((itemIds) => - itemIds.some((itemId) => userData.hasAppearance.has(itemId)), - ), + itemIds.some((itemId) => userData.hasAppearance.has(itemId)) + ) ); } From 9593140f66fc8ef3ed566bd0fa15fbb5841e6ee4 Mon Sep 17 00:00:00 2001 From: Freddie Date: Sat, 11 Jul 2026 09:58:03 -0700 Subject: [PATCH 2/3] Add uiIcons.random --- apps/frontend/shared/icons/ui.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/frontend/shared/icons/ui.ts b/apps/frontend/shared/icons/ui.ts index 1129aea46..b2c43bd52 100644 --- a/apps/frontend/shared/icons/ui.ts +++ b/apps/frontend/shared/icons/ui.ts @@ -8,6 +8,7 @@ export const uiIcons = { no: iconLibrary.mdiClose, plus: iconLibrary.mdiPlus, question: iconLibrary.mdiQuestionMark, + random: iconLibrary.gameDiceRandom, starEmpty: iconLibrary.mdiStarOutline, starHalf: iconLibrary.mdiStarHalfFull, starFull: iconLibrary.mdiStarFace, From da7779897a5787a1d24c9492bc24fdda23077d89 Mon Sep 17 00:00:00 2001 From: Freddie Date: Sat, 11 Jul 2026 09:58:10 -0700 Subject: [PATCH 3/3] Fix active delves not falling back to 0 quality --- apps/frontend/components/home/view-switcher/Delves.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/frontend/components/home/view-switcher/Delves.svelte b/apps/frontend/components/home/view-switcher/Delves.svelte index 48a14614d..ee2f18c90 100644 --- a/apps/frontend/components/home/view-switcher/Delves.svelte +++ b/apps/frontend/components/home/view-switcher/Delves.svelte @@ -17,7 +17,7 @@ dynamicDelves.map(({ poiId, story }) => [ delveMap[poiId], story, - settingsState.value.delveRankings[`${poiId}:${story}`], + settingsState.value.delveRankings[`${poiId}:${story}`] || 0, ]) as [Delve, string, number][], ([delve, , ranking]) => `${9 - ranking}:${delve.shortName}` );