prettier/website/playground/EditorState.js

35 lines
906 B
JavaScript

import React from "react";
import { stateToggler, shallowEqual } from "./helpers";
import * as storage from "./storage";
export default class extends React.Component {
constructor() {
super();
this.state = Object.assign(
{
showSidebar: false,
showAst: false,
showDoc: false,
showSecondFormat: false,
toggleSidebar: () => this.setState(stateToggler("showSidebar")),
toggleAst: () => this.setState(stateToggler("showAst")),
toggleDoc: () => this.setState(stateToggler("showDoc")),
toggleSecondFormat: () =>
this.setState(stateToggler("showSecondFormat"))
},
storage.get("editor_state")
);
}
componentDidUpdate(_, prevState) {
if (!shallowEqual(this.state, prevState)) {
storage.set("editor_state", this.state);
}
}
render() {
return this.props.children(this.state);
}
}