Radish alpha
r
Radicle desktop app
Radicle
Git (anonymous pull)
Log in to clone via SSH
Refactor VerdictButton props
Rūdolfs Ošiņš committed 1 year ago
commit 15bb0353d0e1542a072477bb3e07027b6ff0b79a
parent 7089e992e9ac6bfd74a76210f11412c87b33c67e
2 files changed +15 -15
modified src/components/Review.svelte
@@ -165,7 +165,7 @@
        <div class="metadata-section-title">Verdict</div>
        {#if !!roles.isDelegateOrAuthor( config.publicKey, repo.delegates.map(delegate => delegate.did), review.author.did, )}
          <VerdictButton
-
            {verdict}
+
            selectedVerdict={verdict}
            summaryMissing={review.summary === undefined ||
              review.summary.trim() === ""}
            onSelect={async newVerdict => {
modified src/components/VerdictButton.svelte
@@ -14,12 +14,12 @@
  import VerdictBadge from "@app/components/VerdictBadge.svelte";

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

-
  const { onSelect, summaryMissing, verdict }: Props = $props();
+
  const { onSelect, summaryMissing, selectedVerdict }: Props = $props();
</script>

<style>
@@ -50,7 +50,7 @@
<Popover popoverPadding="0" popoverPositionLeft="0" popoverPositionTop="2rem">
  {#snippet toggle(onclick)}
    <button {onclick}>
-
      <VerdictBadge {verdict} hoverable>
+
      <VerdictBadge verdict={selectedVerdict} hoverable>
        <Icon name="chevron-down" />
      </VerdictBadge>
    </button>
@@ -58,24 +58,24 @@
  {#snippet popover()}
    <Border variant="ghost">
      <DropdownList items={[undefined, "accept", "reject"] as const}>
-
        {#snippet item(action)}
+
        {#snippet item(verdict)}
          <DropdownListItem
-
            title={action === undefined && summaryMissing
+
            title={verdict === undefined && summaryMissing
              ? "Set a summary to select verdict None"
              : undefined}
-
            disabled={action === undefined && summaryMissing}
-
            selected={verdict === action}
+
            disabled={verdict === undefined && summaryMissing}
+
            selected={selectedVerdict === verdict}
            onclick={async () => {
-
              await onSelect(action);
+
              await onSelect(verdict);
              closeFocused();
            }}>
            <span
              class="global-flex"
-
              class:accepted={action === "accept"}
-
              class:rejected={action === "reject"}
-
              class:no-verdict={action === undefined}>
-
              <Icon name={verdictIcon(action)} />
-
              {action ? capitalize(`${action}ed`) : "None"}
+
              class:accepted={verdict === "accept"}
+
              class:rejected={verdict === "reject"}
+
              class:no-verdict={verdict === undefined}>
+
              <Icon name={verdictIcon(verdict)} />
+
              {verdict ? capitalize(`${verdict}ed`) : "None"}
            </span>
          </DropdownListItem>
        {/snippet}