feat(chat): integrate Epic 2, 3, 4 widgets into chat interface

- Create 5 widget wrappers for inline chat display:
  * WhaleActivityWidget - Wraps WhaleActivityFeed for whale transaction display
  * TradingSuggestionWidget - Wraps TradingSuggestionPanel for entry/exit suggestions
  * PortfolioWidget - Wraps PortfolioPanel for portfolio tracking
  * ChartCaptureWidget - Wraps ChartCapturePanel for chart screenshots
  * ThreadGeneratorWidget - Wraps ThreadGeneratorPanel for Twitter threads

- Update widgets/index.ts to export new widgets with Epic grouping

- Update ChatMessages.tsx:
  * Add 5 new widget types to MessageWidget union
  * Import new widget components and their types
  * Add renderWidget cases for all new widgets with proper callbacks
  * Update component documentation to list all supported widgets

- Widget integration pattern:
  * Widgets wrap panels in containers with consistent styling
  * All widgets support callback props for user interactions
  * Widgets can be embedded inline in assistant messages
  * Widget actions are handled via onWidgetAction callback

Enables AI to display Epic 2, 3, 4 panels inline in chat conversations
This commit is contained in:
API Test Bot 2026-02-04 02:55:50 +07:00
parent 9f75abf0a5
commit 0d2cac99d5
7 changed files with 252 additions and 1 deletions

View file

@ -0,0 +1,31 @@
import { WhaleActivityFeed, type WhaleTransaction } from "../whale/WhaleActivityFeed";
export interface WhaleActivityWidgetProps {
/** List of whale transactions */
transactions: WhaleTransaction[];
/** Callback when a wallet is tracked */
onTrackWallet?: (address: string) => void;
/** Callback when a transaction is viewed */
onViewTransaction?: (txHash: string) => void;
}
/**
* WhaleActivityWidget - Inline whale activity display in chat
* Wraps WhaleActivityFeed for conversational UX
*/
export function WhaleActivityWidget({
transactions,
onTrackWallet,
onViewTransaction,
}: WhaleActivityWidgetProps) {
return (
<div className="my-3">
<WhaleActivityFeed
transactions={transactions}
onTrackWallet={onTrackWallet}
onViewTransaction={onViewTransaction}
/>
</div>
);
}