|
43 | 43 | <Input aria-label="Search tasks" placeholder="問題名・問題ID・出典で検索" bind:value={search} /> |
44 | 44 | </div> |
45 | 45 |
|
46 | | - <Table hoverable> |
47 | | - <TableHead> |
48 | | - <TableHeadCell scope="col">問題名</TableHeadCell> |
49 | | - <TableHeadCell scope="col">出典</TableHeadCell> |
50 | | - <TableHeadCell scope="col">グレード(admin)</TableHeadCell> |
51 | | - <TableHeadCell scope="col">グレード(ユーザ投票)</TableHeadCell> |
52 | | - </TableHead> |
53 | | - <TableBody class="divide-y"> |
54 | | - {#if search === ''} |
55 | | - <TableBodyRow> |
56 | | - <TableBodyCell colspan={4} class="text-center text-gray-500 dark:text-gray-400"> |
57 | | - 問題名・問題ID・出典を入力してください |
58 | | - </TableBodyCell> |
59 | | - </TableBodyRow> |
60 | | - {:else} |
61 | | - {#each filteredTasks as task (task.task_id)} |
62 | | - <TableBodyRow> |
63 | | - <!-- Task name --> |
64 | | - <TableBodyCell> |
65 | | - <a |
66 | | - href={resolve('/votes/[slug]', { slug: task.task_id })} |
67 | | - class="text-primary-600 dark:text-primary-400 hover:underline text-sm" |
68 | | - > |
69 | | - {removeTaskIndexFromTitle(task.title, task.task_table_index)} |
70 | | - </a> |
71 | | - </TableBodyCell> |
72 | | - |
73 | | - <!-- Reference --> |
74 | | - <TableBodyCell class="text-sm"> |
75 | | - {addContestNameToTaskIndex(task.contest_id, task.task_table_index)} |
76 | | - </TableBodyCell> |
77 | | - |
78 | | - <!-- Grade for admin --> |
79 | | - {@render adminGradeCell(task)} |
80 | | - |
81 | | - <!-- Grade for user votes --> |
82 | | - <TableBodyCell> |
83 | | - {#if task.estimatedGrade} |
84 | | - <GradeLabel |
85 | | - taskGrade={task.estimatedGrade} |
86 | | - defaultPadding={0.25} |
87 | | - defaultWidth={6} |
88 | | - reducedWidth={6} |
89 | | - /> |
90 | | - {/if} |
91 | | - </TableBodyCell> |
92 | | - </TableBodyRow> |
93 | | - {:else} |
| 46 | + <div class="rounded-lg overflow-hidden border border-gray-200 dark:border-gray-700"> |
| 47 | + <Table hoverable> |
| 48 | + <TableHead> |
| 49 | + <TableHeadCell scope="col">問題名</TableHeadCell> |
| 50 | + <TableHeadCell scope="col">出典</TableHeadCell> |
| 51 | + <TableHeadCell scope="col">グレード(admin)</TableHeadCell> |
| 52 | + <TableHeadCell scope="col">グレード(ユーザ投票)</TableHeadCell> |
| 53 | + </TableHead> |
| 54 | + <TableBody class="divide-y divide-gray-100 dark:divide-gray-700"> |
| 55 | + {#if search === ''} |
94 | 56 | <TableBodyRow> |
95 | 57 | <TableBodyCell colspan={4} class="text-center text-gray-500 dark:text-gray-400"> |
96 | | - 該当する問題が見つかりませんでした |
| 58 | + 問題名・問題ID・出典を入力してください |
97 | 59 | </TableBodyCell> |
98 | 60 | </TableBodyRow> |
99 | | - {/each} |
100 | | - {/if} |
101 | | - </TableBody> |
102 | | - </Table> |
| 61 | + {:else} |
| 62 | + {#each filteredTasks as task (task.task_id)} |
| 63 | + <TableBodyRow> |
| 64 | + <!-- Task name --> |
| 65 | + <TableBodyCell> |
| 66 | + <a |
| 67 | + href={resolve('/votes/[slug]', { slug: task.task_id })} |
| 68 | + class="text-primary-600 dark:text-primary-400 hover:underline text-sm" |
| 69 | + > |
| 70 | + {removeTaskIndexFromTitle(task.title, task.task_table_index)} |
| 71 | + </a> |
| 72 | + </TableBodyCell> |
| 73 | + |
| 74 | + <!-- Reference --> |
| 75 | + <TableBodyCell class="text-sm"> |
| 76 | + {addContestNameToTaskIndex(task.contest_id, task.task_table_index)} |
| 77 | + </TableBodyCell> |
| 78 | + |
| 79 | + <!-- Grade for admin --> |
| 80 | + {@render adminGradeCell(task)} |
| 81 | + |
| 82 | + <!-- Grade for user votes --> |
| 83 | + <TableBodyCell> |
| 84 | + {#if task.estimatedGrade} |
| 85 | + <GradeLabel |
| 86 | + taskGrade={task.estimatedGrade} |
| 87 | + defaultPadding={0.25} |
| 88 | + defaultWidth={6} |
| 89 | + reducedWidth={6} |
| 90 | + /> |
| 91 | + {/if} |
| 92 | + </TableBodyCell> |
| 93 | + </TableBodyRow> |
| 94 | + {:else} |
| 95 | + <TableBodyRow> |
| 96 | + <TableBodyCell colspan={4} class="text-center text-gray-500 dark:text-gray-400"> |
| 97 | + 該当する問題が見つかりませんでした |
| 98 | + </TableBodyCell> |
| 99 | + </TableBodyRow> |
| 100 | + {/each} |
| 101 | + {/if} |
| 102 | + </TableBody> |
| 103 | + </Table> |
| 104 | + </div> |
103 | 105 | </div> |
104 | 106 |
|
105 | 107 | {#snippet adminGradeCell(task: TaskWithVoteInfo)} |
|
121 | 123 | </select> |
122 | 124 | </form> |
123 | 125 |
|
124 | | - {#if task.grade !== TaskGrade.PENDING && task.estimatedGrade} |
| 126 | + {#if task.grade !== TaskGrade.PENDING} |
125 | 127 | <div class="relative inline-block"> |
126 | 128 | <GradeLabel |
127 | 129 | taskGrade={task.grade} |
128 | 130 | defaultPadding={0.25} |
129 | 131 | defaultWidth={6} |
130 | 132 | reducedWidth={6} |
131 | 133 | /> |
132 | | - <RelativeEvaluationBadge |
133 | | - officialGrade={task.grade} |
134 | | - medianGrade={task.estimatedGrade} |
135 | | - badgeId="relative-eval-{task.task_id}" |
136 | | - /> |
| 134 | + |
| 135 | + {#if task.estimatedGrade} |
| 136 | + <RelativeEvaluationBadge |
| 137 | + officialGrade={task.grade} |
| 138 | + medianGrade={task.estimatedGrade} |
| 139 | + badgeId="relative-eval-{task.task_id}" |
| 140 | + /> |
| 141 | + {/if} |
137 | 142 | </div> |
138 | 143 | {/if} |
139 | 144 | </div> |
|
0 commit comments