From ec49ecbd36d057f0035dfa0c4933ec6a6f877709 Mon Sep 17 00:00:00 2001 From: Brandon Oxendine Date: Fri, 24 Apr 2026 14:17:52 +0200 Subject: [PATCH] Start review from code-comment on revision diff MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Rūdolfs Ošiņš --- .../radicle-types/bindings/cob/patch/Patch.ts | 2 +- .../src/domain/patch/models/patch.rs | 5 +- src/components/PatchTeaser.svelte | 19 +++- src/components/Review.svelte | 2 - src/components/Revision.svelte | 86 ++++++++++++++++++- src/lib/draftReviewStorage.ts | 9 +- src/views/repo/Patch.svelte | 30 ++++--- 7 files changed, 132 insertions(+), 21 deletions(-) diff --git a/crates/radicle-types/bindings/cob/patch/Patch.ts b/crates/radicle-types/bindings/cob/patch/Patch.ts index 05e318f65..0b98fc826 100644 --- a/crates/radicle-types/bindings/cob/patch/Patch.ts +++ b/crates/radicle-types/bindings/cob/patch/Patch.ts @@ -12,5 +12,5 @@ export type Patch = { assignees: Array; labels: Array; timestamp: number; - revisionCount: number; + revisionIds: Array; }; diff --git a/crates/radicle-types/src/domain/patch/models/patch.rs b/crates/radicle-types/src/domain/patch/models/patch.rs index 2e79ffcce..3ad1fab85 100644 --- a/crates/radicle-types/src/domain/patch/models/patch.rs +++ b/crates/radicle-types/src/domain/patch/models/patch.rs @@ -35,7 +35,8 @@ pub struct Patch { labels: Vec, #[ts(type = "number")] timestamp: cob::Timestamp, - revision_count: usize, + #[ts(as = "Vec")] + revision_ids: Vec, } #[derive(Debug, thiserror::Error)] @@ -63,7 +64,7 @@ impl Patch { .collect::>(), labels: patch.labels().cloned().collect::>(), timestamp: patch.timestamp(), - revision_count: patch.revisions().count(), + revision_ids: patch.revisions().map(|(id, _)| id).collect(), } } diff --git a/src/components/PatchTeaser.svelte b/src/components/PatchTeaser.svelte index a4f7323b1..171b144c7 100644 --- a/src/components/PatchTeaser.svelte +++ b/src/components/PatchTeaser.svelte @@ -2,6 +2,7 @@ import type { PatchStatus } from "@app/views/repo/router"; import type { Patch } from "@bindings/cob/patch/Patch"; + import { draftReviewStorage } from "@app/lib/draftReviewStorage"; import { cachedDiffStats } from "@app/lib/invoke"; import { push } from "@app/lib/router"; import { @@ -26,6 +27,10 @@ } const { focussed, patch, rid, status }: Props = $props(); + + const hasDraftReview = $derived( + patch.revisionIds.some(id => draftReviewStorage.hasForRevision(id)), + );