summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLLLL Colonq <llll@colonq>2025-02-18 18:40:38 -0500
committerLLLL Colonq <llll@colonq>2025-02-18 18:40:38 -0500
commitbaa7193345e9f0e9085bcb557e8e976d2d270867 (patch)
treede922e51ef577b317c970facb6d4ae445a80c1de
parent34b49df0ab7336789e79590e51d4456f92024408 (diff)
Support shader upload
-rw-r--r--flake.lock14
-rw-r--r--main.css3
-rw-r--r--src/Main/Throwshade.purs6
-rw-r--r--src/UI.js10
-rw-r--r--src/UI.purs4
5 files changed, 28 insertions, 9 deletions
diff --git a/flake.lock b/flake.lock
index e80fe2d..a26bf36 100644
--- a/flake.lock
+++ b/flake.lock
@@ -2,11 +2,11 @@
"nodes": {
"crane": {
"locked": {
- "lastModified": 1739638817,
- "narHash": "sha256-pPiI27T416xAAUETorkLAgHQMiLT92moOrf0ItHhtPA=",
+ "lastModified": 1739898326,
+ "narHash": "sha256-CqRBf9MKC8eiwDRg9akoWia57Nsjmq3S++YbkmT6p9M=",
"owner": "ipetkov",
"repo": "crane",
- "rev": "bef2b45cd1273a9e621fb5292de89f4ed59ad812",
+ "rev": "680a2b47cdef830bca3edfd53383e3292154ba7b",
"type": "github"
},
"original": {
@@ -172,11 +172,11 @@
"st": "st"
},
"locked": {
- "lastModified": 1739859479,
- "narHash": "sha256-N7dCjxO2z688JivQHOVQ79zEKdBPgIcy68V8BJ/mReI=",
+ "lastModified": 1739919622,
+ "narHash": "sha256-hBNeFJLDJei2ZlnsPFZN25upkPzaQRvxrfYXO8s9XnA=",
"ref": "refs/heads/master",
- "rev": "cc3e4cbcb484c6aff6fae5124b2400346bb64c95",
- "revCount": 18,
+ "rev": "a4aac831139a03119b2bbcb50c22e196e869b38d",
+ "revCount": 20,
"type": "git",
"url": "ssh://git@github.com/lcolonq/newton"
},
diff --git a/main.css b/main.css
index 4d9050f..5572bd7 100644
--- a/main.css
+++ b/main.css
@@ -510,7 +510,8 @@ a.lcolonq-button-link :active {
display: flex;
flex-direction: column;
justify-content: space-evenly;
- background-image: url("./assets/rectangular.jpg");
+ /* background-image: url("./assets/rectangular.jpg"); */
+ background-color: darkgray;
background-size: 100% 100%;
}
.lcolonq-throwshade-canvas {
diff --git a/src/Main/Throwshade.purs b/src/Main/Throwshade.purs
index ad1ad2c..bd7393b 100644
--- a/src/Main/Throwshade.purs
+++ b/src/Main/Throwshade.purs
@@ -5,7 +5,7 @@ import Prelude
import Effect (Effect)
import Effect.Class (liftEffect)
import Effect.Console (log)
-import UI (setShader)
+import UI (setShader, submitShader)
import Utils (byId, getTextArea, listen)
main :: Effect Unit
@@ -16,3 +16,7 @@ main = do
listen test "click" \_ -> do
s <- getTextArea input
setShader s
+ submit <- byId "lcolonq-throwshade-button-submit"
+ listen submit "click" \_ -> do
+ s <- getTextArea input
+ submitShader s
diff --git a/src/UI.js b/src/UI.js
index a6dd0fa..eb10598 100644
--- a/src/UI.js
+++ b/src/UI.js
@@ -26,3 +26,13 @@ export const _submitRedeem = (url) => (el) => () => {
export const _setShader = (shader) => () => {
window.wasmBindings.set_shader(shader);
};
+
+export const _submitShader = (url) => (shader) => () => {
+ const data = new FormData();
+ data.append("name", "throw shade");
+ data.append("input", shader);
+ fetch(url, {
+ method: "post",
+ body: data,
+ });
+};
diff --git a/src/UI.purs b/src/UI.purs
index 44117a0..d5913b7 100644
--- a/src/UI.purs
+++ b/src/UI.purs
@@ -33,3 +33,7 @@ submitRedeem el = liftEffect $ _submitRedeem (Config.secureApiServer <> "/redeem
foreign import _setShader :: String -> Effect Unit
setShader :: forall m. MonadEffect m => String -> m Unit
setShader s = liftEffect $ _setShader s
+
+foreign import _submitShader :: String -> String -> Effect Unit
+submitShader :: forall m. MonadEffect m => String -> m Unit
+submitShader el = liftEffect $ _submitShader (Config.secureApiServer <> "/redeem") el