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

Picker: Add cascading columns support to IonPicker component. #15710

Closed
netsesame2 opened this issue Sep 21, 2018 · 8 comments
Closed

Picker: Add cascading columns support to IonPicker component. #15710

netsesame2 opened this issue Sep 21, 2018 · 8 comments
Labels
package: core @ionic/core package type: feature request a new feature, enhancement, or improvement

Comments

@netsesame2
Copy link

netsesame2 commented Sep 21, 2018

Current IonPicker component, just as acting in IonDatetime component, can support multi columns, however, each column is standalone, which has no relationship with others.

In fact, cascading relationship between columns sometimes is very common.
For example, when we choose country | city | address, such choosing action is suitable for Picker UI.

We can find some good solutions from other JS package to support cascading issues, but we hope it can be supported in ionic's own component.

https://github.com/raychenfj/ion-multi-picker
##which now does not support V4
image

https://didi.github.io/cube-ui/example/#/cascade-picker

To realize it, it is very sample. Just emit a change event when user scroll one column end, and then offer an API method, to allow user update some column data. Sure, if all of these can be configured, it will be better.

Thanks for your great jobs.

@ionitron-bot ionitron-bot bot added the triage label Sep 21, 2018
@mhartington
Copy link
Member

Sounds like a nice feature! If you would like to submit a PR to add support for this, we would gladly accept it.

@mhartington mhartington added the type: feature request a new feature, enhancement, or improvement label Sep 26, 2018
@ionitron-bot ionitron-bot bot removed the triage label Sep 26, 2018
@netsesame2
Copy link
Author

Honest to say, I hope can help.
However, I really don't know how to edit the npm source code and debug in my App.
I've got some help that I can fork and pull, but it is too complex. In addition, it seems need to use stencil to do so.

@mikeruto
Copy link

mikeruto commented Nov 9, 2018

@netsesame2 so what alternatives do we have right now ?

@brandyscarney brandyscarney added the package: core @ionic/core package label Jun 5, 2019
@netsesame2
Copy link
Author

netsesame2 commented Mar 15, 2020

@mikeruto PickerController seems support now.

See #17664

@mikeruto
Copy link

Oh nice! Thanks @netsesame2

@qhanw
Copy link

qhanw commented Jul 23, 2020

Is there no concrete solution yet?

liamdebeasi added a commit that referenced this issue Dec 13, 2023
Issue number: resolves #24905, resolves #26840, resolves #15710

---------

<!-- Please do not submit updates to dependencies unless it fixes an
issue. -->

<!-- Please try to limit your pull request to one type (bugfix, feature,
etc). Submit multiple pull requests if needed. -->

## What is the current behavior?
<!-- Please describe the current behavior that you are modifying. -->

The current picker is only displayed as an overlay which makes it
impossible to use inline with the rest of the application. Additionally,
there are several bugs and missing features. For example, it is
impossible to know when the value of the picker column has changed using
public APIs. This is valuable for updating other columns in response to
that data.

## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->

- Introduces `ion-picker` as an inline wheel picker component. The
overlay picker is still available using `ion-picker-legacy`.
- The implementation of this component resolves linked bugs. It also
resolves linked features by exposing an `ionChange` event for developers
to listen for.

## Does this introduce a breaking change?

- [ ] Yes
- [x] No

<!-- If this introduces a breaking change, please describe the impact
and migration path for existing applications below. -->


## Other information

<!-- Any other information that is important to this PR such as
screenshots of how the component looks before and after the change. -->

Dev-build: `7.5.8-dev.11702398696.1ab62ea9`

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Shawn Taylor <shawn@ionic.io>
Co-authored-by: Maria Hutt <thetaPC@users.noreply.github.com>
Co-authored-by: Amanda Johnston <90629384+amandaejohnston@users.noreply.github.com>
Co-authored-by: Sean Perkins <13732623+sean-perkins@users.noreply.github.com>
Co-authored-by: Brandy Carney <brandyscarney@users.noreply.github.com>
@liamdebeasi
Copy link
Contributor

Thanks for the request. Each picker column is designed to act independently of other columns by default. As a result, we do not plan to implement this behavior in Ionic. However, we are adding a new inline picker in Ionic 8 with APIs that will make the requested behavior easier to implement in applications. As part of this work, each column will now emit an ionChange event. Developers can use this event to update other column data as the value of one column changes. The work required to add this was completed in #28689, so I am going to close this.

@liamdebeasi liamdebeasi closed this as not planned Won't fix, can't repro, duplicate, stale Dec 13, 2023
Copy link

ionitron-bot bot commented Jan 12, 2024

Thanks for the issue! This issue is being locked to prevent comments that are not relevant to the original issue. If this is still an issue with the latest version of Ionic, please create a new issue and ensure the template is fully filled out.

@ionitron-bot ionitron-bot bot locked and limited conversation to collaborators Jan 12, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
package: core @ionic/core package type: feature request a new feature, enhancement, or improvement
Projects
None yet
Development

No branches or pull requests

6 participants