MCPcopy
hub / github.com/codeaashu/claude-code / handleAdd

Function handleAdd

src/commands/plugin/AddMarketplace.tsx:45–111  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

43 const [isLoading, setLoading] = useState(false);
44 const [progressMessage, setProgressMessage] = useState<string>('');
45 const handleAdd = async () => {
46 const input = inputValue.trim();
47 if (!input) {
48 setError('Please enter a marketplace source');
49 return;
50 }
51 const parsed = await parseMarketplaceInput(input);
52 if (!parsed) {
53 setError('Invalid marketplace source format. Try: owner/repo, https://..., or ./path');
54 return;
55 }
56
57 // Check if parseMarketplaceInput returned an error
58 if ('error' in parsed) {
59 setError(parsed.error);
60 return;
61 }
62 setError(null);
63 try {
64 setLoading(true);
65 setProgressMessage('');
66 const {
67 name,
68 resolvedSource
69 } = await addMarketplaceSource(parsed, message => {
70 setProgressMessage(message);
71 });
72 saveMarketplaceToSettings(name, {
73 source: resolvedSource
74 });
75 clearAllCaches();
76 let sourceType = parsed.source;
77 if (parsed.source === 'github') {
78 sourceType = parsed.repo as AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS;
79 }
80 logEvent('tengu_marketplace_added', {
81 source_type: sourceType as AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS
82 });
83 if (onAddComplete) {
84 await onAddComplete();
85 }
86 setProgressMessage('');
87 setLoading(false);
88 if (cliMode) {
89 // In CLI mode, set result to trigger completion
90 setResult(`Successfully added marketplace: ${name}`);
91 } else {
92 // In interactive mode, switch to browse view
93 setViewState({
94 type: 'browse-marketplace',
95 targetMarketplace: name
96 });
97 }
98 } catch (err) {
99 const error = toError(err);
100 logError(error);
101 setError(error.message);
102 setProgressMessage('');

Callers 1

AddMarketplaceFunction · 0.70

Calls 7

parseMarketplaceInputFunction · 0.85
addMarketplaceSourceFunction · 0.85
clearAllCachesFunction · 0.85
logEventFunction · 0.85
toErrorFunction · 0.85
logErrorFunction · 0.50

Tested by

no test coverage detected