Skip to content

Commit

Permalink
fix: simplify pull request
Browse files Browse the repository at this point in the history
  • Loading branch information
henrikmv committed Jan 2, 2025
1 parent 621ff6f commit 2ee02e2
Show file tree
Hide file tree
Showing 12 changed files with 187 additions and 336 deletions.
31 changes: 14 additions & 17 deletions i18n/en.pot
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ msgstr ""
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
"POT-Creation-Date: 2024-12-10T16:40:25.470Z\n"
"PO-Revision-Date: 2024-12-10T16:40:25.470Z\n"
"POT-Creation-Date: 2025-01-02T13:08:32.303Z\n"
"PO-Revision-Date: 2025-01-02T13:08:32.303Z\n"

msgid "Choose one or more dates..."
msgstr "Choose one or more dates..."
Expand Down Expand Up @@ -1273,12 +1273,6 @@ msgstr "Write a note about this event"
msgid "This event doesn't have any notes"
msgstr "This event doesn't have any notes"

msgid "after"
msgstr "after"

msgid "before"
msgstr "before"

msgid "Schedule date info"
msgstr "Schedule date info"

Expand All @@ -1293,29 +1287,29 @@ msgid_plural "The scheduled date is {{count}} days {{position}} the suggested da
msgstr[0] "The scheduled date is {{count}} day {{position}} the suggested date."
msgstr[1] "The scheduled date is {{count}} days {{position}} the suggested date."

msgid "after"
msgstr "after"

msgid "before"
msgstr "before"

msgid "There are {{count}} scheduled event in {{orgUnitName}} on this day."
msgid_plural "There are {{count}} scheduled event in {{orgUnitName}} on this day."
msgstr[0] "There are {{count}} scheduled event in {{orgUnitName}} on this day."
msgstr[1] "There are {{count}} scheduled events in {{orgUnitName}} on this day."

msgid "Schedule date / Due date"
msgstr "Schedule date / Due date"

msgid "Please provide a valid organisation unit"
msgstr "Please provide a valid organisation unit"

msgid "Schedule info"
msgstr "Schedule info"

msgid "Schedule date / Due date"
msgstr "Schedule date / Due date"

msgid "Event notes"
msgstr "Event notes"

msgid "Write a note about this scheduled event"
msgstr "Write a note about this scheduled event"

msgid "Program or stage is invalid"
msgstr "Program or stage is invalid"

msgid "Save note"
msgstr "Save note"

Expand Down Expand Up @@ -1412,6 +1406,9 @@ msgstr "Report date"
msgid "Please enter a date"
msgstr "Please enter a date"

msgid "Please provide a valid organisation unit"
msgstr "Please provide a valid organisation unit"

msgid "Please select a valid event"
msgstr "Please select a valid event"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
}

.orgUnitLabel {
padding-top: 13px;
padding-top: 3px;
}

.selectLabel {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,9 @@ const styles = {
infoBox: {
marginTop: spacersNum.dp16,
padding: spacersNum.dp16,
width: 'fit-content',
},
};

const getDayDifference = (startDate: string, endDate: string): number =>
moment(startDate).diff(moment(endDate), 'days');

const InfoBoxPlain = ({
scheduleDate,
suggestedScheduleDate,
Expand All @@ -25,49 +21,38 @@ const InfoBoxPlain = ({
orgUnitName,
classes,
}: Props) => {
if (!scheduleDate || !suggestedScheduleDate) {
return null;
}

const dayDifference = getDayDifference(scheduleDate, suggestedScheduleDate);
const absoluteDifference = Math.abs(dayDifference);
const position = dayDifference > 0 ? i18n.t('after') : i18n.t('before');
const scheduledDateMatchesSuggested = scheduleDate === suggestedScheduleDate;
if (!scheduleDate || !suggestedScheduleDate) { return null; }
const differenceScheduleDateAndSuggestedDate = moment(scheduleDate).diff(moment(suggestedScheduleDate), 'days');

return (
<NoticeBox className={classes.infoBox} title={i18n.t('Schedule date info')}>
{hideDueDate ? (
<>
{i18n.t('Scheduled automatically for {{suggestedScheduleDate}}', { suggestedScheduleDate })}
</>
) : (
<>
{scheduledDateMatchesSuggested
? i18n.t('The scheduled date matches the suggested date, but can be changed if needed.')
: i18n.t(
'The scheduled date is {{count}} days {{position}} the suggested date.',
{
position,
count: absoluteDifference,
defaultValue: 'The scheduled date is {{count}} day {{position}} the suggested date.',
defaultValue_plural: 'The scheduled date is {{count}} days {{position}} the suggested date.',
},
)
}
{' '}
{i18n.t('There are {{count}} scheduled event in {{orgUnitName}} on this day.', {
count: eventCountInOrgUnit,
orgUnitName,
defaultValue: 'There are {{count}} scheduled event in {{orgUnitName}} on this day.',
defaultValue_plural: 'There are {{count}} scheduled events in {{orgUnitName}} on this day.',
interpolation: {
escapeValue: false,
},
})}
</>
)}
{hideDueDate ? <>
{i18n.t('Scheduled automatically for {{suggestedScheduleDate}}', { suggestedScheduleDate })}
</> : <>
{scheduleDate === suggestedScheduleDate ?
i18n.t('The scheduled date matches the suggested date, but can be changed if needed.')
:
i18n.t(
'The scheduled date is {{count}} days {{position}} the suggested date.',
{
position: differenceScheduleDateAndSuggestedDate > 0 ? i18n.t('after') : i18n.t('before'),
count: Math.abs(differenceScheduleDateAndSuggestedDate),
defaultValue: 'The scheduled date is {{count}} day {{position}} the suggested date.',
defaultValue_plural: 'The scheduled date is {{count}} days {{position}} the suggested date.',
})
}
{' '}
{i18n.t('There are {{count}} scheduled event in {{orgUnitName}} on this day.', {
count: eventCountInOrgUnit,
orgUnitName,
defaultValue: 'There are {{count}} scheduled event in {{orgUnitName}} on this day.',
defaultValue_plural: 'There are {{count}} scheduled events in {{orgUnitName}} on this day.',
interpolation: {
escapeValue: false,
},
})}</>}
</NoticeBox>
);
};

export const InfoBox: ComponentType<$Diff<Props, CssClasses>> = withStyles(styles)(InfoBoxPlain);
export const InfoBox: ComponentType<$Diff<Props, CssClasses>> = (withStyles(styles)(InfoBoxPlain));
Original file line number Diff line number Diff line change
@@ -1,46 +1,18 @@
// @flow
import React, { type ComponentType } from 'react';
import i18n from '@dhis2/d2-i18n';
import { spacersNum } from '@dhis2/ui';
import withStyles from '@material-ui/core/styles/withStyles';
import { spacers, colors } from '@dhis2/ui';
import {
DateField,
withDefaultFieldContainer,
withLabel,
withDisplayMessages,
withInternalChangeHandler,
} from 'capture-core/components/FormFields/New';

import type { Props } from './scheduleDate.types';
import labelTypeClasses from './dataEntryFieldLabels.module.css';
import { DateField } from 'capture-core/components/FormFields/New';
import { InfoBox } from '../InfoBox';
import { baseInputStyles } from '../ScheduleOrgUnit/commonProps';


const ScheduleDataField = withDefaultFieldContainer()(
withLabel({
onGetCustomFieldLabeClass: () => labelTypeClasses.dateLabel,
})(
withDisplayMessages()(
withInternalChangeHandler()(
DateField,
),
),
),
);
import type { Props } from './scheduleDate.types';

const styles = {
infoBox: {
padding: `0 ${spacers.dp16} ${spacers.dp16} ${spacers.dp16}`,
},
fieldWrapper: {
container: {
display: 'flex',
flexWrap: 'wrap',
marginTop: spacersNum.dp4,
},
fieldLabel: {
color: colors.grey900,
padding: `${spacers.dp16} ${spacers.dp24} 0 ${spacers.dp16}`,
fontSize: '14px',
button: {
paddingRight: spacersNum.dp16,
},
};

Expand All @@ -50,51 +22,35 @@ const ScheduleDatePlain = ({
setScheduleDate,
orgUnit,
serverSuggestedScheduleDate,
displayDueDateLabel,
eventCountInOrgUnit,
classes,
hideDueDate,
}: Props) => (
<div className={classes.fieldWrapper}>
{!hideDueDate ?
<ScheduleDataField
label={i18n.t('Schedule date / Due date')}
required
value={scheduleDate}
width="100%"
calendarWidth={350}
styles={baseInputStyles}
onSetFocus={() => { }}
onFocus={() => { }}
onRemoveFocus={() => { }}
onBlur={(e, internalComponentError) => {
const { error } = internalComponentError;
if (error) {
setScheduleDate('');
return;
}
setScheduleDate(e);
}}
/>
:
<div className={classes.fieldLabel}>
{displayDueDateLabel ?? i18n.t('Schedule date / Due date', {
interpolation: { escapeValue: false },
},
)}
</div>
}
<div className={classes.infoBox}>
<InfoBox
scheduleDate={serverScheduleDate}
suggestedScheduleDate={serverSuggestedScheduleDate}
eventCountInOrgUnit={eventCountInOrgUnit}
orgUnitName={orgUnit?.name}
hideDueDate={hideDueDate}
/>
</div>
</div>
);

}: Props) => (<>
{!hideDueDate && <div className={classes.container}>
<DateField
value={scheduleDate}
width="100%"
calendarWidth={350}
onSetFocus={() => {}}
onFocus={() => { }}
onRemoveFocus={() => { }}
onBlur={(e, internalComponentError) => {
const { error } = internalComponentError;
if (error) {
setScheduleDate('');
return;
}
setScheduleDate(e);
}}
/>
</div>}
<InfoBox
scheduleDate={serverScheduleDate}
suggestedScheduleDate={serverSuggestedScheduleDate}
eventCountInOrgUnit={eventCountInOrgUnit}
orgUnitName={orgUnit?.name}
hideDueDate={hideDueDate}
/>
</>);

export const ScheduleDate: ComponentType<$Diff<Props, CssClasses>> = (withStyles(styles)(ScheduleDatePlain));

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ export type Props = {|
stageId: string,
programId: string,
enrolledAt: string,
displayDueDateLabel: string,
scheduleDate?: ?string,
serverScheduleDate?: ?string,
setScheduleDate: (date: string) => void,
Expand Down

This file was deleted.

Loading

0 comments on commit 2ee02e2

Please sign in to comment.