import { useEffect, useState } from 'react'; import { useBootstrapTickers, useTickerUniverseSetting, useUpdateTickerUniverseSetting, } from '../../hooks/useAdmin'; import type { TickerUniverse } from '../../lib/types'; import { Dropdown } from '../ui/Dropdown'; const UNIVERSE_OPTIONS: Array<{ value: TickerUniverse; label: string }> = [ { value: 'sp500', label: 'S&P 500' }, { value: 'nasdaq100', label: 'NASDAQ 100' }, { value: 'nasdaq_all', label: 'NASDAQ All' }, ]; export function TickerUniverseBootstrap() { const { data, isLoading, isError, error } = useTickerUniverseSetting(); const updateDefault = useUpdateTickerUniverseSetting(); const bootstrap = useBootstrapTickers(); const [universe, setUniverse] = useState('sp500'); const [pruneMissing, setPruneMissing] = useState(false); useEffect(() => { if (data?.universe) { setUniverse(data.universe); } }, [data]); const onSaveDefault = () => { updateDefault.mutate(universe); }; const onBootstrap = () => { bootstrap.mutate({ universe, pruneMissing }); }; return (

Ticker Universe Discovery

Auto-discover tickers from a predefined universe and keep your registry updated.

{isError && (

{(error as Error)?.message || 'Failed to load ticker universe setting'}

)}
); }