-
Notifications
You must be signed in to change notification settings - Fork 4.3k
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
CustomSelectControlV2: Handle long strings in selected value #62198
Conversation
The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message.
To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook. |
f3b0f8d
to
a68fce4
Compare
@@ -74,7 +74,7 @@ const CustomSelectButton = ( { | |||
// move selection rather than open the popover | |||
showOnKeyDown={ false } | |||
> | |||
<div>{ computedRenderSelectedValue( currentValue ) }</div> |
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.
div
is unnecessary.
@@ -82,12 +82,12 @@ function CustomSelectControl( props: LegacyCustomSelectProps ) { | |||
); | |||
|
|||
return ( | |||
<> | |||
<Styled.SelectedExperimentalHintWrapper> |
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.
Added a wrapper div to apply text truncation styles as in v1.
display: flex; | ||
align-items: center; | ||
justify-content: space-between; |
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.
No reason for this to be a flexbox.
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.
Knowing past Marco, there's a chance flexbox was used to automatically trim extra white space (although it's also very possible that this is a remnant of a previous style and it's totally fine to remove it)
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.
Probably totally fine to remove it :D
font-size: ${ CONFIG.fontSize }; | ||
text-align: left; |
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.
Text align was missing.
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.
Nice catch 👍 I wonder how this didn't come up earlier.
color: ${ COLORS.theme.foreground }; | ||
cursor: pointer; | ||
font-family: inherit; |
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.
Correct color
and font-family
was missing.
width: 100%; | ||
|
||
&[data-focus-visible] { | ||
outline: none; // handled by InputBase component | ||
} | ||
|
||
${ getSize() } | ||
${ ! hasCustomRenderProp && truncateStyles } |
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.
We shouldn't add truncate styles when the consumer passes a custom render function.
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.
Working well in my testing and the code looks good 👍
Thanks for cleaning up the styles while passing through!
@@ -55,40 +66,41 @@ export const Select = styled( Ariakit.Select, { | |||
const sizes = { | |||
compact: { | |||
[ heightProperty ]: 32, | |||
paddingInlineStart: space( 2 ), | |||
paddingInlineEnd: space( 1 ), | |||
paddingInlineStart: 8, |
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.
Is there a good reason to stop using the grid space util and hardcode the padding widths like that?
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.
Curious about that, too.
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.
No big reason other than that I thought it was simpler to read in context, especially when I want to add the chevronIconSize
like this. (space()
returns a calc()
).
font-size: ${ CONFIG.fontSize }; | ||
text-align: left; |
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.
Nice catch 👍 I wonder how this didn't come up earlier.
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.
# Conflicts: # packages/components/CHANGELOG.md
Part of #55023
What?
Correctly truncate and style long strings in the currently selected value in CustomSelectControlV2.
Why?
Long strings were not styled correctly.
Before
Testing Instructions
Compare the "With Long Labels" stories between CustomSelectControl (v1) and CustomSelectControlV2 Legacy. All
size
variants should look correct.Note
You may notice that the
LABEL
is shifted down 1px in the v1. I looked into it and v1 is actually wrong in this case, so let's ignore. (FWIW, it will look correct in wp-admin due to a style in theforms.css
stylesheet.)Screenshots or screencast