-
Notifications
You must be signed in to change notification settings - Fork 734
DateTimePicker - support light-date package (can replace moment) #2544
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
DateTimePicker - support light-date package (can replace moment) #2544
Conversation
/** | ||
* Use the LightDate library instead of moment. | ||
* Only send if you have both installed and you prefer using LightDate (moment is the default). | ||
*/ | ||
useLightDate?: boolean; |
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 think that the advantage of using light-date is that we can install it as regular dependency (like lodash) and just use it.
If I remember correctly, users didn't want moment because it's a heavy dependency. We don't need to worry about it with light-date.
I would just swap the packages and use it directly instead of moment (and get rid of moment all together)
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.
It's a problem because users (and us) will need to change the dateFormat
`timeFormat` - you can see in the example screen it is very different; moreover it might give different results which will need UX approval.
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 I see your point. In that case, should we consider having a different API for the formatter?
maybe some sort of a function prop that formats the value? this way each can do whatever and we can set the default behavior (using moment or whatever) in private uilib. WDYT?
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.
Not sure if that's what you meant but we can remove (deprecate) all four formatting props (dateFormat
, timeFormat
, dateFormatter
, timeFormatter
) and introduce a single one formatter
here:
const getStringValue = () => {
if (value) {
if (formatter) {
return formatter(value);
}
This will eliminate any need for dependencies.
Unless you know why we should keep the two formatter types separated (the user knows what mode they're in).
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.
But can you have a single formatter for all types of values? (date, time,...)?
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.
Does DateTimePicker inherits all TextField props? You mean there's a name conflict?
Maybe call it dateTimeFormatter
?
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.
Yes, it extends it and passes them all.
I thought about it, I don't like it as much and was hoping you'll say that probably no one is using formatter
:)
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 guess no one does, but not sure I want to go into an adventure of name conflicts
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.
ok, do we want to add a TODO to change to formatter
in the next major version or not?
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 think just leave it for now.. it's not crucial
Let's add the new prop and push this PR forward
Created #2625 |
Description
DateTimePicker - support
light-date
package (can replacemoment
)I'v decided to allow support of the two libraries together in case someone has this use-case (that means we take
moment
as default but allow to override that default with theuseLightDate
prop).I assume we'll delete the support for
moment
in v8.Changelog
DateTimePicker - support
light-date
package (can replacemoment
)