diff --git a/packages/ui-default/components/problem/tag.page.styl b/packages/ui-default/components/problem/tag.page.styl index f248977de..9ac8fde9a 100644 --- a/packages/ui-default/components/problem/tag.page.styl +++ b/packages/ui-default/components/problem/tag.page.styl @@ -3,6 +3,7 @@ padding: 0 !important list-style: none !important font-size: 0 + word-break: keep-all .problem__tag display: inline-block @@ -14,7 +15,7 @@ .problem__tag-item padding: rem(0px) margin-left: rem(3px) - margin-bottom: rem(2px) + margin-bottom: rem(5px) &:hover text-decoration: none diff --git a/packages/ui-default/package.json b/packages/ui-default/package.json index 0975698ad..f35c96cdb 100644 --- a/packages/ui-default/package.json +++ b/packages/ui-default/package.json @@ -1,6 +1,6 @@ { "name": "@hydrooj/ui-default", - "version": "4.11.11", + "version": "4.11.12", "author": "undefined ", "license": "AGPL-3.0", "main": "hydro.js", diff --git a/packages/ui-default/pages/problem_detail.page.jsx b/packages/ui-default/pages/problem_detail.page.jsx index 13bf3c8cb..7ffbd18f2 100644 --- a/packages/ui-default/pages/problem_detail.page.jsx +++ b/packages/ui-default/pages/problem_detail.page.jsx @@ -176,7 +176,6 @@ const page = new NamedPage(['problem_detail', 'contest_detail_problem', 'homewor async function loadSubjective() { try { - if (UiContext.pdoc.config?.type !== 'subjective') return; let s = ''; try { s = JSON.parse(UiContext.pdoc.content); @@ -193,9 +192,11 @@ const page = new NamedPage(['problem_detail', 'contest_detail_problem', 'homewor const props = yaml.load(s); if (!(props instanceof Array)) return; $('.outer-loader-container').show(); - const { default: Subjective } = await import('vj/components/subjective-question/index'); - const React = await import('react'); - const ReactDOM = await import('react-dom'); + const [{ default: Subjective }, React, ReactDOM] = await Promise.all([ + import('vj/components/subjective-question/index'), + import('react'), + import('react-dom'), + ]); ReactDOM.render(
@@ -215,12 +216,12 @@ const page = new NamedPage(['problem_detail', 'contest_detail_problem', 'homewor leaveScratchpadMode(); ev.preventDefault(); }); - $(document).on('click', '[name="problem-sidebar__show-category"]', (ev) => { + $(document).on('click', '[name="show_tags"]', (ev) => { $(ev.currentTarget).hide(); - $('[name="problem-sidebar__categories"]').show(); + $('span.tags').show(); }); $('[name="problem-sidebar__download').on('click', handleClickDownloadProblem); - loadSubjective(); + if (UiContext.pdoc.config?.type === 'subjective') loadSubjective(); if (pagename === 'contest_detail_problem') return; if (!Object.keys(UiContext.pdoc.stats || {}).length) { diff --git a/packages/ui-default/templates/problem_detail.html b/packages/ui-default/templates/problem_detail.html index 3b945b230..6fbac506e 100644 --- a/packages/ui-default/templates/problem_detail.html +++ b/packages/ui-default/templates/problem_detail.html @@ -49,6 +49,12 @@ {{ _('Accepted Ratio') }}: {% if pdoc.nSubmit > 0 %}{{ (100 * pdoc.nAccept / pdoc.nSubmit)|round|int }}%{% else %}{{ _('?') }}{% endif %} {{ _('Difficulty') }}: {{ pdoc['difficulty'] or _('(None)') }} {{ _('Uploaded By') }}: {{ user.render_inline(udoc, badge=false) }} + {% if pdoc.tag.length %} + {{ _('Show Tags') }} + {%- for tag in pdoc.tag -%} + {{ tag }} + {%- endfor -%} + {% endif %}