-
Notifications
You must be signed in to change notification settings - Fork 3.8k
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
ui: Allow text entry in the time selector #80655
Labels
A-sql-console-general
SQL Observability issues on the DB console spanning multiple areas. Includes Cockroach Cloud Console
C-enhancement
Solution expected to add code/behavior + preserve backward-compat (pg compat issues are exception)
Comments
jocrl
added
C-enhancement
Solution expected to add code/behavior + preserve backward-compat (pg compat issues are exception)
T-sql-observability
A-sql-console-general
SQL Observability issues on the DB console spanning multiple areas. Includes Cockroach Cloud Console
labels
Apr 27, 2022
This was referenced Apr 27, 2022
jocrl
added a commit
to jocrl/cockroach
that referenced
this issue
May 12, 2022
Fixes cockroachdb#80655, mostly. Previously, users had to type `1:03 PM (UTC)` in order to enter text into the time picker. This commit modifies the time picker so that users would instead type either - `1:03 p`, or - `1:03 P` to enter text into the time picker. Copying and re-pasting the text from a time picker still works. Typing `1:03pm`, `1:03PM`, or other versions without the space before `PM` still do not work. Additionally, typing the keys in `1:03 pm` will lead to the input being `1:03 PMm`, as the `M` autofill after `p` is typed. The `1:03 PMm` input in the text box is still accepted, but it does look weird and will likely be annoying to users who will delete the trailing `m`. Alternate approaches not pursued 1) Make our own time picker component, and style it to look like antd's. There's a general issue of antd's components not being keyboard friendly: ant-design/ant-design#5685 2) Upgrade to `antd` version 4, and use an undocumented prop type. `antd`'s time picker uses the time picker from the `rc-picker` library under the hood. In `rc-picker`, the `format` prop is of type `String | String[]`, where if it's an array the first value will be used for display and the remaining ones will be used for parsing, as documented [here] (https://react-component.github.io/picker). In theory, `antd` passes `format` (and also any remaining, additional props in addition to the specified ones) to the `rc-picker` component. So even though the `antd` `TimePicker` component `format` prop is not documented to take in a string array, one might think that passing in a string array anyway would work. In practice, passing in a string array works in `antd` version `4.20.4`, as tested in the [antd sandbox] (https://ant.design/docs/react/getting-started) (render `<TimePicker format={ ["h:mm A", "h:mma"]}/>`). However, this does not work in our codebase (which installs `antd` `v3.25.2`), or in the `antd` version `3.x` [sandbox] (https://3x.ant.design/docs/react/getting-started). The errors that appear in these two situations are different, and in a way demonstrate the potential for breakage from using an undocumented feature in future upgrades from a version that we've to work. If we do this, we should add a test. 3) Dead end: The `antd` `TimePicker` component takes an `onChange` prop with a second `timeString` paramater. However, `onChange` only fires if the input is of the correct, parsable format. The specific code that ignores text input that is not of a parsable format is in `rc-picker`, [here] (https://github.com/react-component/picker/blob/5306c8938aded49c5d6f6b6d4761ddab25e3cce9/src/Picker.tsx#L237). This prevents us from being the one to do the fuzzy matching and passing the value back to the component. Release note (ui): The time picker component has been improved such that users can use keyboard input to select a time without having to type `" (UTC)"`
jocrl
added a commit
to jocrl/cockroach
that referenced
this issue
May 16, 2022
Fixes cockroachdb#80655, mostly. Previously, users had to type `1:03 PM (UTC)` in order to enter text into the time picker. This commit modifies the time picker so that users would instead type either - `1:03 p`, or - `1:03 P` to enter text into the time picker. Copying and re-pasting the text from a time picker still works. Typing `1:03pm`, `1:03PM`, or other versions without the space before `PM` still do not work. Additionally, typing the keys in `1:03 pm` will lead to the input being `1:03 PMm`, as the `M` autofill after `p` is typed. The `1:03 PMm` input in the text box is still accepted, but it does look weird and will likely be annoying to users who will delete the trailing `m`. Alternate approaches not pursued 1) Make our own time picker component, and style it to look like antd's. There's a general issue of antd's components not being keyboard friendly: ant-design/ant-design#5685 2) Upgrade to `antd` version 4, and use an undocumented prop type. `antd`'s time picker uses the time picker from the `rc-picker` library under the hood. In `rc-picker`, the `format` prop is of type `String | String[]`, where if it's an array the first value will be used for display and the remaining ones will be used for parsing, as documented [here] (https://react-component.github.io/picker). In theory, `antd` passes `format` (and also any remaining, additional props in addition to the specified ones) to the `rc-picker` component. So even though the `antd` `TimePicker` component `format` prop is not documented to take in a string array, one might think that passing in a string array anyway would work. In practice, passing in a string array works in `antd` version `4.20.4`, as tested in the [antd sandbox] (https://ant.design/docs/react/getting-started) (render `<TimePicker format={ ["h:mm A", "h:mma"]}/>`). However, this does not work in our codebase (which installs `antd` `v3.25.2`), or in the `antd` version `3.x` [sandbox] (https://3x.ant.design/docs/react/getting-started). The errors that appear in these two situations are different, and in a way demonstrate the potential for breakage from using an undocumented feature in future upgrades from a version that we've to work. If we do this, we should add a test. 3) Dead end: The `antd` `TimePicker` component takes an `onChange` prop with a second `timeString` paramater. However, `onChange` only fires if the input is of the correct, parsable format. The specific code that ignores text input that is not of a parsable format is in `rc-picker`, [here] (https://github.com/react-component/picker/blob/5306c8938aded49c5d6f6b6d4761ddab25e3cce9/src/Picker.tsx#L237). This prevents us from being the one to do the fuzzy matching and passing the value back to the component. Release note (ui): The time picker component has been improved such that users can use keyboard input to select a time without having to type `" (UTC)"`
craig bot
pushed a commit
that referenced
this issue
May 18, 2022
80894: build,gcp: enable nightly config to run GCP unit tests r=adityamaru a=adityamaru Previously, the `pkg/cloud/gcp` tests package was skipped on CI because most of the tests require credentials, and we risked exfiltration of these secrets when running on public teamcity agents. With the ability to run tests on agents that are not part of the public pool we now have a `Cloud Unit Test` config that runs these tests nightly. This change adds the script invoked by the config and cleans up the unit tests to be more uniform in their authentication and environment variable checks. Informs: #80877 Release note: None 81200: ui: Improve time picker keyboard input r=jocrl a=jocrl Fixes #80655, mostly. Previously, users had to type `1:03 PM (UTC)` in order to enter text into the time picker. This commit modifies the time picker so that users would instead type either - `1:03`, or - `01:03` to enter text into the time picker. Copying and re-pasting the text from a time picker still works. Alternate approaches not pursued (these are not needed with the removal of AM/PM). 1) Make our own time picker component, and style it to look like antd's. There's a general issue of antd's components not being keyboard friendly: ant-design/ant-design#5685 2) Upgrade to `antd` version 4, and use an undocumented prop type. `antd`'s time picker uses the time picker from the `rc-picker` library under the hood. In `rc-picker`, the `format` prop is of type `String | String[]`, where if it's an array the first value will be used for display and the remaining ones will be used for parsing, as documented [here](https://react-component.github.io/picker). In theory, `antd` passes `format` (and also any remaining, additional props in addition to the specified ones) to the `rc-picker` component. So even though the `antd` `TimePicker` component `format` prop is not documented to take in a string array, one might think that passing in a string array anyway would work. In practice, passing in a string array works in `antd` version `4.20.4`, as tested in the [antd sandbox](https://ant.design/docs/react/getting-started) (render `<TimePicker format={ ["h:mm A", "h:mma"]}/>`). However, this does not work in our codebase (which installs `antd` `v3.25.2`), or in the `antd` version `3.x` [sandbox](https://3x.ant.design/docs/react/getting-started). The errors that appear in these two situations are different, and in a way demonstrate the potential for breakage from using an undocumented feature in future upgrades from a version that we've to work. If we do this, we should add a test. 3) Dead end: The `antd` `TimePicker` component takes an `onChange` prop with a second `timeString` paramater. However, `onChange` only fires if the input is of the correct, parsable format. The specific code that ignores text input that is not of a parsable format is in `rc-picker`, [here](https://github.com/react-component/picker/blob/5306c8938aded49c5d6f6b6d4761ddab25e3cce9/src/Picker.tsx#L237). This prevents us from being the one to do the fuzzy matching and passing the value back to the component. Release note (ui): The time picker component has been improved such that users can use keyboard input to select a time without having to type `" (UTC)"` 81330: authors: add annrpom to authors r=annrpom a=annrpom Release note: None 81406: geomfn: check NaN coordinates for ST_MinimumBoundingCircle r=rafiss a=otan Resolves #81277 Release note (bug fix): Fix a bug where ST_MinimumBoundingCircle with NaN coordinates could panic. Co-authored-by: Aditya Maru <[email protected]> Co-authored-by: Josephine Lee <[email protected]> Co-authored-by: Annie Pompa <[email protected]> Co-authored-by: Oliver Tan <[email protected]>
maryliag
pushed a commit
to maryliag/cockroach
that referenced
this issue
Jun 6, 2022
Fixes cockroachdb#80655, mostly. Previously, users had to type `1:03 PM (UTC)` in order to enter text into the time picker. This commit modifies the time picker so that users would instead type either - `1:03`, or - `01:03` to enter text into the time picker. Copying and re-pasting the text from a time picker still works. Alternate approaches not pursued (these are not needed with the removal of AM/PM). 1) Make our own time picker component, and style it to look like antd's. There's a general issue of antd's components not being keyboard friendly: ant-design/ant-design#5685 2) Upgrade to `antd` version 4, and use an undocumented prop type. `antd`'s time picker uses the time picker from the `rc-picker` library under the hood. In `rc-picker`, the `format` prop is of type `String | String[]`, where if it's an array the first value will be used for display and the remaining ones will be used for parsing, as documented [here] (https://react-component.github.io/picker). In theory, `antd` passes `format` (and also any remaining, additional props in addition to the specified ones) to the `rc-picker` component. So even though the `antd` `TimePicker` component `format` prop is not documented to take in a string array, one might think that passing in a string array anyway would work. In practice, passing in a string array works in `antd` version `4.20.4`, as tested in the [antd sandbox] (https://ant.design/docs/react/getting-started) (render `<TimePicker format={ ["h:mm A", "h:mma"]}/>`). However, this does not work in our codebase (which installs `antd` `v3.25.2`), or in the `antd` version `3.x` [sandbox] (https://3x.ant.design/docs/react/getting-started). The errors that appear in these two situations are different, and in a way demonstrate the potential for breakage from using an undocumented feature in future upgrades from a version that we've to work. If we do this, we should add a test. 3) Dead end: The `antd` `TimePicker` component takes an `onChange` prop with a second `timeString` paramater. However, `onChange` only fires if the input is of the correct, parsable format. The specific code that ignores text input that is not of a parsable format is in `rc-picker`, [here] (https://github.com/react-component/picker/blob/5306c8938aded49c5d6f6b6d4761ddab25e3cce9/src/Picker.tsx#L237). This prevents us from being the one to do the fuzzy matching and passing the value back to the component. Release note (ui): The time picker component has been improved such that users can use keyboard input to select a time without having to type `" (UTC)"`
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
A-sql-console-general
SQL Observability issues on the DB console spanning multiple areas. Includes Cockroach Cloud Console
C-enhancement
Solution expected to add code/behavior + preserve backward-compat (pg compat issues are exception)
Breaking this off from #78499 and #71205 into a separate issue, to document some findings. See video at 0:57 https://www.loom.com/share/d17dc4cac1c146029b1600f30e59e79f.
The component is from the antd library, specifically this component https://ant.design/components/time-picker/
The
(UTC)
seems to come from theformat
prop, specified in our code here.This prop is not well documented in terms of what formats that it accepts. There is some documentation on formats here, but they do not describe things likeTheA
or[]
which we use in our code. I tried to dig a bit into the source code but didn't get very far.format
string follows themoment
library's display format string.The current time picker behavior is such that text entry requires either
(UTC)
In both cases, you know you've "succeeded" because the component does a smooth scroll to the time you have typed.
Changing
format
withs/"h:mm A [(UTC)]"/"h:mm A[ (UTC)]"
does not fix the issue.Jira issue: CRDB-15565
The text was updated successfully, but these errors were encountered: