diff --git a/frontend/src/components/feedback/FeedbackPanel.tsx b/frontend/src/components/feedback/FeedbackPanel.tsx index 3b84272..2d91085 100644 --- a/frontend/src/components/feedback/FeedbackPanel.tsx +++ b/frontend/src/components/feedback/FeedbackPanel.tsx @@ -2,9 +2,7 @@ import React, { useState, useCallback, useEffect, useSyncExternalStore } from 'r import { AnnotationStore } from '../../stores/annotationStore'; import ThreadList, { FilterType } from './ThreadList'; import ThreadDetail from './ThreadDetail'; -import CommentInput from './CommentInput'; import { PANEL_BG, BORDER, TEXT_MUTED, TEXT_PRIMARY, STATUS_OPEN } from './feedbackStyles'; -import type { DraftPin } from '../../pages/Editor'; interface FeedbackPanelProps { annotationStore: AnnotationStore; @@ -19,10 +17,6 @@ interface FeedbackPanelProps { expandRequest?: { threadId: string | null; seq: number } | null; /** Focused thread ID for highlighting */ focusedThreadId?: string | null; - /** Draft pin for point-comment creation */ - draftPin?: DraftPin | null; - /** Callback to create a point-pinned thread */ - onCreatePointThread?: (draftPin: DraftPin, content: string) => Promise; /** Callback when expanded thread detail changes */ onThreadDetailChange?: (threadId: string | null) => void; } @@ -38,8 +32,6 @@ export default function FeedbackPanel({ onError, expandRequest, focusedThreadId, - draftPin, - onCreatePointThread, onThreadDetailChange, }: FeedbackPanelProps) { const [collapsed, setCollapsed] = useState(false); @@ -289,30 +281,6 @@ export default function FeedbackPanel({ selectedObjectId?.slice(0, 8) || ''; - // Draft pin comment input (shown above thread list when draft is active) - const draftCommentSection = draftPin ? ( -
-
- Comment on point -
-
- {canvasObjects.get(draftPin.objectId)?.name || canvasObjects.get(draftPin.objectId)?.type || 'Object'} -
- { - if (!newCommentText.trim() || !onCreatePointThread || !draftPin) return; - await onCreatePointThread(draftPin, newCommentText.trim()); - setNewCommentText(''); - }} - placeholder="Add a point comment..." - submitLabel="Comment" - autoFocus - /> -
- ) : null; - return ( setCollapsed(true)} - selectedObjectId={draftPin ? null : selectedObjectId} + selectedObjectId={selectedObjectId} selectedObjectLabel={selectedLabel} newCommentText={newCommentText} onNewCommentChange={setNewCommentText} onCreateThread={handleCreateThread} - headerSlot={draftCommentSection} focusedThreadId={focusedThreadId} /> ); diff --git a/frontend/src/components/feedback/ThreadList.tsx b/frontend/src/components/feedback/ThreadList.tsx index 3a66855..61d5802 100644 --- a/frontend/src/components/feedback/ThreadList.tsx +++ b/frontend/src/components/feedback/ThreadList.tsx @@ -29,8 +29,6 @@ interface ThreadListProps { newCommentText: string; onNewCommentChange: (text: string) => void; onCreateThread: () => void; - /** Optional slot rendered above the thread list (e.g., draft pin input) */ - headerSlot?: React.ReactNode; /** Currently focused thread ID for highlighting */ focusedThreadId?: string | null; } @@ -49,7 +47,6 @@ export default function ThreadList({ newCommentText, onNewCommentChange, onCreateThread, - headerSlot, focusedThreadId, }: ThreadListProps) { const [showOrphans, setShowOrphans] = React.useState(false); @@ -160,9 +157,6 @@ export default function ThreadList({ )} - {/* Draft pin comment input (injected from FeedbackPanel) */} - {headerSlot} - {/* Thread list */}
{threads.length === 0 && ( diff --git a/frontend/src/pages/Editor.tsx b/frontend/src/pages/Editor.tsx index df51992..050776a 100644 --- a/frontend/src/pages/Editor.tsx +++ b/frontend/src/pages/Editor.tsx @@ -1039,7 +1039,7 @@ export default function Editor({ isPublicView }: EditorProps) { {reviewMode && annotationStore && user && resolvedBoardId && ( showToast(msg)} expandRequest={expandRequest} focusedThreadId={focusedThreadId} - draftPin={draftPin} - onCreatePointThread={handleCreatePointThread} onThreadDetailChange={setOpenThreadDetailId} onJumpToObject={(objectId, thread) => { const scene = canvasRef.current?.getScene();