|  | @@ -1,6 +1,5 @@
 | 
	
		
			
				|  |  |  (ns frontend.components.repo
 | 
	
		
			
				|  |  |    (:require [clojure.string :as string]
 | 
	
		
			
				|  |  | -            [electron.ipc :as ipc]
 | 
	
		
			
				|  |  |              [frontend.common.async-util :as async-util]
 | 
	
		
			
				|  |  |              [frontend.config :as config]
 | 
	
		
			
				|  |  |              [frontend.context.i18n :refer [t]]
 | 
	
	
		
			
				|  | @@ -203,12 +202,6 @@
 | 
	
		
			
				|  |  |                           (repo-handler/refresh-repos!))))]]
 | 
	
		
			
				|  |  |           (repos-inner remote-graphs)])]]))
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -(defn- check-multiple-windows?
 | 
	
		
			
				|  |  | -  [state]
 | 
	
		
			
				|  |  | -  (when (util/electron?)
 | 
	
		
			
				|  |  | -    (p/let [multiple-windows? (ipc/ipc "graphHasMultipleWindows" (state/get-current-repo))]
 | 
	
		
			
				|  |  | -      (reset! (::electron-multiple-windows? state) multiple-windows?))))
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  (defn- repos-dropdown-links [repos current-repo downloading-graph-id & {:as opts}]
 | 
	
		
			
				|  |  |    (let [switch-repos (if-not (nil? current-repo)
 | 
	
		
			
				|  |  |                         (remove (fn [repo] (= current-repo (:url repo))) repos) repos) ; exclude current repo
 | 
	
	
		
			
				|  | @@ -362,50 +355,6 @@
 | 
	
		
			
				|  |  |                      icon [:div title]]))))))]
 | 
	
		
			
				|  |  |       (repos-footer multiple-windows? db-based?)]))
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -(rum/defcs repos-dropdown < rum/reactive
 | 
	
		
			
				|  |  | -  (rum/local false ::electron-multiple-windows?)
 | 
	
		
			
				|  |  | -  [state & {:as opts}]
 | 
	
		
			
				|  |  | -  (let [current-repo (state/sub :git/current-repo)
 | 
	
		
			
				|  |  | -        login? (boolean (state/sub :auth/id-token))]
 | 
	
		
			
				|  |  | -    (let [repos (state/sub [:me :repos])
 | 
	
		
			
				|  |  | -          remotes (state/sub [:file-sync/remote-graphs :graphs])
 | 
	
		
			
				|  |  | -          rtc-graphs (state/sub :rtc/graphs)
 | 
	
		
			
				|  |  | -          db-based? (config/db-based-graph? current-repo)
 | 
	
		
			
				|  |  | -          repos (sort-repos-with-metadata-local repos)
 | 
	
		
			
				|  |  | -          repos (distinct
 | 
	
		
			
				|  |  | -                 (if (and (or (seq remotes) (seq rtc-graphs)) login?)
 | 
	
		
			
				|  |  | -                   (repo-handler/combine-local-&-remote-graphs repos (concat remotes rtc-graphs)) repos))]
 | 
	
		
			
				|  |  | -      (let [remote? (and current-repo (:remote? (first (filter #(= current-repo (:url %)) repos))))
 | 
	
		
			
				|  |  | -            repo-name (when current-repo (db/get-repo-name current-repo))
 | 
	
		
			
				|  |  | -            short-repo-name (if current-repo
 | 
	
		
			
				|  |  | -                              (db/get-short-repo-name repo-name)
 | 
	
		
			
				|  |  | -                              "Select a Graph")]
 | 
	
		
			
				|  |  | -        (shui/trigger-as :a
 | 
	
		
			
				|  |  | -                         {:tab-index 0
 | 
	
		
			
				|  |  | -                          :class "item cp__repos-select-trigger"
 | 
	
		
			
				|  |  | -                          :on-pointer-down
 | 
	
		
			
				|  |  | -                          (fn [^js e]
 | 
	
		
			
				|  |  | -                            (check-multiple-windows? state)
 | 
	
		
			
				|  |  | -                            (some-> (.-target e)
 | 
	
		
			
				|  |  | -                                    (.closest "a.item")
 | 
	
		
			
				|  |  | -                                    (shui/popup-show!
 | 
	
		
			
				|  |  | -                                     (fn [{:keys [id]}] (repos-dropdown-content (assoc opts :contentid id)))
 | 
	
		
			
				|  |  | -                                     {:as-dropdown? true
 | 
	
		
			
				|  |  | -                                      :auto-focus? false
 | 
	
		
			
				|  |  | -                                      :align "start"
 | 
	
		
			
				|  |  | -                                      :content-props {:class "repos-list"
 | 
	
		
			
				|  |  | -                                                      :data-mode (when db-based? "db")}})))
 | 
	
		
			
				|  |  | -                          :title repo-name}      ;; show full path on hover
 | 
	
		
			
				|  |  | -                         [:div.flex.relative.graph-icon.rounded
 | 
	
		
			
				|  |  | -                          (shui/tabler-icon "database" {:size 15})]
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -                         [:div.repo-switch.pr-2.whitespace-nowrap
 | 
	
		
			
				|  |  | -                          [:span.repo-name.font-medium
 | 
	
		
			
				|  |  | -                           [:span.repo-text.overflow-hidden.text-ellipsis
 | 
	
		
			
				|  |  | -                            (if (config/demo-graph? short-repo-name) "Demo" short-repo-name)]
 | 
	
		
			
				|  |  | -                           (when remote? [:span.pl-1 (ui/icon "cloud")])]
 | 
	
		
			
				|  |  | -                          [:span.dropdown-caret]])))))
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  (rum/defcs graphs-selector < rum/reactive
 | 
	
		
			
				|  |  |    [_state]
 | 
	
		
			
				|  |  |    (let [current-repo (state/get-current-repo)
 |