Skip to content

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

Closed

Conversation

M-i-k-e-l
Copy link
Collaborator

Description

DateTimePicker - support light-date package (can replace moment)

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 the useLightDate prop).

I assume we'll delete the support for moment in v8.

Changelog

DateTimePicker - support light-date package (can replace moment)

Comment on lines +105 to +109
/**
* 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;
Copy link
Collaborator

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)

Copy link
Collaborator Author

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.

Copy link
Collaborator

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?

Copy link
Collaborator Author

@M-i-k-e-l M-i-k-e-l Apr 20, 2023

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).

Copy link
Collaborator

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,...)?

Copy link
Collaborator

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?

Copy link
Collaborator Author

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 :)

Copy link
Collaborator

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

Copy link
Collaborator Author

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?

Copy link
Collaborator

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

@M-i-k-e-l M-i-k-e-l requested a review from ethanshar April 4, 2023 11:57
@M-i-k-e-l
Copy link
Collaborator Author

Created #2625

@M-i-k-e-l M-i-k-e-l closed this Jun 19, 2023
@M-i-k-e-l M-i-k-e-l deleted the feat/date-time-picker-support-light-date-package branch June 19, 2023 15:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants