import { useEffect, useState } from 'react' export default function FeedPicker({ selected, setSelected, apiBase = '/api', }: { selected: string[] setSelected: (s: string[]) => void apiBase?: string }) { const [defaults, setDefaults] = useState>({}) // const [custom, setCustom] = useState('') // Temporarily disabled useEffect(() => { let cancelled = false fetch(`${apiBase}/defaults`).then(r => r.json()).then((data: Record) => { if (cancelled) return setDefaults(data) // Default select all if none selected yet if (selected.length === 0) { const all = Object.values(data) setSelected(all) } }).catch(console.error) return () => { cancelled = true } }, [apiBase]) function toggle(url: string) { setSelected(selected.includes(url) ? selected.filter(u => u !== url) : [...selected, url]) } // function addCustom() { // Temporarily disabled // try { // const url = new URL(custom).toString() // if (!selected.includes(url)) setSelected([...selected, url]) // setCustom('') // } catch { /* ignore invalid */ } // } return (

Sources

{Object.entries(defaults).map(([name, url]) => ( ))}
{/* Custom RSS URL input - temporarily disabled */} {/*
setCustom(e.target.value)} />
*/}
) }