import { useCallback, useEffect } from 'react'; import { FeedModal } from '@app/space/components/modals/feed'; import { HashtagModal } from '@app/space/components/modals/hashtag'; import { ImageModal } from '@app/space/components/modals/image'; import { FeedBlock } from '@app/space/components/widgets/feed'; import { HashtagBlock } from '@app/space/components/widgets/hashtag'; import { NetworkBlock } from '@app/space/components/widgets/network'; import { ThreadBlock } from '@app/space/components/widgets/thread'; import { UserBlock } from '@app/space/components/widgets/user'; import { useStorage } from '@libs/storage/provider'; import { LoaderIcon } from '@shared/icons'; import { useWidgets } from '@stores/widgets'; import { Widget } from '@utils/types'; export function SpaceScreen() { const { db } = useStorage(); const [widgets, fetchWidgets] = useWidgets((state) => [ state.widgets, state.fetchWidgets, ]); const renderItem = useCallback( (widget: Widget) => { switch (widget.kind) { case 1: return ; case 2: return ; case 3: return ; case 5: return ; case 9999: return ; default: break; } }, [widgets] ); useEffect(() => { fetchWidgets(db); }, [fetchWidgets]); return (
{!widgets ? (
) : ( widgets.map((widget) => renderItem(widget)) )}
); }