gpbl / react-day-picker

DayPicker is a customizable date picker component for React. Add date pickers, calendars, and date inputs to your web applications.
https://daypicker.dev
MIT License
6.03k stars 722 forks source link

Next version status – looking for contributors #921

Closed gpbl closed 4 years ago

gpbl commented 5 years ago

I will keep track of some insights about the next version here.

πŸš’ react-day-picker is looking for contributors

The package is being downloaded 1M+/months and I need help maintaining such big user base.

✨ About the next major release

Major rewrite

By looking at the code, I see the package requires a major rewrite. Next major version may use hooks thus it may be compatible with react 16.8+.

Removing DayPickerInput

DayPickerInput will be removed. Integration with input fields will be left to the implementer. I plan to add some examples in the website.

Compatibility with v7

The goal it to maintain the same API Some props will be deprecated.

New website

I'd like to create a new website with Docusaurus and Storybook.

JS Bundler and dev environment

TypeScript

Datetime library dependency

Design and features

I'd like to explore some new layouts to give a more modern UX to the calendar: animation, scrolling, etc, I'd explored react-window but without much success. I'd like user could implement a layout like this:

Screen Recording 2019-08-12 at 20 04 15 2019-08-12 20_04_58

(this is actually the pre-alpha i'm working on)

ahmedam55 commented 5 years ago

Count me in πŸ™‹β€β™‚οΈ. I'm more than happy to help in such an amazing project!

stunaz commented 5 years ago

Instead of using directly date-fns, what about letting the user choose their prefered date library using something like https://github.com/dmtrKovalenko/date-io. This way if I am a fan of dayjs and dont want to include date-fns in my bundle, it could still be ok for me.

gpbl commented 5 years ago

@stunaz it doesn't seem date-fns is increasing that much the bundle size and it would be an internal implementation anyway. I will open to PRs implementing a way to allow switching date library. Thanks for the suggestion :)

CodeWitchBella commented 5 years ago

:raising_hand_woman: I would like to help. Might be able to help with rollup bundling :slightly_smiling_face:

mirshko commented 5 years ago

I'd be happy to help with the Storybook website!

With their latest version documenting can be done with just Storybook! No need for docusarus! https://github.com/storybookjs/storybook/tree/master/addons/docs

I've had good experience building four different design systems in Storybook and documenting examples well!

Let me know!

gpbl commented 5 years ago

Hey thanks everybody for answering! Where do the cool kids meet online for organizing things? :) I'm on reactiflux @gpbl (I'll try to be online there).

Some updates: i've been experimenting with a rewrite and I've found a good architecture. I've been playing with it for a while so it is almost feature complete. I'd love to open a PR and get some reviews. Does it make sense?

I actually need help with github issues, how to approach the opened PRs, and such. I feel sorry for all the fellow developers not having an answer from me.

Is @davidspiess still using this component? It would be nice to know how much a major release would impact current users.

Thanks please send motivation :)

gpbl commented 5 years ago

πŸ™‹ I would like to help. Might be able to help with rollup bundling πŸ™‚

@CodeWitchBella that would be so welcomed. I'll open a PR with my (untested) rollup bundle and call you for help πŸ™πŸΎ

gpbl commented 5 years ago

I'd be happy to help with the Storybook website! With their latest version documenting can be done with just Storybook! No need for docusarus

@mirshko I am using Storybook at work and I love it. But for a OSS project I find better Docusaurus, being it between Gatsby and Storybook.

I am talking about docusaurus v2, which is still in alpha, hence my doubt using it. I don't understand how much support is getting the project and I have no time myself to contribute.

davidspiess commented 5 years ago

@gpbl yes, we are using react-day-picker since the beginning extensively in our booking / enquiry widgets. ATM we have more than 1500 clients which have it running on their website. Many of them added their own stylings to the calendar, which could break for them, if the div structure / classnames change too much. Until now we had almost no problems upgrading, since every breaking change was well documented and we could analyze the impact carefully.

gpbl commented 5 years ago

@davidspiess wow that means 1500 day pickers? :D Which version of React are you using?

davidspiess commented 5 years ago

If you are interested, here you can see one in action: Link Right now we are still using 16.8.x, but we will soon upgrade to the latest 16.9.x.

gpbl commented 5 years ago

Thanks @davidspiess good you are in one of the latest React :)

gpbl commented 4 years ago

Thanks everybody, there's a preview of the next version/website here: http://rdp-v8.netlify.com/docs/intro

Closing this in favour of https://github.com/gpbl/react-day-picker/issues/942

If someone is still interested to contribute, there there's a big list of things to do :)

gpbl commented 4 years ago

@davidspiess (or anyone interested) I could easily migrate to TypeScript. I'd really love a review:

https://github.com/gpbl/react-day-picker/pull/944 πŸ™πŸΎ

gpbl commented 4 years ago

@mirshko I'd still need help with the website (mostly code examples, text proofing etc.) maybe you are interested anyway? No Storybook, but all MDX via docusaurus. Website project is neat has some nice tricks in it. It's actually the most time consuming part now.

@CodeWitchBella if you have some time, review #944 for my rollup implementation. I haven't tested it much yet πŸ”¬

ryanburr commented 4 years ago

@gpbl I can take a look at your TypeScript implementation. Glad to help any repo make the switch over to TypeScript