app/pb_kits/playbook/pb_home_address_street/home_address_street.rb
# frozen_string_literal: true
module Playbook
module PbHomeAddressStreet
class HomeAddressStreet < Playbook::KitBase
prop :address
prop :address_cont
prop :city
prop :emphasis, type: Playbook::Props::Enum,
values: %w[street city none],
default: "street"
prop :home_id, type: Playbook::Props::Number
prop :home_url
prop :house_style
prop :new_window, type: Playbook::Props::Boolean,
default: false
prop :target
prop :state
prop :zipcode
prop :territory
prop :dark, type: Playbook::Props::Boolean, default: false
def classname
generate_classname("pb_home_address_street_kit", dark_class)
end
def city_state_zip
[city_state, zipcode].join(" ")
end
def city_state
[city&.titleize, state].join(", ")
end
def zip
zipcode.to_s
end
def address_house_style
[address&.titleize, house_style].join(separator)
end
def address_house_style2
address_cont&.titleize
end
def separator
house_style ? " \u00b7 " : ""
end
def city_emphasis_props
{
address_house_style: address_house_style,
address_house_style2: address_house_style2,
city_state: city_state,
dark: dark,
home_id: home_id,
home_url: home_url,
target: target_option,
new_window: new_window,
territory: territory,
zip: zip,
}
end
def street_emphasis_props
{
address_house_style: address_house_style,
address_house_style2: address_house_style2,
city_state_zip: city_state_zip,
dark: dark,
home_id: home_id,
home_url: home_url,
target: target_option,
new_window: new_window,
territory: territory,
}
end
def none_emphasis_props
{
address_house_style: address_house_style,
address_house_style2: address_house_style2,
city_state_zip: city_state_zip,
dark: dark,
home_id: home_id,
home_url: home_url,
target: target_option,
new_window: new_window,
territory: territory,
}
end
def target_option
if target && home_url
target
elsif new_window
"_blank"
else
"_self"
end
end
private
def dark_class
dark ? "dark" : nil
end
end
end
end