import React from 'react'; import _ from 'lodash'; import Editor from 'react-simple-code-editor'; // import { Menu, Transition } from '@headlessui/react'; // import { ChevronDownIcon } from '@heroicons/react/solid'; import yaml from 'js-yaml'; import { highlight, languages } from 'prismjs'; import 'prismjs/components/prism-clike'; import 'prismjs/components/prism-yaml'; import 'prismjs/themes/prism.css'; import { showToast, ToastType } from 'src/common/util/show-toast'; import { useApps } from 'src/services/apps'; import { initialEditorYaml } from '../../consts'; export const AdvancedTab = () => { const [code, setCode] = React.useState(initialEditorYaml); const { app, editApp } = useApps(); const resetCode = () => { setCode(initialEditorYaml); showToast('Code was reset.'); }; const isConfigurationValid = () => { try { yaml.load(code); return true; } catch (e: any) { return false; } }; const vertifyCode = () => { if (isConfigurationValid()) { showToast('Configuration is valid.', ToastType.Success); } else { showToast('Configuration is not valid! Please fix configuration issues and try again.', ToastType.Error); } }; const saveChanges = () => { if (isConfigurationValid()) { editApp({ ...app, configuration: code }); return; } showToast('Configuration is not valid! Please fix configuration issues and try again.', ToastType.Error); }; return ( <>

Configuration

Current Configuration
highlight(value, languages.js, 'yaml')} preClassName="font-mono text-sm font-light" textareaClassName="font-mono overflow-auto font-light" className="font-mono text-sm font-light" disabled />
{/*
Edit Configuration
Versions
{({ active }) => ( Save Version )} {({ active }) => ( View Version History )} {({ active }) => ( Restore Current Version )}
*/}
Edit Configuration
setCode(value)} highlight={(value) => highlight(value, languages.js, 'yaml')} preClassName="font-mono whitespace-normal font-light" textareaClassName="font-mono overflow-auto font-light" className="font-mono text-sm font-light" />
); };