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

[pickers] Tooltip above the first selected date (to showcase minimum stay required) #12248

Open
marcel925 opened this issue Feb 28, 2024 · 8 comments
Labels
component: DateRangePicker The React component. component: pickers This is the name of the generic UI component, not the React module! docs Improvements or additions to the documentation

Comments

@marcel925
Copy link

marcel925 commented Feb 28, 2024

Summary

Hi team. We are using the @mui/x-date-pickers-pro component DateRangePicker for AirBnb-like functionality - for the user to select which dates they would like to stay at an apartment.

Many apartment owners set a minimum number of dates that they want to allow. We would like to communicate the minimum number of days to the user, as a tooltip on top of the first date selected.

Is this a feature that might get built soon? Alternatively, any advice on how we can achieve this?

Thank you @mui team for the amazing project.

Examples

image_airbnb_tooltip_feature

Motivation

We currently disable the disallowed dates, but that's not a great user experience, as the minimum dates required is sometimes weeks or even months, so it looks like everything is disabled when a user is on a mobile screen and seeing only 1 month at a time.

Search keywords: date range picker daterangepicker tooltip

Search keywords:

@marcel925 marcel925 added the status: waiting for maintainer These issues haven't been looked at yet by a maintainer label Feb 28, 2024
@danilo-leal danilo-leal transferred this issue from mui/material-ui Feb 28, 2024
@danilo-leal danilo-leal changed the title Date Range Picker - Tooltip above the first selected date (to showcase minimum stay required) [pickers] Tooltip above the first selected date (to showcase minimum stay required) Feb 28, 2024
@danilo-leal danilo-leal added component: pickers This is the name of the generic UI component, not the React module! component: DateRangePicker The React component. labels Feb 28, 2024
@LukasTy
Copy link
Member

LukasTy commented Feb 29, 2024

@marcel925 Thank you for creating this issue.
I've looked into it, sorry it took a bit longer because there was some more exploration of the root cause for the problems. 🙈
The idea would be to provide a custom day slot component, where the day is wrapped in a Tooltip component.
The problem is that the PickersDay component expects the onBlur and onFocus to receive the date as a second argument:

onBlur={(event) => onBlur(event, day)}

The issue is that the Tooltip component only forwards the event to the event handler:
https://github.com/mui/material-ui/blob/9b620c4918939ed9083883d2ce4c46e6b21b5214/packages/mui-material/src/Tooltip/Tooltip.js#L566

I'll look into proposing a fix on the mui-material side in order to support this behavior.

@LukasTy LukasTy added bug 🐛 Something doesn't work external dependency Blocked by external dependency, we can’t do anything about it and removed status: waiting for maintainer These issues haven't been looked at yet by a maintainer labels Feb 29, 2024
@LukasTy
Copy link
Member

LukasTy commented Mar 13, 2024

@marcel925 Just letting you know that the demo I listed in my previous comment works without the need for a hacky solution if the @mui/material package version is at least 5.15.13 (released today).
This is the updated demo.

WDYT @mui/explore @flaviendelangle would it make sense to bump the peerDep of @mui/material for this specific version?
I'm not sure it is warranted, because it targets a specific example (albeit one that could even become a documentation example) and there is a way ("hacky") to achieve the wanted behavior with older version... 🤷 🤔

@flaviendelangle
Copy link
Member

AFAIK nothing prevents the user to bump its minimal version of @mui/material
With that being said, I'm not against taking #12105 (which should merged before stable by the way :/ ) and use 5.15.13 on it

@LukasTy
Copy link
Member

LukasTy commented Mar 14, 2024

@flaviendelangle I've bumped the @mui/material peerDep.
WDYT, would it make sense to add a documentation example for this case or we can close the issue as is? 🤔

@flaviendelangle
Copy link
Member

We could have a new example here

@LukasTy LukasTy added docs Improvements or additions to the documentation and removed bug 🐛 Something doesn't work external dependency Blocked by external dependency, we can’t do anything about it labels Mar 14, 2024
@LukasTy
Copy link
Member

LukasTy commented Mar 14, 2024

We could have a new example here

I've added the issue to the grooming board.
We can add the example after the MUI Core bump is merged. 👌

@flaviendelangle
Copy link
Member

By the way, the pickers doc structure starts the be quite confusing if we end up with pure customization example on the DateCalendar page while most of them are on the "Visual customization" pages.
I do not have a clear proposal on how to improve it, but I think it's a problem to keep in mind while adding new examples.

@LukasTy
Copy link
Member

LukasTy commented Aug 20, 2024

We agreed to add the mentioned demo on the https://mui.com/x/react-date-pickers/date-range-calendar/ page and refactor the documentation structure if we find a better approach.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component: DateRangePicker The React component. component: pickers This is the name of the generic UI component, not the React module! docs Improvements or additions to the documentation
Projects
None yet
Development

No branches or pull requests

4 participants