module ConflictManager
  class NewConflictsPage < BasePage
    class << self
      attr_accessor :searchable_conflict
    end
    page_url "/conflicts/new"

    table(:conflicts, class: "ConflictsTable")
    button(:bulk_respond_to, id: "bulk-respond-button")
    text_field(:search_input, class: "ConflictsFilterForm-field")
    div(:loading_indicator, class: "LoadingIndicator")
    svg(:no_tracks, class: "Icons-tracks-empty")
    span(:clear_filter, class: "ConflictsFilterForm-x-icon")

    def reset_search_input
      refresh
      wait_until { search_input? }
    end

    def wait_for_results
      loading_indicator_element.wait_while(&:present?)
      wait_until(120) { conflicts? }
    end

    def clear_filter
      return if clear_filter_element.present? == false
      clear_filter_element.click
    end

    def result_in_table?(filter)
      begin
        retries ||= 0
        wait_until { row_element(text: /.*#{Regexp.escape(filter)}.*/).present? }
      rescue NoMethodError
        puts "NoMethodError occured, retrying assertion"
        retry if (retries += 1) < 2
      rescue Watir::Wait::TimeoutError
        return false
      end
      true
    end
  end
end
