-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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(listbox): listbox-section items prop in html #4369
fix(listbox): listbox-section items prop in html #4369
Conversation
🦋 Changeset detectedLatest commit: 208e1ee The changes in this PR will be included in the next version bump. This PR includes changesets to release 4 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
@EReguero is attempting to deploy a commit to the NextUI Inc Team on Vercel. A member of the Team first needs to authorize it. |
WalkthroughThe pull request addresses an issue with the Changes
Assessment against linked issues
Possibly related PRs
Suggested reviewers
Tip CodeRabbit's docstrings feature is now available as part of our Early Access Program! Simply use the command Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
Documentation and Community
|
I took same approach that was taken for title. If is there a common or cleaner way you use please tell me. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (1)
.changeset/angry-boxes-wonder.md (1)
1-5
: Consider enhancing the changeset message with more details.While the message correctly identifies the fix, it would be helpful to include:
- The specific issue that was fixed (items prop being rendered in HTML)
- The impact of the fix
- Any related changes (like the title prop handling)
-fix listbox section items prop in html element (#4277) +fix(listbox): prevent items prop from rendering in HTML element of ListboxSection (#4277) + +Similar to the title prop fix, removes items prop from being spread to prevent +unwanted HTML attributes in the rendered output.
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
.changeset/angry-boxes-wonder.md
(1 hunks)packages/components/listbox/src/listbox-section.tsx
(1 hunks)
🔇 Additional comments (2)
packages/components/listbox/src/listbox-section.tsx (2)
54-56
: Verify impact on component consumers.
While this change improves the HTML output, let's verify there are no consumers relying on these props being passed through.
✅ Verification successful
Let me gather more information about the component's implementation and its props handling.
Let me check the actual implementation and usage in the related files to understand how the items
prop is handled.
Change is safe to proceed
The removal of the items
prop from the HTML element is safe because:
- The component internally uses
item.childNodes
to render the list items, not theitems
prop directly - All consumers in the codebase (tests, stories, and docs) use
ListboxSection
with children components rather than relying on theitems
prop being passed to the DOM - The prop is properly handled before being excluded from the HTML attributes
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Search for ListboxSection usage patterns
rg -A 3 "ListboxSection.*items="
Length of output: 472
Script:
#!/bin/bash
# Check ListboxSection implementation and props handling
ast-grep --pattern 'interface ListboxSectionProps {
$$$
}'
# Check for any other potential consumers
rg -l "ListboxSection"
Length of output: 813
Script:
#!/bin/bash
# Check the implementation in base component and stories
ast-grep --pattern 'const ListboxSection = $$$'
# Check usage in stories and docs
rg -A 3 "<ListboxSection" packages/components/listbox/stories/listbox.stories.tsx apps/docs/content/components/listbox/sections.raw.jsx
Length of output: 9593
54-56
: Implementation looks good and follows established patterns.
The approach to exclude the items
prop from HTML output is consistent with the existing title
prop handling. The use of eslint-disable is appropriate here as we intentionally destructure these props to prevent them from spreading to the HTML element.
Let's verify that no other similar props need the same treatment:
✅ Verification successful
Props handling in ListboxSection is complete and correct
Based on the verification of both the component's props interface and implementation, the current handling of items
and title
props is sufficient. Looking at the props from ListboxSectionProps
and ListboxSectionBaseProps
, there are no other props that would need similar treatment to prevent them from being spread to the HTML element. All other props (variant
, color
, classNames
, etc.) are meant to be passed through to affect the rendering.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Search for props that might be incorrectly rendered in HTML
ast-grep --pattern 'interface ListboxSectionProps {
$$$
}'
Length of output: 62
Script:
#!/bin/bash
# Let's try a different approach to find the ListboxSection component and its props
rg -A 10 "interface ListboxSectionProps" packages/components/listbox/src/
Length of output: 949
Script:
#!/bin/bash
# Also search for any spread props in the component implementation
ast-grep --pattern 'const ListboxSection = ({ $$$, ...otherProps }: ListboxSectionProps)'
Length of output: 91
Script:
#!/bin/bash
# Look for any other props being used in the component
rg -A 20 "const ListboxSection" packages/components/listbox/src/
Length of output: 2266
Script:
#!/bin/bash
# Let's check the base props interface to see all available props
rg -A 10 "interface ListboxSectionBaseProps" packages/components/listbox/src/
Length of output: 1124
Script:
#!/bin/bash
# Search for any other spread operations in the component's JSX
ast-grep --pattern '<$_
$$$
{...otherProps}
$$$
/>'
Length of output: 2079
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
Closes #4277
📝 Description
Items props for ListBoxSection was shared to component in otherProps doing that items render in HTML. Same as before was fix for title i added to props list for prevent spread to component.
⛳️ Current behavior (updates)
Items and object are printed in HTML component
🚀 New behavior
Only correct props are printed
💣 Is this a breaking change (Yes/No):
No
📝 Additional Information
Summary by CodeRabbit
Bug Fixes
New Features