import AceEditor from "react-ace" import "ace-builds/src-noconflict/mode-java" import "ace-builds/src-noconflict/theme-github" import { useEffect, useState } from "react" import styles from "./Editor.module.css" import { useExamples, useSubmitSource } from "./api" import Select from "react-select" const defaultSourceText = `define times2 dup + ; 3 times2 . -- prints 6 ` const Editor = () => { const examples = useExamples() const [sourceText, setSourceText] = useState(defaultSourceText) const { result, submitSource } = useSubmitSource() const [sourceDirty, setSourceDirty] = useState(false) const onChange = (text: string) => { setSourceText(text) setSourceDirty(true) } const renderExamples = () => { switch (examples.type) { case "not_yet_requested": case "loading": return
Loading examples...
case "failed": return
An unexpected error occurred while loading examples. See console for details.
case "success": { const options = examples.data.examples.map(example => ({ value: example.content, label: example.title, })) const customStyles = { option: (styles: any) => ({ ...styles, cursor: "pointer", color: "#282c34", }), control: (styles: any) => ({ ...styles, cursor: "pointer", }), } return (