MCPcopy Create free account
hub / github.com/block/buzz / MessageThreadPanel

Function MessageThreadPanel

desktop/src/features/messages/ui/MessageThreadPanel.tsx:285–938  ·  view source on GitHub ↗
({
  agentPubkeys,
  channel,
  channelId,
  channelName,
  currentPubkey,
  disabled = false,
  firstUnreadReplyId,
  huddleMemberPubkeys,
  huddleMemberPubkeysPending = false,
  layout = "standalone",
  editTarget,
  isSending,
  isSinglePanelView = false,
  isFollowingThread,
  isMessageUnreadById,
  onCancelEdit,
  onCancelReply,
  onClose,
  onDelete,
  onEdit,
  onEditLastOwnMessage,
  onEditSave,
  onFollowThread,
  onMarkUnread,
  onMarkRead,
  onExpandReplies,
  onScrollTargetResolved,
  onSelectReplyTarget,
  onSend,
  onToggleReaction,
  onUnfollowThread,
  profiles,
  replyTargetMessage,
  scrollTargetId,
  threadHead,
  threadHeadVideoReviewContext,
  threadReplies,
  threadUnreadCount,
  threadReplyUnreadCounts,
  threadTypingPubkeys,
  toolbarExtraActions,
  widthPx,
  transparentChrome = false,
}: MessageThreadPanelProps)

Source from the content-addressed store, hash-verified

283}
284
285export function MessageThreadPanel({
286 agentPubkeys,
287 channel,
288 channelId,
289 channelName,
290 currentPubkey,
291 disabled = false,
292 firstUnreadReplyId,
293 huddleMemberPubkeys,
294 huddleMemberPubkeysPending = false,
295 layout = "standalone",
296 editTarget,
297 isSending,
298 isSinglePanelView = false,
299 isFollowingThread,
300 isMessageUnreadById,
301 onCancelEdit,
302 onCancelReply,
303 onClose,
304 onDelete,
305 onEdit,
306 onEditLastOwnMessage,
307 onEditSave,
308 onFollowThread,
309 onMarkUnread,
310 onMarkRead,
311 onExpandReplies,
312 onScrollTargetResolved,
313 onSelectReplyTarget,
314 onSend,
315 onToggleReaction,
316 onUnfollowThread,
317 profiles,
318 replyTargetMessage,
319 scrollTargetId,
320 threadHead,
321 threadHeadVideoReviewContext,
322 threadReplies,
323 threadUnreadCount,
324 threadReplyUnreadCounts,
325 threadTypingPubkeys,
326 toolbarExtraActions,
327 widthPx,
328 transparentChrome = false,
329}: MessageThreadPanelProps) {
330 const threadBodyRef = React.useRef<HTMLDivElement>(null);
331 const threadContentRef = React.useRef<HTMLDivElement>(null);
332 const threadComposerWrapperRef = React.useRef<HTMLDivElement>(null);
333 const [hoveredCollapseBranchId, setHoveredCollapseBranchId] = React.useState<
334 string | null
335 >(null);
336 const [collapsedThreadHeadId, setCollapsedThreadHeadId] = React.useState<
337 string | null
338 >(null);
339 const isOverlay = useIsThreadPanelOverlay();
340 const threadHeadId = threadHead?.id ?? null;
341 useEscapeKey(onClose, isOverlay || isSinglePanelView);
342 useComposerHeightPadding(

Callers

nothing calls this directly

Calls 13

useIsThreadPanelOverlayFunction · 0.90
useEscapeKeyFunction · 0.90
useComposerHeightPaddingFunction · 0.90
hasNestedThreadBranchesFunction · 0.90
hasSameMessageAuthorFunction · 0.90
useAnchoredScrollFunction · 0.90
cnFunction · 0.90
pushMethod · 0.80

Tested by

no test coverage detected