Add NLT, CSB and NASB via api.bible proxy; new app logo and icons
Build and Push Docker Image / build-and-push (push) Failing after 21s

Reader and Reading Plans get a translation picker. Licensed translations are
fetched through a server-side api.bible proxy so the key stays off the client.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
nmemmertandClaude Sonnet 5.5 committed 2026-09-29 08:37:48 -04:00
1 parent 986d2e9331
commit 22c80d2bc3
13 files changed
+209 -20

No files matched your search

+12
View File
@@ -1,5 +1,6 @@
import { useRef, useState } from 'react';
import { useApp } from '../context/AppContext.js';
import { READER_TRANSLATIONS } from '../hooks/useBibleReader.js';
import AuthStatus from '../components/AuthStatus.jsx';
import { bookOptions, CHAPTER_COUNTS, formatRelativeDate } from '../utils/bibleUtils.jsx';
import {
@@ -42,6 +43,7 @@ export default function ReadingPlansPage() {
readingPlanSyncStatus,
readingPlanSyncError,
retryReadingPlanSync,
readerTranslation, setReaderTranslation,
} = useApp();
const [builderMode, setBuilderMode] = useState(null); // null | 'new' | a custom plan id to edit
@@ -70,6 +72,16 @@ export default function ReadingPlansPage() {
)}
</div>
<div className="flex items-center gap-3">
<label className="text-sm text-slate-300">
Read in{' '}
<select
value={readerTranslation}
onChange={(e) => setReaderTranslation(e.target.value)}
className="rounded-xl border border-slate-500 bg-slate-800 px-2 py-1.5 text-sm text-white"
>
{READER_TRANSLATIONS.map((t) => <option key={t.id} value={t.id}>{t.id}</option>)}
</select>
</label>
<button
type="button"
onClick={goHome}