Skip to content

Commit c037e11

Browse files
committed
Revert "Migrate to !sync-state (global for now)"
This reverts commit 9bde9c6.
1 parent 3795ddc commit c037e11

File tree

3 files changed

+19
-11
lines changed

3 files changed

+19
-11
lines changed

notebooks/table_filters.clj

-6
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
:result :hide}}
66
(:require [clojure.math :as math]
77
[nextjournal.clerk :as clerk]
8-
[nextjournal.clerk.viewer :as viewer]
98
[nextjournal.clerk-table-stats :as clerk-table-stats]))
109

1110
(def cities
@@ -58,11 +57,6 @@
5857
(defonce data
5958
(mapv row-fn (range 10000)))
6059

61-
^{:nextjournal.clerk/visibility {:result :show}}
62-
@viewer/!sync-state
63-
64-
#_(reset! viewer/!sync-state {:active-filters {}})
65-
6660
^{:nextjournal.clerk/visibility {:result :show}}
6761
(clerk/with-viewer clerk-table-stats/viewer
6862
{::clerk/render-opts {:filters {[:location :country] :multiselect

src/nextjournal/clerk_table_stats.cljc

+15-1
Original file line numberDiff line numberDiff line change
@@ -493,7 +493,18 @@
493493
(assoc viewer/table-viewer
494494
:transform-fn
495495
(fn transform-fn [{:as wrapped-value :nextjournal/keys [applied-viewer render-opts]}]
496-
(let [table-state @(:!sync-state wrapped-value)]
496+
(let [#?@(:clj [id (or (:id wrapped-value)
497+
(symbol (str (ns-name *ns*)) (str (gensym))))
498+
var-name (symbol (namespace id) (str (name id) "-table"))])
499+
_ #?(:clj (when-not (resolve var-name)
500+
(when-some [ns' (find-ns (symbol (namespace var-name)))]
501+
(intern ns' (symbol (name var-name)) (doto (atom {:active-filters {}})
502+
(add-watch ::recompute
503+
(fn [_ _ _ _]
504+
(nextjournal.clerk/recompute!)))))))
505+
:cljs nil)
506+
table-state #?(:clj @@(resolve var-name)
507+
:cljs nil)]
497508

498509
(if-let [{:keys [head rows summary filter-data autocomplete-data state]}
499510
(normalize-table-data (merge render-opts table-state)
@@ -502,6 +513,9 @@
502513
(assoc :nextjournal/viewer table-markup-viewer)
503514
(update :nextjournal/width #(or % :wide))
504515
(update :nextjournal/render-opts merge {:num-cols (count (or head (first rows)))
516+
#?@(:clj [:sync-var (viewer/->viewer-eval
517+
(list 'nextjournal.clerk.render/intern-atom!
518+
(list 'quote var-name) table-state))])
505519
:number-col? (into #{}
506520
(comp (map-indexed vector)
507521
(keep #(when (number? (second %)) (first %))))

src/nextjournal/clerk_table_stats/render.cljs

+4-4
Original file line numberDiff line numberDiff line change
@@ -834,10 +834,10 @@
834834
label])]])
835835
js/document.body))])))
836836

837-
(defn table-markup-viewer [head+body {:as opts :keys [!sync-state]}]
838-
(r/with-let [table-state (if !sync-state
839-
!sync-state
840-
#?(:clj (throw (js/Error. (str "no sync var: " !sync-state)))
837+
(defn table-markup-viewer [head+body {:as opts :keys [sync-var]}]
838+
(r/with-let [table-state (if sync-var
839+
(deref sync-var)
840+
#?(:clj (throw (js/Error. (str "no sync var: " sync-var)))
841841
:cljs nil))]
842842
[:div
843843
[table-search head+body table-state opts]

0 commit comments

Comments
 (0)