-
Notifications
You must be signed in to change notification settings - Fork 63
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
LG-3896, LG-3898: Date Picker input selection #2186
Conversation
🦋 Changeset detectedLatest commit: 38f15d8 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
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 |
Size Change: +123 B (0%) Total Size: 1.24 MB
ℹ️ View Unchanged
|
packages/date-picker/src/DatePicker/DatePickerInput/DatePickerInput.tsx
Outdated
Show resolved
Hide resolved
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.
A few nit changes, but overall I like the approach!
packages/date-picker/src/DatePicker/DatePickerInput/DatePickerInput.tsx
Outdated
Show resolved
Hide resolved
packages/date-picker/src/shared/components/DateInput/DateInputBox/DateInputBox.spec.tsx
Outdated
Show resolved
Hide resolved
packages/date-picker/src/shared/components/DateInput/DateInputSegment/DateInputSegment.spec.tsx
Outdated
Show resolved
Hide resolved
packages/date-picker/src/shared/components/DateInput/DateInputSegment/DateInputSegment.tsx
Outdated
Show resolved
Hide resolved
packages/date-picker/src/shared/components/DateInput/DateInputSegment/DateInputSegment.tsx
Outdated
Show resolved
Hide resolved
@@ -111,7 +111,7 @@ export const DatePickerInput = forwardRef<HTMLDivElement, DatePickerInputProps>( | |||
|
|||
switch (key) { | |||
case keyMap.ArrowLeft: { | |||
// Prevent the cursor on tab and initial click | |||
// Without this, the input does not select all the text |
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.
I'm still a bit unclear on how preventing default keydown behavior prevents selection
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.
I'm unsure how to explain this -- without preventDefault, the input ignores .select()
, and I'm unsure why.
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.
Hmm, If you have time, this would be an interesting thing to investigate why
packages/date-picker/src/shared/components/DateInput/DateInputSegment/DateInputSegment.spec.tsx
Outdated
Show resolved
Hide resolved
packages/date-picker/src/shared/components/DateInput/DateInputSegment/DateInputSegment.tsx
Outdated
Show resolved
Hide resolved
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.
LGTM. Left some nits, but looks good overall!
✍️ Proposed changes
Note: Changes are explained in detail in the changeset
🎟 Jira ticket: LG-3896
🎟 Jira ticket: LG-3898
The issue in 3898 is that when using the left and right arrows, the caret moves to the middle of the value instead of the first and last index and typing doesn't update the value. This could be fixed by LG-3896, which suggests removing the caret so we won't have caret issues.
Removing the caret is tricky, but I think I found a good workaround. The caret will still exist and could end up in the middle of an input on click, but once you start typing, the input value will reset. Furthermore, I made some tweaks so that if you tab into an input or initially click on an input, the entire input will become selected, resetting the value once you start typing.
✅ Checklist
For bug fixes, new features & breaking changes
yarn changeset
and documented my changesFor new components
🧪 How to test changes