Skip to content

Commit b722c70

Browse files
kyleturcolevithomason
authored andcommitted
update item component to handle images better
1 parent 47f05f7 commit b722c70

File tree

3 files changed

+23
-12
lines changed

3 files changed

+23
-12
lines changed

docs/app/Examples/elements/List/Content/ListImageExample.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import faker from 'faker';
22
import React, {Component} from 'react';
3-
import {List, ListItem} from 'stardust';
3+
import {List, ListItem, Image} from 'stardust';
44

55
export default class ListImageExample extends Component {
66
render() {

src/elements/Image/Image.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,7 @@ export default class Image extends Component {
2424
);
2525

2626
return (
27-
<div className={classes}>
28-
<img {...this.props} />
29-
</div>
27+
<img {...this.props} className={classes} />
3028
);
3129
}
3230
}

src/views/Items/Item.js

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ export default class Item extends Component {
1111
contentClass: PropTypes.string,
1212
description: customPropTypes.mutuallyExclusive(['children']),
1313
extra: PropTypes.node,
14-
heading: PropTypes.node,
14+
header: PropTypes.node,
1515
image: PropTypes.node,
1616
meta: PropTypes.node,
1717
};
@@ -27,20 +27,33 @@ export default class Item extends Component {
2727
};
2828

2929
render() {
30-
const heading = <div className='header'>{this.props.heading}</div>;
31-
const meta = <div className='meta'>{this.props.meta}</div>;
3230
const description = <div className='description'>{this.props.children || this.props.description}</div>;
3331
const extra = <div className='extra'>{this.props.extra}</div>;
32+
const header = <div className='header'>{this.props.header}</div>;
33+
34+
const imageClasses = classNames(
35+
'sd-item-image',
36+
'ui',
37+
this.props.image.props.className,
38+
'image',
39+
);
40+
const image = (
41+
<div className={imageClasses}>
42+
<img {..._.omit(this.props.image.props, 'className')} />
43+
</div>
44+
);
45+
const meta = <div className='meta'>{this.props.meta}</div>;
46+
3447
const contentClass = classNames('sd-item-content', this.props.contentClass, 'content');
3548
const content = (
3649
<div className={contentClass}>
37-
{this.props.heading && heading}
50+
{this.props.header && header}
3851
{this.props.meta && meta}
39-
{this.props.children && description || this.props.description && description}
52+
{(this.props.children || this.props.description) && description}
4053
{this.props.extra && extra}
4154
</div>
4255
);
43-
const hasContent = !!this.props.heading || !!this.props.meta || !!this.props.extra || !!this.props.children
56+
const hasContent = !!this.props.header || !!this.props.meta || !!this.props.extra || !!this.props.children
4457
|| !!this.props.description;
4558

4659
const classes = classNames(
@@ -54,13 +67,13 @@ export default class Item extends Component {
5467
delete props.className;
5568
delete props.description;
5669
delete props.extra;
57-
delete props.heading;
70+
delete props.header;
5871
delete props.image;
5972
delete props.meta;
6073

6174
return (
6275
<div {...props} className={classes}>
63-
{this.props.image}
76+
{this.props.image && image}
6477
{hasContent && content}
6578
</div>
6679
);

0 commit comments

Comments
 (0)