mirror of
https://github.com/unclebob/more-speech.git
synced 2024-09-30 02:21:02 +00:00
Get rid of :read-event-ids altogether. Replace with :read tag in the events.
This commit is contained in:
parent
967316ebb3
commit
cfa8f915fd
@ -331,26 +331,26 @@
|
||||
|
||||
(context "selecting nodes"
|
||||
(with-stubs)
|
||||
(with db (in-memory/get-db))
|
||||
(before (in-memory/clear-db @db))
|
||||
|
||||
(it "remembers which articles have been read and loads article"
|
||||
(with-redefs
|
||||
[article-panel/load-article-info
|
||||
(stub :load-article-info {:return nil})]
|
||||
(let [event-context (atom {:read-event-ids #{}
|
||||
:selected-event nil
|
||||
:event-history []
|
||||
:back-count 1})
|
||||
_ (reset! ui-context {:event-context event-context})
|
||||
selected-event-id 1
|
||||
|
||||
(let [selected-event-id 1
|
||||
_ (set-mem :back-count 1)
|
||||
_ (gateway/add-event @db selected-event-id {:content "event"})
|
||||
selected-node (DefaultMutableTreeNode. selected-event-id)
|
||||
tab-index 0
|
||||
_ (select-article tab-index selected-node)
|
||||
event-state @event-context
|
||||
read-event-ids (:read-event-ids event-state)
|
||||
selected-event (:selected-event event-state)
|
||||
event-history (:event-history event-state)
|
||||
back-count (:back-count event-state)]
|
||||
selected-event (get-mem :selected-event)
|
||||
event-history (get-mem :event-history)
|
||||
back-count (get-mem :back-count)
|
||||
event (gateway/get-event @db selected-event-id)]
|
||||
(should (:read event))
|
||||
(should-have-invoked :load-article-info {:with [selected-event-id]})
|
||||
(should= read-event-ids #{selected-event-id})
|
||||
(should= selected-event selected-event-id)
|
||||
(should= [[tab-index selected-event-id]] event-history)
|
||||
(should= 0 back-count))))))
|
||||
|
@ -18,10 +18,6 @@
|
||||
(spit @config/profiles-filename
|
||||
(with-out-str
|
||||
(clojure.pprint/pprint (get-event-state :profiles))))
|
||||
(prn 'writing-read-events)
|
||||
(spit @config/read-event-ids-filename
|
||||
(with-out-str
|
||||
(clojure.pprint/pprint (get-event-state :read-event-ids))))
|
||||
|
||||
(prn 'writing-relays)
|
||||
(spit @config/relays-filename
|
||||
@ -54,7 +50,6 @@
|
||||
(defn load-configuration []
|
||||
(let [keys (read-string (slurp @config/keys-filename))
|
||||
pubkey (util/hex-string->num (:public-key keys))
|
||||
read-event-ids (read-string (slurp @config/read-event-ids-filename))
|
||||
profiles (read-string (slurp @config/profiles-filename))
|
||||
tabs-list (tabs/ensure-tab-list-has-all
|
||||
(read-string (slurp @config/tabs-list-filename)))
|
||||
@ -65,7 +60,6 @@
|
||||
event-context (events/make-event-context {:keys keys
|
||||
:pubkey pubkey
|
||||
:profiles profiles
|
||||
:read-event-ids read-event-ids
|
||||
:tabs-list tabs-list
|
||||
:user-configuration user-configuration
|
||||
:contact-lists contact-lists
|
||||
|
@ -5,6 +5,7 @@
|
||||
(defmulti event-exists? (fn [db _id] (::type db)))
|
||||
(defmulti add-event (fn [db _id _event] (::type db)))
|
||||
(defmulti get-event (fn [db _id] (::type db)))
|
||||
(defmulti update-event-as-read (fn [db _id] (::type db)))
|
||||
(defmulti add-relays-to-event (fn [db _id _relays] (::type db)))
|
||||
(defmulti add-reference-to-event (fn [db _id _reference] (::type db)))
|
||||
(defmulti add-contacts (fn [db _user-id _contacts] (::type db)))
|
||||
|
@ -17,6 +17,9 @@
|
||||
(defmethod gateway/get-event ::type [db id]
|
||||
(get-in @(:data db) [:text-event-map id]))
|
||||
|
||||
(defmethod gateway/update-event-as-read ::type [db id]
|
||||
(swap! (:data db) assoc-in [:text-event-map id :read] true))
|
||||
|
||||
(defmethod gateway/add-relays-to-event ::type [db id relays]
|
||||
(swap! (:data db) update-in [:text-event-map id :relays] concat relays))
|
||||
|
||||
|
@ -36,7 +36,6 @@
|
||||
(s/def ::public-key string?)
|
||||
(s/def ::private-key string?)
|
||||
(s/def ::keys (s/keys :req-un [::name ::about ::picture ::public-key ::private-key]))
|
||||
(s/def ::read-event-ids (s/coll-of ::id :kind set?))
|
||||
(s/def ::selected (s/coll-of ::id))
|
||||
(s/def ::blocked (s/coll-of ::id))
|
||||
(s/def ::tab (s/keys :req-un [::name ::selected ::blocked]))
|
||||
@ -49,7 +48,6 @@
|
||||
(s/def ::event-context (s/keys :req-un [::text-event-map
|
||||
::profiles
|
||||
::keys
|
||||
::read-event-ids
|
||||
::tabs-list
|
||||
::selected-event
|
||||
::event-history
|
||||
@ -60,7 +58,6 @@
|
||||
(atom (merge {:text-event-map {}
|
||||
:profiles {}
|
||||
:keys {}
|
||||
:read-event-ids #{}
|
||||
:tabs-list []
|
||||
:event-history []
|
||||
:back-count 0
|
||||
@ -150,11 +147,18 @@
|
||||
[root _ _] (get-references event)]
|
||||
(if (some? root) root id)))
|
||||
|
||||
(defn select-event [event-state tab-index id]
|
||||
(defn update-event-history [item]
|
||||
(set-mem :event-history (conj (get-mem :event-history) item)))
|
||||
|
||||
(defn select-event [tab-index id]
|
||||
(swap! ui-context assoc :selected-tab tab-index)
|
||||
(if-not (:backing-up event-state)
|
||||
(-> event-state
|
||||
(update :read-event-ids conj id)
|
||||
(update :event-history conj [tab-index id])
|
||||
(assoc :selected-event id :back-count 0))
|
||||
(-> event-state (assoc :selected-event id :backing-up false))))
|
||||
(if-not (get-mem :backing-up)
|
||||
(do
|
||||
(gateway/update-event-as-read (get-db) id)
|
||||
(update-event-history [tab-index id])
|
||||
(set-mem :selected-event id)
|
||||
(set-mem :back-count 0)
|
||||
)
|
||||
(do
|
||||
(set-mem :selected-event id)
|
||||
(set-mem :backing-up false))))
|
||||
|
@ -99,9 +99,8 @@
|
||||
|
||||
(defn select-article
|
||||
[tab-index selected-node]
|
||||
(let [selected-id (.getUserObject selected-node)
|
||||
event-context (:event-context @ui-context)]
|
||||
(swap! event-context events/select-event tab-index selected-id)
|
||||
(let [selected-id (.getUserObject selected-node)]
|
||||
(events/select-event tab-index selected-id)
|
||||
(article-panel/load-article-info selected-id)))
|
||||
|
||||
(defn node-selected [tab-index e]
|
||||
@ -117,7 +116,7 @@
|
||||
(let [node (:value info)
|
||||
event-id (.getUserObject node)
|
||||
event (gateway/get-event (get-db) event-id)
|
||||
read? (contains? (get-event-state :read-event-ids) event-id)
|
||||
read? (:read event)
|
||||
font (if read? (uconfig/get-default-font) (uconfig/get-bold-font))
|
||||
color (if (= (:kind event) 4) :blue :black)]
|
||||
(config! widget :font font :foreground color)
|
||||
|
Loading…
Reference in New Issue
Block a user