import { HydratedStatus } from "../types.ts"; interface HomePageProps { currentUser: { isAuthenticated: boolean; handle?: string; }; statuses: HydratedStatus[]; userTimezone?: string; } const statusOptions = [ "👍", "👎", "💙", "❤️", "😍", "🤩", "😎", "🤔", "😴", "🎉", "🔥", "💯", "✨", "⭐", "🌟", "🚀", "💪", "🙌", "👏", "🤝", "🤗", "😊", "😄", "😆", "😂", "🥳", "🤯", "😱", "😭", "💔", "🙏", "🤞", "👀", "🧠", "💡", ]; export function HomePage({ currentUser, statuses, userTimezone }: HomePageProps) { return (

How are you feeling?

{statusOptions.map((emoji) => ( ))}
Setting status...

Recent Statuses

); } interface StatusTimelineProps { statuses: HydratedStatus[]; userTimezone?: string; } export function StatusTimeline({ statuses, userTimezone }: StatusTimelineProps) { return (
{statuses.length === 0 ? (

No statuses yet. Be the first to share!

) : (
{statuses.map((status) => { const authorHandle = status.author?.handle || status.did?.split(":").pop() || "unknown"; const createdAtDate = new Date(status.value.createdAt); const formatOptions: Intl.DateTimeFormatOptions = { year: 'numeric', month: 'short', day: 'numeric', hour: 'numeric', minute: '2-digit', hour12: true }; // Use user's timezone if available, otherwise let browser decide if (userTimezone) { formatOptions.timeZone = userTimezone; } const createdAt = new Intl.DateTimeFormat('en-US', formatOptions).format(createdAtDate); return (
{status.value.status}
@{authorHandle} • {createdAt}
); })}
)}
); }