Skip to content

Commit bdf9e19

Browse files
author
Josh Habdas
committed
Segments as class property; Refactor Statistic to use customPropType
1 parent 41753af commit bdf9e19

File tree

10 files changed

+37
-43
lines changed

10 files changed

+37
-43
lines changed
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
import React, {Component} from 'react';
2-
import {Segment, Segments} from 'stardust';
2+
import {Segment} from 'stardust';
33

44
export default class SegmentHorizontalSegmentsExample extends Component {
55
render() {
66
return (
7-
<Segments className='horizontal'>
7+
<Segment.Segments className='horizontal'>
88
<Segment>Left</Segment>
99
<Segment>Middle</Segment>
1010
<Segment>Right</Segment>
11-
</Segments>
11+
</Segment.Segments>
1212
);
1313
}
1414
}
Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
11
import React, {Component} from 'react';
2-
import {Segment, Segments} from 'stardust';
2+
import {Segment} from 'stardust';
33

44
export default class SegmentNestedSegmentsExample extends Component {
55
render() {
66
return (
7-
<Segments>
7+
<Segment.Segments>
88
<Segment>Top</Segment>
9-
<Segments>
9+
<Segment.Segments>
1010
<Segment>Nested Top</Segment>
1111
<Segment>Nested Middle</Segment>
1212
<Segment>Nested Bottom</Segment>
13-
</Segments>
14-
<Segments className='horizontal'>
13+
</Segment.Segments>
14+
<Segment.Segments className='horizontal'>
1515
<Segment>Top</Segment>
1616
<Segment>Middle</Segment>
1717
<Segment>Bottom</Segment>
18-
</Segments>
18+
</Segment.Segments>
1919
<Segment>Bottom</Segment>
20-
</Segments>
20+
</Segment.Segments>
2121
);
2222
}
2323
}
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
import React, {Component} from 'react';
2-
import {Segment, Segments} from 'stardust';
2+
import {Segment} from 'stardust';
33

44
export default class SegmentPiledSegmentsExample extends Component {
55
render() {
66
return (
7-
<Segments className='piled'>
7+
<Segment.Segments className='piled'>
88
<Segment>Top</Segment>
99
<Segment>Middle</Segment>
1010
<Segment>Bottom</Segment>
11-
</Segments>
11+
</Segment.Segments>
1212
);
1313
}
1414
}
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
import React, {Component} from 'react';
2-
import {Segment, Segments} from 'stardust';
2+
import {Segment} from 'stardust';
33

44
export default class SegmentRaisedSegmentsExample extends Component {
55
render() {
66
return (
7-
<Segments className='raised'>
7+
<Segment.Segments className='raised'>
88
<Segment>Left</Segment>
99
<Segment>Middle</Segment>
1010
<Segment>Right</Segment>
11-
</Segments>
11+
</Segment.Segments>
1212
);
1313
}
1414
}
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
import React, {Component} from 'react';
2-
import {Segment, Segments} from 'stardust';
2+
import {Segment} from 'stardust';
33

44
export default class SegmentSegmentsExample extends Component {
55
render() {
66
return (
7-
<Segments>
7+
<Segment.Segments>
88
<Segment>Top</Segment>
99
<Segment>Middle</Segment>
1010
<Segment>Middle</Segment>
1111
<Segment>Middle</Segment>
1212
<Segment>Bottom</Segment>
13-
</Segments>
13+
</Segment.Segments>
1414
);
1515
}
1616
}
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
import React, {Component} from 'react';
2-
import {Segment, Segments} from 'stardust';
2+
import {Segment} from 'stardust';
33

44
export default class SegmentStackedSegmentsExample extends Component {
55
render() {
66
return (
7-
<Segments className='stacked'>
7+
<Segment.Segments className='stacked'>
88
<Segment>Top</Segment>
99
<Segment>Middle</Segment>
1010
<Segment>Bottom</Segment>
11-
</Segments>
11+
</Segment.Segments>
1212
);
1313
}
1414
}
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
import React, {Component} from 'react';
2-
import {Segment, Segments} from 'stardust';
2+
import {Segment} from 'stardust';
33

44
export default class SegmentCompactGroupExample extends Component {
55
render() {
66
return (
7-
<Segments className='compact'>
7+
<Segment.Segments className='compact'>
88
<Segment>
99
Pellentesque habitant morbi
1010
</Segment>
1111
<Segment>
1212
Pellentesque habitant morbi
1313
</Segment>
14-
</Segments>
14+
</Segment.Segments>
1515
);
1616
}
1717
}

src/elements/Segment/Segment.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import React, {Component, PropTypes} from 'react';
22
import classNames from 'classnames';
33
import META from 'src/utils/Meta';
4+
import Segments from './Segments';
45

56
/**
67
* A segment is used to create a grouping of related content.
@@ -24,6 +25,8 @@ export default class Segment extends Component {
2425
type: META.type.element,
2526
};
2627

28+
static Segments = Segments;
29+
2730
render() {
2831
const heading = <h4 className='sd-segment-heading ui header'>{this.props.heading}</h4>;
2932
const classes = classNames(

src/views/Statistic/Statistic.js

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
import _ from 'lodash';
21
import classNames from 'classnames';
3-
import React, {Children, Component, PropTypes} from 'react';
2+
import React, {Component, PropTypes} from 'react';
3+
44
import getUnhandledProps from 'src/utils/getUnhandledProps';
5+
import {ofComponentTypes} from 'src/utils/customPropTypes';
56
import META from 'src/utils/Meta';
67

78
import Statistics from './Statistics';
@@ -10,17 +11,7 @@ import Value from './Value';
1011

1112
export default class Statistic extends Component {
1213
static propTypes = {
13-
children: (props, propName, componentName) => {
14-
let isValid = true;
15-
Children.forEach(props.children, (child) => {
16-
if (!_.includes([Statistics, Label, Value], child.type)) {
17-
isValid = false;
18-
}
19-
});
20-
if (!isValid) {
21-
return new Error('`Statistic` must only have `Label` or `Value` children.');
22-
}
23-
},
14+
children: ofComponentTypes(['Statistics', 'Label', 'Value']),
2415
className: PropTypes.string,
2516
};
2617

test/specs/elements/Segment/Segments-test.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
import React from 'react';
2-
import {Segment, Segments} from 'stardust';
2+
import {Segment} from 'stardust';
33

44
describe('Segments', () => {
55
it('should render children', () => {
66
const [segmentOne, segmentTwo] = render(
7-
<Segments>
7+
<Segment.Segments>
88
<Segment>Top</Segment>
99
<Segment>Bottom</Segment>
10-
</Segments>
10+
</Segment.Segments>
1111
).scryClass('sd-segment');
1212

1313
segmentOne
@@ -20,11 +20,11 @@ describe('Segments', () => {
2020

2121
it('renders expected number of children', () => {
2222
render(
23-
<Segments>
23+
<Segment.Segments>
2424
<Segment>Top</Segment>
2525
<Segment>Middle</Segment>
2626
<Segment>Bottom</Segment>
27-
</Segments>
27+
</Segment.Segments>
2828
)
2929
.scryClass('sd-segment')
3030
.should.have.a.lengthOf(3);

0 commit comments

Comments
 (0)