MCPcopy
hub / github.com/Waishnav/devspace / renderReviewCard

Function renderReviewCard

src/ui/workspace-app.tsx:386–431  ·  view source on GitHub ↗
(card: ToolResultCard, display: ToolDisplay)

Source from the content-addressed store, hash-verified

384}
385
386function renderReviewCard(card: ToolResultCard, display: ToolDisplay): void {
387 unmountPayload();
388
389 const files = card.files ?? [];
390 const summary = card.summary ?? {};
391 const visibleFiles = reviewFilesExpanded ? files : files.slice(0, 3);
392 const hiddenCount = Math.max(0, files.length - visibleFiles.length);
393 const main = element("main", { className: "shell" });
394 const section = element("section", { className: "tool-card review" });
395 const header = element("div", { className: "review-header" });
396 const icon = element("span", { className: "tool-icon", ariaHidden: "true" });
397 icon.innerHTML = display.icon;
398 const titleGroup = element("div", { className: "review-title-group" });
399
400 titleGroup.append(
401 element("span", { className: "tool-title", text: display.title }),
402 element("span", { className: "tool-label", text: display.label, title: display.label }),
403 );
404 header.append(icon, titleGroup, renderSummaryBadge(card));
405
406 const body = element("div", { className: "review-summary" });
407 currentPayloadContainer = body;
408
409 const actions = element("div", { className: "review-actions" });
410 if (hiddenCount > 0) {
411 const showMore = element("button", {
412 className: "review-action",
413 type: "button",
414 text: `Show ${hiddenCount} more ${hiddenCount === 1 ? "file" : "files"}`,
415 });
416 showMore.addEventListener("click", () => {
417 reviewFilesExpanded = true;
418 render();
419 });
420 actions.append(showMore);
421 }
422
423 section.append(header, body);
424 if (actions.childElementCount > 0) {
425 section.append(actions);
426 }
427
428 main.append(section);
429 appRoot.replaceChildren(main);
430 renderPayloadIfNeeded();
431}
432
433function renderChevron(isExpanded: boolean, visible: boolean): HTMLElement {
434 const chevron = element("span", {

Callers 1

renderFunction · 0.85

Calls 6

unmountPayloadFunction · 0.85
elementFunction · 0.85
renderSummaryBadgeFunction · 0.85
renderFunction · 0.85
renderPayloadIfNeededFunction · 0.85
appendMethod · 0.45

Tested by

no test coverage detected