Skip to content

Commit 5801558

Browse files
committed
Merge pull request #43 from hikkitada/htsang_modified_lookup
Htsang modified lookup
2 parents 12fb822 + ce8a585 commit 5801558

File tree

3 files changed

+46
-6
lines changed

3 files changed

+46
-6
lines changed

components/SLDSLookup/Menu/index.js

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,17 @@ class Menu extends React.Component {
5353
return <div className={isActiveClass}>{this.props.footer}</div>;
5454
}
5555
}
56+
renderMessages(){
57+
return this.props.messages.map((message) => {
58+
return <li className="slds-lookup__message" aria-live="polite">{message}</li>;
59+
});
60+
}
61+
62+
renderErrors(){
63+
return this.props.errors.map((error) => {
64+
return <li className="slds-lookup__error" aria-live="polite">{error}</li>;
65+
});
66+
}
5667

5768
renderItems(){
5869
return this.props.items.filter(this.filter, this).map((c, i) => {
@@ -81,15 +92,27 @@ class Menu extends React.Component {
8192
});
8293
}
8394

95+
renderContent() {
96+
if (this.props.errors.length)
97+
return this.renderErrors
98+
else if (this.props.items.length === 0)
99+
return <li className="slds-lookup__message" aria-live="polite">{this.props.emptyMessage}</li>;
100+
101+
elements = this.renderItems()
102+
if (this.props.messages.length){
103+
return elements.concat(this.renderMessages());
104+
}
105+
return elements;
106+
107+
}
108+
84109
render(){
85110
return (
86111
<section id="menuContainer">
87112
{this.renderHeader()}
88-
89113
<ul id="list" className="slds-lookup__list" role="presentation" ref="list">
90-
{this.renderItems()}
114+
{this.renderContent()}
91115
</ul>
92-
93116
{this.renderFooter()}
94117
</section>
95118
)
@@ -103,6 +126,9 @@ Menu.propTypes = {
103126
focusIndex: React.PropTypes.number,
104127
listLength: React.PropTypes.number,
105128
items: React.PropTypes.array,
129+
emptyMessage: React.PropTypes.string,
130+
messages: React.PropTypes.arrayOf(React.PropTypes.string),
131+
errors: React.PropTypes.arrayOf(React.PropTypes.string),
106132
filterWith: React.PropTypes.func,
107133
getListLength: React.PropTypes.func,
108134
setFocus: React.PropTypes.func,

components/SLDSLookup/index.jsx

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,9 @@ class SLDSLookup extends React.Component {
3737
focusIndex:null,
3838
selectedIndex: null,
3939
listLength:this.props.items.length,
40-
items:[]
40+
items:[],
41+
errors:[],
42+
messages:[],
4143
};
4244

4345

@@ -225,6 +227,9 @@ class SLDSLookup extends React.Component {
225227
focusIndex={this.state.focusIndex}
226228
listLength={this.state.listLength}
227229
items={this.state.items}
230+
emptyMessage={this.props.emptyMessage}
231+
messages={this.state.messages}
232+
errors={this.state.errors}
228233
filterWith={this.props.filterWith}
229234
getListLength={this.getListLength.bind(this)}
230235
setFocus={this.setFocus.bind(this)}
@@ -293,6 +298,12 @@ class SLDSLookup extends React.Component {
293298
if(newProps.items){
294299
this.modifyItems(newProps.items);
295300
}
301+
if (newProps.message){
302+
this.setState({message: newProps.message});
303+
}
304+
if (newProps.error){
305+
this.setState({errors: newProps.error});
306+
}
296307
}
297308

298309
render(){
@@ -328,7 +339,6 @@ class SLDSLookup extends React.Component {
328339
value={this.state.searchTerm}
329340
/>
330341
</div>
331-
332342
{this.props.modal?this.renderModalMenu():this.renderSimpleMenu()}
333343
</section>
334344
</div>
@@ -339,6 +349,10 @@ class SLDSLookup extends React.Component {
339349

340350
SLDSLookup.propTypes = {
341351
items: React.PropTypes.array,
352+
errors: React.PropTypes.arrayOf(React.PropTypes.string),
353+
emptyMessage: React.PropTypes.string,
354+
messages: React.PropTypes.arrayOf(React.PropTypes.string),
355+
errors: React.PropTypes.arrayOf(React.PropTypes.string),
342356
label: React.PropTypes.string,
343357
type: React.PropTypes.string,
344358
filterWith: React.PropTypes.func,

demo/pages/HomePage/PicklistBaseSection.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ module.exports = React.createClass( {
5757
<div className="slds-p-vertical--large">
5858
<SLDSPicklistBase
5959
options={[
60-
{label:'A Option Option Super Super Long',value:'A0'},
60+
{label:'A Option Option Super Super Long',value:'A0', title: 'Greg'},
6161
{label:'B Option',value:'B0'},
6262
{label:'C Option',value:'C0'},
6363
{label:'D Option',value:'D0'},

0 commit comments

Comments
 (0)