34 lines
1.1 KiB
Svelte
34 lines
1.1 KiB
Svelte
<script lang="ts">
|
|
import * as Select from "#lib/components/ui/select/index.js";
|
|
import { Label } from "#lib/components/ui/label/index.js";
|
|
import type { DashboardTableFeatures } from "./data-table-features.js";
|
|
import type { Schema } from "./schemas.js";
|
|
import type { Row } from "@tanstack/svelte-table";
|
|
|
|
let { row }: { row: Row<DashboardTableFeatures, Schema> } = $props();
|
|
|
|
const isAssigned = $derived(row.original.reviewer !== "Assign reviewer");
|
|
let reviewer = $state("");
|
|
</script>
|
|
|
|
{#if isAssigned}
|
|
{row.original.reviewer}
|
|
{:else}
|
|
<Label for="{row.original.id}-reviewer" class="sr-only">Reviewer</Label>
|
|
<Select.Root type="single" bind:value={reviewer}>
|
|
<Select.Trigger
|
|
class="w-38 **:data-[slot=select-value]:block **:data-[slot=select-value]:truncate"
|
|
size="sm"
|
|
id="{row.original.id}-reviewer"
|
|
>
|
|
<span data-slot="select-value">
|
|
{reviewer !== "" ? reviewer : "Assign reviewer"}
|
|
</span>
|
|
</Select.Trigger>
|
|
<Select.Content align="end">
|
|
<Select.Item value="Eddie Lake">Eddie Lake</Select.Item>
|
|
<Select.Item value="Jamik Tashpulatov">Jamik Tashpulatov</Select.Item>
|
|
</Select.Content>
|
|
</Select.Root>
|
|
{/if}
|