diff --git a/apps/staged/src/lib/features/branches/BranchCard.svelte b/apps/staged/src/lib/features/branches/BranchCard.svelte index 98fcb565..c13811f2 100644 --- a/apps/staged/src/lib/features/branches/BranchCard.svelte +++ b/apps/staged/src/lib/features/branches/BranchCard.svelte @@ -10,6 +10,24 @@ - Notes open a markdown viewer - Each item shows session + delete actions on hover --> + + @@ -1381,6 +1456,19 @@ + { + sessionMgr.openSessionId = sid; + }} + /> +
{#if isRemote && (remoteWorkspaceStatus === 'stopped' || remoteWorkspaceStatus === 'suspended' || remoteWorkspaceStatus === 'error')} loadTimeline()}>Retry
{:else if timeline || isSettingUp} - loadTimeline()} - deletingItems={timelineDeletingItems} - reviewCommentBreakdown={timelineReviewDetailsById} - onSessionClick={(sid) => sessionMgr.handleTimelineSessionClick(sid)} - onResumeClick={(sid) => { - commands - .resumeSession(sid, 'Continue where you left off.', undefined, branch.id) - .then(() => loadTimeline()) - .catch((e) => { - console.error('Failed to resume session:', e); - toast.error('Resume failed', { - description: - e instanceof Error - ? e.message - : 'Could not resume the session. Please try again.', - }); - }); - }} - onCommitClick={handleCommitClick} - onNoteClick={handleNoteClick} - onReviewClick={handleReviewClick} - onDeleteCommit={handleDeleteCommit} - onDeletePendingCommit={handleDeletePendingCommit} - onDeleteNote={handleDeleteNote} - onDeleteReview={handleDeleteReview} - onImageClick={handleImageClick} - onDeleteImage={handleDeleteImage} - onStartQueued={() => { - commands - .drainQueuedSessions(branch.id) - .catch((e) => console.error('Failed to drain queued sessions:', e)); - }} - onNewNote={() => sessionMgr.openNewSession('note')} - onNewCommit={() => sessionMgr.openNewSession('commit')} - onNewReview={hasCodeChanges || sessionMgr.hasCommitSessionInProgress - ? (e) => sessionMgr.openNewSession('review', e) - : undefined} - onPullOrigin={handlePullOrigin} - onPushOrigin={handlePushOrigin} - onOpenPushSession={pushSessionId && pushSessionId !== '__pending__' - ? openPushSession - : undefined} - onRebaseBranch={() => startBranchCommandPipeline('rebase')} - onRebaseBranchOntoOrigin={() => startBranchCommandPipeline('rebase', 'origin')} - onForcePush={handleForcePush} - onOpenForcePushSession={forcePushSessionId && forcePushSessionId !== '__pending__' - ? openForcePushSession - : undefined} - {forcePushingOrigin} - rebaseBranchDisabledReason={branchCommandDisabledReason} - onViewWorktreeDiff={isLocal ? () => (showWorktreeDiff = true) : undefined} - onCommitWorktreeChanges={() => - sessionMgr.startOrQueueSession('commit', 'Commit uncommitted changes')} - onDiscardWorktreeChanges={handleDiscardWorktreeChanges} - onNewSessionReferring={(ref) => sessionMgr.openNewSessionReferring(ref)} - newSessionDisabled={sessionMgr.isNewSessionDisabled || gitUnsafeActionsDisabled} - {pullingOrigin} - {pushingOrigin} - {discardingWorktreeChanges} - {provisioningLabel} - {provisioningDetail} - > - {#snippet footerActions()} - {#if hasCodeChanges || branch.prNumber} - + {:else} + + + {/if} {/if} {/if} diff --git a/apps/staged/src/lib/features/branches/BranchCardPrButton.svelte b/apps/staged/src/lib/features/branches/BranchCardPrButton.svelte index 19b5ef84..237000e3 100644 --- a/apps/staged/src/lib/features/branches/BranchCardPrButton.svelte +++ b/apps/staged/src/lib/features/branches/BranchCardPrButton.svelte @@ -46,10 +46,21 @@ isRemote: boolean; hasCodeChanges: boolean; timeline: BranchTimelineData | null; + showButton?: boolean; onOpenSession?: (sessionId: string) => void; } - let { branch, isLocal, isRemote, hasCodeChanges, timeline, onOpenSession }: Props = $props(); + let { + branch, + isLocal, + isRemote, + hasCodeChanges, + timeline, + showButton = true, + onOpenSession, + }: Props = $props(); + + export { renderButton }; // ========================================================================= // Option-key tracking (for draft PR creation) @@ -727,19 +738,25 @@ {/snippet} -{#if hasCodeChanges || branch.prNumber} - {#if branch.prNumber} - - - {#snippet child({ props })} - {@render prButton(props)} - {/snippet} - - {prButtonTitle} - - {:else} - {@render prButton({})} +{#snippet renderButton()} + {#if hasCodeChanges || branch.prNumber} + {#if branch.prNumber} + + + {#snippet child({ props })} + {@render prButton(props)} + {/snippet} + + {prButtonTitle} + + {:else} + {@render prButton({})} + {/if} {/if} +{/snippet} + +{#if showButton} + {@render renderButton()} {/if} diff --git a/apps/staged/src/lib/features/timeline/TimelineRow.svelte b/apps/staged/src/lib/features/timeline/TimelineRow.svelte index 54bf2250..b2213023 100644 --- a/apps/staged/src/lib/features/timeline/TimelineRow.svelte +++ b/apps/staged/src/lib/features/timeline/TimelineRow.svelte @@ -329,36 +329,15 @@ {#if meta || secondaryMeta || tertiaryMeta || (badges && badges.length > 0)}
{#if meta} - - - {#snippet child({ props })} - {meta} - {/snippet} - - {meta} - + {meta} {/if} {#if secondaryMeta} - - - {#snippet child({ props })} - {secondaryMeta} - {/snippet} - - {secondaryMeta} - + {secondaryMeta} {/if} {#if tertiaryMeta} - - - {#snippet child({ props })} - {tertiaryMeta} - {/snippet} - - {tertiaryMeta} - + {tertiaryMeta} {/if} {#if badges} {#each badges as badge} @@ -395,58 +374,40 @@ !!discardChangesDisabledReason} > {#if onStartClick} - - - {#snippet child({ props })} - - {/snippet} - - Start - + {/if} {#if onRetryClick} - - - {#snippet child({ props })} - - {/snippet} - - Retry - + {/if} {#if onResumeClick} - - - {#snippet child({ props })} - - {/snippet} - - Resume session - + {/if} {#if onPullClick || pullDisabledReason} @@ -539,22 +500,16 @@ {/if} {#if onViewDiffClick} - - - {#snippet child({ props })} - - {/snippet} - - View diff - + {/if} {#if onCommitChangesClick || commitChangesDisabledReason} @@ -597,22 +552,16 @@ {/if} {#if hasSession && !onStartClick && !isQueued} - - - {#snippet child({ props })} - - {/snippet} - - View session - + {/if} {#if onDeleteClick || deleteDisabledReason}