| 12345678910111213141516171819202122 |
- (ns frontend.components.lazy-editor
- (:require [rum.core :as rum]
- [shadow.lazy :as lazy]
- [frontend.ui :as ui]
- [frontend.state :as state]))
- (def lazy-editor (lazy/loadable frontend.extensions.code/editor))
- (defonce loaded? (atom false))
- (rum/defc editor < rum/reactive
- {:will-mount (fn [state]
- (lazy/load lazy-editor
- (fn []
- (reset! loaded? true)))
- state)}
- [config id attr code options]
- (let [loaded? (rum/react loaded?)
- theme (state/sub :ui/theme)]
- (if loaded?
- (@lazy-editor config id attr code theme options)
- (ui/loading "CodeMirror"))))
|