feat: Add experimental onNodeDetected
event
#457
Merged
+101
−1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Relates to #223 and partially solves it. There're two categories of discoverable nodes: HTML nodes and SVG nodes. The HTML nodes are just the same as the input, which is easier to reason about: we just emit the input nodes with resolved layout and styling information. This can be thought as the "preprocessing step" of the data.
Then, the SVG nodes are a little bit tricky because they're not a 1:1 mapping from the input nodes. For example a
<div style={{ boxShadow: '...' }}>
might be generated as a collection of SVG nodes including<defs>
,<filter>
and<rect>
.However, in the future we can still emit structured data for these in a
onNodeGenerated
event, containing the mapping information via afrom
field:Emits:
And:
It apparently needs more discussion to get the best structured data design. The generated node can be converted to SVG easily but not necessarily (i.e. can be rendered in an imperative way such as canvas too). Then we can get #233 fully supported.