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 (