| |
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>
|
| |
{#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}
|