mirror of
https://seed.radicle.dev/rad:z4V1sjrXqjvFdnCUbxPFqd5p4DtH5.git
synced 2026-11-03 18:50:30 +08:00
@@ -162,15 +162,11 @@
|
||||
issueCounters={project.issues}
|
||||
state={issueFilter} />
|
||||
{:else if view.resource === "issue"}
|
||||
{#await api.project.getIssueById(id, view.params.issue)}
|
||||
<Loading center />
|
||||
{:then issue}
|
||||
<Issue projectId={id} projectHead={project.head} {baseUrl} {issue} />
|
||||
{:catch e}
|
||||
<div class="message">
|
||||
<ErrorMessage message="Couldn't load issue." stackTrace={e} />
|
||||
</div>
|
||||
{/await}
|
||||
<Issue
|
||||
projectId={id}
|
||||
projectHead={project.head}
|
||||
{baseUrl}
|
||||
issue={view.params.loadedIssue} />
|
||||
{:else if view.resource === "patches"}
|
||||
<Patches
|
||||
{baseUrl}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import type { LoadError } from "@app/lib/router/definitions";
|
||||
import type { Project, Remote, Tree } from "@httpd-client";
|
||||
import type { Project, Remote, Tree, Issue } from "@httpd-client";
|
||||
|
||||
import { get } from "svelte/store";
|
||||
|
||||
@@ -79,7 +79,7 @@ export type ProjectLoadedView =
|
||||
resource: "history";
|
||||
params: LoadedSourceBrowsingParams;
|
||||
}
|
||||
| { resource: "issue"; params: { issue: string } }
|
||||
| { resource: "issue"; params: { issue: string; loadedIssue: Issue } }
|
||||
| {
|
||||
resource: "issues";
|
||||
params?: {
|
||||
@@ -199,6 +199,38 @@ export async function loadProjectRoute(
|
||||
},
|
||||
},
|
||||
};
|
||||
} else if (params.view.resource === "issue") {
|
||||
try {
|
||||
const projectPromise = api.project.getById(params.id);
|
||||
const issuePromise = api.project.getIssueById(
|
||||
params.id,
|
||||
params.view.params.issue,
|
||||
);
|
||||
const [project, issue] = await Promise.all([
|
||||
projectPromise,
|
||||
issuePromise,
|
||||
]);
|
||||
return {
|
||||
resource: "projects",
|
||||
params: {
|
||||
...params,
|
||||
project,
|
||||
view: {
|
||||
resource: "issue",
|
||||
params: { ...params.view.params, loadedIssue: issue },
|
||||
},
|
||||
},
|
||||
};
|
||||
} catch (error: any) {
|
||||
return {
|
||||
resource: "loadError",
|
||||
params: {
|
||||
title: params.view.params.issue,
|
||||
errorMessage: "Not able to load this issue.",
|
||||
stackTrace: error.stack,
|
||||
},
|
||||
};
|
||||
}
|
||||
} else {
|
||||
const project = await api.project.getById(params.id);
|
||||
return {
|
||||
|
||||
Reference in New Issue
Block a user