module Contract
  class ProductArrangement < UniversalPage
    include PageHelpers::ReactHelpers

    page_url "/product-splits"
    div(:product_level_split, class: "ProductLevelSplit")
    div(:product_level_split_table, class: "ProductLevelSplit-table")
    table(:clickable_table, class: %w[ClickableTable table table-striped])
    div(:search_div, class: "Select-input")
    textarea(:search_input) { search_div_element.text_field_element }
    div(:search_results, class: "GlobalSearchResults-option")
    button(:submit, text: "Submit")
    div(:loading_dots, class: "LoadingIndicator")
    spans(:delete_btn, class: "GlobalDeleteIcon")
    div(:success_message, class: %w[alert alert-success])
    div(:no_products_message, text: "No product level arrangments")

    text_field(:split) do
      div_element(class: "product-split-input").text_field(class: "form-control")
    end

    text_field(:split_with_validation_error) do
      div_element(class: "product-split-input-error").text_field(class: "form-control")
    end

    button(:confirm_delete) do
      div_element(class: "ReactModal-content").button(text: "Yes")
    end

    button(:cancel_delete) do
      div_element(class: "ReactModal-content").button(text: "No")
    end

    def delete_all_splits
      delete_btn_elements.each do |delete_button|
        delete_button.when_present.click
        loading_dots_element.wait_while(&:present?)
        confirm_delete
        confirm_delete_element.wait_while(&:present?)
        loading_dots_element.wait_while(&:present?)
      end
    end

    def add_split(upc, split_rate)
      search_input_element.send_keys upc
      search_results_element.when_present(120).click
      split_element.send_keys split_rate
      submit
      loading_dots_element.wait_while(&:present?)
      product_level_split_table_element.wait_until(&:present?)
      loading_dots_element.wait_while(&:present?)
    end
  end
end
