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

fix: [DHIS2-16801] events scheduled for today's date not showing today #3856

Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,14 @@ const getEventStatus = (event: ApiEnrollmentEvent) => {
}

if (event.status === statusTypes.SCHEDULE) {
if (!event.scheduledAt || !daysUntilDueDate) {
if (!event.scheduledAt) {
return { status: statusTypes.SCHEDULE, options: undefined };
}

if (daysUntilDueDate === 0) {
return { status: statusTypes.SCHEDULE, options: 'today' };
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this the string that get's displayed in the badge? If so, do you think it makes sense to add translations?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@eirikhaugstulen No, it isn't the string that ended up being displayed, it gets passed to this function here and get translated.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The string is passed as a dynamic value into the translation. As far as I understand from the i18next interpolation docs, a dynamic value is not translated. When I change the language to French, this is what is currently displayed:

  1. Screenshot 2024-10-23 at 17 46 06

By adding translations option: i18n.t('Today') as Eirik suggested, the text is translated correctly:

  1. Screenshot 2024-10-23 at 17 19 49

Could you please recheck @alaa-yahia? Let me know if you need any help or have doubts. Thank you!

PS: For these examples, I deliberately chose 'Today' in uppercase because the string already exists translated in the language files, but you can also use lowercase and Transfix will add the translations in a few weeks.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah whoops! I noticed dueDateFromNow was being translated, so I figured the same would happen with today's date. Didn't realize moment.js has a localization.

}

if (daysUntilDueDate < 14) {
return { status: statusTypes.SCHEDULE, options: dueDateFromNow };
}
Expand Down
Loading