Open lilactown opened 4 years ago
Having other fns for extracting and manipulating props could be useful as well.
(helix.core/props some-el)
;; => props as a bean
I'm interested to work on this feature. I've looked through the code, and it seems that the basic implementation could be as simple as
(defmacro clone-element
"Clones a React Element with props conversion like in $"
[element props]
`^js/React.Element (.cloneElement (get-react) ~element (impl.props/props ~props)))
What I'm not sure about is "helix/propx"
attr that is present in some cases. Any tips would be appreciated
Hmm. That's a tricky problem, I'll have to think about it. .cloneElement
does a shallow merge, which means it will ignore "helix/props"
.
"helix/props"
is only present if you are using the :define-factory
feature flag. it's pretty niche. Perhaps I should change the implementation to shallowly convert the props to a JS object inside the factory function, so that they match what the $
macro does at compile time.
Provide a
helix.core/clone-element
macro which uses the same props conversion API as$
.