Skip to content

Commit add0d50

Browse files
author
vvo
committed
fix(headerFooter): make collapsible click handler work
this is a hotfix
1 parent 438d43d commit add0d50

File tree

2 files changed

+60
-4
lines changed

2 files changed

+60
-4
lines changed

src/decorators/__tests__/headerFooter-test.js

Lines changed: 59 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ describe('headerFooter', () => {
5757
};
5858
expect(out).toEqualJSX(
5959
<div className="ais-root root">
60-
<Template rootProps={{className: 'ais-header'}} {...templateProps} onClick={null} />
60+
<Template rootProps={{className: 'ais-header', onClick: null}} {...templateProps} />
6161
<div className="ais-body body">
6262
<TestComponent {...defaultProps} />
6363
</div>
@@ -86,11 +86,68 @@ describe('headerFooter', () => {
8686
<div className="ais-body body">
8787
<TestComponent {...defaultProps} />
8888
</div>
89-
<Template rootProps={{className: 'ais-footer'}} {...templateProps} onClick={null} />
89+
<Template rootProps={{className: 'ais-footer', onClick: null}} {...templateProps} />
9090
</div>
9191
);
9292
});
9393

94+
describe('collapsible', () => {
95+
let templateProps;
96+
let headerTemplateProps;
97+
let footerTemplateProps;
98+
99+
beforeEach(() => {
100+
defaultProps.templateProps.templates = {
101+
header: 'yo header',
102+
footer: 'yo footer'
103+
};
104+
templateProps = {
105+
data: {},
106+
transformData: null,
107+
templates: {
108+
header: 'yo header',
109+
footer: 'yo footer'
110+
}
111+
};
112+
headerTemplateProps = {
113+
templateKey: 'header',
114+
...templateProps
115+
};
116+
footerTemplateProps = {
117+
templateKey: 'footer',
118+
...templateProps
119+
};
120+
});
121+
122+
it('when true', () => {
123+
defaultProps.collapsible = true;
124+
let out = render(defaultProps);
125+
expect(out).toEqualJSX(
126+
<div className="ais-root root ais-root__collapsible">
127+
<Template rootProps={{className: 'ais-header', onClick: function() {}}} {...headerTemplateProps} />
128+
<div className="ais-body body">
129+
<TestComponent {...defaultProps} />
130+
</div>
131+
<Template rootProps={{className: 'ais-footer', onClick: null}} {...footerTemplateProps} />
132+
</div>
133+
);
134+
});
135+
136+
it('when collapsed', () => {
137+
defaultProps.collapsible = {collapsed: true};
138+
let out = render(defaultProps);
139+
expect(out).toEqualJSX(
140+
<div className="ais-root root ais-root__collapsible ais-root__collapsed">
141+
<Template rootProps={{className: 'ais-header', onClick: function() {}}} {...headerTemplateProps} />
142+
<div className="ais-body body">
143+
<TestComponent {...defaultProps} />
144+
</div>
145+
<Template rootProps={{className: 'ais-footer', onClick: null}} {...footerTemplateProps} />
146+
</div>
147+
);
148+
});
149+
});
150+
94151
function render(props = {}) {
95152
let HeaderFooter = headerFooter(TestComponent);
96153
renderer.render(<HeaderFooter {...props} />);

src/decorators/headerFooter.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,7 @@ function headerFooter(ComposedComponent) {
4040
let className = cx(this.props.cssClasses[type], `ais-${type}`);
4141
return (
4242
<Template {...this.props.templateProps}
43-
onClick={handleClick}
44-
rootProps={{className}}
43+
rootProps={{className, onClick: handleClick}}
4544
templateKey={type}
4645
transformData={null}
4746
/>

0 commit comments

Comments
 (0)