import { useCallback } from 'react'; import { useStorage } from '@libs/storage/provider'; import { ArticleIcon, FileIcon, FollowsIcon, GroupFeedsIcon, HashtagIcon, TrendingIcon, } from '@shared/icons'; import { TitleBar } from '@shared/titleBar'; import { DefaultWidgets, WidgetKinds, useWidgets } from '@stores/widgets'; import { Widget, WidgetGroup, WidgetGroupItem } from '@utils/types'; export function WidgetList({ params }: { params: Widget }) { const { db } = useStorage(); const [setWidget, removeWidget] = useWidgets((state) => [ state.setWidget, state.removeWidget, ]); const openWidget = (widget: WidgetGroupItem) => { setWidget(db, { kind: widget.kind, title: widget.title, content: '' }); removeWidget(db, params.id); }; const renderIcon = useCallback( (kind: number) => { switch (kind) { case WidgetKinds.tmp.xfeed: return ; case WidgetKinds.local.follows: return ; case WidgetKinds.local.files: case WidgetKinds.global.files: return ; case WidgetKinds.local.articles: case WidgetKinds.global.articles: return ; case WidgetKinds.tmp.xhashtag: return ; case WidgetKinds.nostrBand.trendingAccounts: case WidgetKinds.nostrBand.trendingNotes: return ; default: return ''; } }, [DefaultWidgets] ); const renderItem = useCallback( (row: WidgetGroup) => { return (

{row.title}

{row.data.map((item, index) => ( ))}
); }, [DefaultWidgets] ); return (
{DefaultWidgets.map((row: WidgetGroup) => renderItem(row))}
); }