This repository has no description
1import type { ReaderContent } from '@/app/api/reader/route';
2
3export type ReaderState =
4 | { status: 'idle' }
5 | { status: 'loading' }
6 | { status: 'error'; message: string }
7 | { status: 'success'; data: ReaderContent };
8
9export async function fetchReaderContent(
10 url: string,
11 setState: (state: ReaderState) => void,
12): Promise<void> {
13 setState({ status: 'loading' });
14 try {
15 const res = await fetch(`/api/reader?url=${encodeURIComponent(url)}`);
16 const json = await res.json();
17 if (!res.ok) {
18 setState({ status: 'error', message: json.error ?? 'Unknown error' });
19 return;
20 }
21 setState({ status: 'success', data: json as ReaderContent });
22 } catch (err) {
23 const message =
24 err instanceof Error ? err.message : 'Failed to load reader content';
25 setState({ status: 'error', message });
26 }
27}