import React from 'react' import ProfileWorldHistorySummary from './ProfileWorldHistorySummary' import ProfileWorldTimelineList from './ProfileWorldTimelineList' function EmptyState({ isOwner, hasPrivateContext }) { return (

No public worlds timeline yet

{isOwner ? (hasPrivateContext ? 'Public world history appears here once a live, publicly visible submission or recognized placement is available. Until then, private-only world activity is still tracked for you above.' : 'Public world history appears here once a live, publicly visible submission or recognized placement is available.') : 'This creator does not have any public world participation or recognition to show yet.'}

) } function OwnerNote({ ownerContext }) { if (!ownerContext) { return null } const details = [ ownerContext.pending_submissions ? `${ownerContext.pending_submissions} pending submission${ownerContext.pending_submissions === 1 ? '' : 's'}` : null, ownerContext.removed_or_blocked_submissions ? `${ownerContext.removed_or_blocked_submissions} removed or blocked item${ownerContext.removed_or_blocked_submissions === 1 ? '' : 's'}` : null, ownerContext.hidden_public_entries ? `${ownerContext.hidden_public_entries} recognition${ownerContext.hidden_public_entries === 1 ? '' : 's'} hidden from public view` : null, ].filter(Boolean) if (details.length === 0) { return null } return (
Private View

Your public worlds timeline stays strict about visibility, but this profile still tracks {details.join(', ')}.

) } export default function ProfileWorldHistorySection({ history, isOwner }) { const entries = Array.isArray(history?.entries) ? history.entries : [] const highlights = Array.isArray(history?.highlights) ? history.highlights : [] const highlightIds = new Set(highlights.map((entry) => entry?.id).filter(Boolean)) const timelineEntries = entries.filter((entry) => !highlightIds.has(entry?.id)) const hasPrivateContext = Boolean( history?.owner_context?.pending_submissions || history?.owner_context?.removed_or_blocked_submissions || history?.owner_context?.hidden_public_entries ) const hasEntries = Boolean(history?.summary?.available) && entries.length > 0 return (
Worlds History

Recurring worlds, challenge outcomes, and standout editions

This timeline pulls together edition-aware world participation, featured placements, finalists, winners, and linked challenge results into one creator-facing history layer.

{hasEntries ? ( <> {highlights.length > 0 ? (
Highlights

The most recent and highest-signal world appearances surface first so recurring recognition reads like a creator recap, not just a raw list.

) : null} {timelineEntries.length > 0 ? (
Full Timeline

Every public world appearance, challenge-linked outcome, and edition-aware placement remains visible here in chronological order.

) : null} ) : ( )}
) }