From 7298ad7b07000b5569449794376f3e9aed0af16b Mon Sep 17 00:00:00 2001 From: panda Date: Sat, 25 Feb 2023 06:48:09 +0000 Subject: [PATCH] ui: auto compact scoreboard --- packages/ui-default/pages/contest.page.styl | 38 ------------------- ...reboard.page.styl => scoreboard.page.styl} | 20 ++++++++-- ..._scoreboard.page.ts => scoreboard.page.ts} | 14 ++++++- 3 files changed, 30 insertions(+), 42 deletions(-) rename packages/ui-default/pages/{homework_scoreboard.page.styl => scoreboard.page.styl} (54%) rename packages/ui-default/pages/{contest_scoreboard.page.ts => scoreboard.page.ts} (71%) diff --git a/packages/ui-default/pages/contest.page.styl b/packages/ui-default/pages/contest.page.styl index 1b00388de..14a9c1063 100644 --- a/packages/ui-default/pages/contest.page.styl +++ b/packages/ui-default/pages/contest.page.styl @@ -154,44 +154,6 @@ $highlight-button-color = #F6DF45 .col--lang border-right: 1px solid $table-border-color - -.page--contest_scoreboard - .main - .row - max-width: 100vw !important; - - .col--rank - width: rem(60px) - text-align: center - border-right: 1px solid $table-border-color - - .col--user - min-width: rem(150px) - - .col--solved, .col--time - width: rem(70px) - text-align: center - - .col--total_score - width: rem(100px) - text-align: center - - .col--problem - width: rem(100px) - border-left: 1px solid $table-border-color - text-align: center - - .scoreboard--acm - .col--problem - width: rem(70px) !important - - +mobile() - .col--user - width: auto - - .col--problem - display: none - .page--contest_user .col--uid width: rem(100px) diff --git a/packages/ui-default/pages/homework_scoreboard.page.styl b/packages/ui-default/pages/scoreboard.page.styl similarity index 54% rename from packages/ui-default/pages/homework_scoreboard.page.styl rename to packages/ui-default/pages/scoreboard.page.styl index ff1064a34..38d398426 100644 --- a/packages/ui-default/pages/homework_scoreboard.page.styl +++ b/packages/ui-default/pages/scoreboard.page.styl @@ -1,4 +1,4 @@ -.page--homework_scoreboard +.page--contest_scoreboard,.page--homework_scoreboard .main .row max-width: 100vw !important; @@ -11,7 +11,14 @@ .col--user min-width: rem(150px) - .col--total_score, .col--time + &.compact + width: rem(150px) !important + + .col--solved, .col--time + width: rem(70px) + text-align: center + + .col--total_score width: rem(100px) text-align: center @@ -20,6 +27,13 @@ border-left: 1px solid $table-border-color text-align: center + .scoreboard--acm, .scoreboard--compact + .col--problem + width: rem(70px) !important + +mobile() + .col--user + width: auto + .col--problem, .col--record - display: none + display: none \ No newline at end of file diff --git a/packages/ui-default/pages/contest_scoreboard.page.ts b/packages/ui-default/pages/scoreboard.page.ts similarity index 71% rename from packages/ui-default/pages/contest_scoreboard.page.ts rename to packages/ui-default/pages/scoreboard.page.ts index 3ea594b30..73464cabc 100644 --- a/packages/ui-default/pages/contest_scoreboard.page.ts +++ b/packages/ui-default/pages/scoreboard.page.ts @@ -1,7 +1,16 @@ import $ from 'jquery'; import { NamedPage } from 'vj/misc/Page'; -const page = new NamedPage('contest_scoreboard', () => { +function compactScoreboard(tdoc) { + if (!$('.scoreboard--compact,.scoreboard--acm').length && $('.data-table').width() > window.innerWidth) { + $(`.scoreboard--${tdoc.rule}`).addClass('scoreboard--compact'); + } + if (!$('th.col--user').width()) { + $('.col--user').addClass('compact'); + } +} + +const page = new NamedPage(['contest_scoreboard', 'homework_scoreboard'], () => { const { tdoc } = UiContext; const key = `scoreboard-star/${tdoc.domainId}/${tdoc.docId}`; const read = () => JSON.parse(localStorage.getItem(key) || '[]'); @@ -34,6 +43,9 @@ const page = new NamedPage('contest_scoreboard', () => { $('.rank--unrank').closest('tr').hide(); } }); + + compactScoreboard(tdoc); + $(window).on('resize', () => compactScoreboard(tdoc)); }); export default page;