This commit is contained in:
+30
-6
@@ -319,6 +319,8 @@ function renderScreenshotList(screenshots: ScreenshotAttachment[], deleteAction:
|
||||
}
|
||||
|
||||
function renderIssueRows(issues: GiteaIssueSummary[], selectedIssueNumber: number | null): string {
|
||||
const state = appStore.getState();
|
||||
|
||||
if (!issues.length) {
|
||||
return `<div class="empty-state">No issues found for this repo.</div>`;
|
||||
}
|
||||
@@ -328,12 +330,16 @@ function renderIssueRows(issues: GiteaIssueSummary[], selectedIssueNumber: numbe
|
||||
${issues
|
||||
.map(
|
||||
(issue) => `
|
||||
<button class="issue-row" type="button" data-select-issue="${issue.number}" data-selected="${issue.number === selectedIssueNumber ? "true" : "false"}">
|
||||
<span class="issue-number">#${issue.number}</span>
|
||||
<span class="issue-title">${escapeHtml(issue.title)}</span>
|
||||
<span class="issue-state">${escapeHtml(issue.state)}</span>
|
||||
<span class="issue-meta">${formatDate(issue.updatedAt)}</span>
|
||||
</button>
|
||||
<div class="issue-row" data-selected="${issue.number === selectedIssueNumber ? "true" : "false"}">
|
||||
<button class="issue-select-button" type="button" data-select-issue="${issue.number}">
|
||||
<span class="issue-number">#${issue.number}</span>
|
||||
<span class="issue-title">${escapeHtml(issue.title)}</span>
|
||||
<span class="issue-state">${escapeHtml(issue.state)}</span>
|
||||
<span class="issue-meta">${formatDate(issue.updatedAt)}</span>
|
||||
</button>
|
||||
<button class="secondary-button compact-button" type="button" data-ready-issue="${issue.number}" ${state.isUpdatingIssue ? "disabled" : ""}>Ready</button>
|
||||
<button class="danger-button compact-button" type="button" data-delete-issue="${issue.number}" ${state.isUpdatingIssue ? "disabled" : ""}>Delete</button>
|
||||
</div>
|
||||
`
|
||||
)
|
||||
.join("")}
|
||||
@@ -563,6 +569,24 @@ function bindViewActions(): void {
|
||||
});
|
||||
});
|
||||
|
||||
viewContent?.querySelectorAll<HTMLButtonElement>("[data-ready-issue]").forEach((button) => {
|
||||
button.addEventListener("click", () => {
|
||||
const issueNumber = Number(button.dataset.readyIssue);
|
||||
if (Number.isFinite(issueNumber)) {
|
||||
void appStore.getState().markIssueReady(issueNumber);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
viewContent?.querySelectorAll<HTMLButtonElement>("[data-delete-issue]").forEach((button) => {
|
||||
button.addEventListener("click", () => {
|
||||
const issueNumber = Number(button.dataset.deleteIssue);
|
||||
if (Number.isFinite(issueNumber) && window.confirm(`Delete issue #${issueNumber}?`)) {
|
||||
void appStore.getState().deleteIssue(issueNumber);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
viewContent?.querySelector<HTMLButtonElement>("#refresh-target-issues")?.addEventListener("click", () => {
|
||||
void appStore.getState().loadTargetIssues(true);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user