From aedd0df6c2c61b6ef42d610017f066e3d10233dd Mon Sep 17 00:00:00 2001 From: Jake Zerrer Date: Tue, 14 Oct 2025 16:19:09 -0400 Subject: Move flow portal capture to new ns --- portal.clj | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) (limited to 'portal.clj') diff --git a/portal.clj b/portal.clj index ce05eb8..2e20bdf 100644 --- a/portal.clj +++ b/portal.clj @@ -47,20 +47,19 @@ (reset! show-portal? false)) (def >portal-ui + (m/ap + (let [ui (m/? (m/via m/blk ((requiring-resolve 'portal.api/open))))] + (m/amb= ui + (try (m/? m/never) + (finally + ;; Were this blocking, I would put this on m/blk + ((requiring-resolve 'portal.api/close) ui) + (m/amb))))))) + +(def >portal-ui-toggle (m/ap (when (m/?< >show-portal?) - (try - (m/?< - (m/observe - (fn [cb] - ((m/via m/blk ((requiring-resolve 'portal.api/open))) {} {}) - (cb :open) - (fn [] - ((m/via m/blk - ((requiring-resolve 'portal.api/close)) - ((requiring-resolve 'portal.api/clear))) {} {}))))) - (catch missionary.Cancelled _ - (m/amb))) + (m/?< >portal-ui) (m/amb)))) (defn cap @@ -80,5 +79,5 @@ (def >portal-main "Main entrypoint." - (m/ap (m/amb= (do (m/?< >portal-ui) + (m/ap (m/amb= (do (m/?< >portal-ui-toggle) (m/amb))))) -- cgit v1.2.3