Skip to content

Commit 0c8eb3d

Browse files
committed
🎨 Improve UI in contest table (#1874)
1 parent 11f90d1 commit 0c8eb3d

File tree

3 files changed

+21
-14
lines changed

3 files changed

+21
-14
lines changed

src/lib/components/SubmissionStatus/UpdatingDropdown.svelte

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import { enhance } from '$app/forms';
3131
3232
import { Dropdown, DropdownUl, DropdownLi, uiHelpers } from 'svelte-5-ui-lib';
33+
import Check from 'lucide-svelte/icons/check';
3334
3435
import type { TaskResult } from '$lib/types/task';
3536
@@ -180,13 +181,19 @@
180181
{activeUrl}
181182
{dropdownStatus}
182183
{closeDropdown}
183-
class="absolute w-32 z-20 left-auto right-0 mt-8"
184+
class="absolute w-32 z-20 left-auto right-0 mt-5"
184185
>
185-
<DropdownUl>
186+
<DropdownUl class="border rounded-lg shadow">
186187
{#if isLoggedIn}
187188
{#each submissionStatusOptions as submissionStatus}
188189
<DropdownLi href="javascript:void(0)" onclick={() => handleClick(submissionStatus)}>
189-
{submissionStatus.labelName}
190+
<div class="flex items-center justify-between">
191+
{submissionStatus.labelName}
192+
193+
{#if taskResult.status_name === submissionStatus.innerName}
194+
<Check class="w-4 h-4 text-primary-600 dark:text-gray-300" strokeWidth={3} />
195+
{/if}
196+
</div>
190197
</DropdownLi>
191198
{/each}
192199
{:else}

src/lib/components/TaskTables/TaskTable.svelte

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454
}
5555
5656
function getBodyCellClasses(contestId: string, taskIndex: string): string {
57-
const baseClasses = 'w-1/2 xs:w-1/3 sm:w-1/4 md:w-1/5 lg:w-1/6 px-1 py-1 border';
57+
const baseClasses = 'w-1/2 xs:w-1/3 sm:w-1/4 md:w-1/5 lg:w-1/6 px-1 py-1';
5858
const backgroundColor = getBackgroundColor(taskTable[contestId][taskIndex]);
5959
6060
return `${baseClasses} ${backgroundColor}`;
@@ -135,17 +135,15 @@
135135
<!-- https://github.com/kenkoooo/AtCoderProblems/blob/master/atcoder-problems-frontend/src/pages/TablePage/AtCoderRegularTable.tsx -->
136136
<!-- https://github.com/birdou/atcoder-blogs/blob/main/app/atcoder-blogs-frontend/src/pages/BlogTablePage/BlogTablePage.tsx -->
137137
<!-- https://tailwindcss.com/docs/position#sticky-positioning-elements -->
138-
<div class="container w-full overflow-hidden rounded-md border border-gray-100 shadow-sm">
138+
<div class="container w-full overflow-hidden rounded-md border shadow-sm">
139139
<div class="w-full overflow-auto">
140140
<Table id="task-table" class="text-md table-fixed w-full" aria-label="Task table">
141141
<TableHead class="text-sm bg-gray-100">
142-
<TableHeadCell class="w-full xl:w-16 px-2 text-center border" scope="col">
143-
Round
144-
</TableHeadCell>
142+
<TableHeadCell class="w-full xl:w-16 px-2 text-center" scope="col">Round</TableHeadCell>
145143

146144
{#if taskTableHeaderIds.length}
147145
{#each taskTableHeaderIds as taskTableHeaderId}
148-
<TableHeadCell class="text-center border" scope="col">
146+
<TableHeadCell class="text-center" scope="col">
149147
{taskTableHeaderId}
150148
</TableHeadCell>
151149
{/each}
@@ -156,7 +154,7 @@
156154
{#if contestIds.length && taskTableHeaderIds.length}
157155
{#each contestIds as contestId}
158156
<TableBodyRow class="flex flex-wrap xl:table-row">
159-
<TableBodyCell class="w-full xl:w-16 truncate px-2 py-2 text-center border">
157+
<TableBodyCell class="w-full xl:w-16 truncate px-2 py-2 text-center">
160158
{getContestRoundLabel(provider, contestId)}
161159
</TableBodyCell>
162160

src/lib/components/TaskTables/TaskTableBodyCell.svelte

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<script lang="ts">
2-
import EllipsisVertical from 'lucide-svelte/icons/ellipsis-vertical';
2+
import ChevronDown from 'lucide-svelte/icons/chevron-down';
33
44
import type { TaskResult } from '$lib/types/task';
55
@@ -20,10 +20,12 @@
2020
let updatingDropdown: UpdatingDropdown;
2121
</script>
2222

23-
<div class="flex items-center w-full space-x-1 text-left text-sm sm:text-md">
23+
<div
24+
class="flex items-center w-full pl-0 lg:pl-1 space-x-1 lg:space-x-2 text-left text-sm sm:text-md"
25+
>
2426
{@render taskGradeLabel(taskResult)}
2527

26-
<div class="flex justify-between w-full min-w-0">
28+
<div class="flex items-center justify-between w-full min-w-0">
2729
{@render taskTitleAndExternalLink(taskResult)}
2830
{@render submissionUpdaterAndLinksOfTaskDetailPage(taskResult)}
2931
</div>
@@ -62,7 +64,7 @@
6264
onclick={() => updatingDropdown.toggle()}
6365
aria-label="Update submission for {selectedTaskResult.title}"
6466
>
65-
<EllipsisVertical class="w-4 h-4 mx-auto" />
67+
<ChevronDown class="w-4 h-4 mx-auto" />
6668
</button>
6769

6870
<UpdatingDropdown bind:this={updatingDropdown} {taskResult} {isLoggedIn} {onupdate} />

0 commit comments

Comments
 (0)