module ReactWorkstation
  class ReactCreateProjectPage < Workstation::HomePage
    include PageHelpers::ReactHelpers
    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")

    select_list(:select_artist) do
      div_element(id: "project-artist-select-and-add-new")
        .div_element(class: "SelectInput-select").text_field_element
    end

    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]
      select_artist_element.when_present
      if create_new_dropdowns
        create_project_artist data[:artist]
      else
        select_project_artist data[:artist]
      end
      # d3 only
      select_subaccount data[:subaccount] if data[:subaccount]
      # 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)
      select_artist_element.send_keys :enter
    end
  end
end
