diff --git a/src/components/Comment.svelte b/src/components/Comment.svelte index dc22d3eef..27c4f9196 100644 --- a/src/components/Comment.svelte +++ b/src/components/Comment.svelte @@ -163,7 +163,7 @@ {/if} {#if deleteComment}
- +
{/if} {#if reactions && reactOnComment} diff --git a/src/components/Icon.svelte b/src/components/Icon.svelte index b454f7af0..9711f3e3e 100644 --- a/src/components/Icon.svelte +++ b/src/components/Icon.svelte @@ -82,6 +82,7 @@ | "stop" | "sun" | "thumb-up" + | "trash" | "unresolve" | "user" | "warning"; @@ -1398,6 +1399,15 @@ + {:else if name === "trash"} + + + + + + + + {:else if name === "unresolve"} diff --git a/src/components/Review.svelte b/src/components/Review.svelte index d55df9322..20f77eeef 100644 --- a/src/components/Review.svelte +++ b/src/components/Review.svelte @@ -363,32 +363,46 @@ {/if} {#if "draft" in review} -
- -
+
+ { + draftReviewStorage.delete(review.id); + void push({ + resource: "repo.patch", + rid: repo.rid, + patch: patchId, + reviewId: undefined, + status: undefined, + }); + }}> + Delete + + {/if} diff --git a/src/lib/draftReviewStorage.ts b/src/lib/draftReviewStorage.ts index 1334c976b..9c38876fd 100644 --- a/src/lib/draftReviewStorage.ts +++ b/src/lib/draftReviewStorage.ts @@ -115,6 +115,15 @@ export const draftReviewStorage = { }); }, + delete(id: string): DraftReviewStored | undefined { + const review = storage.value[id]; + storage.update(reviews => { + delete reviews[id]; + return reviews; + }); + return review; + }, + deleteComment(id: string, commentId: string) { updateStoredDraftReview(id, review => { const index = review.comments.findIndex( @@ -170,11 +179,13 @@ export const draftReviewStorage = { }, async publish(id: string) { - const draftReviewStored = storage.value[id]; - storage.update(reviews => { - delete reviews[id]; - return reviews; - }); + const draftReviewStored = draftReviewStorage.delete(id); + if (!draftReviewStored) { + throw new Error( + `Failed to publish draft review: Review ${id} does not exist`, + ); + } + await invoke("create_patch_review", { args: { rid: draftReviewStored.rid,