Browse Source

enhance(ux): unlink graphs

charlie 1 year ago
parent
commit
1f8788f5ad
1 changed files with 49 additions and 49 deletions
  1. 49 49
      src/main/frontend/components/repo.cljs

+ 49 - 49
src/main/frontend/components/repo.cljs

@@ -94,56 +94,56 @@
           (shui/tabler-icon "folder-pin") [:span.pl-1 root]])
 
        (let [db-graph? (config/db-based-graph? url)
-             manager? (and db-graph? (user-handler/manager? url))]
+             manager? (and db-graph? (user-handler/manager? url))
+             title (cond
+                     only-cloud?
+                     "Deletes this remote graph. Note this can't be recovered."
+
+                     db-based?
+                     "Unsafe delete this DB-based graph. Note this can't be recovered."
+
+                     :else
+                     "Removes Logseq's access to the local file path of your graph. It won't remove your local files.")]
          (when-not (and only-cloud? (not manager?))
-           (ui/tippy {:html [:div.text-sm.max-w-xs
-                             (cond
-                               only-cloud?
-                               "Deletes this remote graph. Note this can't be recovered."
-
-                               db-based?
-                               "Unsafe delete this DB-based graph. Note this can't be recovered."
-
-                               :else
-                               "Removes Logseq's access to the local file path of your graph. It won't remove your local files.")]
-                      :class "tippy-hover"
-                      :interactive true}
-             [:a.text-gray-400.ml-4.font-medium.text-sm.whitespace-nowrap
-              {:on-click (fn []
-                           (let [has-prompt? (or only-cloud? db-based?)
-                                 prompt-str (cond only-cloud?
-                                              (str "Are you sure to permanently delete the graph \"" GraphName "\" from our server?")
-                                              db-based?
-                                              (str "Are you sure to permanently delete the graph \"" url "\" from Logseq?")
-                                              :else
-                                              "")
-                                 unlink-or-remote-fn! (fn []
-                                                        (repo-handler/remove-repo! repo)
-                                                        (state/pub-event! [:graph/unlinked repo (state/get-current-repo)]))
-                                 action-confirm-fn! (if only-cloud?
-                                                      (fn []
-                                                        (when (or manager? (not db-graph?))
-                                                          (let [delete-graph (if db-graph?
-                                                                               rtc-handler/<rtc-delete-graph!
-                                                                               file-sync/<delete-graph)]
-                                                            (state/set-state! [:file-sync/remote-graphs :loading] true)
-                                                            (go (<! (delete-graph GraphUUID))
-                                                              (state/delete-repo! repo)
-                                                              (state/delete-remote-graph! repo)
-                                                              (state/set-state! [:file-sync/remote-graphs :loading] false)))))
-                                                      unlink-or-remote-fn!)
-                                 confirm-fn!
-                                 (fn []
-                                   (-> (shui/dialog-confirm!
-                                         [:p.font-medium.-my-4 prompt-str
-                                          [:span.mt-1.flex.font-normal.opacity-40
-                                           [:small "Notice that we can't recover this graph after being deleted. Make sure you have backups before deleting it."]]])
-                                     (p/then #(action-confirm-fn!))))]
-
-                             (if has-prompt?
-                               (confirm-fn!)
-                               (unlink-or-remote-fn!))))}
-              (if only-cloud? "Remove (server)" "Unlink (local)")])))]]]))
+           [:a.text-gray-400.ml-4.font-medium.text-sm.whitespace-nowrap
+            {:title title
+             :on-click (fn []
+                         (let [has-prompt? true
+                               prompt-str (cond only-cloud?
+                                            (str "Are you sure to permanently delete the graph \"" GraphName "\" from our server?")
+                                            db-based?
+                                            (str "Are you sure to permanently delete the graph \"" url "\" from Logseq?")
+                                            :else
+                                            (str "Are you sure to unlink the graph \"" url "\" from local folder?"))
+                               unlink-or-remote-fn! (fn []
+                                                      (repo-handler/remove-repo! repo)
+                                                      (state/pub-event! [:graph/unlinked repo (state/get-current-repo)]))
+                               action-confirm-fn! (if only-cloud?
+                                                    (fn []
+                                                      (when (or manager? (not db-graph?))
+                                                        (let [delete-graph (if db-graph?
+                                                                             rtc-handler/<rtc-delete-graph!
+                                                                             file-sync/<delete-graph)]
+                                                          (state/set-state! [:file-sync/remote-graphs :loading] true)
+                                                          (go (<! (delete-graph GraphUUID))
+                                                            (state/delete-repo! repo)
+                                                            (state/delete-remote-graph! repo)
+                                                            (state/set-state! [:file-sync/remote-graphs :loading] false)))))
+                                                    unlink-or-remote-fn!)
+                               confirm-fn!
+                               (fn []
+                                 (-> (shui/dialog-confirm!
+                                       [:p.font-medium.-my-4 prompt-str
+                                        [:span.mt-1.flex.font-normal.opacity-70
+                                         (if (or db-based? only-cloud?)
+                                           [:small.text-red-rx-11 "⚠️ Notice that we can't recover this graph after being deleted. Make sure you have backups before deleting it."]
+                                           [:small.opacity-70 "⚠️ It won't remove your local files!"])]])
+                                   (p/then #(action-confirm-fn!))))]
+
+                           (if has-prompt?
+                             (confirm-fn!)
+                             (unlink-or-remote-fn!))))}
+            (if only-cloud? "Remove (server)" "Unlink (local)")]))]]]))
 
 (rum/defc repos < rum/reactive
   []