-
#187
d8e7bae
Thanks @lemonmade! - Fix infinite loops with self-referencing structures -
Updated dependencies [
d8e7bae
]:- @remote-ui/[email protected]
-
#197
e15d142
Thanks @lemonmade! - Added a number of methods that align more closely with the corresponding DOM API, and deprecated a few existing methods with overlapping functionality:RemoteParent.appendChild
is deprecated, with a newRemoteParent.append
API recommended instead. This new API matches theElement.append
DOM API: it allows you to pass multiple children, including strings that are converted to text nodes.RemoteParent.insertChildBefore
is deprecated, with a newRemoteParent.insertBefore
API recommended instead. This matches theNode.insertBefore
DOM API, including the fact that the second argument can be null (in which case, the method behaves the same asappend
RemoteParent.replaceChildren
is new, and matches theElement.replaceChildren
DOM API. It allows passing any number of children/ strings, and those are used to fully replace the existing children.RemoteComponent.remove
andRemoteText.remove
are new, and match theElement.remove
DOM API.RemoteText.updateText
is deprecated in favor of a newRemoteText.update
method, which is a little shorter.
- Updated dependencies [
e15d142
]:- @remote-ui/[email protected]
- Fixed a crash when mutating the children of a fragment (pull request)
- Fixed a nested node prop rendering bug in the receiver (pull request)
- Fixed a rendering order issue with inserting child in remote components (pull request)
- Fixed more issues with re-ordering children in remote components (pull request)
- Fixed an issue where children were not removed from an existing parent before being appended to a new one (pull request)
- Fixed an issue where the host representation of a remote root did not have a
kind
field (pull request)
- Add
RemoteFragment
to support component props as sub tree (39be759).
- Fixed an issue where
RemoteReceiver#state
would not update correctly (pull request).
- Breaking: changed
RemoteReceiver
to only be a type, and now exportcreateRemoteReceiver
for creating these objects. The newRemoteReceiver
supports listening for mounting events (pull request).
RemoteReceiver
now has aflush
method that returns a promise for a time after all in-progress updates are finished (pull request).RemoteRoot
now has anoptions
field that allows a user of the root to determine whether it was constructed in strict mode, and what components are available for rendering (pull request).- The serialization of components and text now includes a
kind
key that uses the sameKIND_REMOTE_TEXT
orKIND_REMOTE_COMPONENT
constants as the original object (pull request).
RemoteComponent#updateProps()
now performs a “hot swap” on any prop that is a function (including functions nested in objects or arrays) in order to prevent timing differences from causing the host to call a function prop that has already changed reference in the remote context (pull request)
- Added a
kind
field toRemoteRoot
to distinguish it from other remote nodes (its value is always the newly-exportedKIND_REMOTE_ROOT
constant) (pull request).
RemoteRoot#createComponent()
now checks whether the passed component is supported if thecomponents
option was providedcreateRemoteRoot()
(pull request).- Only nodes created by
RemoteRoot#createComponent()
orRemoteRoot#createText()
can be added to a tree of remote components (pull request).
- Fixed the type of
RemoteReceiver#get()
to correctly indicate that an attached element may benull
(pull request).
- Fixed an error that prevented strings from being passed in the array of children for
RemoteRoot#createComponent()
.
RemoteRoot#createComponent()
now accepts an array of children as the third argument, which allows you to more seamlessly construct a large tree of nodes.
- Added entry point information to
package.json
.
- Added a
strict
option to control immutability in@remote-ui/core
’screateRemoteRoot()
(pull request).
- Fixed a build issue that caused errors when using a number of packages in projects that do not have
[email protected]
installed.
Initial release.