aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--TODO.norg2
-rw-r--r--examples/form/signup.css5
-rw-r--r--src/eval.ts4
3 files changed, 9 insertions, 2 deletions
diff --git a/TODO.norg b/TODO.norg
index e63ec73..8be3a55 100644
--- a/TODO.norg
+++ b/TODO.norg
@@ -5,6 +5,8 @@
- (x) re-quotify value
- (x) analog + digital clock example
- (x) error handling try
+ - ( ) Scoped catch on try
+ - ( ) `do` expression
- ( ) `has-class`
- ( ) `add-class` & `remove-class` should use self if id is not specified?
- ( ) Update `--cssx-text` on update
diff --git a/examples/form/signup.css b/examples/form/signup.css
index 3433b87..3811c42 100644
--- a/examples/form/signup.css
+++ b/examples/form/signup.css
@@ -29,7 +29,10 @@
--cssx-on-submit:
prevent-default()
add-class(form, 'submitting')
- request('/examples/')
+ try(
+ request('https://jksldjflksdjlfsd.com/wow'),
+ js-eval(string('alert("', get-var(--error), '")'))
+ )
remove-class(form, 'submitting')
add-class(form, 'submitted')
;
diff --git a/src/eval.ts b/src/eval.ts
index 0be3de5..17e27b1 100644
--- a/src/eval.ts
+++ b/src/eval.ts
@@ -326,7 +326,9 @@ const getFunctions = (
try {
return await evalExpr(args[0], actions)
} catch (e) {
- return evalExpr(args[1], actions)
+ return actions.evaluateInScope([args[1]], {
+ '--error': EvalValue.Value(e),
+ })
}
},