import { Loader } from 'UI';
import styles from './logTab.css';
const REQUEST = '[REQUEST]';
const RESPONSE = '[RESPONSE]';
const parse = text => text.split('\n').map((bText) => {
if (bText.indexOf(REQUEST) !== -1) {
return (
{'REQUEST: '}
{ bText.slice(REQUEST.length) }
);
}
if (bText.indexOf(RESPONSE) !== -1) {
return (
{'RESPONSE: '}
{ bText.slice(RESPONSE.length) }
);
}
return bText;
});
export default class LogTab extends React.PureComponent {
state = {
blocks: null,
errors: null,
};
componentWillMount() {
fetch(this.props.src)
.then(responce => responce.text())
.then(parse)
.then(blocks => this.setState({ errors: null, blocks }))
.catch(errors => this.setState({ errors, blocks: null }));
}
scrollToSelected = (wrapper) => {
const { selectedIndex } = this.props;
if (!selectedIndex || !wrapper) return;
wrapper.scrollTop = wrapper.children[ selectedIndex ].offsetTop;
}
render() {
const { blocks, errors } = this.state;
const { selectedIndex, className } = this.props;
if (errors) return 'Connection error';
if (!blocks) return ;
return (
{ blocks.map((block, i) =>
{ block }
)}
);
}
}