More semicolons deleted and functions created
This commit is contained in:
		
							parent
							
								
									9f1efeee7d
								
							
						
					
					
						commit
						9a7f3fd0cc
					
				@ -1,5 +1,4 @@
 | 
				
			|||||||
import React, { Component } from 'react';
 | 
					import React, { Component } from 'react';
 | 
				
			||||||
 | 
					 | 
				
			||||||
import './alert.css';
 | 
					import './alert.css';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default class Alert extends Component {
 | 
					export default class Alert extends Component {
 | 
				
			||||||
 | 
				
			|||||||
@ -1,21 +1,19 @@
 | 
				
			|||||||
import React, { Component } from 'react';
 | 
					import React, { Component } from 'react'
 | 
				
			||||||
 | 
					import './header.css'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import './header.css';
 | 
					export default class Header extends Component {
 | 
				
			||||||
 | 
					 | 
				
			||||||
class Header extends Component {
 | 
					 | 
				
			||||||
    render() {
 | 
					    render() {
 | 
				
			||||||
 | 
					        let user = this.props.user
 | 
				
			||||||
        return (
 | 
					        return (
 | 
				
			||||||
            <header>
 | 
					            <header>
 | 
				
			||||||
                <div className="header-container">
 | 
					                <div className="header-container">
 | 
				
			||||||
                    <div className="go-api">go-api<span>commands</span></div>
 | 
					                    <div className="go-api">go-api<span>commands</span></div>
 | 
				
			||||||
                    <div className="auth">
 | 
					                    <div className="auth">
 | 
				
			||||||
                        <div className="name">{this.props.user.name}</div>
 | 
					                        <div className="name">{user.name}</div>
 | 
				
			||||||
                        <img src={this.props.user.picture} alt="" />
 | 
					                        <img src={user.picture} alt={"Picture of "+ user.name} />
 | 
				
			||||||
                    </div>
 | 
					                    </div>
 | 
				
			||||||
                </div>
 | 
					                </div>
 | 
				
			||||||
            </header>
 | 
					            </header>
 | 
				
			||||||
        );
 | 
					        )
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
export default Header;
 | 
					 | 
				
			||||||
 | 
				
			|||||||
@ -1,13 +1,13 @@
 | 
				
			|||||||
import React, { Component } from 'react';
 | 
					import React, { Component } from 'react'
 | 
				
			||||||
import { Link } from 'react-router-dom';
 | 
					import { Link } from 'react-router-dom'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import Timestamp from './timestamp.js';
 | 
					import Timestamp from './timestamp.js'
 | 
				
			||||||
import './job_list.css';
 | 
					import './job_list.css'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default class JobList extends Component {
 | 
					export default class JobList extends Component {
 | 
				
			||||||
    render() {
 | 
					    render() {
 | 
				
			||||||
        if (this.props.jobs === undefined) {
 | 
					        if (this.props.jobs === undefined) {
 | 
				
			||||||
            return null;
 | 
					            return null
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return (
 | 
					        return (
 | 
				
			||||||
@ -26,7 +26,7 @@ export default class JobList extends Component {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    renderJob(job) {
 | 
					    renderJob(job) {
 | 
				
			||||||
        let shortID = job.id.substring(0, 8);
 | 
					        let shortID = job.id.substring(0, 8)
 | 
				
			||||||
        return (
 | 
					        return (
 | 
				
			||||||
            <div key={job.id} className={"job-details short"}>
 | 
					            <div key={job.id} className={"job-details short"}>
 | 
				
			||||||
                <div className={"dot "+ job.state}></div>
 | 
					                <div className={"dot "+ job.state}></div>
 | 
				
			||||||
@ -36,7 +36,7 @@ export default class JobList extends Component {
 | 
				
			|||||||
                <div className="started"><Timestamp date={job.started_at} /></div>
 | 
					                <div className="started"><Timestamp date={job.started_at} /></div>
 | 
				
			||||||
                <div className="took"><Timestamp from={job.started_at} until={job.finished_at} /></div>
 | 
					                <div className="took"><Timestamp from={job.started_at} until={job.finished_at} /></div>
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
        );
 | 
					        )
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -1,40 +1,37 @@
 | 
				
			|||||||
import React, { Component } from 'react';
 | 
					import React, { Component } from 'react'
 | 
				
			||||||
import { Link } from 'react-router-dom';
 | 
					import { Link } from 'react-router-dom'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import './nav.css';
 | 
					import './nav.css'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default class Nav extends Component {
 | 
					export default class Nav extends Component {
 | 
				
			||||||
    constructor(props) {
 | 
					    constructor(props) {
 | 
				
			||||||
        super(props);
 | 
					        super(props)
 | 
				
			||||||
        this.state = {
 | 
					        this.state = {query: ""}
 | 
				
			||||||
            query: "",
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    render() {
 | 
					    render() {
 | 
				
			||||||
        return (
 | 
					        return (
 | 
				
			||||||
            <nav>
 | 
					            <nav>
 | 
				
			||||||
                <input className="search" type="search" placeholder="Search for commands"
 | 
					                <input className="search" type="search" placeholder="Search for commands"
 | 
				
			||||||
                    value={this.props.query} onChange={this.props.onQueryChange} results="0" />
 | 
					                    value={this.props.query} onChange={this.props.onQueryChange} results="0" />
 | 
				
			||||||
                <ul>
 | 
					                <ul>
 | 
				
			||||||
                    {Object.keys(this.props.commands).map((name) => {
 | 
					                    {Object.keys(this.props.commands).map(this.renderItem)}
 | 
				
			||||||
                        let cmd = this.props.commands[name];
 | 
					 | 
				
			||||||
                        if (cmd.name.indexOf(this.props.query) === -1) {
 | 
					 | 
				
			||||||
                            return null;
 | 
					 | 
				
			||||||
                        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                        var className = "";
 | 
					 | 
				
			||||||
                        if (this.props.active && cmd.name === this.props.active) {
 | 
					 | 
				
			||||||
                            className = "active";
 | 
					 | 
				
			||||||
                        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                        return (
 | 
					 | 
				
			||||||
                            <li key={cmd.name}>
 | 
					 | 
				
			||||||
                                <Link to={"/cmd/" + cmd.name} className={className}>{cmd.name}</Link>
 | 
					 | 
				
			||||||
                            </li>
 | 
					 | 
				
			||||||
                        );
 | 
					 | 
				
			||||||
                    })}
 | 
					 | 
				
			||||||
                </ul>
 | 
					                </ul>
 | 
				
			||||||
            </nav>
 | 
					            </nav>
 | 
				
			||||||
        );
 | 
					        )
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    renderItem(name) {
 | 
				
			||||||
 | 
					        let cmd = this.props.commands[name]
 | 
				
			||||||
 | 
					        if (cmd.name.indexOf(this.props.query) === -1) {
 | 
				
			||||||
 | 
					            return null
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        let className = this.props.active && cmd.name === this.props.active ? "active" : ""
 | 
				
			||||||
 | 
					        return (
 | 
				
			||||||
 | 
					            <li key={cmd.name}>
 | 
				
			||||||
 | 
					                <Link to={"/cmd/" + cmd.name} className={className}>{cmd.name}</Link>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -1,75 +1,75 @@
 | 
				
			|||||||
import React, { Component } from 'react';
 | 
					import React, { Component } from 'react'
 | 
				
			||||||
import { Link } from 'react-router-dom';
 | 
					import { Link } from 'react-router-dom'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import Timestamp from './timestamp.js';
 | 
					import Timestamp from './timestamp.js'
 | 
				
			||||||
import { api, httpGET, httpStreamGET } from '../http.js';
 | 
					import { api, httpGET, httpStreamGET } from '../http.js'
 | 
				
			||||||
import './output.css';
 | 
					import './output.css'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default class Output extends Component {
 | 
					export default class Output extends Component {
 | 
				
			||||||
    constructor(props) {
 | 
					    constructor(props) {
 | 
				
			||||||
        super(props);
 | 
					        super(props)
 | 
				
			||||||
        this.state = {
 | 
					        this.state = {
 | 
				
			||||||
            job: null,
 | 
					            job: null,
 | 
				
			||||||
            xhr: null
 | 
					            xhr: null
 | 
				
			||||||
        };
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    componentDidMount() {
 | 
					    componentDidMount() {
 | 
				
			||||||
        let jobID = this.props.jobID;
 | 
					        let jobID = this.props.jobID
 | 
				
			||||||
        if (jobID !== null) {
 | 
					        if (jobID !== null) {
 | 
				
			||||||
            this.loadCommandLog(jobID);
 | 
					            this.loadCommandLog(jobID)
 | 
				
			||||||
            this.loadJobDetails(jobID);
 | 
					            this.loadJobDetails(jobID)
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    componentWillUnmount() {
 | 
					    componentWillUnmount() {
 | 
				
			||||||
        if (this.state.xhr !== null) {
 | 
					        if (this.state.xhr !== null) {
 | 
				
			||||||
            this.state.xhr.abort();
 | 
					            this.state.xhr.abort()
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    loadJobDetails(id) {
 | 
					    loadJobDetails(id) {
 | 
				
			||||||
        if (id === null) {
 | 
					        if (id === null) {
 | 
				
			||||||
            return;
 | 
					            return
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        httpGET(api("/jobs/" + id),
 | 
					        httpGET(api("/jobs/" + id),
 | 
				
			||||||
            (status, body) => {
 | 
					            (status, body) => {
 | 
				
			||||||
                this.setState({job: JSON.parse(body)});
 | 
					                this.setState({job: JSON.parse(body)})
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            (error) => {
 | 
					            (error) => {
 | 
				
			||||||
                console.log("Failed to load job details:", error);
 | 
					                console.log("Failed to load job details:", error)
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        );
 | 
					        )
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    loadCommandLog(id) {
 | 
					    loadCommandLog(id) {
 | 
				
			||||||
        if (id === null || this.state.xhr !== null) {
 | 
					        if (id === null || this.state.xhr !== null) {
 | 
				
			||||||
            return;
 | 
					            return
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        let xhr = httpStreamGET(api("/jobs/" + id + "/log"),
 | 
					        let xhr = httpStreamGET(api("/jobs/" + id + "/log"),
 | 
				
			||||||
            (chunk) => { // Progress
 | 
					            (chunk) => { // Progress
 | 
				
			||||||
                let target = this.refs["output"];
 | 
					                let target = this.refs["output"]
 | 
				
			||||||
                target.innerHTML += chunk.replace(/\n/g, "<br/>");
 | 
					                target.innerHTML += chunk.replace(/\n/g, "<br/>")
 | 
				
			||||||
                this.autoScroll();
 | 
					                this.autoScroll()
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            (status) => { // Complete
 | 
					            (status) => { // Complete
 | 
				
			||||||
                // Request cancelled
 | 
					                // Request cancelled
 | 
				
			||||||
                if (status === 0) {
 | 
					                if (status === 0) {
 | 
				
			||||||
                    return;
 | 
					                    return
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                // Reload job details
 | 
					                // Reload job details
 | 
				
			||||||
                this.setState({xhr: null});
 | 
					                this.setState({xhr: null})
 | 
				
			||||||
                this.loadJobDetails(id);
 | 
					                this.loadJobDetails(id)
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            (error) => {
 | 
					            (error) => {
 | 
				
			||||||
                let target = this.refs["output"];
 | 
					                let target = this.refs["output"]
 | 
				
			||||||
                target.innerHTML = "Failed to fetch command log: "+ error;
 | 
					                target.innerHTML = "Failed to fetch command log: "+ error
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        );
 | 
					        )
 | 
				
			||||||
        this.setState({xhr: xhr});
 | 
					        this.setState({xhr: xhr})
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    autoScroll() {
 | 
					    autoScroll() {
 | 
				
			||||||
@ -77,32 +77,28 @@ export default class Output extends Component {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    render() {
 | 
					    render() {
 | 
				
			||||||
        var outputClass = "output";
 | 
					        let className = this.state.job ? "output visible" : "output"
 | 
				
			||||||
        if (this.state.job) {
 | 
					 | 
				
			||||||
            outputClass += " visible";
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        return (
 | 
					        return (
 | 
				
			||||||
            <div>
 | 
					            <div>
 | 
				
			||||||
                {this.renderJobDetails()}
 | 
					                {this.renderJobDetails()}
 | 
				
			||||||
                <div ref="output" className={outputClass}></div>
 | 
					                <div ref="output" className={className}></div>
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
        );
 | 
					        )
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    renderJobDetails() {
 | 
					    renderJobDetails() {
 | 
				
			||||||
        let details = this.state.job;
 | 
					        let details = this.state.job
 | 
				
			||||||
        if (!details) {
 | 
					        if (!details) {
 | 
				
			||||||
            return (<div></div>);
 | 
					            return null
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // let shortID = details.id.substring(0, 8);
 | 
					        // let shortID = details.id.substring(0, 8)
 | 
				
			||||||
        var state = details.state;
 | 
					        var state = details.state
 | 
				
			||||||
        state = state.charAt(0).toUpperCase() + state.substr(1);
 | 
					        state = state.charAt(0).toUpperCase() + state.substr(1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        var args;
 | 
					        var args
 | 
				
			||||||
        if (details.args !== "") {
 | 
					        if (details.args !== "") {
 | 
				
			||||||
            args = <span className="args">{details.args}</span>;
 | 
					            args = <span className="args">{details.args}</span>
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        return (
 | 
					        return (
 | 
				
			||||||
            <div className="job-details full">
 | 
					            <div className="job-details full">
 | 
				
			||||||
@ -126,34 +122,34 @@ export default class Output extends Component {
 | 
				
			|||||||
                {this.renderStarted()}
 | 
					                {this.renderStarted()}
 | 
				
			||||||
                {this.renderFinished()}
 | 
					                {this.renderFinished()}
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
        );
 | 
					        )
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    renderStarted() {
 | 
					    renderStarted() {
 | 
				
			||||||
        let details = this.state.job;
 | 
					        let details = this.state.job
 | 
				
			||||||
        return (
 | 
					        return (
 | 
				
			||||||
            <div className="item started_at">
 | 
					            <div className="item started_at">
 | 
				
			||||||
                <div className="name">Started</div>
 | 
					                <div className="name">Started</div>
 | 
				
			||||||
                <div className="val"><Timestamp date={details.started_at} relative={details.finished_at === null} /></div>
 | 
					                <div className="val"><Timestamp date={details.started_at} relative={details.finished_at === null} /></div>
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
        );
 | 
					        )
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    renderFinished() {
 | 
					    renderFinished() {
 | 
				
			||||||
        let details = this.state.job;
 | 
					        let details = this.state.job
 | 
				
			||||||
        if (details.finished_at !== null) {
 | 
					        if (details.finished_at === null) {
 | 
				
			||||||
            return [
 | 
					            return null
 | 
				
			||||||
                <div className="item finished_at" key="finished_at">
 | 
					 | 
				
			||||||
                    <div className="name">Finished</div>
 | 
					 | 
				
			||||||
                    <div className="val"><Timestamp date={details.finished_at} /></div>
 | 
					 | 
				
			||||||
                </div>,
 | 
					 | 
				
			||||||
                <div className="item took" key="took">
 | 
					 | 
				
			||||||
                    <div className="name">Took</div>
 | 
					 | 
				
			||||||
                    <div className="val"><Timestamp from={details.started_at} until={details.finished_at} /></div>
 | 
					 | 
				
			||||||
                </div>
 | 
					 | 
				
			||||||
            ];
 | 
					 | 
				
			||||||
        } else {
 | 
					 | 
				
			||||||
            return null;
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return [
 | 
				
			||||||
 | 
					            <div className="item finished_at" key="finished_at">
 | 
				
			||||||
 | 
					                <div className="name">Finished</div>
 | 
				
			||||||
 | 
					                <div className="val"><Timestamp date={details.finished_at} /></div>
 | 
				
			||||||
 | 
					            </div>,
 | 
				
			||||||
 | 
					            <div className="item took" key="took">
 | 
				
			||||||
 | 
					                <div className="name">Took</div>
 | 
				
			||||||
 | 
					                <div className="val"><Timestamp from={details.started_at} until={details.finished_at} /></div>
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -1,46 +1,52 @@
 | 
				
			|||||||
import React, { Component } from 'react';
 | 
					import React, { Component } from 'react'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { api, httpGET } from '../http.js';
 | 
					import { api, httpGET } from '../http.js'
 | 
				
			||||||
import './user.css';
 | 
					import './user.css'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default class User extends Component {
 | 
					export default class User extends Component {
 | 
				
			||||||
    constructor(props) {
 | 
					    constructor(props) {
 | 
				
			||||||
        super(props);
 | 
					        super(props)
 | 
				
			||||||
        this.state = {user: undefined};
 | 
					        this.state = {user: undefined}
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    componentDidMount() {
 | 
					    componentDidMount() {
 | 
				
			||||||
        if (this.props.id === undefined || this.props.id === null) {
 | 
					        if (!this.props.id) {
 | 
				
			||||||
            return;
 | 
					            return
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        httpGET(api("/users/"+ this.props.id),
 | 
					        httpGET(api("/users/"+ this.props.id),
 | 
				
			||||||
            (status, body) => {
 | 
					            (status, body) => {
 | 
				
			||||||
                this.setState({user: JSON.parse(body)});
 | 
					                this.setState({user: JSON.parse(body)})
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            (error) => {
 | 
					            (error) => {
 | 
				
			||||||
                console.log("Failed to load user details:", error);
 | 
					                console.log("Failed to load user details:", error)
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        );
 | 
					        )
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    render() {
 | 
					    render() {
 | 
				
			||||||
        if (this.props.id === undefined || this.props.id === null || this.state.user === undefined) {
 | 
					        let details = this.state.user
 | 
				
			||||||
            return null;
 | 
					        if (!this.props.id || details === undefined) {
 | 
				
			||||||
        } else if (this.state.user === null) {
 | 
					            return null
 | 
				
			||||||
            let shortID = this.props.id.substring(0, 8);
 | 
					 | 
				
			||||||
            return (
 | 
					 | 
				
			||||||
                <div className="user-details">
 | 
					 | 
				
			||||||
                    User
 | 
					 | 
				
			||||||
                    <div className="user-id">{shortID}</div>
 | 
					 | 
				
			||||||
                </div>
 | 
					 | 
				
			||||||
            );
 | 
					 | 
				
			||||||
        } else {
 | 
					 | 
				
			||||||
            let details = this.state.user;
 | 
					 | 
				
			||||||
            return (
 | 
					 | 
				
			||||||
                <div className="user-details">
 | 
					 | 
				
			||||||
                    <img src={details.picture} alt={details.name +" picture"} />
 | 
					 | 
				
			||||||
                    <div className="name">{details.name}</div>
 | 
					 | 
				
			||||||
                </div>
 | 
					 | 
				
			||||||
            );
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					        if (details === null) {
 | 
				
			||||||
 | 
					            return this.renderUnknownUser()
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return (
 | 
				
			||||||
 | 
					            <div className="user-details">
 | 
				
			||||||
 | 
					                <img src={details.picture} alt={details.name +" picture"} />
 | 
				
			||||||
 | 
					                <div className="name">{details.name}</div>
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    renderUnknownUser() {
 | 
				
			||||||
 | 
					        let shortID = this.props.id.substring(0, 8)
 | 
				
			||||||
 | 
					        return (
 | 
				
			||||||
 | 
					            <div className="user-details">
 | 
				
			||||||
 | 
					                User
 | 
				
			||||||
 | 
					                <div className="user-id">{shortID}</div>
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user