getPropsToForward function
Returns a copy of the specified props
map, omitting reserved React props by default,
in addition to any specified keysToOmit
or keySetsToOmit
.
If onlyCopyDomProps
is true
, only the keys found within DomPropsMixin and SvgPropsMixin will be forwarded.
Useful for prop forwarding.
Implementation
Map getPropsToForward(Map props, {
bool omitReactProps = true,
bool onlyCopyDomProps = false,
Iterable? keysToOmit,
Iterable<Iterable>? keySetsToOmit
}) {
Map propsToForward = JsBackedMap.from(props);
if (omitReactProps) {
propsToForward
..remove('key')
..remove('ref')
..remove('children');
}
if (keysToOmit != null) {
keysToOmit.forEach((key) {
propsToForward.remove(key);
});
}
if (keySetsToOmit != null) {
keySetsToOmit.forEach((keySet) {
keySet.forEach((key) {
propsToForward.remove(key);
});
});
}
if (onlyCopyDomProps) {
List<String>.from(propsToForward.keys).forEach((key) {
if (key.startsWith('aria-')) return;
if (key.startsWith('data-')) return;
if (_validDomProps.contains(key)) return;
propsToForward.remove(key);
});
}
return propsToForward;
}