Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Provide option for spreading props rather than static assignment #86

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

Commits on Sep 10, 2024

  1. Provide option for spreading props rather than static assignment

    This provides an option (`spreadDefaultProps`) to spread the extra props from the top level `svg` element onto the props object, rather than statically assigning them as `defaultProps`. This gives users an optional trade off for `_spread` performance (as raised in the PR that originally setup `defaultProps`: airbnb#8) against being able to tree shake the generated components (which is prevented if they have static assignments).
    
    The `README` has been updated, and a sanity test scenario added.
    
    This also corrects some bugs which arise when `opts.SVG_DEFAULT_PROPS_CODE` is not assigned.
    
    The first is that Babel will throw an error when a substitution key is provided but not used, even if it's value is `undefined`. This happens when `opts.SVG_DEFAULT_PROPS_CODE` is not assigned, and therefore the `SVG_NAME.defaultProps = SVG_DEFAULT_PROPS_CODE` template string is never included - however, the `SVG_DEFAULT_PROPS_CODE` is still passed.
    
    The second is using `replaceWith` versus `replaceWithMultiple` when there are multiple nodes to be replaced. This is currently predicated on `opts.SVG_DEFAULT_PROPS_CODE` - which is not accurate. It should be predicated on if there are multiple nodes (`svgReplacement.length > 1`).
    atkinchris committed Sep 10, 2024
    Configuration menu
    Copy the full SHA
    ccc85ff View commit details
    Browse the repository at this point in the history