diff --git a/src/main/ui/extract_data.cljs b/src/main/ui/extract_data.cljs index cf34306..12d3867 100644 --- a/src/main/ui/extract_data.cljs +++ b/src/main/ui/extract_data.cljs @@ -169,24 +169,26 @@ @res)) -(defn get-all-data-for [title] - (let [children (get-children-for title) - refs (get-all-refs-for title)] - {:title title - :body (:plain-text children) - :refs refs})) +(defn get-all-data-for [title get-linked-refs?] + (let [children (get-children-for title)] + (merge + {:title title + :body (:plain-text children)} + (when @get-linked-refs? + {:refs (get-all-refs-for title)})))) -(defn data-for-pages [pages] +(defn data-for-pages [pages get-linked-refs?] (let [res (atom [])] (doall (for [page pages] (swap! res (fn [old-res] - (conj old-res - (with-out-str - (print "\n") - (print (get-all-data-for (:text page))) - (print "\n"))))))) + (let [page-data (get-all-data-for (:text page) get-linked-refs?)] + (conj old-res + (with-out-str + (print "\n") + (print page-data) + (print "\n")))))))) @res)) @@ -196,12 +198,16 @@ #_(get-all-refs-for "[[HYP]] - **I am guessing that the ability of arp2/3 complex to bind as frequently as it likes to actin filaments explains the discrepancy between CryoET and simulation measurements**") -(data-for-pages [ - {:text - "[[EVD]] - siRNA silenced IRSp53 significantly reduced internalized 10kDa TMR Dextran, while siRNA silenced Swip1 did not in MDA-MB-231 cells. - [[@moreno-layseca2021cargospecific]]", - :text-uid "YEbfS-WDB", - :uid "YEbfS-WDB"} - {:text "[[CLM]] - Enough number of DNM2 molecules is important for performing endocytosis."}]) +(comment + (data-for-pages [ + {:text + "[[EVD]] - siRNA silenced IRSp53 significantly reduced internalized 10kDa TMR Dextran, while siRNA silenced Swip1 did not in MDA-MB-231 cells. - [[@moreno-layseca2021cargospecific]]", + :text-uid "YEbfS-WDB", + :uid "YEbfS-WDB"} + {:text "[[CLM]] - Enough number of DNM2 molecules is important for performing endocytosis."}] + (atom false))) + + (defn is-a-page? [s] (second (re-find #"\[\[(.+)\]\]" s))) diff --git a/src/main/ui/render_comp.cljs b/src/main/ui/render_comp.cljs index 772c9f7..7d670d4 100644 --- a/src/main/ui/render_comp.cljs +++ b/src/main/ui/render_comp.cljs @@ -2,7 +2,7 @@ (:require [reagent.core :as r] [applied-science.js-interop :as j] [clojure.pprint :as pp :refer [pprint]] - ["@blueprintjs/core" :as bp :refer [Tooltip HTMLSelect Button ButtonGroup Card Slider Divider Menu MenuItem Popover MenuDivider]] + ["@blueprintjs/core" :as bp :refer [Checkbox Tooltip HTMLSelect Button ButtonGroup Card Slider Divider Menu MenuItem Popover MenuDivider]] [cljs-http.client :as http] [cljs.core.async :as async :refer [! go chan put! take! timeout]] [ui.components :as comp :refer [send-message-component]] @@ -186,7 +186,7 @@ 500))))}))) -(defn load-context [context-atom messages-atom parent-id active? settings] +(defn load-context [context-atom messages-atom parent-id active? get-linked-refs? settings] (println "load context ") ;(pprint context) (let [messages (get-child-with-str parent-id "Messages") @@ -213,7 +213,7 @@ (let [res (js->clj r :keywordize-keys true) page-data (str "```" - (clojure.string/join "\n -----" (data-for-pages res)) + (clojure.string/join "\n -----" (data-for-pages res get-linked-refs?)) "```")] (update-block-string-and-move child-uid @@ -224,7 +224,9 @@ (some? (is-a-page? cstr)) (
Divider] + [:div.chk + {:style {:align-self "center" + :margin-left "5px"}} + [:> Checkbox + {:style {:margin-bottom "0px"} + :checked @get-linked-refs + :on-change (fn [x] + (reset! get-linked-refs (not @get-linked-refs)))} + [:span.bp3-button-text + {:style {:font-size "14px" + :font-family "initial" + :font-weight "initial"}} "Include linked references?"]]]] + + [send-message-component active? (fn [] @@ -373,9 +392,9 @@ (do (println "clicked send button") (reset! active? false) - (load-context context messages block-uid active? {:model @default-model - :max-tokens @default-msg-value - :temperature @default-temp}))))]]]])))) + (load-context context messages block-uid active? get-linked-refs {:model @default-model + :max-tokens @default-msg-value + :temperature @default-temp}))))]]]])))) (defn main [{:keys [:block-uid]} & args]