From 02dce7d08f92b1d255e3afca33034f481d1371a7 Mon Sep 17 00:00:00 2001 From: Jake Zerrer Date: Wed, 26 Nov 2025 15:10:20 -0500 Subject: Add git-bug to flake --- portal.clj | 65 ++++++++++++++++++++++---------------------------------------- 1 file changed, 23 insertions(+), 42 deletions(-) (limited to 'portal.clj') diff --git a/portal.clj b/portal.clj index 2e20bdf..4d4e59e 100644 --- a/portal.clj +++ b/portal.clj @@ -11,56 +11,38 @@ (defn rec "Record flow f, tagging with id." [id f] - (m/ap - (let [capturing? (atom nil) - [tag value] - (m/amb= [:focused-tags (m/?< >focused-tags)] - [:event (m/?< f)])] - (case tag - :focused-tags - (do - (reset! capturing? (boolean (value id))) - (m/amb)) + (m/ap (let [capturing? (atom nil) + [tag value] (m/amb= [:focused-tags (m/?< >focused-tags)] + [:event (m/?< f)])] + (case tag + :focused-tags (do (reset! capturing? (boolean (value id))) (m/amb)) + :event (do (swap! seen-tags conj id) + (when @capturing? + (m/? (m/via m/blk + ((requiring-resolve 'portal.api/submit) + [id value])))) + value))))) - :event - (do - (swap! seen-tags conj id) - (when @capturing? - (m/? (m/via m/blk ((requiring-resolve 'portal.api/submit) [id value])))) - value))))) - -(defn ptags - "Print all available tags." - [] @seen-tags) +(defn ptags "Print all available tags." [] @seen-tags) (def show-portal? (atom false)) (def >show-portal? (rec :show-portal? (m/signal (m/watch show-portal?)))) -(defn show-portal - "Show portal window." - [] - (reset! show-portal? true)) +(defn show-portal "Show portal window." [] (reset! show-portal? true)) -(defn hide-portal - "Hide portal window." - [] - (reset! show-portal? false)) +(defn hide-portal "Hide portal window." [] (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))))))) + (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?) - (m/?< >portal-ui) - (m/amb)))) + (m/ap (when (m/?< >show-portal?) (m/?< >portal-ui) (m/amb)))) (defn cap "Capture flow elements with specified ids to portal" @@ -79,5 +61,4 @@ (def >portal-main "Main entrypoint." - (m/ap (m/amb= (do (m/?< >portal-ui-toggle) - (m/amb))))) + (m/ap (m/amb= (do (m/?< >portal-ui-toggle) (m/amb))))) -- cgit v1.2.3