Fix resource view; fetch missing events

This commit is contained in:
@s.roertgen 2024-11-27 19:00:59 +01:00
parent 18aecc3f5e
commit fe42a9bf66
3 changed files with 52 additions and 43 deletions

View file

@ -447,9 +447,17 @@
(let [query ["REQ" (let [query ["REQ"
"RAND42" "RAND42"
{:ids event-ids}]] {:ids event-ids}]]
{::request-from-relay [sockets query]}))) {::request-from-relay [sockets query]})))
(re-frame/reg-event-fx
::query-for-d-tag
(fn [db [_ [sockets d-tags]]]
(let [query ["REQ"
"RAND42"
{:#d d-tags}]]
{::request-from-relay [sockets query]})))
(defn cleanup-list-name [s] (defn cleanup-list-name [s]
(-> s (-> s
(str/replace #"\s" "-") (str/replace #"\s" "-")

View file

@ -32,9 +32,14 @@
(first (filter #(= (:id %) id) (:events db))))) (first (filter #(= (:id %) id) (:events db)))))
(re-frame/reg-sub (re-frame/reg-sub
::events-by-d-tag ::events-by-d-tag
(fn [db [_ d]] :<- [::sockets]
(sort-by :created_at #(> %1 %2) (filter #(= d (nostr/get-d-id-from-event %)) (:events db))))) :<- [::events]
(fn [[sockets events] [_ d]]
(let [filtered-events (filter #(= d (nostr/get-d-id-from-event %)) events)]
(if-not (empty? filtered-events)
(sort-by :created_at #(> %1 %2) filtered-events)
(re-frame/dispatch [::events/query-for-d-tag [sockets [d]]])))))
(re-frame/reg-sub (re-frame/reg-sub
::metadata-events ::metadata-events
@ -313,29 +318,28 @@
(re-frame/dispatch [::events/load-profile pubkey]))) (re-frame/dispatch [::events/load-profile pubkey])))
profiles))) ;; unique profiles profiles))) ;; unique profiles
(re-frame/reg-sub (re-frame/reg-sub
::md-form-image ::md-form-image
(fn [db _] (fn [db _]
(-> db :md-form-resource :image))) (-> db :md-form-resource :image)))
(re-frame/reg-sub (re-frame/reg-sub
::selected-md-scheme ::selected-md-scheme
(fn [db] (fn [db]
(:selected-md-scheme db))) (:selected-md-scheme db)))
(re-frame/reg-sub (re-frame/reg-sub
::md-form-resource ::md-form-resource
(fn [db] (fn [db]
(:md-form-resource db))) (:md-form-resource db)))
(re-frame/reg-sub (re-frame/reg-sub
::user-language ::user-language
(fn [db] (fn [db]
(:user-language db))) (:user-language db)))
(comment (comment
@(re-frame/subscribe [::profile "1c5ff3caacd842c01dca8f378231b16617516d214da75c7aeabbe9e1efe9c0f6"]) @(re-frame/subscribe [::profile "1c5ff3caacd842c01dca8f378231b16617516d214da75c7aeabbe9e1efe9c0f6"])
@(re-frame/subscribe [::md-form-resource]) @(re-frame/subscribe [::md-form-resource])
@(re-frame/subscribe [::md-form-image]) @(re-frame/subscribe [::md-form-image]))
)

View file

@ -11,31 +11,28 @@
(let [route-params @(re-frame/subscribe [::subs/route-params]) (let [route-params @(re-frame/subscribe [::subs/route-params])
naddr (:naddr route-params) naddr (:naddr route-params)
data (nostr/decode-naddr naddr) data (nostr/decode-naddr naddr)
events-with-same-d (re-frame/subscribe [::subs/events-by-d-tag (:identifier data)]) events-with-same-d (re-frame/subscribe [::subs/events-by-d-tag (:identifier data)])]
latest-event (first @events-with-same-d) (fn []
_ (.log js/console "events with same d id" (clj->js @events-with-same-d)) (let [latest-event (first @events-with-same-d)]
; _ (.log js/) [:div
] (case (:kind latest-event)
30142 [:div {:class "flex flex-col"}
[:div [:img {:class "w-full object-contain bg-transparent max-h-[40vh] "
(case (:kind data) :src (nostr/get-image-from-metadata-event latest-event)}]
30142 [:div {:class "flex flex-col"} [:h1 {:class "text-2xl font-bold"} (nostr/get-name-from-metadata-event latest-event)]
[:img {:class "w-full object-contain bg-transparent max-h-[40vh] " [:div
:src (nostr/get-image-from-metadata-event latest-event)}] (resource-component/skos-tags [@events-with-same-d "about"])]
[:h1 {:class "text-2xl font-bold"} (nostr/get-name-from-metadata-event latest-event)]
[:div
(resource-component/skos-tags [@events-with-same-d "about"])]
;; Keywords ;; Keywords
[:div [:div
(doall (doall
(for [kw (nostr/get-keywords-from-metadata-event latest-event)] (for [kw (nostr/get-keywords-from-metadata-event latest-event)]
(resource-components/keywords-component kw)))] (resource-components/keywords-component kw)))]
;; Author ;; Author
[:div {:class "ml-auto mr-0 my-2"} [:div {:class "ml-auto mr-0 my-2"}
(resource-component/authors-component latest-event)] (resource-component/authors-component latest-event)]
[:p (nostr/get-description-from-metadata-event latest-event)]] [:p (nostr/get-description-from-metadata-event latest-event)]]
[:p "Dunno how to render that, sorry 🤷"])])) [:p "Dunno how to render that, sorry 🤷"])]))))
(comment (comment
(re-frame/subscribe [::subs/events-by-d-tag "https://langsci-press.org/catalog/book/406"])) (re-frame/subscribe [::subs/events-by-d-tag "https://langsci-press.org/catalog/book/406"]))