import { Account } from '@/db' import { TextInput } from 'flowbite-react' import { Entity, MegalodonInterface } from 'megalodon' import { useEffect, useState } from 'react' import { Virtuoso } from 'react-virtuoso' import Status from './status/Status' type Props = { timeline: string account: Account client: MegalodonInterface } export default function Timeline(props: Props) { const [statuses, setStatuses] = useState>([]) useEffect(() => { const f = async () => { const res = await loadTimeline(props.timeline, props.client) setStatuses(res) } f() }, [props.timeline, props.client]) const loadTimeline = async (tl: string, client: MegalodonInterface, maxId?: string): Promise> => { let options = { limit: 30 } if (maxId) { options = Object.assign({}, options, { max_id: maxId }) } switch (tl) { case 'home': { const res = await client.getHomeTimeline(options) return res.data } case 'local': { const res = await client.getLocalTimeline(options) return res.data } case 'public': { const res = await client.getPublicTimeline(options) return res.data } default: { return [] } } } return (
{props.timeline}
} />
) }