Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bfd0ad8fb7 |
@@ -1,5 +1,5 @@
|
||||
<script lang="ts">
|
||||
import { onMount, untrack, getContext } from 'svelte';
|
||||
import { onMount, getContext } from 'svelte';
|
||||
import { browser } from '$app/environment';
|
||||
import { goto } from '$app/navigation';
|
||||
import { page } from '$app/state';
|
||||
@@ -11,8 +11,9 @@
|
||||
|
||||
let { data }: { data: PageData } = $props();
|
||||
|
||||
let html = $state(untrack(() => data.html));
|
||||
let fetchingContent = $state(untrack(() => !data.isPreview && !data.html));
|
||||
let scrapedHtml = $state(''); // only set by the live-preview fallback
|
||||
let html = $derived(scrapedHtml || data.html || '');
|
||||
let fetchingContent = $state(false);
|
||||
let fetchError = $state('');
|
||||
let audioProRequired = $state(false);
|
||||
|
||||
@@ -202,8 +203,8 @@
|
||||
{ code: 'pt', label: 'PT' },
|
||||
{ code: 'fr', label: 'FR' }
|
||||
];
|
||||
let translationStatus = $state(untrack(() => data.translationStatus ?? 'idle'));
|
||||
let translatingLang = $state(untrack(() => data.lang ?? ''));
|
||||
let translationStatus = $state(data.translationStatus ?? 'idle');
|
||||
let translatingLang = $state(data.lang ?? '');
|
||||
let pollingTimer: ReturnType<typeof setTimeout> | null = null;
|
||||
|
||||
function currentLang() {
|
||||
@@ -293,6 +294,7 @@
|
||||
|
||||
// If the normal path returned no content, fall back to live preview scrape
|
||||
if (!data.isPreview && !data.html) {
|
||||
fetchingContent = true;
|
||||
(async () => {
|
||||
try {
|
||||
const res = await fetch(
|
||||
@@ -302,7 +304,7 @@
|
||||
const d = (await res.json()) as { text?: string };
|
||||
if (d.text) {
|
||||
const { marked } = await import('marked');
|
||||
html = await marked(d.text, { async: true });
|
||||
scrapedHtml = await marked(d.text, { async: true });
|
||||
} else {
|
||||
fetchError = m.reader_audio_error();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user