import React from 'react'; import CopyButton from '../CopyButton'; export default class RevisionPath extends React.Component { constructor(props) { super(props); this.state = { pages: [], isListPage: false, }; } componentWillMount() { // whether list page or not const isListPage = this.props.pagePath.match(/\/$/); this.setState({ isListPage }); // generate pages obj let splitted = this.props.pagePath.split(/\//); splitted.shift(); // omit first element with shift() if (splitted[splitted.length-1] === '') { splitted.pop(); // omit last element with unshift() } let pages = []; let parentPath = '/'; splitted.forEach((pageName) => { pages.push({ pagePath: parentPath + pageName, pageName: pageName, }); parentPath += pageName + '/'; }); this.setState({ pages }); } showToolTip() { $('#btnCopy').tooltip('show'); setTimeout(() => { $('#btnCopy').tooltip('hide'); }, 1000); } render() { // define style const rootStyle = { marginRight: "0.2em", } const separatorStyle = { marginLeft: "0.2em", marginRight: "0.2em", } const pageLength = this.state.pages.length; const afterElements = []; this.state.pages.forEach((page, index) => { const isLastElement = (index == pageLength-1); // add elements afterElements.push( {page.pageName} ); afterElements.push( / ); }); return ( / {afterElements} ); } } RevisionPath.propTypes = { pagePath: React.PropTypes.string.isRequired, };