|
6 | 6 | import React, { useContext } from 'react'; |
7 | 7 | import { COPILOT_LOGINS } from '../../src/common/copilot'; |
8 | 8 | import { gitHubLabelColor } from '../../src/common/utils'; |
9 | | -import { IMilestone, IProjectItem, reviewerId } from '../../src/github/interface'; |
| 9 | +import { IMilestone, IProjectItem, Issue, reviewerId, } from '../../src/github/interface'; |
10 | 10 | import { PullRequest } from '../../src/github/views'; |
11 | 11 | import PullRequestContext from '../common/context'; |
12 | 12 | import { Label } from '../common/label'; |
@@ -54,7 +54,7 @@ export default function Sidebar({ reviewers, labels, closingIssues, hasWritePerm |
54 | 54 | </div> |
55 | 55 | {reviewers && reviewers.length ? ( |
56 | 56 | reviewers.map(state => ( |
57 | | - <Reviewer key={reviewerId(state.reviewer)} {...{reviewState: state}} /> |
| 57 | + <Reviewer key={reviewerId(state.reviewer)} {...{ reviewState: state }} /> |
58 | 58 | )) |
59 | 59 | ) : ( |
60 | 60 | <div className="section-placeholder">None yet</div> |
@@ -199,32 +199,29 @@ export default function Sidebar({ reviewers, labels, closingIssues, hasWritePerm |
199 | 199 | {milestone ? ( |
200 | 200 | <Milestone key={milestone.title} {...milestone} canDelete={hasWritePermission} /> |
201 | 201 | ) : ( |
202 | | - <> |
203 | | - <div className="section-placeholder">No milestoooone</div> |
204 | | - <button onClick={() => { |
205 | | - console.log('Sidebar props:', { reviewers, labels, closingIssues, hasWritePermission, isIssue, projects, milestone, assignees, canAssignCopilot }); |
206 | | - |
207 | | - }}>Click me to test</button> |
208 | | - </> |
| 202 | + <> |
| 203 | + <div className="section-placeholder">No milestone</div> |
| 204 | + </> |
209 | 205 | )} |
210 | 206 | </div> |
211 | | - {/* <div id="linked-issues" className="section"> |
212 | | - <div className="section-header" onClick={async () => { |
213 | | - const newMilestone = await addMilestone(); |
214 | | - updatePR({ milestone: newMilestone.added }); |
215 | | - }}> |
216 | | - <div className="section-title">Linked issues</div> |
| 207 | + <div id="closingIssues" className="section"> |
| 208 | + <div className="section-header"> |
| 209 | + <div className="section-title">Linked Issues</div> |
217 | 210 | </div> |
218 | | - {closingIssues.length ? ( |
219 | | - <div className="issues-list"> |
| 211 | + {closingIssues.length > 0 ? ( |
| 212 | + <div className="p-2"> |
220 | 213 | {closingIssues.map(issue => ( |
221 | | - <Issue key={issue.title} {...issue} /> |
| 214 | + <div className="section-item reviewer"> |
| 215 | + <div className="avatar-with-author gap-2"> |
| 216 | + <IssueItem key={issue.title} issue={issue} /> |
| 217 | + </div> |
| 218 | + </div> |
222 | 219 | ))} |
223 | 220 | </div> |
224 | 221 | ) : ( |
225 | | - <div className="section-placeholder">None yet</div> |
| 222 | + <div className="p-4 text-sm text-gray-500 text-center">None yet</div> |
226 | 223 | )} |
227 | | - </div> */} |
| 224 | + </div> |
228 | 225 | </div> |
229 | 226 | ); |
230 | 227 | } |
@@ -297,13 +294,26 @@ function Project(project: IProjectItem & { canDelete: boolean }) { |
297 | 294 | ); |
298 | 295 | } |
299 | 296 |
|
300 | | -function Issue(issue: any) { |
| 297 | +function IssueItem({ issue }: { issue: Pick<Issue, 'title' | 'number' | 'state'> }) { |
301 | 298 | return ( |
302 | | - <div className="issues-list"> |
303 | | - <div className="issue-item"> |
304 | | - <h1>{issue.title}</h1> |
305 | | - {/* Add more details about the issue as needed */} |
306 | | - </div> |
307 | | - </div> |
| 299 | + <> |
| 300 | + <IssueStateIcon state={issue.state} /> |
| 301 | + <span className="h2">{issue.title}</span> |
| 302 | + </> |
| 303 | + |
308 | 304 | ); |
309 | 305 | } |
| 306 | + |
| 307 | +function IssueStateIcon({ state }: { state: string }) { |
| 308 | + const normalizedState = state.toLowerCase().trim(); |
| 309 | + |
| 310 | + switch (normalizedState) { |
| 311 | + case 'open': |
| 312 | + return settingsIcon; |
| 313 | + case 'closed': |
| 314 | + return closeIcon; |
| 315 | + default: |
| 316 | + return closeIcon; |
| 317 | + } |
| 318 | +} |
| 319 | + |
0 commit comments