Radish alpha
r
rad:z4D5UCArafTzTQpDZNQRuqswh3ury
Radicle desktop app
Radicle
Git
Allow verdict and summary changes in draft reviews
Merged did:key:z6MkkfM3...sVz5 opened 10 months ago

While a patch review is still in draft mode we should allow it to be changed to no verdict or an empty summary.

The validation logic being taken care of by the Publish draft button.

2 files changed +7 -3 641b809d 18f5aa90
modified src/components/Review.svelte
@@ -387,6 +387,7 @@
        {#if !!roles.isDelegateOrAuthor( config.publicKey, repo.delegates.map(delegate => delegate.did), review.author.did, )}
          <VerdictButton
            selectedVerdict={verdict}
+
            draft={"draft" in review}
            summaryMissing={review.summary === undefined ||
              review.summary.trim() === ""}
            onSelect={async newVerdict => {
@@ -435,7 +436,7 @@
      <CommentComponent
        disableAttachments
        rid={repo.rid}
-
        disallowEmptyBody={review.verdict === undefined}
+
        disallowEmptyBody={!("draft" in review) && review.verdict === undefined}
        emptyBodyTooltip="Summary is mandatory when verdict is None"
        styleWidth="100%"
        caption={"draft" in review ? "draft review" : "published review"}
modified src/components/VerdictButton.svelte
@@ -15,11 +15,12 @@

  interface Props {
    onSelect: (selectedVerdict: Review["verdict"]) => Promise<void>;
+
    draft: boolean;
    summaryMissing: boolean;
    selectedVerdict: Review["verdict"];
  }

-
  const { onSelect, summaryMissing, selectedVerdict }: Props = $props();
+
  const { onSelect, draft, summaryMissing, selectedVerdict }: Props = $props();

  let popoverExpanded: boolean = $state(false);
</script>
@@ -69,7 +70,9 @@
            title={verdict === undefined && summaryMissing
              ? "Set a summary to select verdict None"
              : undefined}
-
            disabled={verdict === undefined && summaryMissing}
+
            disabled={draft === false &&
+
              verdict === undefined &&
+
              summaryMissing}
            selected={selectedVerdict === verdict}
            onclick={async () => {
              await onSelect(verdict);