class Playbook::PbAvatar::Avatar
def alt_text
def alt_text image_alt.present? ? image_alt : name end
def classname
def classname generate_classname("pb_avatar_kit", "size_#{size}") end
def handle_img_error
def handle_img_error "this.style.display = 'none'" end
def initials
def initials name.split.map(&:first).join.downcase end
def online_status_props
def online_status_props { status: status, classname: "size_#{size}" } end
def overlay_component
def overlay_component component_overlay && component_overlay[:component] end
def placement_mapping
def placement_mapping xs_styles = placement_styles("xs") { "xxs" => xs_styles, "xs" => xs_styles, "sm" => placement_styles("xs"), "md" => placement_styles("0"), "lg" => placement_styles("0"), "xl" => placement_styles({ value: "xxs", inset: true }), } end
def placement_styles(offset)
def placement_styles(offset) top_bottom_offset = if offset == "xs" "xs" elsif offset == { value: "xxs", inset: true } { value: "xxs", inset: true } else "0" end { "top-right" => { top: top_bottom_offset, right: offset }, "bottom-left" => { bottom: top_bottom_offset, left: offset }, "top-left" => { top: top_bottom_offset, left: offset }, "bottom-right" => { bottom: top_bottom_offset, right: offset }, "bottom-center" => { bottom: "xs", classname: "overlay_bottom_center" }, "top-center" => { top: "xs", classname: "overlay_top_center" }, "left-center" => { left: "sm", classname: "overlay_left_center" }, "right-center" => { right: "sm", classname: "overlay_right_center" }, } end
def specific_placement_style
def specific_placement_style placement = component_overlay[:placement] if component_overlay placement_mapping[size][placement] end