Files
test-repo/website/playground/EditorState.js
T
Sosuke Suzukiandfisker Cheung 2664fcb2ba Enable import/no-anonymous-default-export (#11478)
* Enable import/no-anonymous-default-export

* Add names to default exported

* More

* Ignore shims

* Update scripts/build/config.mjs

Co-authored-by: fisker Cheung <lionkay@gmail.com>

* lint  for shims

Co-authored-by: fisker Cheung <lionkay@gmail.com>
2021-09-10 11:17:09 +09:00

38 lines
1.2 KiB
JavaScript

import * as React from "react";
import { stateToggler, shallowEqual } from "./helpers.js";
import * as storage from "./storage.js";
export default class EditorState extends React.Component {
constructor() {
super();
this.state = {
showSidebar: window.innerWidth > window.innerHeight,
showAst: false,
showDoc: false,
showComments: false,
showSecondFormat: false,
showInput: true,
showOutput: true,
toggleSidebar: () => this.setState(stateToggler("showSidebar")),
toggleAst: () => this.setState(stateToggler("showAst")),
toggleDoc: () => this.setState(stateToggler("showDoc")),
toggleComments: () => this.setState(stateToggler("showComments")),
toggleSecondFormat: () => this.setState(stateToggler("showSecondFormat")),
toggleInput: () => this.setState(stateToggler("showInput")),
toggleOutput: () => this.setState(stateToggler("showOutput")),
...storage.get("editor_state"),
};
}
componentDidUpdate(_, prevState) {
if (!shallowEqual(this.state, prevState)) {
storage.set("editor_state", this.state);
}
}
render() {
return this.props.children(this.state);
}
}