diff --git a/frontend/src/pages/front/MarketPage.tsx b/frontend/src/pages/front/MarketPage.tsx index 9f71abf..5f0f2c4 100644 --- a/frontend/src/pages/front/MarketPage.tsx +++ b/frontend/src/pages/front/MarketPage.tsx @@ -870,7 +870,7 @@ interface HubImportModalProps { appType: 'skill' | 'mcp'; platforms: typeof skillsHubPlatforms; onClose: () => void; - onImport: (platformName: string, url: string, skillName: string, price?: number) => void; + onImport: (platformName: string, url: string, skillName: string, price?: number, description?: string) => void; } const HubImportModal: React.FC = ({ appType, platforms, onClose, onImport }) => { @@ -884,6 +884,8 @@ const HubImportModal: React.FC = ({ appType, platforms, onC const [hubCode, setHubCode] = useState(''); const [hubCodeVerifyResult, setHubCodeVerifyResult] = useState<'idle' | 'checking' | 'pass' | 'fail'>('idle'); const [hubCodeVerifyMsg, setHubCodeVerifyMsg] = useState(''); + const [hubName, setHubName] = useState(''); + const [hubDescription, setHubDescription] = useState(''); const handleVisit = (url: string) => { window.open(url, '_blank'); @@ -908,9 +910,10 @@ const HubImportModal: React.FC = ({ appType, platforms, onC const handleImport = (platformId: string) => { const url = importUrl[platformId]; - // For Skills: require URL; for MCP: require code verification pass + // For Skills: require URL; for MCP: require code verification pass + name if (appType === 'skill' && !url?.trim()) return; if (appType === 'mcp' && hubCodeVerifyResult !== 'pass') return; + if (appType === 'mcp' && !hubName.trim()) return; setImportingId(platformId); setImportStatus('verifying'); setStatusMsg(appType === 'mcp' ? '正在验证代码...' : '正在验证URL链接...'); @@ -930,13 +933,16 @@ const HubImportModal: React.FC = ({ appType, platforms, onC setStatusMsg(step.msg); if (step.status === 'published') { setTimeout(() => { - onImport(platformId, appType === 'mcp' ? hubCode : url, extractSkillName(url, platformId), importPrice); + const name = appType === 'skill' ? (hubName || extractSkillName(url || '', platformId)) : hubName; + onImport(platformId, appType === 'mcp' ? hubCode : (url || ''), name, importPrice, hubDescription); setImportingId(null); setImportStatus('idle'); setImportUrl(prev => ({ ...prev, [platformId]: '' })); setHubCode(''); setHubCodeVerifyResult('idle'); setHubCodeVerifyMsg(''); + setHubName(''); + setHubDescription(''); }, 1000); } }, delay); @@ -974,6 +980,28 @@ const HubImportModal: React.FC = ({ appType, platforms, onC + {/* Name & Description */} +
+ + setHubName(e.target.value)} + /> +
+
+ +