ConversationCanvasView.tsx1.1 KBView on GitHub /**
* ConversationCanvasView
*
* Adapter between the Canvas entity (§3.5 ConversationViewConfig) and the existing
* ConversationCanvas / GroupedConversationCanvas components.
*
* Phase B: The seeding useEffect that imperatively transcribed viewConfig into CRMSlice
* on every tab switch has been removed. Canvas components now subscribe to viewConfig
* directly via the canvas prop, bypassing the global CRMSlice singleton.
*/
import {
ConversationCanvas,
GroupedConversationCanvas,
} from '@/modules/crm/components/conversation-canvas';
import type { Canvas, ConversationViewConfig } from '@/modules/canvas/types/canvas-types';
interface ConversationCanvasViewProps {
canvas: Canvas;
}
export function ConversationCanvasView({ canvas }: ConversationCanvasViewProps) {
const viewConfig = canvas.viewConfig as ConversationViewConfig;
if (viewConfig.isGrouped) {
return <GroupedConversationCanvas canvas={canvas} />;
}
return (
<ConversationCanvas
canvas={canvas}
initialConversationIds={viewConfig.pinnedConversationIds}
/>
);
}