import React, { useState } 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 function FormViewer({
filename, data, content,
needSaving, isSaving, needSavingUpdate, onSave,
}) {
const [form, setForm] = useState(JSON.parse(content));
const onFormChange = () => {
JSON.stringify(form) === content ? needSavingUpdate(false) : needSavingUpdate(true);
};
const onClickSave = () => {
if (needSaving === false) return;
const blob = new window.Blob([
JSON.stringify(form),
], { type: "text/plain" });
return onSave(blob).then(() => needSavingUpdate(false));
};
const 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, "
");
};
const 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(" ");
};
const renderForm = ($input, props, struct, onChange) => {
return (
);
};
return (