Radish alpha
r
rad:z4D5UCArafTzTQpDZNQRuqswh3ury
Radicle desktop app
Radicle
Git
Add quick actions buttons to create an accepted or rejected review
Merged did:key:z6MkkfM3...sVz5 opened 1 year ago
3 files changed +34 -6 263037d0 4ff909c7
modified public/colors.css
@@ -98,12 +98,18 @@
  --color-fill-primary-hover: #ff4dff;
  --color-fill-primary-shade: #e500e5;
  --color-fill-danger: #aa5078;
+
  --color-fill-danger-hover: #be7495;
+
  --color-fill-danger-shade: #8b3e5e;
+
  --color-fill-danger-counter: #ce97af;
  --color-fill-yellow: #ffe609;
  --color-fill-yellow-iconic: #ffff55;
  --color-fill-gray: #9b9bb1;
  --color-fill-diff-red: #4d1929;
  --color-fill-diff-red-light: #2d060d;
  --color-fill-success: #4fa877;
+
  --color-fill-success-hover: #71bc93;
+
  --color-fill-success-shade: #408760;
+
  --color-fill-success-counter: #97ceb0;
  --color-fill-diff-green: #183425;
  --color-fill-diff-green-light: #142a1d;
  --color-fill-float: #14151a;
modified src/components/Button.svelte
@@ -3,7 +3,7 @@

  interface Props {
    children: Snippet;
-
    variant: "primary" | "secondary" | "ghost";
+
    variant: "primary" | "secondary" | "ghost" | "success" | "danger";
    onclick?: () => void;
    disabled?: boolean;
    active?: boolean;
modified src/components/Revision.svelte
@@ -6,6 +6,7 @@
  import type { Embed } from "@bindings/cob/thread/Embed";
  import type { Revision } from "@bindings/cob/patch/Revision";
  import type { Thread } from "@bindings/cob/thread/Thread";
+
  import type { Verdict } from "@bindings/cob/patch/Verdict";

  import partial from "lodash/partial";
  import { tick } from "svelte";
@@ -20,6 +21,7 @@
    scrollIntoView,
  } from "@app/lib/utils";

+
  import Button from "@app/components/Button.svelte";
  import Changeset from "@app/components/Changeset.svelte";
  import CobCommitTeaser from "./CobCommitTeaser.svelte";
  import CommentComponent from "@app/components/Comment.svelte";
@@ -141,7 +143,7 @@
    }
  }

-
  async function createReview() {
+
  async function createReview(verdict?: Verdict) {
    try {
      await invoke("edit_patch", {
        rid: rid,
@@ -149,6 +151,7 @@
        action: {
          type: "review",
          revision: revision.id,
+
          verdict,
          // We need to pass an empty string to create a review without a verdict.
          summary: "",
          labels: [],
@@ -417,10 +420,29 @@
        <div class="txt-semibold global-flex txt-regular">Reviews</div>
      </NakedButton>
    </div>
-
    <NakedButton variant="ghost" disabled={hasOwnReview} onclick={createReview}>
-
      <Icon name="plus" />
-
      <span class="txt-small">New Review</span>
-
    </NakedButton>
+
    <div class="global-flex">
+
      <Button
+
        variant="success"
+
        disabled={hasOwnReview}
+
        onclick={() => createReview("accept")}>
+
        <Icon name="comment-checkmark" />
+
        <span class="txt-small">Accept</span>
+
      </Button>
+
      <Button
+
        variant="danger"
+
        disabled={hasOwnReview}
+
        onclick={() => createReview("reject")}>
+
        <Icon name="comment-cross" />
+
        <span class="txt-small">Reject</span>
+
      </Button>
+
      <Button
+
        variant="secondary"
+
        disabled={hasOwnReview}
+
        onclick={() => createReview()}>
+
        <Icon name="plus" />
+
        <span class="txt-small">New Review</span>
+
      </Button>
+
    </div>
  </div>

  {#if revision.reviews && revision.reviews.length}