import {Link} from 'react-router-dom'; import {useTranslation} from 'react-i18next'; import {Hash, LayoutGrid, Link2, RefreshCw} from 'lucide-react'; import {Badge} from '@/components/ui/badge'; import {Button} from '@/components/ui/button'; import {Card} from '@/components/ui/card'; import {cn} from '@/lib/utils'; import HeroBanner from './HeroBanner.jsx'; import FitText from './FitText.jsx'; import PointsBadge from './PointsBadge.jsx'; import SteamAvatar from './SteamAvatar.jsx'; import SyncStatusBadge from './SyncStatusBadge.jsx'; import {useCurrentUserContext} from '../context/CurrentUserContext.jsx'; import {bannerEffect, lookClass} from '../utils/rewards.js'; // canSync: a Steam ID or a PlayStation link; the sync controls follow it, the Steam ID badge only the Steam ID. export default function DashboardWelcomeCard({bannerAppid, avatarUrl, sync, forceSync, canSync, editing, onCustomize, equipped}) { const {t} = useTranslation(); const {user: userData} = useCurrentUserContext(); const hasSteamId = !!userData?.steamId; const showSync = canSync ?? hasSteamId; const syncBusy = forceSync.busy || sync.isRunning; return ( {/* A picked game, else the game played most in the last two weeks. */}
{/* The slot is there before the avatar loads, so the title does not jump. */} {hasSteamId && ( )}

{t('DASHBOARD.WELCOME_BACK')}

{hasSteamId ? ( {userData.steamId} ) : ( )}
{showSync && ( <> )}
); }