module Project
  class CreateProjectPage < BasePage
    page_url "/project/new-create"

    text_field(:project_name) { div_element(id: "project-name-input").text_field_element }
    text_field(:project_code) { div_element(id: "project-code-input").text_field_element }
    textarea(:project_description) { div_element(id: "project-description-input").text_area_element }
    react_select(:subaccount, id: "subaccount-select")
    text_field(:select_artist, id: "react-select-2-input")
    button(:create_project, text: "CREATE PROJECT")

    def populate_project_fields_with(data, create_new_dropdowns)
      self.project_name = data[:name]
      self.project_code = data[:code]
      # d3 only
      select_subaccount data[:subaccount] if data[:subaccount]
      select_artist_element.when_present
      if create_new_dropdowns
        create_new_project_artist data[:artist]
      else
        select_project_artist data[:artist]
      end
      # optional
      self.project_description = data[:description] if data[:description]

      create_project
    end

    def select_project_artist(artist)
      throttled_input(select_artist_element, artist, 2, false)
      dropdown_element = div_element(id: /react-select-2-option/, text: artist)
      dropdown_element.when_present.click
    end
  end
end
