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(Page) allow change of main tag #9296

Merged
merged 5 commits into from
Jul 26, 2023

Conversation

Dominik-Petrik
Copy link
Contributor

What: Closes #9000

@patternfly-build
Copy link
Contributor

patternfly-build commented Jun 22, 2023

@Dominik-Petrik Dominik-Petrik force-pushed the page-allowCustomMainTag branch from 6f86930 to 2b8ccb3 Compare June 22, 2023 12:38
Copy link
Contributor

@jenny-s51 jenny-s51 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is looking good Dominik! Looks like we just need to pass mainTag to the props object in the render method, since we don't want mainTag showing as an attribute on div.pf-v5-c-page

Also, I wouldn't block over this but noticed we use the prop name component for similar cases throughout the repo... maybe we can rename to include 'component' eg mainTagComponent or mainComponentTag. Does anyone have any thoughts on this?

@Dominik-Petrik
Copy link
Contributor Author

This is looking good Dominik! Looks like we just need to pass mainTag to the props object in the render method, since we don't want mainTag showing as an attribute on div.pf-v5-c-page

Also, I wouldn't block over this but noticed we use the prop name component for similar cases throughout the repo... maybe we can rename to include 'component' eg mainTagComponent or mainComponentTag. Does anyone have any thoughts on this?

You're right I forgot to include the prop in render. And for the prop name, I'd go with mainTagComponent or maybe just mainComponent. Thanks for the feedback.

@Dominik-Petrik Dominik-Petrik requested a review from jenny-s51 June 26, 2023 09:27
Copy link
Contributor

@jenny-s51 jenny-s51 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Comment on lines 84 to 85
/** HTML component used as main component of the page, defaults to 'main'. */
mainComponent?: 'main' | 'div';
Copy link
Contributor

@thatblindgeye thatblindgeye Jul 5, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: we could just call this prop component, and update the description to say Base HTML component used for the page. Defaults to 'main' or something along those lines. Could also be worth mentioning that "Only pass in 'div' if another 'main' element already exists" EDIT: just saw Jenny's comment about the same thing 😆

There could also be an argument to just typing this as a string/keyof JSX.IntrinsicElements (like some other `component' props) as who knows whether just main and div would cover whatever use cases consumers need, but at the same time that might be too flexible. Personally I think limiting the type here is fine (we should be able to update this to be more flexible if needed without a breaking change), but curious if anyone else has any thoughts.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I might argue keeping it as mainComponent is good because

  • There are a handful of props that are named main[PropName], so it's more consistent
  • If we did ever want to allow someone to change div.pf-[v]-c-page, it's probably best if that was done via component so we could run into namespacing issues

What's the reasoning for changing it to component?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was probably thinking of mainComponent as in the main tag, rather than "main" as in the base/primary/etc component. So "mainComponent" sounded a little off/confusing since the main element is one of the two types allowed. The naming is something we should align on, though, since we have a mix of "mainComponent" and just "component" for a prop.

I don't feel super strong about it, though, so if we'd want to revert this back I can push a quick change

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would agree with Michael here. I think we usually us component to change the outermost tag. Using mainComponet is more specific as to which tag/component is actually being updated.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1, I like mainComponent here as well

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@thatblindgeye ah, gotcha! I believe the word here "main" refers to the BEM element name - .pf-[v]-c-page__main. If it were its own component, we would likely call it <PageMain> based off of the BEM name.

@Dominik-Petrik Dominik-Petrik force-pushed the page-allowCustomMainTag branch from ebdfa87 to 4d3c185 Compare July 7, 2023 11:35
@Dominik-Petrik Dominik-Petrik force-pushed the page-allowCustomMainTag branch from 4d3c185 to 28916f7 Compare July 11, 2023 10:55
@tlabaj tlabaj requested a review from mcoker July 26, 2023 14:51
Copy link
Contributor

@mcoker mcoker left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! I had to verify locally since surge wasn't up to date, even though it was finished building.

Also I left a comment about keeping the prop as mainComponent, though it's just my opinion - I'm fine with whatever y'all decide.

@tlabaj tlabaj changed the base branch from main to postV5 July 26, 2023 19:04
Copy link
Contributor

@tlabaj tlabaj left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think think we want to change the prop name to what you had originally.

@tlabaj tlabaj merged commit 4a93e97 into patternfly:postV5 Jul 26, 2023
tlabaj pushed a commit to tlabaj/patternfly-react that referenced this pull request Jul 31, 2023
* fix(Page) allow change of main tag

* rename prop and add it to render method

* change prop name and description

* update description

* Reverted prop name

---------

Co-authored-by: Eric Olkowski <thatblindgeye@gmail.com>
wise-king-sullyman pushed a commit that referenced this pull request Jul 31, 2023
* fix(Toolbar): resolved typeerror on full page demo (#9355)

* chore(TreeView): converted examples to TS (#9286)

* fix(ExpandableSection): added ARIA attributes (#9303)

* fix(ExpandableSection): added ARIA attributes

* Updated failing snapshots due to mismatching generated ID

* chore(Tooltip): updated unit tests (#9295)

* chore(Tooltip): updated unit tests

* Updated mock and tests

* Updated based on Austin feedback

* Updated integration tests

* Removed unused imports

* Updated remaining tests using Popper mock

* Removed extraenous snapshot test

* Removed test

* Split out onTooltipHidden test

* chore(Card): added tests for new clickable/selectable (#9262)

* chore(Card): added tests for new clickable/selectable

* Added tests for clickable cards

* Updated card with actions test

* fix(Slider): reverted taborder (#9293)

* fix(chore): Fix deprecated wizard integration tests (#9312)

* fix(chore): Fix deprecated wizard integration tests

* updated non deprecated test as well

---------

Co-authored-by: Titani <tlabaj@redaht.com>

* Rebase postv5 (#9393)

* chore(deps): bump docs framework (#9370)

* chore(docs): Updated screenshots (#9337)

* chore(docs): Updated screenshots

* updated screenshots after logo update

---------

Co-authored-by: Titani <tlabaj@redaht.com>

* chore(release): releasing packages [ci skip]

 - @patternfly/react-docs@6.0.0-prerelease.26

* chore(deps): bump to latest chore version (#9389)

* chore(deps): bump to latest chore version

* bump to 16

* chore(release): releasing packages [ci skip]

 - @patternfly/react-charts@7.0.0-prerelease.12
 - @patternfly/react-code-editor@5.0.0-prerelease.24
 - @patternfly/react-core@5.0.0-prerelease.24
 - @patternfly/react-docs@6.0.0-prerelease.27
 - @patternfly/react-icons@5.0.0-prerelease.9
 - demo-app-ts@5.0.0-prerelease.22
 - @patternfly/react-styles@5.0.0-prerelease.7
 - @patternfly/react-table@5.0.0-prerelease.24
 - @patternfly/react-tokens@5.0.0-prerelease.9

* fix(fileupload): use default readonly text input instead of plain (#9387)

* fix(fileupload): use default readonly text input instead of plain

* chore(build): snaps

* fix(CodeEditor): prevent clicks in textarea from opening fileupload (#9385)

* fix(toolbar): added chip container class to toolbar content (#9379)

* feat(Menu): added support for tooltips to menu (#9382)

* fix(whitespace): Update readme to trigger release

* chore(release): releasing packages [ci skip]

 - @patternfly/react-code-editor@5.0.0-prerelease.25
 - @patternfly/react-core@5.0.0-prerelease.25
 - @patternfly/react-docs@6.0.0-prerelease.28
 - demo-app-ts@5.0.0-prerelease.23
 - @patternfly/react-table@5.0.0-prerelease.25

* fix(Toolbar): resolved typeerror on full page demo (#9355)

* chore(TreeView): converted examples to TS (#9286)

* fix(ExpandableSection): added ARIA attributes (#9303)

* fix(ExpandableSection): added ARIA attributes

* Updated failing snapshots due to mismatching generated ID

* chore(Tooltip): updated unit tests (#9295)

* chore(Tooltip): updated unit tests

* Updated mock and tests

* Updated based on Austin feedback

* Updated integration tests

* Removed unused imports

* Updated remaining tests using Popper mock

* Removed extraenous snapshot test

* Removed test

* Split out onTooltipHidden test

* chore(Card): added tests for new clickable/selectable (#9262)

* chore(Card): added tests for new clickable/selectable

* Added tests for clickable cards

* Updated card with actions test

* fix(Slider): reverted taborder (#9293)

* fix(chore): Fix deprecated wizard integration tests (#9312)

* fix(chore): Fix deprecated wizard integration tests

* updated non deprecated test as well

---------

Co-authored-by: Titani <tlabaj@redaht.com>

---------

Co-authored-by: Titani <tlabaj@redaht.com>
Co-authored-by: patternfly-build <patternfly-build@redhat.com>
Co-authored-by: Michael Coker <35148959+mcoker@users.noreply.github.com>
Co-authored-by: Dallas <dallas.nicol@gmail.com>
Co-authored-by: Dana Gutride <dgutride@gmail.com>
Co-authored-by: Eric Olkowski <70952936+thatblindgeye@users.noreply.github.com>

* feat(MenuItem): allow target and rel on links (#9294)

* feat(MenuItem): allow target and rel on links

* update desc

* move desc to right prop

* chore(deps): update dependency lint-staged to v13.2.3 (#9335)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(JumpLinks) href does not work properly (#9307)

* chore(deps): update dependency eslint to v8.42.0 (#9236)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(SelectToggle): corrected removeEventListener on unmount for v5 (#9380)

* fix(Page) allow change of main tag (#9296)

* fix(Page) allow change of main tag

* rename prop and add it to render method

* change prop name and description

* update description

* Reverted prop name

---------

Co-authored-by: Eric Olkowski <thatblindgeye@gmail.com>

* fix(AlertActionLink) support ReactNode as child (#9278)

* fix(AlertActionLink) support ReactNode as child

* add test

* update prop type and description

* update test

* fix: changed the button lable from Upload to Browse (#9275)

* fix: changed the button lable from Upload to Browse

* change button label from hardcoded text to props element

* passes label as Browse

* Update MultipleFileUploadMain.tsx

* made changes as per your requirements

* follow-up

* follow-up

* follow-up

* fix snaphots

---------

Co-authored-by: Eric Olkowski <70952936+thatblindgeye@users.noreply.github.com>
Co-authored-by: Titani <tlabaj@redaht.com>
Co-authored-by: patternfly-build <patternfly-build@redhat.com>
Co-authored-by: Michael Coker <35148959+mcoker@users.noreply.github.com>
Co-authored-by: Dallas <dallas.nicol@gmail.com>
Co-authored-by: Dana Gutride <dgutride@gmail.com>
Co-authored-by: kmcfaul <45077788+kmcfaul@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Dominik Petřík <77832970+Dominik-Petrik@users.noreply.github.com>
Co-authored-by: Eric Olkowski <thatblindgeye@gmail.com>
Co-authored-by: Tarun Samanta <tarunsamanta77@gmail.com>
nicolethoen pushed a commit to Kells512/patternfly-react that referenced this pull request Sep 1, 2023
* fix(Toolbar): resolved typeerror on full page demo (patternfly#9355)

* chore(TreeView): converted examples to TS (patternfly#9286)

* fix(ExpandableSection): added ARIA attributes (patternfly#9303)

* fix(ExpandableSection): added ARIA attributes

* Updated failing snapshots due to mismatching generated ID

* chore(Tooltip): updated unit tests (patternfly#9295)

* chore(Tooltip): updated unit tests

* Updated mock and tests

* Updated based on Austin feedback

* Updated integration tests

* Removed unused imports

* Updated remaining tests using Popper mock

* Removed extraenous snapshot test

* Removed test

* Split out onTooltipHidden test

* chore(Card): added tests for new clickable/selectable (patternfly#9262)

* chore(Card): added tests for new clickable/selectable

* Added tests for clickable cards

* Updated card with actions test

* fix(Slider): reverted taborder (patternfly#9293)

* fix(chore): Fix deprecated wizard integration tests (patternfly#9312)

* fix(chore): Fix deprecated wizard integration tests

* updated non deprecated test as well

---------

Co-authored-by: Titani <tlabaj@redaht.com>

* Rebase postv5 (patternfly#9393)

* chore(deps): bump docs framework (patternfly#9370)

* chore(docs): Updated screenshots (patternfly#9337)

* chore(docs): Updated screenshots

* updated screenshots after logo update

---------

Co-authored-by: Titani <tlabaj@redaht.com>

* chore(release): releasing packages [ci skip]

 - @patternfly/react-docs@6.0.0-prerelease.26

* chore(deps): bump to latest chore version (patternfly#9389)

* chore(deps): bump to latest chore version

* bump to 16

* chore(release): releasing packages [ci skip]

 - @patternfly/react-charts@7.0.0-prerelease.12
 - @patternfly/react-code-editor@5.0.0-prerelease.24
 - @patternfly/react-core@5.0.0-prerelease.24
 - @patternfly/react-docs@6.0.0-prerelease.27
 - @patternfly/react-icons@5.0.0-prerelease.9
 - demo-app-ts@5.0.0-prerelease.22
 - @patternfly/react-styles@5.0.0-prerelease.7
 - @patternfly/react-table@5.0.0-prerelease.24
 - @patternfly/react-tokens@5.0.0-prerelease.9

* fix(fileupload): use default readonly text input instead of plain (patternfly#9387)

* fix(fileupload): use default readonly text input instead of plain

* chore(build): snaps

* fix(CodeEditor): prevent clicks in textarea from opening fileupload (patternfly#9385)

* fix(toolbar): added chip container class to toolbar content (patternfly#9379)

* feat(Menu): added support for tooltips to menu (patternfly#9382)

* fix(whitespace): Update readme to trigger release

* chore(release): releasing packages [ci skip]

 - @patternfly/react-code-editor@5.0.0-prerelease.25
 - @patternfly/react-core@5.0.0-prerelease.25
 - @patternfly/react-docs@6.0.0-prerelease.28
 - demo-app-ts@5.0.0-prerelease.23
 - @patternfly/react-table@5.0.0-prerelease.25

* fix(Toolbar): resolved typeerror on full page demo (patternfly#9355)

* chore(TreeView): converted examples to TS (patternfly#9286)

* fix(ExpandableSection): added ARIA attributes (patternfly#9303)

* fix(ExpandableSection): added ARIA attributes

* Updated failing snapshots due to mismatching generated ID

* chore(Tooltip): updated unit tests (patternfly#9295)

* chore(Tooltip): updated unit tests

* Updated mock and tests

* Updated based on Austin feedback

* Updated integration tests

* Removed unused imports

* Updated remaining tests using Popper mock

* Removed extraenous snapshot test

* Removed test

* Split out onTooltipHidden test

* chore(Card): added tests for new clickable/selectable (patternfly#9262)

* chore(Card): added tests for new clickable/selectable

* Added tests for clickable cards

* Updated card with actions test

* fix(Slider): reverted taborder (patternfly#9293)

* fix(chore): Fix deprecated wizard integration tests (patternfly#9312)

* fix(chore): Fix deprecated wizard integration tests

* updated non deprecated test as well

---------

Co-authored-by: Titani <tlabaj@redaht.com>

---------

Co-authored-by: Titani <tlabaj@redaht.com>
Co-authored-by: patternfly-build <patternfly-build@redhat.com>
Co-authored-by: Michael Coker <35148959+mcoker@users.noreply.github.com>
Co-authored-by: Dallas <dallas.nicol@gmail.com>
Co-authored-by: Dana Gutride <dgutride@gmail.com>
Co-authored-by: Eric Olkowski <70952936+thatblindgeye@users.noreply.github.com>

* feat(MenuItem): allow target and rel on links (patternfly#9294)

* feat(MenuItem): allow target and rel on links

* update desc

* move desc to right prop

* chore(deps): update dependency lint-staged to v13.2.3 (patternfly#9335)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(JumpLinks) href does not work properly (patternfly#9307)

* chore(deps): update dependency eslint to v8.42.0 (patternfly#9236)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(SelectToggle): corrected removeEventListener on unmount for v5 (patternfly#9380)

* fix(Page) allow change of main tag (patternfly#9296)

* fix(Page) allow change of main tag

* rename prop and add it to render method

* change prop name and description

* update description

* Reverted prop name

---------

Co-authored-by: Eric Olkowski <thatblindgeye@gmail.com>

* fix(AlertActionLink) support ReactNode as child (patternfly#9278)

* fix(AlertActionLink) support ReactNode as child

* add test

* update prop type and description

* update test

* fix: changed the button lable from Upload to Browse (patternfly#9275)

* fix: changed the button lable from Upload to Browse

* change button label from hardcoded text to props element

* passes label as Browse

* Update MultipleFileUploadMain.tsx

* made changes as per your requirements

* follow-up

* follow-up

* follow-up

* fix snaphots

---------

Co-authored-by: Eric Olkowski <70952936+thatblindgeye@users.noreply.github.com>
Co-authored-by: Titani <tlabaj@redaht.com>
Co-authored-by: patternfly-build <patternfly-build@redhat.com>
Co-authored-by: Michael Coker <35148959+mcoker@users.noreply.github.com>
Co-authored-by: Dallas <dallas.nicol@gmail.com>
Co-authored-by: Dana Gutride <dgutride@gmail.com>
Co-authored-by: kmcfaul <45077788+kmcfaul@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Dominik Petřík <77832970+Dominik-Petrik@users.noreply.github.com>
Co-authored-by: Eric Olkowski <thatblindgeye@gmail.com>
Co-authored-by: Tarun Samanta <tarunsamanta77@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Page - User should have the ability to change the main tag used for Page component
6 participants