Skip to content
This repository was archived by the owner on Aug 6, 2026. It is now read-only.

Commit 9d74bcd

Browse files
committed
Extract PrStatusIcon into its own component
1 parent 0d98f40 commit 9d74bcd

1 file changed

Lines changed: 69 additions & 42 deletions

File tree

  • apps/code/src/renderer/features/sidebar/components/items

‎apps/code/src/renderer/features/sidebar/components/items/TaskItem.tsx‎

Lines changed: 69 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,73 @@ function CloudStatusIcon({
156156
);
157157
}
158158

159+
function PrStatusIcon({
160+
prState,
161+
hasDiff,
162+
}: {
163+
prState?: SidebarPrState;
164+
hasDiff?: boolean;
165+
}) {
166+
if (prState === "merged") {
167+
return (
168+
<Tooltip content="PR merged" side="right">
169+
<span className="flex items-center justify-center">
170+
<GitMerge size={ICON_SIZE} weight="bold" className="text-purple-11" />
171+
</span>
172+
</Tooltip>
173+
);
174+
}
175+
if (prState === "open") {
176+
return (
177+
<Tooltip content="PR open" side="right">
178+
<span className="flex items-center justify-center">
179+
<GitPullRequest
180+
size={ICON_SIZE}
181+
weight="bold"
182+
className="text-green-11"
183+
/>
184+
</span>
185+
</Tooltip>
186+
);
187+
}
188+
if (prState === "draft") {
189+
return (
190+
<Tooltip content="Draft PR" side="right">
191+
<span className="flex items-center justify-center">
192+
<GitPullRequest
193+
size={ICON_SIZE}
194+
weight="bold"
195+
className="text-gray-9"
196+
/>
197+
</span>
198+
</Tooltip>
199+
);
200+
}
201+
if (prState === "closed") {
202+
return (
203+
<Tooltip content="PR closed" side="right">
204+
<span className="flex items-center justify-center">
205+
<GitPullRequest
206+
size={ICON_SIZE}
207+
weight="bold"
208+
className="text-red-11"
209+
/>
210+
</span>
211+
</Tooltip>
212+
);
213+
}
214+
if (hasDiff) {
215+
return (
216+
<Tooltip content="Has changes" side="right">
217+
<span className="flex items-center justify-center">
218+
<GitBranch size={ICON_SIZE} weight="bold" className="text-amber-11" />
219+
</span>
220+
</Tooltip>
221+
);
222+
}
223+
return null;
224+
}
225+
159226
export function TaskItem({
160227
depth = 0,
161228
taskId,
@@ -205,48 +272,8 @@ export function TaskItem({
205272
<span className="flex items-center justify-center">
206273
<Circle size={8} weight="fill" className="text-green-11" />
207274
</span>
208-
) : prState === "merged" ? (
209-
<Tooltip content="PR merged" side="right">
210-
<span className="flex items-center justify-center">
211-
<GitMerge size={ICON_SIZE} weight="bold" className="text-purple-11" />
212-
</span>
213-
</Tooltip>
214-
) : prState === "open" ? (
215-
<Tooltip content="PR open" side="right">
216-
<span className="flex items-center justify-center">
217-
<GitPullRequest
218-
size={ICON_SIZE}
219-
weight="bold"
220-
className="text-green-11"
221-
/>
222-
</span>
223-
</Tooltip>
224-
) : prState === "draft" ? (
225-
<Tooltip content="Draft PR" side="right">
226-
<span className="flex items-center justify-center">
227-
<GitPullRequest
228-
size={ICON_SIZE}
229-
weight="bold"
230-
className="text-gray-9"
231-
/>
232-
</span>
233-
</Tooltip>
234-
) : prState === "closed" ? (
235-
<Tooltip content="PR closed" side="right">
236-
<span className="flex items-center justify-center">
237-
<GitPullRequest
238-
size={ICON_SIZE}
239-
weight="bold"
240-
className="text-red-11"
241-
/>
242-
</span>
243-
</Tooltip>
244-
) : hasDiff ? (
245-
<Tooltip content="Has changes" side="right">
246-
<span className="flex items-center justify-center">
247-
<GitBranch size={ICON_SIZE} weight="bold" className="text-amber-11" />
248-
</span>
249-
</Tooltip>
275+
) : prState || hasDiff ? (
276+
<PrStatusIcon prState={prState} hasDiff={hasDiff} />
250277
) : isPinned ? (
251278
<PushPin size={ICON_SIZE} className="text-accent-11" />
252279
) : (

0 commit comments

Comments
 (0)