From 996767341528b94f452962d9d4ce8c47512b5a4d Mon Sep 17 00:00:00 2001 From: Kyleasmth <45497561+Kyleasmth@users.noreply.github.com> Date: Fri, 13 Feb 2026 14:53:03 -0800 Subject: [PATCH 1/6] feat(ui): Font family handling in BibleReader and related components to use new constants for 'Inter' and 'Source Serif 4'. --- .../src/components/bible-reader.stories.tsx | 9 ++++---- packages/ui/src/components/bible-reader.tsx | 21 ++++++++++--------- .../ui/src/components/bible-widget-view.tsx | 2 +- packages/ui/src/components/verse.tsx | 5 +++-- packages/ui/src/lib/verse-html-utils.ts | 4 ++++ packages/ui/src/styles/bible-reader.css | 5 ++++- packages/ui/src/styles/global.css | 4 ++-- 7 files changed, 30 insertions(+), 20 deletions(-) diff --git a/packages/ui/src/components/bible-reader.stories.tsx b/packages/ui/src/components/bible-reader.stories.tsx index aae01dd2..6c7cc5a7 100644 --- a/packages/ui/src/components/bible-reader.stories.tsx +++ b/packages/ui/src/components/bible-reader.stories.tsx @@ -2,6 +2,7 @@ import type { Meta, StoryObj } from '@storybook/react-vite'; import { expect, fn, screen, spyOn, userEvent, waitFor } from 'storybook/test'; import { BibleReader } from './bible-reader'; import { setupAuthenticatedUser } from '../test/utils'; +import { SOURCE_SERIF_FONT } from '@/lib/verse-html-utils'; let signInMock: ReturnType; @@ -45,7 +46,7 @@ const meta: Meta = { }, fontFamily: { control: 'select', - options: ['Source Serif Pro', 'Inter', "'Georgia', serif", "'Nunito Sans', sans-serif"], + options: [SOURCE_SERIF_FONT, 'Inter', "'Georgia', serif", "'Nunito Sans', sans-serif"], description: 'Font family', }, showVerseNumbers: { @@ -127,7 +128,7 @@ export const Default: Story = { await userEvent.click(sourceSerifButton); await expect(localStorage.getItem('youversion-platform:reader:font-family')).toBe( - 'Source Serif', + SOURCE_SERIF_FONT, ); await userEvent.click(interButton); @@ -501,7 +502,7 @@ export const LoadsSavedPreferencesFromLocalStorage: Story = { localStorage.clear(); // Pre-populate localStorage with saved preferences localStorage.setItem('youversion-platform:reader:font-size', '18'); - localStorage.setItem('youversion-platform:reader:font-family', 'Source Serif'); + localStorage.setItem('youversion-platform:reader:font-family', SOURCE_SERIF_FONT); }, render: (args) => (
@@ -526,7 +527,7 @@ export const LoadsSavedPreferencesFromLocalStorage: Story = { )!; await expect(verseContainer.style.getPropertyValue('--yv-reader-font-size')).toBe('18px'); await expect(verseContainer.style.getPropertyValue('--yv-reader-font-family')).toBe( - 'Source Serif', + SOURCE_SERIF_FONT, ); // Open settings and verify the correct font family button is active diff --git a/packages/ui/src/components/bible-reader.tsx b/packages/ui/src/components/bible-reader.tsx index b83cdd94..9b3fa285 100644 --- a/packages/ui/src/components/bible-reader.tsx +++ b/packages/ui/src/components/bible-reader.tsx @@ -27,6 +27,7 @@ import { PersonIcon } from './icons/person'; import { Button } from './ui/button'; import { Popover, PopoverContent, PopoverTrigger } from './ui/popover'; import { BibleTextView } from './verse'; +import { INTER_FONT, SOURCE_SERIF_FONT, type FontFamily } from '@/lib/verse-html-utils'; type BibleReaderContextType = { book: string; @@ -35,8 +36,8 @@ type BibleReaderContextType = { setBook: React.Dispatch>; setChapter: React.Dispatch>; setVersionId: React.Dispatch>; - currentFontFamily: string; - setCurrentFontFamily: React.Dispatch>; + currentFontFamily: FontFamily; + setCurrentFontFamily: React.Dispatch>; currentFontSize: number; setCurrentFontSize: React.Dispatch>; lineHeight?: number; @@ -64,7 +65,7 @@ export type RootProps = { versionId?: number; defaultVersionId?: number; onVersionChange?: (versionId: number) => void; - fontFamily?: string; + fontFamily?: FontFamily; fontSize?: number; lineHeight?: number; showVerseNumbers?: boolean; @@ -86,7 +87,7 @@ function Root({ versionId: controlledVersionId, defaultVersionId = DEFAULT_LICENSE_FREE_BIBLE_VERSION, onVersionChange, - fontFamily = 'Inter', + fontFamily = SOURCE_SERIF_FONT, fontSize = DEFAULT_FONT_SIZE, lineHeight, showVerseNumbers = true, @@ -396,18 +397,18 @@ function Toolbar({ border = 'top' }: { border?: 'top' | 'bottom' }) {