|
|
@@ -293,6 +293,40 @@
|
|
|
:placeholder "/Users/<username>/Zotero"
|
|
|
:on-blur (fn [e] (setting/set-setting! :zotero-data-directory (util/evalue e)))}]]]])
|
|
|
|
|
|
+(rum/defcs profile-name-dialog-inner <
|
|
|
+ (rum/local "" ::input)
|
|
|
+ [state profile* close-fn]
|
|
|
+ (let [input (get state ::input)]
|
|
|
+ [:div.w-full.sm:max-w-lg.sm:w-96
|
|
|
+ [:div.sm:flex.sm:items-start
|
|
|
+ [:div.mt-3.text-center.sm:mt-0.sm:text-left
|
|
|
+ [:h3#modal-headline.text-lg.leading-6.font-medium
|
|
|
+ "Please enter your profile name"]]]
|
|
|
+
|
|
|
+ [:input.form-input.block.w-full.sm:text-sm.sm:leading-5.my-2
|
|
|
+ {:auto-focus true
|
|
|
+ :default-value ""
|
|
|
+ :on-change (fn [e] (reset! input (util/evalue e)))}]
|
|
|
+
|
|
|
+ [:div.mt-5.sm:mt-4.sm:flex.sm:flex-row-reverse
|
|
|
+ [:span.flex.w-full.rounded-md.shadow-sm.sm:ml-3.sm:w-auto
|
|
|
+ [:button.inline-flex.justify-center.w-full.rounded-md.border.border-transparent.px-4.py-2.bg-indigo-600.text-base.leading-6.font-medium.text-white.shadow-sm.hover:bg-indigo-500.focus:outline-none.focus:border-indigo-700.focus:shadow-outline-indigo.transition.ease-in-out.duration-150.sm:text-sm.sm:leading-5
|
|
|
+ {:type "button"
|
|
|
+ :class "ui__modal-enter"
|
|
|
+ :on-click (fn []
|
|
|
+ (let [profile-name (str/trim @input)]
|
|
|
+ (when-not (str/blank? profile-name)
|
|
|
+ (p/let [_ (setting/add-profile profile-name)
|
|
|
+ _ (setting/set-profile profile-name)]
|
|
|
+ (reset! profile* profile-name)))
|
|
|
+ (state/close-modal!)))}
|
|
|
+ "Submit"]]
|
|
|
+ [:span.mt-3.flex.w-full.rounded-md.shadow-sm.sm:mt-0.sm:w-auto
|
|
|
+ [:button.inline-flex.justify-center.w-full.rounded-md.border.border-gray-300.px-4.py-2.bg-white.text-base.leading-6.font-medium.text-gray-700.shadow-sm.hover:text-gray-500.focus:outline-none.focus:border-blue-300.focus:shadow-outline-blue.transition.ease-in-out.duration-150.sm:text-sm.sm:leading-5
|
|
|
+ {:type "button"
|
|
|
+ :on-click close-fn}
|
|
|
+ "Cancel"]]]]))
|
|
|
+
|
|
|
(rum/defc zotero-profile-selector <
|
|
|
rum/reactive
|
|
|
[profile*]
|
|
|
@@ -314,12 +348,9 @@
|
|
|
:small? true
|
|
|
:on-click
|
|
|
(fn []
|
|
|
- (let [new-profile (js/prompt "Please enter your profile name")]
|
|
|
- (when-not (str/blank? new-profile)
|
|
|
- (let [profile-name (str/trim new-profile)]
|
|
|
- (p/let [_ (setting/add-profile profile-name)
|
|
|
- _ (setting/set-profile profile-name)]
|
|
|
- (reset! profile* profile-name)))))))
|
|
|
+ (state/set-modal!
|
|
|
+ (fn [close-fn]
|
|
|
+ (profile-name-dialog-inner profile* close-fn)))))
|
|
|
(ui/button
|
|
|
"Delete profile!"
|
|
|
:small? true
|