Skip to content

Commit 52e7ab8

Browse files
committed
simplify sidebar
1 parent 7cc6e27 commit 52e7ab8

File tree

7 files changed

+76
-105
lines changed

7 files changed

+76
-105
lines changed

_src/app/docs/src/SideBar.js

+26-39
Original file line numberDiff line numberDiff line change
@@ -5,56 +5,36 @@ var defs = require('../../../resources/immutable.d.json');
55

66

77
var SideBar = React.createClass({
8-
render: function () {
9-
8+
render() {
109
var type = defs.Immutable;
11-
var functions = Seq(type.module).filter(t => !t.interface && !t.module);
12-
var types = Seq(type.module).filter(t => t.interface || t.module);
1310

1411
return (
1512
<div className="sideBar">
1613
<div className="scrollContent">
17-
{functions.map((t, name) =>
18-
<div>
19-
<Router.Link key={name} to={'/' + name}>
20-
{(name) + '()'}
21-
</Router.Link>
22-
</div>
23-
).toArray()}
24-
25-
{types.map((t, name) =>
26-
sideBarType.call(this, name, t)
14+
{Seq(type.module).map((t, name) =>
15+
this.renderSideBarType(name, t)
2716
).toArray()}
2817
</div>
2918
</div>
3019
);
20+
},
3121

32-
}
33-
});
34-
35-
function sideBarType(typeName, type) {
36-
var call = type.call;
37-
var functions = Seq(type.module).filter(t => !t.interface && !t.module);
38-
var types = Seq(type.module).filter(t => t.interface || t.module);
22+
renderSideBarType(typeName, type) {
23+
var isFocus = this.props.focus === typeName;
24+
var isFunction = !type.interface && !type.module;
25+
var call = type.call;
26+
var functions = Seq(type.module).filter(t => !t.interface && !t.module);
27+
var types = Seq(type.module).filter(t => t.interface || t.module);
3928

40-
if (this.props.focus !== typeName) {
41-
return <div key={typeName}>
42-
<h2>
43-
<Router.Link to={'/' + typeName}>
44-
{typeName}
45-
</Router.Link>
46-
</h2>
47-
</div>
48-
}
29+
var label = typeName + (isFunction ? '()' : '');
4930

50-
var memberGroups = this.props.memberGroups;
31+
if (!isFocus) {
32+
label = <Router.Link to={'/' + typeName}>{label}</Router.Link>;
33+
}
5134

52-
return (
53-
<div key={typeName}>
54-
<h2>
55-
{typeName}
56-
</h2>
35+
var memberGroups = this.props.memberGroups;
5736

37+
var members = !isFocus || isFunction ? null :
5838
<div className="members">
5939

6040
{call &&
@@ -111,9 +91,16 @@ function sideBarType(typeName, type) {
11191
])
11292
).flatten().toArray()}
11393
</section>
94+
</div>;
95+
96+
return (
97+
<div key={typeName}>
98+
<h2>{label}</h2>
99+
{members}
114100
</div>
115-
</div>
116-
);
117-
}
101+
);
102+
}
103+
});
104+
118105

119106
module.exports = SideBar;

_src/app/docs/src/style.less

+3-6
Original file line numberDiff line numberDiff line change
@@ -81,19 +81,16 @@
8181
.sideBar h2 {
8282
font-size: 1em;
8383
margin: 1em 0;
84+
8485
position: relative;
8586
}
8687

8788
.sideBar h2 a {
88-
color: @header-color;
89-
}
90-
91-
.sideBar h2 a:hover {
92-
color: @link-color;
89+
font-weight: normal;
9390
}
9491

9592
.sideBar .members {
96-
margin: 0 0 2em 1em;
93+
margin: 0 0 2.5em 1em;
9794
}
9895

9996
.sideBar .groupTitle {

docs/bundle.css

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/bundle.js

+26-39
Original file line numberDiff line numberDiff line change
@@ -719,56 +719,36 @@ var defs = require('../../../resources/immutable.d.json');
719719

720720

721721
var SideBar = React.createClass({displayName: 'SideBar',
722-
render: function () {
723-
722+
render:function() {
724723
var type = defs.Immutable;
725-
var functions = Seq(type.module).filter(function(t) {return !t.interface && !t.module;});
726-
var types = Seq(type.module).filter(function(t) {return t.interface || t.module;});
727724

728725
return (
729726
React.createElement("div", {className: "sideBar"},
730727
React.createElement("div", {className: "scrollContent"},
731-
functions.map(function(t, name)
732-
{return React.createElement("div", null,
733-
React.createElement(Router.Link, {key: name, to: '/' + name},
734-
(name) + '()'
735-
)
736-
);}
737-
).toArray(),
738-
739-
types.map(function(t, name)
740-
{return sideBarType.call(this, name, t);}.bind(this)
728+
Seq(type.module).map(function(t, name)
729+
{return this.renderSideBarType(name, t);}.bind(this)
741730
).toArray()
742731
)
743732
)
744733
);
734+
},
745735

746-
}
747-
});
748-
749-
function sideBarType(typeName, type) {
750-
var call = type.call;
751-
var functions = Seq(type.module).filter(function(t) {return !t.interface && !t.module;});
752-
var types = Seq(type.module).filter(function(t) {return t.interface || t.module;});
736+
renderSideBarType:function(typeName, type) {
737+
var isFocus = this.props.focus === typeName;
738+
var isFunction = !type.interface && !type.module;
739+
var call = type.call;
740+
var functions = Seq(type.module).filter(function(t) {return !t.interface && !t.module;});
741+
var types = Seq(type.module).filter(function(t) {return t.interface || t.module;});
753742

754-
if (this.props.focus !== typeName) {
755-
return React.createElement("div", {key: typeName},
756-
React.createElement("h2", null,
757-
React.createElement(Router.Link, {to: '/' + typeName},
758-
typeName
759-
)
760-
)
761-
)
762-
}
743+
var label = typeName + (isFunction ? '()' : '');
763744

764-
var memberGroups = this.props.memberGroups;
745+
if (!isFocus) {
746+
label = React.createElement(Router.Link, {to: '/' + typeName}, label);
747+
}
765748

766-
return (
767-
React.createElement("div", {key: typeName},
768-
React.createElement("h2", null,
769-
typeName
770-
),
749+
var memberGroups = this.props.memberGroups;
771750

751+
var members = !isFocus || isFunction ? null :
772752
React.createElement("div", {className: "members"},
773753

774754
call &&
@@ -825,10 +805,17 @@ function sideBarType(typeName, type) {
825805
]);}
826806
).flatten().toArray()
827807
)
808+
);
809+
810+
return (
811+
React.createElement("div", {key: typeName},
812+
React.createElement("h2", null, label),
813+
members
828814
)
829-
)
830-
);
831-
}
815+
);
816+
}
817+
});
818+
832819

833820
module.exports = SideBar;
834821

0 commit comments

Comments
 (0)