@@ -66,12 +66,17 @@ class Menu extends React.Component {
66
66
}
67
67
}
68
68
renderMessages ( ) {
69
- if ( this . props . messages . length ) {
70
- return < li className = "slds-lookup__item" role = "presentaion" >
71
- { this . props . messages . join ( "; " ) }
72
- </ li >
73
- }
69
+ return this . props . messages . map ( ( message ) => {
70
+ return < li className = "slds-lookup__message" aria-live = "polite" > { message } </ li > ;
71
+ } ) ;
72
+ }
73
+
74
+ renderErrors ( ) {
75
+ return this . props . errors . map ( ( error ) => {
76
+ return < li className = "slds-lookup__error" aria-live = "polite" > { error } </ li > ;
77
+ } ) ;
74
78
}
79
+
75
80
renderItems ( ) {
76
81
return this . props . items . filter ( this . filter , this ) . map ( ( c , i ) => {
77
82
//isActive means it is aria-activedescendant
@@ -99,13 +104,26 @@ class Menu extends React.Component {
99
104
} ) ;
100
105
}
101
106
107
+ renderContent ( ) {
108
+ if ( this . props . errors . length )
109
+ return this . renderErrors
110
+ else if ( this . props . items . length === 0 )
111
+ return < li className = "slds-lookup__message" aria-live = "polite" > { this . props . emptyMessage } </ li > ;
112
+
113
+ elements = this . renderItems ( )
114
+ if ( this . props . messages . length ) {
115
+ return elements . concat ( this . renderMessages ( ) ) ;
116
+ }
117
+ return elements ;
118
+
119
+ }
120
+
102
121
render ( ) {
103
122
return (
104
123
< section id = "menuContainer" >
105
124
{ this . renderHeader ( ) }
106
125
< ul id = "list" className = "slds-lookup__list" role = "presentation" ref = "list" >
107
- { this . renderMessages ( ) }
108
- { this . renderItems ( ) }
126
+ { this . renderContent ( ) }
109
127
</ ul >
110
128
{ this . renderFooter ( ) }
111
129
</ section >
@@ -120,7 +138,9 @@ Menu.propTypes = {
120
138
focusIndex : React . PropTypes . number ,
121
139
listLength : React . PropTypes . number ,
122
140
items : React . PropTypes . array ,
141
+ emptyMessage : React . PropTypes . string ,
123
142
messages : React . PropTypes . arrayOf ( React . PropTypes . string ) ,
143
+ errors : React . PropTypes . arrayOf ( React . PropTypes . string ) ,
124
144
filterWith : React . PropTypes . func ,
125
145
getListLength : React . PropTypes . func ,
126
146
setFocus : React . PropTypes . func ,
0 commit comments