diff --git a/app/javascript/chat/githubRepo.jsx b/app/javascript/chat/githubRepo.jsx index f956223cc..d25a0d871 100644 --- a/app/javascript/chat/githubRepo.jsx +++ b/app/javascript/chat/githubRepo.jsx @@ -1,10 +1,9 @@ import { h, Component } from 'preact'; import PropTypes from 'prop-types'; -import { getJSONContents } from './actions'; import marked from 'marked'; +import { getJSONContents } from './actions'; export default class GithubRepo extends Component { - constructor(props) { super(props); this.state = { @@ -14,115 +13,166 @@ export default class GithubRepo extends Component { readme: null, content: null, token: props.githubToken, - path: null - } + path: null, + }; } - componentDidMount(){ + componentDidMount() { if (this.state.token) { - getJSONContents(`https://api.github.com/repos/${this.props.resource.args}/contents?access_token=`+this.state.token, - this.loadContent, - this.loadFailure) - getJSONContents(`https://api.github.com/repos/${this.props.resource.args}/readme?access_token=`+this.state.token, - this.loadContent, - this.loadFailure) + getJSONContents( + `https://api.github.com/repos/${ + this.props.resource.args + }/contents?access_token=${ this.state.token}`, + this.loadContent, + this.loadFailure, + ); + getJSONContents( + `https://api.github.com/repos/${ + this.props.resource.args + }/readme?access_token=${ this.state.token}`, + this.loadContent, + this.loadFailure, + ); } - this.setState({path: this.props.resource.args}) + this.setState({ path: this.props.resource.args }); } handleItemClick = e => { e.preventDefault(); - getJSONContents(`${e.target.dataset.apiUrl}&access_token=`+this.state.token, - this.loadContent, - this.loadFailure) + getJSONContents( + `${e.target.dataset.apiUrl}&access_token=${ this.state.token}`, + this.loadContent, + this.loadFailure, + ); this.setState({ root: false, - path: e.target.dataset.path - }) - } + path: e.target.dataset.path, + }); + }; loadContent = response => { - let files = []; - let directories = []; - console.log(response) + const files = []; + const directories = []; if (response.message === 'Not Found') { - this.setState({path: 'Repo not found (misspelled or private?)'}) + this.setState({ path: 'Repo not found (misspelled or private?)' }); } else if (Array.isArray(response)) { - response.forEach( item => { + response.forEach(item => { if (item.type === 'file') { - files.push(item) + files.push(item); } else { - directories.push(item) + directories.push(item); } - }) - this.setState({files: files, - directories: directories, - response: response}) - } else if (response.path === "README.md") { + }); this.setState({ - readme: window.atob(response.content) - }) + files, + directories, + response, + }); + } else if (response.path === 'README.md') { + this.setState({ + readme: window.atob(response.content), + }); } else if (response.content) { this.setState({ content: window.atob(response.content), - response: response - }) + response, + }); } - } + }; loadFailure = response => { - this.setState({path: response.message}) - } + this.setState({ path: response.message }); + }; render() { if (!this.state.token || this.state.token.length === 0) { - return
- You must authenticate with GitHub to use this feature. -
-
- {this.state.content}
-
- + You must + {' '} + + authenticate with GitHub + + {' '} + to use this feature. +
+{this.state.content}
+