68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
# File 'app/components/primer/beta/nav_list/item.rb', line 68
def before_render
if active_sub_item?
expand!
@content_arguments[:classes] = class_names(
@content_arguments[:classes],
"ActionListContent--hasActiveSubItem"
)
else
@system_arguments[:classes] = class_names(
@system_arguments[:classes],
"ActionListItem--navActive" => active?
)
end
@content_arguments[:"aria-current"] = "page" if active?
super
raise "Cannot render a trailing action for an item with subitems" if items.present? && trailing_action.present?
raise "Cannot pass `selected_by_ids:` for an item with subitems, since parent items cannot be selected" if items.present? && @selected_by_ids.present?
return if items.blank?
@sub_list_arguments[:aria] = merge_aria(
@sub_list_arguments,
{ aria: { labelledby: id } }
)
raise ArgumentError, "Items with sub-items cannot have hrefs" if href.present?
@content_arguments[:tag] = :button
@content_arguments[:"aria-expanded"] = @expanded.to_s
@content_arguments[:"data-action"] = "
click:#{@list.custom_element_name}#handleItemWithSubItemClick
keydown:#{@list.custom_element_name}#handleItemWithSubItemKeydown
"
with_private_trailing_action_icon(:"chevron-down", classes: "ActionListItem-collapseIcon")
@system_arguments[:classes] = class_names(
@system_arguments[:classes],
"ActionListItem--hasSubItem"
)
end
|