From f1dc6c28e4a674b3b7c2f5855ab819919b4afc25 Mon Sep 17 00:00:00 2001 From: Kurt Hutten Date: Sun, 11 Oct 2020 14:56:28 +1100 Subject: [PATCH] share state with react component --- web/src/cascade | 2 +- web/src/index.html | 1 + web/src/pages/HomePage/HomePage.js | 35 +++++++++++++++++++++++++----- 3 files changed, 32 insertions(+), 6 deletions(-) diff --git a/web/src/cascade b/web/src/cascade index 73da6e1..b536e6a 160000 --- a/web/src/cascade +++ b/web/src/cascade @@ -1 +1 @@ -Subproject commit 73da6e1c64ab563d2a26dcf6733697ada550ac37 +Subproject commit b536e6a09a261650161b284fbef9c125c0e464be diff --git a/web/src/index.html b/web/src/index.html index d5ef6a7..bec0953 100644 --- a/web/src/index.html +++ b/web/src/index.html @@ -11,6 +11,7 @@ var messageHandlers = {}; var cascadeStudioWorker var workerWorking = false + var galleryProject = undefined function coolGuy() { if ('serviceWorker' in navigator) { navigator.serviceWorker.register('service-worker.js').then(function(registration) { diff --git a/web/src/pages/HomePage/HomePage.js b/web/src/pages/HomePage/HomePage.js index 2663ddb..0f9d2c7 100644 --- a/web/src/pages/HomePage/HomePage.js +++ b/web/src/pages/HomePage/HomePage.js @@ -1,18 +1,42 @@ import BlogLayout from 'src/layouts/BlogLayout' import BlogPostsCell from 'src/components/BlogPostsCell' import { initialize } from 'src/cascade/js/MainPage/CascadeMain' -import { useEffect } from 'react' +import { useEffect, useState } from 'react' +const starterCode = +`// Welcome to Cascade Studio! Here are some useful functions: +// Translate(), Rotate(), Scale(), Union(), Difference(), Intersection() +// Box(), Sphere(), Cylinder(), Cone(), Text3D(), Polygon() +// Offset(), Extrude(), RotatedExtrude(), Revolve(), Pipe(), Loft(), +// FilletEdges(), ChamferEdges(), +// Slider(), Button(), Checkbox() + +// Uncomment and hover over them to see their apis + +let holeRadius = Slider("Radius", 30 , 20 , 40); + +let sphere = Sphere(50); +let cylinderZ = Cylinder(holeRadius, 200, true); +let cylinderY = Rotate([0,1,0], 90, Cylinder(holeRadius, 200, true)); +let cylinderX = Rotate([1,0,0], 90, Cylinder(holeRadius, 200, true)); + +Translate([0, 0, 50], Difference(sphere, [cylinderX, cylinderY, cylinderZ])); + +Translate([-100, 0, 100], Text3D("cadhub.xyz")); + +// Don't forget to push imported or oc-defined shapes into sceneShapes to add them to the workspace! +`; const HomePage = () => { + const [code, setCode] = useState(starterCode) useEffect(() => { - new initialize() - // TODO currently you need to press f5 to get the first render to work and for the evaluate menu to show up - // figure out why it's not initializing properly + const sickCallback = (code) => setCode(code) + new initialize(sickCallback, starterCode) }, []) return ( +
current code {code}

@@ -42,8 +66,9 @@ const HomePage = () => { window.history.replaceState({}, 'Cascade Studio','?') }}>Reset Project
-
+
+
)