81e9c28425
This commit moves the rendering of the button back to the server, and shows/hides it using opacity rather than display. It also removes the transform applied to the button on hover (scale). Previously, both of these factors automatically triggered a reflow, which creates a performance bottleneck on pages with larger DOM size. MR: !12103
41 lines
1.7 KiB
Text
41 lines
1.7 KiB
Text
- email = local_assigns.fetch(:email, false)
|
|
- plain = local_assigns.fetch(:plain, false)
|
|
- discussions = local_assigns.fetch(:discussions, nil)
|
|
- type = line.type
|
|
- line_code = diff_file.line_code(line)
|
|
- if discussions && line.discussable?
|
|
- line_discussions = discussions[line_code]
|
|
%tr.line_holder{ class: type, id: (line_code unless plain) }
|
|
- case type
|
|
- when 'match'
|
|
= diff_match_line line.old_pos, line.new_pos, text: line.text
|
|
- when 'old-nonewline', 'new-nonewline'
|
|
%td.old_line.diff-line-num
|
|
%td.new_line.diff-line-num
|
|
%td.line_content.match= line.text
|
|
- else
|
|
%td.old_line.diff-line-num{ class: [type, ("js-avatar-container" if !plain)], data: { linenumber: line.old_pos } }
|
|
- link_text = type == "new" ? " " : line.old_pos
|
|
- if plain
|
|
= link_text
|
|
- else
|
|
= add_diff_note_button(line_code, diff_file.position(line), type)
|
|
%a{ href: "##{line_code}", data: { linenumber: link_text } }
|
|
- discussion = line_discussions.try(:first)
|
|
- if discussion && discussion.resolvable? && !plain
|
|
%diff-note-avatars{ "discussion-id" => discussion.id }
|
|
%td.new_line.diff-line-num{ class: type, data: { linenumber: line.new_pos } }
|
|
- link_text = type == "old" ? " " : line.new_pos
|
|
- if plain
|
|
= link_text
|
|
- else
|
|
%a{ href: "##{line_code}", data: { linenumber: link_text } }
|
|
%td.line_content.noteable_line{ class: type }<
|
|
- if email
|
|
%pre= line.text
|
|
- else
|
|
= diff_line_content(line.text)
|
|
|
|
- if line_discussions&.any?
|
|
- discussion_expanded = local_assigns.fetch(:discussion_expanded, line_discussions.any?(&:expanded?))
|
|
= render "discussions/diff_discussion", discussions: line_discussions, expanded: discussion_expanded
|