@@ -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+
159226export 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