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

fix(icons): allow SVG icons to receive arbitrary props #9106

Merged
merged 4 commits into from Aug 2, 2023

Conversation

char0n
Copy link
Member

@char0n char0n commented Aug 1, 2023

These arbitrary props will allow to handle
native React element events among other things.

Refs #9094

This PR supersedes the #9097

Motivation and Context

In order to have fully utilizable SVG icons, we need to make them open to extension via arbitrary prop passing. One of the many things this arbitrary props passing allows is to handle native React element events.

Other things that have been done in this PR:

  • unlock-auth.jsx and lock-auth.jsx have been renamed to unlock-auth-icon.jsx and lock-auth-icon.jsx
  • LockAuthIcon and UnlockAuthIcon has been transformed into class components to allow defining custom mapStateToProps which SwaggerUI plugin system calls to determine the ownProps of the container. These ownProps are then passed to underlying SVG icon component without all the system container clutter.
  • unlock-auth-operation.jsx and unlock-auth-operation.jsx have been dropped as it is satisfactory to just create the aliases during the plugin registration.

Checklist

My PR contains...

  • No code changes (src/ is unmodified: changes to documentation, CI, metadata, etc.)
  • Dependency changes (any modification to dependencies in package.json)
  • Bug fixes (non-breaking change which fixes an issue)
  • Improvements (misc. changes to existing features)
  • Features (non-breaking change which adds functionality)

My changes...

  • are breaking changes to a public API (config options, System API, major UI change, etc).
  • are breaking changes to a private API (Redux, component props, utility functions, etc.).
  • are breaking changes to a developer API (npm script behavior changes, new dev system dependencies, etc).
  • are not breaking changes.

Documentation

  • My changes do not require a change to the project documentation.
  • My changes require a change to the project documentation.
  • If yes to above: I have updated the documentation accordingly.

Automated tests

  • My changes can not or do not need to be tested.
  • My changes can and should be tested by unit and/or integration tests.
  • If yes to above: I have added tests to cover my changes.
  • If yes to above: I have taken care to cover edge cases in my tests.
  • All new and existing tests passed.

These arbitrary props will allow to handle
native React element events among other things.

Refs #9094
@char0n char0n merged commit 733e51a into master Aug 2, 2023
6 checks passed
@char0n char0n deleted the char0n/icons-props-fix branch August 17, 2023 13:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants