Skip to content

Latest commit

 

History

History
20 lines (17 loc) · 951 Bytes

smooth-ui.md

File metadata and controls

20 lines (17 loc) · 951 Bytes

Smooth UI

Smooth UI has the same problem with controlled inputs as Material UI. The problem can be solved by providing custom component to Smooth UI inputs which will create the Input element using Reagent, enabling Reagent to use it's workaround logic to control input value and cursor position:

(def r-input (r/reactify-component
               (fn [props]
                 ;; Omit:
                 ; https://github.com/smooth-code/smooth-ui/blob/c5f3c75a438a04e766dbedeafc2be54252a5338e/packages/shared/core/createComponent.js#L31
                 ; https://github.com/smooth-code/ smooth-ui/blob/c5f3c75a438a04e766dbedeafc2be54252a5338e/packages/shared/core/Input.js#L84
                 ;; Maybe also:
                 ; (.. system -meta -props)
                 [:input (dissoc props :__scTheme :theme :control :size :valid)])))

(rdom/render [:> Input {:as r-input ...}] container)