mirror of
https://codeberg.org/forgejo/forgejo
synced 2024-11-24 18:56:11 +01:00
0bc8bb3cc4
As the title. Label/assignee share the same code. * Close #22607 * Close #20727 Also: * partially fix for #21742, now the comment reaction and menu work with keyboard. * partially fix for #17705, in most cases the comment won't be lost. * partially fix for #21539 * partially fix for #20347 * partially fix for #7329 ### The `Enter` support Before, if user presses Enter, the dropdown just disappears and nothing happens or the window reloads. After, Enter can be used to select/deselect labels, and press Esc to hide the dropdown to update the labels (still no way to cancel .... maybe you can do a Cmd+R or F5 to refresh the window to discard the changes .....) This is only a quick patch, the UX is still not perfect, but it's much better than before. ### The `confirm` before reloading And more fixes for the `reload` problem, the new behaviors: * If nothing changes (just show/hide the dropdown), then the page won't be reloaded. * If there are draft comments, show a confirm dialog before reloading, to avoid losing comments. That's the best effect can be done at the moment, unless completely refactor these dropdown related code. Screenshot of the confirm dialog: <details> ![image](https://user-images.githubusercontent.com/2114189/220538288-e2da8459-6a4e-43cb-8596-74057f8a03a2.png) </details> --------- Co-authored-by: Brecht Van Lommel <brecht@blender.org> Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
15 lines
469 B
Handlebars
15 lines
469 B
Handlebars
{{if .ctx.IsSigned}}
|
|
<div class="item action ui pointing select-reaction dropdown top right" data-action-url="{{.ActionURL}}">
|
|
<a class="add-reaction">
|
|
{{svg "octicon-smiley"}}
|
|
</a>
|
|
<div class="menu">
|
|
<div class="header">{{.ctx.locale.Tr "repo.pick_reaction"}}</div>
|
|
<div class="divider"></div>
|
|
{{range $value := AllowedReactions}}
|
|
<a class="item reaction tooltip" data-content="{{$value}}">{{ReactionToEmoji $value}}</a>
|
|
{{end}}
|
|
</div>
|
|
</div>
|
|
{{end}}
|