terriajs
Version:
Geospatial data visualization platform.
53 lines (45 loc) • 1.31 kB
JSX
;
import createReactClass from "create-react-class";
import PropTypes from "prop-types";
import React from "react";
import defined from "terriajs-cesium/Source/Core/defined";
import Icon from "../../../Styled/Icon";
import Styles from "./tool_button.scss";
const CatalogShortcut = createReactClass({
displayName: "CatalogShortcut",
propTypes: {
terria: PropTypes.object.isRequired,
viewState: PropTypes.object.isRequired,
catalogMember: PropTypes.object.isRequired,
glyph: PropTypes.string.isRequired,
title: PropTypes.string
},
async handleClick() {
if (defined(this.props.catalogMember)) {
(
await this.props.viewState.viewCatalogMember(this.props.catalogMember)
).raiseError(this.props.terria);
}
},
render() {
let title = "";
if (defined(this.props.title)) {
title = this.props.title;
} else if (defined(this.props.catalogMember.name)) {
title = this.props.catalogMember.name;
}
return (
<div className={Styles.toolButton}>
<button
type="button"
className={Styles.btn}
title={title}
onClick={this.handleClick}
>
<Icon glyph={this.props.glyph} />
</button>
</div>
);
}
});
export default CatalogShortcut;