1
0
Эх сурвалжийг харах

ux: diff-merge switch & fix

Junyi Du 2 жил өмнө
parent
commit
53e85ddffc

+ 16 - 2
src/main/frontend/components/settings.cljs

@@ -732,6 +732,13 @@
                (file-sync-handler/set-sync-enabled! (not enabled?)))
              true))
 
+(rum/defc sync-diff-merge-enabled-switcher
+  [enabled?]
+  (ui/toggle enabled?
+             (fn []
+               (file-sync-handler/set-sync-diff-merge-enabled! (not enabled?)))
+             true))
+
 (defn sync-switcher-row [enabled?]
   (row-with-button-action
    {:left-label (t :settings-page/sync)
@@ -739,8 +746,15 @@
 
 (defn sync-diff-merge-switcher-row [enabled?]
   (row-with-button-action
-   {:left-label (t :settings-page/sync-diff-merge)
-    :action (sync-enabled-switcher enabled?)}))
+   {:left-label (str (t :settings-page/sync-diff-merge) " (Experimental!)") ;; Not included in i18n to avoid outdating translations
+    :action (sync-diff-merge-enabled-switcher enabled?)
+    :desc (ui/tippy {:html        [:div
+                                   [:div (t :settings-page/sync-diff-merge-desc)]
+                                   [:div (t :settings-page/sync-diff-merge-warn)]]
+                     :class       "tippy-hover ml-2"
+                     :interactive true
+                     :disabled    false}
+                    (svg/info))}))
 
 (rum/defc whiteboards-enabled-switcher
   [enabled?]

+ 5 - 0
src/main/frontend/handler/file_sync.cljs

@@ -254,3 +254,8 @@
   [value]
   (storage/set :logseq-sync-enabled value)
   (state/set-state! :feature/enable-sync? value))
+
+(defn set-sync-diff-merge-enabled!
+  [value]
+  (storage/set :logseq-sync-diff-merge-enabled value)
+  (state/set-state! :feature/enable-sync-diff-merge? value))

+ 3 - 1
src/resources/dicts/en.edn

@@ -318,7 +318,9 @@
  :settings-page/sync-desc-1 "Click"
  :settings-page/sync-desc-2 "here"
  :settings-page/sync-desc-3 "for instructions on how to set up and use Sync."
- :settings-page/sync-diff-merge "Merge editing when syncing"
+ :settings-page/sync-diff-merge "Enable smart merge when syncing"
+ :settings-page/sync-diff-merge-desc "Merge local updates with remote files automatically when conflict happens, instead of overwriting the remote files"
+ :settings-page/sync-diff-merge-warn "Smart merge ability is only activated on a client after first successful sync with the remote server on the graph in the new Logseq version. Enabling this on all devices to reach the best experience."
  :settings-page/enable-whiteboards "Whiteboards"
  :settings-page/native-titlebar "Native title bar"
  :settings-page/native-titlebar-desc "Enables the native window title bar on Windows and Linux."