1# frozen_string_literal: true 2 3# A discussion on merge request or commit diffs consisting of `LegacyDiffNote` notes. 4# 5# All new diff discussions are of the type `DiffDiscussion`, but any diff discussions created 6# before the introduction of the new implementation still use `LegacyDiffDiscussion`. 7# 8# A discussion of this type is never resolvable. 9class LegacyDiffDiscussion < Discussion 10 include DiscussionOnDiff 11 12 memoized_values << :active 13 14 def self.note_class 15 LegacyDiffNote 16 end 17 18 def legacy_diff_discussion? 19 true 20 end 21 22 def on_image? 23 false 24 end 25 26 def on_text? 27 true 28 end 29 30 def active?(*args) 31 return @active if @active.present? 32 33 @active = first_note.active?(*args) 34 end 35 36 def collapsed? 37 !active? 38 end 39 40 def merge_request_version_params 41 return unless for_merge_request? 42 43 if active? 44 {} 45 else 46 nil 47 end 48 end 49 50 def reply_attributes 51 super.merge(line_code: line_code) 52 end 53end 54