diff --git a/.vscode/settings.json b/.vscode/settings.json index d7cb8aa..d71538b 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -2,6 +2,7 @@ "cSpell.words": [ "Hutten", "cadquery", + "jscad", "openscad", "sendmail" ] diff --git a/app/api/db/schema.prisma b/app/api/db/schema.prisma index 95d924e..34f86f1 100644 --- a/app/api/db/schema.prisma +++ b/app/api/db/schema.prisma @@ -41,6 +41,7 @@ model User { enum CadPackage { openscad cadquery + // jscad // TODO #422, add jscad to db schema when were ready to enable saving of jscad projects } model Project { diff --git a/app/web/src/components/IdeEditor/IdeEditor.js b/app/web/src/components/IdeEditor/IdeEditor.tsx similarity index 92% rename from app/web/src/components/IdeEditor/IdeEditor.js rename to app/web/src/components/IdeEditor/IdeEditor.tsx index a26bf5f..67abf8d 100644 --- a/app/web/src/components/IdeEditor/IdeEditor.js +++ b/app/web/src/components/IdeEditor/IdeEditor.tsx @@ -4,6 +4,8 @@ import { makeCodeStoreKey, requestRender } from 'src/helpers/hooks/useIdeState' import Editor, { useMonaco } from '@monaco-editor/react' import { theme } from 'src/../tailwind.config' import { useSaveCode } from 'src/components/IdeWrapper/useSaveCode' +import type { CadPackage as CadPackageType } from 'src/helpers/hooks/useIdeState' +import CadPackage from '../CadPackage/CadPackage' const colors = theme.extend.colors @@ -12,9 +14,10 @@ const IdeEditor = ({ Loading }) => { const [theme, setTheme] = useState('vs-dark') const saveCode = useSaveCode() - const ideTypeToLanguageMap = { + const ideTypeToLanguageMap: {[key in CadPackageType]: string} = { cadquery: 'python', openscad: 'cpp', + jscad: 'javascript', } const monaco = useMonaco() useEffect(() => { diff --git a/app/web/src/components/NavPlusButton/NavPlusButton.tsx b/app/web/src/components/NavPlusButton/NavPlusButton.tsx index 5ed035a..467902c 100644 --- a/app/web/src/components/NavPlusButton/NavPlusButton.tsx +++ b/app/web/src/components/NavPlusButton/NavPlusButton.tsx @@ -1,6 +1,22 @@ import { Link, routes } from '@redwoodjs/router' import Svg from 'src/components/Svg/Svg' import { Popover } from '@headlessui/react' +import type { CadPackage } from 'src/helpers/hooks/useIdeState' + + +const menuOptions: { + name: string + sub: string + ideType: CadPackage +}[] = [ + { + name: 'OpenSCAD', + sub: 'beta', + ideType: 'openscad', + }, + { name: 'CadQuery', sub: 'beta', ideType: 'cadquery' }, + // { name: 'JSCAD', sub: 'alpha', ideType: 'jscad' }, // TODO #422, add jscad to db schema when were ready to enable saving of jscad projects +] const NavPlusButton: React.FC = () => { return ( @@ -11,14 +27,7 @@ const NavPlusButton: React.FC = () => {