import { useState, useEffect, useRef, useCallback } from 'react'; import { useGameStore } from '@/store'; import { formatNumber, formatMoney, formatPercent } from '@token-empire/shared'; import { Boxes, Check } from 'lucide-react'; function useAppliedFeedback() { const [show, setShow] = useState(false); const timerRef = useRef>(undefined); const trigger = useCallback(() => { setShow(true); clearTimeout(timerRef.current); timerRef.current = setTimeout(() => setShow(false), 1200); }, []); useEffect(() => () => clearTimeout(timerRef.current), []); return { show, trigger }; } export function DeveloperEcosystemPanel() { const devEco = useGameStore((s) => s.market.developerEcosystem); const setDevRelSpending = useGameStore((s) => s.setDevRelSpending); const feedback = useAppliedFeedback(); const metrics = [ { label: 'Community Size', value: formatNumber(devEco.communitySize), sub: `Growth: ${devEco.communityGrowthRate.toFixed(2)}/t` }, { label: 'Active Developers', value: formatNumber(devEco.activeDevelopers), sub: `${devEco.communitySize > 0 ? formatPercent(devEco.activeDevelopers / devEco.communitySize) : '0%'} active` }, { label: 'SDK Coverage', value: formatPercent(devEco.sdkCoverage), sub: 'Hire engineers to improve' }, { label: 'Doc Quality', value: formatPercent(devEco.documentationQuality), sub: 'Increase dev-rel spending' }, ]; return (
Developer Ecosystem
Ecosystem Score: {devEco.ecosystemScore.toFixed(1)}/100
{metrics.map(m => (
{m.label}
{m.value}
{m.sub}
))}

Flywheel Effects

Startups using your API {formatNumber(devEco.startupsAdopted)}
Enterprise referrals generated {formatNumber(devEco.enterpriseReferrals)}
Open-source contributions {devEco.openSourceContributions}
Free tier generosity attracts devs, who build startups on your API, which generates enterprise referrals.

Dev-Rel Budget {feedback.show && Applied}

{ setDevRelSpending(Number(e.target.value)); feedback.trigger(); }} className="w-full bg-surface-800 border border-surface-600 rounded px-3 py-1.5 text-sm font-mono focus:outline-none focus:ring-2 focus:ring-accent/50" min={0} step={0.1} />

Dev-rel spending improves documentation quality and community engagement.

Current cost: {formatMoney(devEco.devRelSpending)}/s

); }