mirror of
https://github.com/chanzuckerberg/cellxgene.git
synced 2026-10-06 14:18:11 +08:00
implements category expansion for categorical metadata
This commit is contained in:
@@ -17,7 +17,8 @@ class Category extends React.Component {
|
|||||||
constructor(props) {
|
constructor(props) {
|
||||||
super(props);
|
super(props);
|
||||||
this.state = {
|
this.state = {
|
||||||
isChecked: true
|
isChecked: true,
|
||||||
|
isExpanded: false
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -42,6 +43,18 @@ class Category extends React.Component {
|
|||||||
})
|
})
|
||||||
this.setState({isChecked: false})
|
this.setState({isChecked: false})
|
||||||
}
|
}
|
||||||
|
renderCategoryItems() {
|
||||||
|
return _.map(alphabeticallySortedValues(this.props.values), (v, i) => {
|
||||||
|
return (
|
||||||
|
<Value
|
||||||
|
key={v}
|
||||||
|
metadataField={this.props.metadataField}
|
||||||
|
count={this.props.values[v]}
|
||||||
|
value={v}
|
||||||
|
i={i} />
|
||||||
|
)
|
||||||
|
})
|
||||||
|
}
|
||||||
render() {
|
render() {
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@@ -63,6 +76,13 @@ class Category extends React.Component {
|
|||||||
// fontStyle: "italic",
|
// fontStyle: "italic",
|
||||||
marginRight: 10,
|
marginRight: 10,
|
||||||
}}>
|
}}>
|
||||||
|
<span
|
||||||
|
style={{cursor: "pointer"}}
|
||||||
|
onClick={() => {
|
||||||
|
this.setState({isExpanded: !this.state.isExpanded})
|
||||||
|
}}>
|
||||||
|
{this.state.isExpanded ? "⯆ " : "⯈ "}
|
||||||
|
</span>
|
||||||
{this.props.metadataField}
|
{this.props.metadataField}
|
||||||
<input
|
<input
|
||||||
onChange={this.state.isChecked ? this.toggleNone.bind(this) : this.toggleAll.bind(this)}
|
onChange={this.state.isChecked ? this.toggleNone.bind(this) : this.toggleAll.bind(this)}
|
||||||
@@ -83,16 +103,7 @@ class Category extends React.Component {
|
|||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
{
|
{
|
||||||
_.map(alphabeticallySortedValues(this.props.values), (v, i) => {
|
this.state.isExpanded ? this.renderCategoryItems() : null
|
||||||
return (
|
|
||||||
<Value
|
|
||||||
key={v}
|
|
||||||
metadataField={this.props.metadataField}
|
|
||||||
count={this.props.values[v]}
|
|
||||||
value={v}
|
|
||||||
i={i} />
|
|
||||||
)
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user