import { Antenas } from "@columns/antenas"; import { Default } from "@columns/default"; import { ForYou } from "@columns/foryou"; import { Group } from "@columns/group"; import { Hashtag } from "@columns/hashtag"; import { Thread } from "@columns/thread"; import { Timeline } from "@columns/timeline"; import { TrendingNotes } from "@columns/trending-notes"; import { User } from "@columns/user"; import { useColumnContext } from "@lume/ark"; import { ArrowLeftIcon, ArrowRightIcon, PlusIcon, PlusSquareIcon, } from "@lume/icons"; import { IColumn } from "@lume/types"; import { TutorialModal } from "@lume/ui/src/tutorial/modal"; import { COL_TYPES } from "@lume/utils"; import * as Tooltip from "@radix-ui/react-tooltip"; import { useState } from "react"; import { useTranslation } from "react-i18next"; import { VList } from "virtua"; export function HomeScreen() { const { t } = useTranslation(); const { columns, vlistRef, addColumn } = useColumnContext(); const [selectedIndex, setSelectedIndex] = useState(-1); const renderItem = (column: IColumn) => { switch (column.kind) { case COL_TYPES.default: return ; case COL_TYPES.newsfeed: return ; case COL_TYPES.foryou: return ; case COL_TYPES.thread: return ; case COL_TYPES.user: return ; case COL_TYPES.hashtag: return ; case COL_TYPES.group: return ; case COL_TYPES.antenas: return ; case COL_TYPES.trendingNotes: return ; default: return ; } }; return (
{ if (!vlistRef.current) return; switch (e.code) { case "ArrowUp": case "ArrowLeft": { e.preventDefault(); const prevIndex = Math.max(selectedIndex - 1, 0); setSelectedIndex(prevIndex); vlistRef.current.scrollToIndex(prevIndex, { align: "center", smooth: true, }); break; } case "ArrowDown": case "ArrowRight": { e.preventDefault(); const nextIndex = Math.min(selectedIndex + 1, columns.length - 1); setSelectedIndex(nextIndex); vlistRef.current.scrollToIndex(nextIndex, { align: "center", smooth: true, }); break; } default: break; } }} > {columns.map((column) => renderItem(column))}
{t("global.moveLeft")} {t("global.moveRight")} {t("global.newColumn")}
); }