From eec828d9a25450521da0f71046c101a5c359f0d4 Mon Sep 17 00:00:00 2001 From: panda Date: Wed, 8 May 2024 06:31:39 +0800 Subject: [PATCH] ui: add scoreboard highlight for self & star user (#797) --- packages/ui-default/pages/contest.page.styl | 3 +++ packages/ui-default/pages/contest_scoreboard.page.ts | 6 ++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/ui-default/pages/contest.page.styl b/packages/ui-default/pages/contest.page.styl index 2198257ee..28f355df6 100644 --- a/packages/ui-default/pages/contest.page.styl +++ b/packages/ui-default/pages/contest.page.styl @@ -196,6 +196,9 @@ $highlight-button-color = #F6DF45 .col--problem display: none + .star-highlight + background: lighten($primary-color, 90%) + .page--contest_user .col--uid width: rem(100px) diff --git a/packages/ui-default/pages/contest_scoreboard.page.ts b/packages/ui-default/pages/contest_scoreboard.page.ts index 904b415db..e8c2459be 100644 --- a/packages/ui-default/pages/contest_scoreboard.page.ts +++ b/packages/ui-default/pages/contest_scoreboard.page.ts @@ -8,7 +8,8 @@ const page = new NamedPage(['contest_scoreboard', 'homework_scoreboard'], () => const read = () => JSON.parse(localStorage.getItem(key) || '[]'); const write = (data) => localStorage.setItem(key, JSON.stringify(data)); - read().forEach((uid) => $(`.star.user--${uid}`).addClass('activated')); + $(`.star.user--${UserContext._id}`).closest('tr').addClass('star-highlight'); + read().forEach((uid) => $(`.star.user--${uid}`).addClass('activated').closest('tr').addClass('star-highlight')); $('.star').on('click', (e) => { const star = read(); const $target = $(e.currentTarget); @@ -27,9 +28,10 @@ const page = new NamedPage(['contest_scoreboard', 'homework_scoreboard'], () => const val = $(e.target).val(); if (val === 'all') { $('.data-table tbody tr').show(); + read().forEach((uid) => $(`.star.user--${uid}`).closest('tr').addClass('star-highlight')); } else if (val === 'star') { $('.data-table tbody tr').hide(); - read().forEach((uid) => $(`.star.user--${uid}`).closest('tr').show()); + read().forEach((uid) => $(`.star.user--${uid}`).closest('tr').show().removeClass('star-highlight')); } else if (val === 'rank') { $('.data-table tbody tr').show(); $('.rank--unrank').closest('tr').hide();