import React from 'react'; import ReactCSSTransitionGroup from 'react-addons-css-transition-group'; import { MenuBar } from './menubar'; import { Container, FormBuilder, NgIf, Icon, Fab } from '../../components/'; import { appendShareToUrl } from '../../helpers/'; import './formviewer.scss'; export class FormViewer extends React.Component { constructor(props){ super(props); this.state = { form: {} }; } componentDidMount(){ this.setState({form: JSON.parse(this.props.content)}); } onChange(){ this.setState({refresh: Math.random()}); if(JSON.stringify(this.state.form) === this.props.content){ this.props.needSavingUpdate(false); } else { this.props.needSavingUpdate(true); } } save(){ if(this.props.needSaving === false) return; let blob = new window.Blob([JSON.stringify(this.state.form)], {type : 'text/plain'}); return this.props .onSave(blob) .then(() => this.props.needSavingUpdate(false)); } simpleMarkdown(text){ const regLink = /\[([^\]]*)\]\(([^\)]+)\)/g return text .replace(regLink, function(str){ const label = str.replace(regLink, '$1') const link = str.replace(regLink, '$2') return "["+label+"]("+appendShareToUrl(link)+")"; }) .replace(regLink, '$1') .replace(/\n/g, "
") } beautify(label){ return label .split('_') .map((t) => { if(t.length === 0) return t else if(/[gu]?u?id/.test(t.toLowerCase())) return t.toUpperCase(); return t[0].toUpperCase() + t.substring(1) }) .join(" "); } render(){ return (
{ return (
); } }