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: allow to overwrite attrs in InfoBannerCard #393

Merged
merged 1 commit into from
Nov 3, 2023

Conversation

martimalek
Copy link
Contributor

What:

Allow to overwrite the attrs set in InfoBanner compound component (InfoBannerCard)


Why:

With the compound approach we want to bring to our users freedom to compose their own version of our components, therefore we should allow them to overwrite our preset attributes.


How:

Overwrite attributes in .attrs with the passed props in all InfoBannerCard blocks

Explanation
In styled-components the precedence of passed "attributes" to a component is attrs > props > defaultProps, meaning that attrs overwrites everything.

Before we had our InfoBannerCard.Link as

const StyledLink = styled(WaveLink).attrs({ fontSize: 0, textAlign: 'left', target: '_blank', marginTop: '0.25rem' })`...`

which meant that those attributes could not be overwritten.

By passing a function to attrs we can receive the props as an argument and overwrite our attributes with them, just like

.attrs(props => ({
    fontSize: 0,
    textAlign: 'left',
    target: '_blank',
    marginTop: '0.25rem',
    ...props
}))


You can check the current precedence in this codesandbox

Checklist:

  • Ready to be merged

Closes #391

@nlopin nlopin merged commit 8b1457e into main Nov 3, 2023
10 checks passed
@nlopin nlopin deleted the InfoBannerCard-override-attrs branch November 3, 2023 10:00
github-actions bot pushed a commit that referenced this pull request Nov 3, 2023
### [1.34.4](v1.34.3...v1.34.4) (2023-11-03)

### Bug Fixes

* **infobanner:** allow to override attrs in InfoBannerCard ([#393](#393)) ([8b1457e](8b1457e))
Copy link
Contributor

github-actions bot commented Nov 3, 2023

🎉 This PR is included in version 1.34.4 🎉

The release is available on:

Your semantic-release bot 📦🚀

martimalek added a commit that referenced this pull request Feb 2, 2024
* chore: dependency update

* 1.32.2

* fix: add border secondary (#355)

Co-authored-by: Leonardo Di Vittorio <leonardo.divittorio@Leonardos-MacBook-Pro.local>

* chore(release): 1.32.2 [skip ci]

### [1.32.2](v1.32.1...v1.32.2) (2023-08-17)

### Bug Fixes

* add border secondary ([#355](#355)) ([75243ec](75243ec))

* feat: add breadcrumbs component (#353)

* feat: add breadcrumbs component

* feat: add a11y properites

---------

Co-authored-by: Leonardo Di Vittorio <leonardo.divittorio@Leonardos-MacBook-Pro.local>

* chore(release): 1.33.0 [skip ci]

## [1.33.0](v1.32.2...v1.33.0) (2023-08-18)

### Features

* add breadcrumbs component ([#353](#353)) ([ed82e05](ed82e05))

* feat: add error Tag and SelectList variants (#372)

* fix: add Open Sans font to storybook

* feat: add variants of tag component in Tag and SelectList (#354)

* feat: add variants of tag component, resolve comments

---------

Co-authored-by: Yurii Pavlovskyi <yurii.pavlovskyi@free-now.com>

* chore(release): 1.34.0 [skip ci]

## [1.34.0](v1.33.0...v1.34.0) (2023-09-01)

### Features

* add error Tag and SelectList variants ([#372](#372)) ([e0eecdd](e0eecdd)), closes [#354](#354)

* refactor: replace deprecated weak prop for secondary in text usages (#375)

* refactor: migrate Datepicker to popper positioning engine (#378)

* refactor: migrate Datepicker to popper positioning engine

* build: remove react-tether dependency

* chore: remove unnecessary prop types and use useState directly

* main: export Breadcrumbs component

* 1.34.1

* fix(input): add aria-invalid when an input has an error (#379)

* chore(release): 1.34.1 [skip ci]

### [1.34.1](v1.34.0...v1.34.1) (2023-09-29)

### Bug Fixes

* **input:** add aria-invalid when an input has an error ([#379](#379)) ([ec26782](ec26782))

* fix(deps): crossOrigin prop is not required for inputs (#386)

* chore(deps): move @testing-library/react-hooks to devDependencies

* fix(deps): override @types/react of react-windowed-select to ^17.0.67

* chore(deps): pin @types/react overrides

---------

Co-authored-by: Artur Miglio <arturmiglio@gmail.com>

* chore(release): 1.34.2 [skip ci]

### [1.34.2](v1.34.1...v1.34.2) (2023-10-05)

### Bug Fixes

* **deps:** crossOrigin prop is not required for inputs ([#386](#386)) ([b9e7217](b9e7217))

* fix: enhanced breadcrumbs style (#390)

* fix: enhanced breadcrumbs style

* fix: linting error 0 unit

---------

Co-authored-by: Leonardo Di Vittorio <leonardo.divittorio@Leonardos-MacBook-Pro.local>

* chore(release): 1.34.3 [skip ci]

### [1.34.3](v1.34.2...v1.34.3) (2023-10-11)

### Bug Fixes

* enhanced breadcrumbs style ([#390](#390)) ([e364381](e364381))

* fix(infobanner): allow to override attrs in InfoBannerCard (#393)

* chore(release): 1.34.4 [skip ci]

### [1.34.4](v1.34.3...v1.34.4) (2023-11-03)

### Bug Fixes

* **infobanner:** allow to override attrs in InfoBannerCard ([#393](#393)) ([8b1457e](8b1457e))

* chore: pull request template cleanup

* docs: correct changelog

* docs: minor typo fixes

---------

Co-authored-by: Nikolai Lopin <code@lopin.me>
Co-authored-by: Leonardo <leonardo.divittorio@live.it>
Co-authored-by: Leonardo Di Vittorio <leonardo.divittorio@Leonardos-MacBook-Pro.local>
Co-authored-by: semantic-release-bot <semantic-release-bot@martynus.net>
Co-authored-by: hackbnw <420178+hackbnw@users.noreply.github.com>
Co-authored-by: Yurii Pavlovskyi <yurii.pavlovskyi@free-now.com>
Co-authored-by: Jan Hamara <hamara.jan18@gmail.com>
Co-authored-by: Lloyd Francis <lloydaf@gmail.com>
Co-authored-by: Artur Miglio <arturmiglio@gmail.com>
Co-authored-by: Nikolai Lopin <nikolai.lopin@free-now.com>
github-actions bot pushed a commit that referenced this pull request Feb 2, 2024
## [2.1.0](v2.0.1...v2.1.0) (2024-02-02)

### Features

* add breadcrumbs component ([#353](#353)) ([ed82e05](ed82e05))
* add error Tag and SelectList variants ([#372](#372)) ([e0eecdd](e0eecdd)), closes [#354](#354)

### Bug Fixes

* **infobanner:** allow to override attrs in InfoBannerCard ([#393](#393)) ([8b1457e](8b1457e))
* enhanced breadcrumbs style ([#390](#390)) ([e364381](e364381))
* **deps:** crossOrigin prop is not required for inputs ([#386](#386)) ([b9e7217](b9e7217))
* **input:** add aria-invalid when an input has an error ([#379](#379)) ([ec26782](ec26782))
* add border secondary ([#355](#355)) ([75243ec](75243ec))
Copy link
Contributor

github-actions bot commented Feb 2, 2024

🎉 This PR is included in version 2.1.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

Copy link
Contributor

github-actions bot commented Jun 6, 2024

🎉 This PR is included in version 1.34.4 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging this pull request may close these issues.

Add possibility to InfoBanner for opening links in same window
2 participants