import React from 'react';
import Editor from '../../src/editor/Editor';
import Switch from '../../src/components/Switch';
import Button from '../../src/components/Button';
import schema from './Form/Test';
import {Portal} from 'react-overlays';

export default class AMisSchemaEditor extends React.Component {
  state = {
    preview: localStorage.getItem('editting_preview') ? true : false,
    schema: localStorage.getItem('editting_schema')
      ? JSON.parse(localStorage.getItem('editting_schema'))
      : schema
  };

  handleChange = value => {
    localStorage.setItem('editting_schema', JSON.stringify(value));

    this.setState({
      schema: value
    });
  };
  handlePreviewChange = preview => {
    localStorage.setItem('editting_preview', preview ? 'true' : '');

    this.setState({
      preview: !!preview
    });
  };
  clearCache = () => {
    localStorage.removeItem('editting_schema');
    this.setState({
      schema: schema
    });
  };

  render() {
    return (
      <div className="h-full">
        <Portal container={() => document.querySelector('#headerBar')}>
          <div className="inline m-l">
            预览{' '}
            <Switch
              value={this.state.preview}
              onChange={this.handlePreviewChange}
              className="v-middle"
              inline
            />
            <Button size="sm" className="m-l" onClick={this.clearCache}>
              清除缓存
            </Button>
          </div>
        </Portal>

        <Editor
          preview={this.state.preview}
          value={this.state.schema}
          onChange={this.handleChange}
          className="fix-settings"
        />
      </div>
    );
  }
}
