import { useEffect } from "react"; import type { FullscreenState } from "../types/app"; import { TweetCard } from "./TweetCard"; interface FullscreenColumnProps { state: FullscreenState; onExit: () => void; onNavigate: (step: number) => void; onSwitchColumn: (step: number) => void; hasPrevColumn: boolean; hasNextColumn: boolean; onAddColumn: () => void; } export function FullscreenColumn({ state, onExit, onNavigate, onSwitchColumn, hasPrevColumn, hasNextColumn, onAddColumn, }: FullscreenColumnProps) { console.log({ state }); const tweet = state.tweets[state.index]; const hasTweets = state.tweets.length > 0; useEffect(() => { const handler = (event: KeyboardEvent) => { if (event.key === "Escape") { onExit(); return; } if (event.key === "ArrowDown") { event.preventDefault(); onNavigate(1); } if (event.key === "ArrowUp") { event.preventDefault(); onNavigate(-1); } if (event.key === "ArrowRight") { event.preventDefault(); if (hasNextColumn) { onSwitchColumn(1); } else { onAddColumn(); } } if (event.key === "ArrowLeft") { event.preventDefault(); if (hasPrevColumn) { onSwitchColumn(-1); } } }; window.addEventListener("keydown", handler); return () => window.removeEventListener("keydown", handler); }, [ onExit, onNavigate, onSwitchColumn, hasPrevColumn, hasNextColumn, onAddColumn, ]); return (
{state.columnLabel}@{state.column.account}
{hasTweets ? `${state.index + 1} / ${state.tweets.length}` : "0 / 0"}
No tweets loaded for this column yet.
Try refreshing the column or exit fullscreen.