Browse Source

srs: add context menu to convert a block into a card

Tienson Qin 4 years ago
parent
commit
f8e94c9d79

+ 9 - 5
src/main/frontend/components/content.cljs

@@ -181,11 +181,15 @@
                         (state/set-modal! #(export/export-blocks block-id)))}
            "Export")
 
-          ;; (if (srs/card-block? block)
-          ;;   (ui/menu-link
-          ;;    {:key "Preview Card"
-          ;;     :on-click #(srs/preview [(db/pull [:block/uuid block-id])])}
-          ;;    "Preview Card"))
+          (if (srs/card-block? block)
+            (ui/menu-link
+             {:key "Preview Card"
+              :on-click #(srs/preview [(db/pull [:block/uuid block-id])])}
+             "Preview Card")
+            (ui/menu-link
+             {:key "Make a Card"
+              :on-click #(srs/make-block-a-card! block-id)}
+             "Make a Card"))
 
           (ui/menu-link
            {:key "Copy as JSON"

+ 9 - 0
src/main/frontend/extensions/srs.cljs

@@ -611,3 +611,12 @@
 (commands/register-slash-command ["Cloze"
                                   [[:editor/input "{{cloze }}" {:backward-pos 2}]]
                                   "Create a cloze"])
+
+;; handlers
+(defn make-block-a-card!
+  [block-id]
+  (when-let [content (:block/content (db/entity [:block/uuid block-id]))]
+    (editor-handler/save-block!
+     (state/get-current-repo)
+     block-id
+     (str (string/trim content) " #" card-hash-tag))))

+ 2 - 2
src/main/frontend/ui.css

@@ -112,8 +112,8 @@
 }
 
 @media (min-width: 1024px) {
-    .panel-content {
-        min-width: 36rem;
+    .panel-content .ls-card {
+        min-width: 32rem;
         min-height: 24rem;
     }
 }