feat(FontComparer): create FontComparer component that loads fonts and displays ComparisonSlider
This commit is contained in:
28
src/features/DisplayFont/ui/FontComparer/FontComparer.svelte
Normal file
28
src/features/DisplayFont/ui/FontComparer/FontComparer.svelte
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
import { appliedFontsManager } from '$entities/Font';
|
||||||
|
import { Input } from '$shared/shadcn/ui/input';
|
||||||
|
import { ComparisonSlider } from '$shared/ui';
|
||||||
|
import { displayedFontsStore } from '../../model';
|
||||||
|
import PairSelector from '../PairSelector/PairSelector.svelte';
|
||||||
|
|
||||||
|
let displayedText = $state('The quick brown fox jumps over the lazy dog...');
|
||||||
|
const [fontA, fontB] = $derived(displayedFontsStore.selectedPair);
|
||||||
|
const hasAnyPairs = $derived(displayedFontsStore.fonts.length > 0);
|
||||||
|
|
||||||
|
$effect(() => {
|
||||||
|
appliedFontsManager.touch(displayedFontsStore.fonts.map(font => font.id));
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
{#if hasAnyPairs}
|
||||||
|
<div class="flex flex-col gap-4">
|
||||||
|
<div class="flex flex-row gap-4">
|
||||||
|
<Input bind:value={displayedText} />
|
||||||
|
<PairSelector />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{#if fontA && fontB}
|
||||||
|
<ComparisonSlider fontA={fontA} fontB={fontB} text={displayedText} />
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
@@ -2,11 +2,14 @@
|
|||||||
Component: FontDisplay
|
Component: FontDisplay
|
||||||
Displays a grid of FontSampler components for each displayed font.
|
Displays a grid of FontSampler components for each displayed font.
|
||||||
-->
|
-->
|
||||||
<script>
|
<script lang="ts">
|
||||||
import { displayedFontsStore } from '../../model';
|
import { displayedFontsStore } from '../../model';
|
||||||
|
import FontComparer from '../FontComparer/FontComparer.svelte';
|
||||||
import FontSampler from '../FontSampler/FontSampler.svelte';
|
import FontSampler from '../FontSampler/FontSampler.svelte';
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<FontComparer />
|
||||||
|
|
||||||
<div class="grid gap-2 grid-cols-[repeat(auto-fit,minmax(500px,1fr))]">
|
<div class="grid gap-2 grid-cols-[repeat(auto-fit,minmax(500px,1fr))]">
|
||||||
{#each displayedFontsStore.fonts as font (font.id)}
|
{#each displayedFontsStore.fonts as font (font.id)}
|
||||||
<FontSampler font={font} bind:text={displayedFontsStore.text} />
|
<FontSampler font={font} bind:text={displayedFontsStore.text} />
|
||||||
|
|||||||
Reference in New Issue
Block a user