import { useCallback, useEffect } from 'react'; import { FeedBlock } from '@app/space/components/blocks/feed'; import { HashtagBlock } from '@app/space/components/blocks/hashtag'; import { ImageBlock } from '@app/space/components/blocks/image'; import { NetworkBlock } from '@app/space/components/blocks/network'; import { ThreadBlock } from '@app/space/components/blocks/thread'; import { UserBlock } from '@app/space/components/blocks/user'; 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 { LoaderIcon } from '@shared/icons'; import { useWidgets } from '@stores/widgets'; import { Widget } from '@utils/types'; export function SpaceScreen() { const [widgets, fetchWidgets] = useWidgets((state) => [ state.widgets, state.fetchWidgets, ]); const renderItem = useCallback( (widget: Widget) => { switch (widget.kind) { case 0: return ; case 1: return ; case 2: return ; case 3: return ; case 5: return ; default: break; } }, [widgets] ); useEffect(() => { fetchWidgets(); }, [fetchWidgets]); return (
{!widgets ? (
) : ( widgets.map((widget) => renderItem(widget)) )}
); }