From 02a3aa8db4ed614b29dd65dbd9b4d599ba47ce93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C5=ABdolfs=20O=C5=A1i=C5=86=C5=A1?= Date: Fri, 7 Feb 2025 15:32:36 -0600 Subject: [PATCH] Tweak review section - show a review counter - show a tooltip on disabled buttons explaining why they're disabled - change review shortcut button position - change Write review button styling - make review teasers without body more compact - use correct color for review icons - fix review header alignment --- src/components/Button.svelte | 3 ++ src/components/ReviewTeaser.svelte | 58 +++++++++++++++------------ src/components/Revision.svelte | 63 ++++++++++++++---------------- 3 files changed, 66 insertions(+), 58 deletions(-) diff --git a/src/components/Button.svelte b/src/components/Button.svelte index 613e6da0d..f28330f82 100644 --- a/src/components/Button.svelte +++ b/src/components/Button.svelte @@ -9,6 +9,7 @@ active?: boolean; flatLeft?: boolean; flatRight?: boolean; + title?: string; } const { @@ -19,6 +20,7 @@ active = false, flatLeft = false, flatRight = false, + title, }: Props = $props(); const style = $derived( @@ -370,6 +372,7 @@ onclick={!disabled ? onclick : undefined} role="button" tabindex="0" + {title} {style}>
diff --git a/src/components/ReviewTeaser.svelte b/src/components/ReviewTeaser.svelte index 604f074f6..23415bfcb 100644 --- a/src/components/ReviewTeaser.svelte +++ b/src/components/ReviewTeaser.svelte @@ -18,33 +18,43 @@ const { rid, review }: Props = $props(); - const backgroundColor = $derived.by(() => { - if (review.verdict === "accept") { - return "var(--color-fill-diff-green-light)"; - } else if (review.verdict === "reject") { - return "var(--color-fill-diff-red-light)"; - } else { - return "var(--color-fill-float-hover)"; - } - }); - const header = $derived.by(() => { if (!review.verdict) { return "published a review"; } - return `${review.verdict ? `${review.verdict}ed` : "reviewed"} revision with a review`; + return `${review.verdict ? `${review.verdict}ed` : "reviewed"} revision`; }); - const icon = $derived.by(() => { - if (review.verdict === "accept") { + function icon(verdict: Review["verdict"]) { + if (verdict === "accept") { return "comment-checkmark"; - } else if (review.verdict === "reject") { + } else if (verdict === "reject") { return "comment-cross"; } else { return "comment"; } - }); + } + + function backgroundColor(verdict: Review["verdict"]) { + if (verdict === undefined) { + return "var(--color-fill-float)"; + } else if (verdict === "accept") { + return "var(--color-fill-diff-green-light)"; + } else if (verdict === "reject") { + return "var(--color-fill-diff-red-light)"; + } + } + + function color(verdict: Review["verdict"]) { + if (verdict === undefined) { + return "var(--color-foreground-dim)"; + } else if (verdict === "accept") { + return "var(--color-foreground-success)"; + } else if (verdict === "reject") { + return "var(--color-foreground-red)"; + } + } -
-
- +
+
+
@@ -95,12 +105,10 @@ {/if}
-
- {#if review.summary?.trim()} + {#if review.summary?.trim()} +
- {:else} - No summary. - {/if} -
+
+ {/if}
diff --git a/src/components/Revision.svelte b/src/components/Revision.svelte index d6fbdba22..f19c61a97 100644 --- a/src/components/Revision.svelte +++ b/src/components/Revision.svelte @@ -330,11 +330,6 @@ left: -18.5px; background-color: var(--color-fill-separator); } - .review-row { - display: flex; - align-items: center; - justify-content: space-between; - }
@@ -362,50 +357,52 @@
-
-
+
+ (hideReviews = !hideReviews)}> + +
+ Reviews + {revision.reviews?.length ?? 0} + +
+
+ +
(hideReviews = !hideReviews)}> - -
Reviews
-
-
-
- + title={hasOwnReview ? "You already published a review" : undefined} + onclick={() => createReview()}> + + Write Review +
{#if revision.reviews && revision.reviews.length} -
+
{#each revision.reviews as review} {/each}