MCPcopy
hub / github.com/coder/mux / renderDraft

Function renderDraft

src/browser/components/ProjectSidebar/ProjectSidebar.tsx:2382–2441  ·  view source on GitHub ↗
(
                                draft: (typeof sortedDrafts)[number]
                              )

Source from the content-addressed store, hash-verified

2380 };
2381
2382 const renderDraft = (
2383 draft: (typeof sortedDrafts)[number]
2384 ): React.ReactNode => {
2385 const sectionId = getDraftSectionId(draft);
2386 const promotedMetadata = activeDraftPromotions[draft.draftId];
2387
2388 if (promotedMetadata) {
2389 const liveMetadata =
2390 projectWorkspaces.find(
2391 (workspace) => workspace.id === promotedMetadata.id
2392 ) ?? promotedMetadata;
2393 return renderWorkspace(liveMetadata, sectionId ?? undefined);
2394 }
2395
2396 const draftNumber = draftNumberById.get(draft.draftId) ?? 0;
2397 const isSelected =
2398 pendingNewWorkspaceProject === projectPath &&
2399 pendingNewWorkspaceDraftId === draft.draftId;
2400
2401 return (
2402 <DraftAgentListItemWrapper
2403 key={draft.draftId}
2404 projectPath={projectPath}
2405 draftId={draft.draftId}
2406 draftNumber={draftNumber}
2407 isSelected={isSelected}
2408 sectionId={sectionId ?? undefined}
2409 onVisibilityChange={(isVisible) => {
2410 handleDraftVisibilityChange(
2411 projectPath,
2412 draft.draftId,
2413 isVisible
2414 );
2415 }}
2416 onOpen={() =>
2417 handleOpenWorkspaceDraft(projectPath, draft.draftId)
2418 }
2419 onDelete={() => {
2420 if (isSelected) {
2421 const currentIndex = sortedDrafts.findIndex(
2422 (d) => d.draftId === draft.draftId
2423 );
2424 const fallback =
2425 currentIndex >= 0
2426 ? (sortedDrafts[currentIndex + 1] ??
2427 sortedDrafts[currentIndex - 1])
2428 : undefined;
2429
2430 if (fallback) {
2431 openWorkspaceDraft(projectPath, fallback.draftId);
2432 } else {
2433 navigateToProject(sectionId ?? projectPath);
2434 }
2435 }
2436
2437 deleteWorkspaceDraft(projectPath, draft.draftId);
2438 }}
2439 />

Callers 2

renderSectionFunction · 0.85
ProjectSidebarInnerFunction · 0.85

Calls 3

getDraftSectionIdFunction · 0.85
renderWorkspaceFunction · 0.85
getMethod · 0.65

Tested by

no test coverage detected