import React from 'react' import WorldCampaignMeta from './WorldCampaignMeta' import WorldStatusBadge from './WorldStatusBadge' function styleForWorld(world) { return { '--world-accent': world?.theme?.accent_color || '#38bdf8', '--world-accent-secondary': world?.theme?.accent_color_secondary || '#0f172a', } } function resolvedIconName(world) { const icon = String(world?.icon_name || '').trim() if (icon.startsWith('fa-')) { return icon } const themeIcon = String(world?.theme?.icon_name || '').trim() return themeIcon.startsWith('fa-') ? themeIcon : 'fa-solid fa-globe' } export default function WorldHero({ world, previewMode = false }) { if (!world) { return null } const themeIconName = resolvedIconName(world) return (
{world.cover_url ? {world.title} : null}
{previewMode ?
Preview Mode
: null}
{(Array.isArray(world.status_badges) ? world.status_badges : []).map((badge) => )} {world.campaign_label ? : null} {world.badge_label ? : null}

{world.title}

{world.tagline ?

{world.tagline}

: null} {world.summary ?

{world.summary}

: null} {world.description ? (
) : null}
{world.cta_url || world.challenge_cta_url ? {world.cta_label || world.challenge_cta_label || 'Explore'} : null}
{world.is_recurring ? (
{world.family_url ? Family route : null} {!world.is_canonical_edition && world.edition_url ? Edition archive link : null}
) : null} {Array.isArray(world.related_tags) && world.related_tags.length > 0 ? (
{world.related_tags.map((tag) => ( #{tag} ))}
) : null}
) }