BoSLOO/GroundControl/frontend/src/index.js

70 lines
2.4 KiB
JavaScript
Raw Normal View History

import React from 'react';
import ReactDOM from 'react-dom/client';
2022-07-02 20:58:33 +00:00
import Typing from 'react-typing-animation';
import ClickableDiv from 'react-clickable-div';
import KeyboardEventHandler from 'react-keyboard-event-handler'
import './index.css';
2022-07-02 20:58:33 +00:00
import logos from './BoSLOO logo.json';
import Terminal from './terminal.js'
class Console extends React.Component {
2022-07-02 20:58:33 +00:00
constructor(props) {
super(props);
this.state = {
bodyObj: <span><SelfTest /><KeyboardEventHandler handleKeys={['all']} onKeyEvent={(key, e) => { this.replaceBody(<Terminal />); this.setState({ init: true }) }} /></span>,
init: false,
2022-07-02 20:58:33 +00:00
}
}
appendToBody(newContent) {
let bodyObj = JSON.parse(JSON.stringify(this.state.bodyObj)) + newContent;
this.setState({
bodyObj: bodyObj
});
}
replaceBody(newContent) {
this.setState({
bodyObj: newContent
});
}
2022-07-02 20:58:33 +00:00
render() {
return (
<div className='console'>
{this.state.bodyObj}
</div>
);
}
}
class SelfTest extends React.Component {
constructor(props) {
super(props);
this.state = {
logodisplay: false
2022-07-02 20:58:33 +00:00
}
}
render() {
const final = <span>{logos.logo} < br /><br /><br /><Typing speed={5}>Press any key to continue...<br/>> <span className='blink-text'>_</span></Typing></span>;
2022-07-02 20:58:33 +00:00
return (
<div className='power-on-self-test'>
<Typing speed={5} onFinishedTyping={() => this.setState({logodisplay: true})}>
BoSLOO ACPI BIOS v0.1<br />
Sakimori Ind. 2022<br />
Initializing cache.................................<Typing.Speed ms={200} />...<Typing.Speed ms={5} /> OK!<br />
Initializing network.........<Typing.Speed ms={500} />....<Typing.Speed ms={5} />.................<Typing.Speed ms={300} />....<Typing.Speed ms={5} /> OK!<br />
Initializing GPU...................................<Typing.Speed ms={1000} />...<Typing.Speed ms={5} /> <span className='fail-text'>FAIL!</span><br />
<br />
2022-07-02 20:58:33 +00:00
</Typing>
{this.state.logodisplay ? final : null}
2022-07-02 20:58:33 +00:00
</div>
)
2022-07-02 20:58:33 +00:00
}
}
// =========================================
const root = ReactDOM.createRoot(document.getElementById("root"));
root.render(<Console />);