From 20222139215f833c88b0608dc4edfb46e6f82cea Mon Sep 17 00:00:00 2001 From: Ilia Mashkov Date: Mon, 26 Jan 2026 12:56:35 +0300 Subject: [PATCH] feat(displayedFontsStore): fix store to work with fontA and fontB to compare --- .../model/store/displayedFontsStore.svelte.ts | 36 ++++++++----------- 1 file changed, 14 insertions(+), 22 deletions(-) diff --git a/src/features/DisplayFont/model/store/displayedFontsStore.svelte.ts b/src/features/DisplayFont/model/store/displayedFontsStore.svelte.ts index e79a886..e9d8b31 100644 --- a/src/features/DisplayFont/model/store/displayedFontsStore.svelte.ts +++ b/src/features/DisplayFont/model/store/displayedFontsStore.svelte.ts @@ -15,18 +15,9 @@ export class DisplayedFontsStore { return selectedFontsStore.all; }); - #fontPairs = $derived.by(() => { - const fonts = this.#displayedFonts; - const pairs = fonts.flatMap((v1, i) => - fonts.slice(i + 1).map<[UnifiedFont, UnifiedFont]>(v2 => [v1, v2]) - ); - if (pairs.length && this.isSelectedPairEmpty()) { - this.selectedPair = pairs[0]; - } - return pairs; - }); + #fontA = $state(undefined); - #selectedPair = $state>([]); + #fontB = $state(undefined); #hasAnySelectedFonts = $derived(this.#displayedFonts.length > 0); @@ -34,18 +25,20 @@ export class DisplayedFontsStore { return this.#displayedFonts; } - get pairs() { - return this.#fontPairs; + get fontA() { + return this.#fontA ?? this.#displayedFonts[0]; } - get selectedPair() { - return this.#selectedPair; + set fontA(font: UnifiedFont | undefined) { + this.#fontA = font; } - set selectedPair(pair: Partial<[UnifiedFont, UnifiedFont]>) { - const [first, second] = this.#selectedPair; - const [newFist, newSecond] = pair; - this.#selectedPair = [newFist ?? first, newSecond ?? second]; + get fontB() { + return this.#fontB ?? this.#displayedFonts[1]; + } + + set fontB(font: UnifiedFont | undefined) { + this.#fontB = font; } get text() { @@ -60,9 +53,8 @@ export class DisplayedFontsStore { return this.#hasAnySelectedFonts; } - isSelectedPairEmpty(): boolean { - const [font1, font2] = this.#selectedPair; - return !font1 || !font2; + getById(id: string): UnifiedFont | undefined { + return selectedFontsStore.getById(id); } }