Improve PR Review Box UI (#22986)
This PR follows: * #22950 ### Before The Review Box has many problems: * It doesn't work for small screens. * It has an anonying animation which makes the UI laggy. * It uses "custom dropdown menu" which is very difficult to fine tune. * `$().toggle('visible')` is not a correct call * jQuery just accepts any invalid `duration` argument: `$().toggle('anyting')` * The button is not a button. <details>  </details> ### After These problems are fixed, and eliminate many `!important` games. <details>    </details> And most dropdown icons still looks good: <details>   </details> Co-authored-by: delvh <leon@kske.dev>
This commit is contained in:
parent
9ebf6424ee
commit
1fcf96ad01
9 changed files with 35 additions and 52 deletions
|
@ -60,6 +60,7 @@ export function initGlobalEnterQuickSubmit() {
|
|||
export function initGlobalButtonClickOnEnter() {
|
||||
$(document).on('keypress', '.ui.button', (e) => {
|
||||
if (e.keyCode === 13 || e.keyCode === 32) { // enter key or space bar
|
||||
if (e.target.nodeName === 'BUTTON') return; // button already handles space&enter correctly
|
||||
$(e.target).trigger('click');
|
||||
e.preventDefault();
|
||||
}
|
||||
|
|
|
@ -470,7 +470,7 @@ export function initRepoPullRequestReview() {
|
|||
assignMenuAttributes(form.find('.menu'));
|
||||
});
|
||||
|
||||
const $reviewBox = $('.review-box');
|
||||
const $reviewBox = $('.review-box-panel');
|
||||
if ($reviewBox.length === 1) {
|
||||
(async () => {
|
||||
// the editor's height is too large in some cases, and the panel cannot be scrolled with page now because there is `.repository .diff-detail-box.sticky { position: sticky; }`
|
||||
|
@ -487,12 +487,12 @@ export function initRepoPullRequestReview() {
|
|||
return;
|
||||
}
|
||||
|
||||
$('.btn-review').on('click', function (e) {
|
||||
$('.js-btn-review').on('click', function (e) {
|
||||
e.preventDefault();
|
||||
$(this).closest('.dropdown').find('.menu').toggle('visible'); // eslint-disable-line
|
||||
}).closest('.dropdown').find('.close').on('click', function (e) {
|
||||
toggleElem($(this).parent().find('.review-box-panel'));
|
||||
}).parent().find('.review-box-panel .close').on('click', function (e) {
|
||||
e.preventDefault();
|
||||
$(this).closest('.menu').toggle('visible'); // eslint-disable-line
|
||||
hideElem($(this).closest('.review-box-panel'));
|
||||
});
|
||||
|
||||
$(document).on('click', 'a.add-code-comment', async function (e) {
|
||||
|
|
|
@ -2476,24 +2476,13 @@ table th[data-sortt-desc] {
|
|||
}
|
||||
}
|
||||
|
||||
/* fix up SVG dropdown triangles because fomantic thinks they are icon fonts */
|
||||
/* see https://github.com/go-gitea/gitea/issues/14014 */
|
||||
.ui.dropdown > .dropdown.icon,
|
||||
.btn-review > .dropdown.icon {
|
||||
height: auto !important;
|
||||
margin-left: .5rem !important;
|
||||
margin-top: -1px !important;
|
||||
margin-bottom: -1px !important;
|
||||
margin-right: -.5rem !important;
|
||||
.ui.dropdown .svg.dropdown.icon,
|
||||
.svg.dropdown.icon {
|
||||
margin-top: 0 !important; // reset the "ui.selection.dropdown > .dropdown.icon {margin-top}", for the Issue Dependencies dropdown
|
||||
margin-right: -.5rem !important; // fix up SVG dropdown triangles because Fomantic thinks they are icon fonts
|
||||
height: auto; // reset the ".ui.dropdown > .dropdown.icon {height}", otherwise the icon would be too small
|
||||
}
|
||||
.ui.button.dropdown > .dropdown.icon,
|
||||
.btn-review > .dropdown.icon {
|
||||
float: right !important;
|
||||
|
||||
@media (max-width: 480px) {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
.ui.selection.dropdown > .search.icon,
|
||||
.ui.selection.dropdown > .delete.icon,
|
||||
.ui.selection.dropdown > .dropdown.icon {
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
}
|
||||
|
||||
.editor-toolbar {
|
||||
opacity: 1 !important;
|
||||
max-width: calc(100vw - 80px);
|
||||
border-color: var(--color-secondary);
|
||||
}
|
||||
|
||||
|
|
|
@ -2864,11 +2864,6 @@
|
|||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.repo-button-row .dropdown > .dropdown.icon {
|
||||
margin-left: .25rem !important;
|
||||
margin-right: 0 !important;
|
||||
}
|
||||
|
||||
.wiki .repo-button-row {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
|
|
@ -220,47 +220,45 @@ a.blob-excerpt:hover {
|
|||
|
||||
// See the comment of createCommentEasyMDE() for the review editor
|
||||
// EasyMDE's options can not handle minHeight & maxHeight together correctly, we have to set minHeight in JS code
|
||||
#review-box .CodeMirror-scroll {
|
||||
.review-box-panel .CodeMirror-scroll {
|
||||
min-height: 80px;
|
||||
max-height: calc(100vh - 360px);
|
||||
}
|
||||
|
||||
@media @mediaSm {
|
||||
#review-box > .menu {
|
||||
> .ui.segment {
|
||||
width: 94vw;
|
||||
}
|
||||
|
||||
.editor-toolbar {
|
||||
overflow-x: auto;
|
||||
}
|
||||
}
|
||||
|
||||
#review-box .CodeMirror-scroll {
|
||||
.review-box-panel .CodeMirror-scroll {
|
||||
max-width: calc(100vw - 70px);
|
||||
}
|
||||
}
|
||||
|
||||
@media @mediaMd {
|
||||
#review-box .CodeMirror-scroll {
|
||||
.review-box-panel .CodeMirror-scroll {
|
||||
max-width: 700px;
|
||||
}
|
||||
}
|
||||
|
||||
@media @mediaLg {
|
||||
#review-box .CodeMirror-scroll {
|
||||
.review-box-panel .CodeMirror-scroll {
|
||||
max-width: 800px;
|
||||
}
|
||||
}
|
||||
|
||||
@media @mediaXl {
|
||||
#review-box .CodeMirror-scroll {
|
||||
.review-box-panel .CodeMirror-scroll {
|
||||
max-width: 900px;
|
||||
}
|
||||
}
|
||||
|
||||
.review-box > .segment {
|
||||
border: none !important;
|
||||
#review-box {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.review-box-panel {
|
||||
position: absolute;
|
||||
min-width: max-content;
|
||||
top: 45px;
|
||||
right: -5px;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
#review-box .review-comments-counter {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue