+
+ {JSON.stringify(data, null, 2)}
+
+
+ );
+
+ const reportRenderers = {
+ 'market': renderMarketReport,
+ 'fundamentals': renderFundamentalsReport,
+ // Add other specific renderers here
+ };
+
+ const tabItems = Object.entries(reports)
+ .filter(([key, data]) => data && !data.error)
+ .map(([key, data]) => {
+ const renderer = reportRenderers[key] || renderGenericReport;
+ // Capitalize first letter for label
+ const label = key.charAt(0).toUpperCase() + key.slice(1).replace('_', ' ');
+ return {
+ key: key,
+ label: `${label} 리포트`,
+ children: renderer(data),
+ };
+ });
+
+ const getTagColor = (proposal) => {
+ switch (proposal?.toUpperCase()) {
+ case 'BUY': return 'green';
+ case 'SELL': return 'red';
+ case 'HOLD': return 'blue';
+ default: return 'default';
+ }
+ }
return (
-