-
Notifications
You must be signed in to change notification settings - Fork 34
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
Nested single day events always shown only with time #2114
Nested single day events always shown only with time #2114
Conversation
@@ -23,6 +24,7 @@ export class EventDateTime extends React.PureComponent<IProps> { | |||
const end = eventUtils.getEndDate(item); | |||
const isAllDay = eventUtils.isEventAllDay(start, end); | |||
const multiDay = !eventUtils.isEventSameDay(start, end); | |||
const showEventStartDate = eventUtils.showEventStartDate(start, this.props.planningItem?.date); |
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.
So if planningItem.date
is null
, this will continue working?
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.
yep
@@ -23,7 +24,7 @@ export class EventDateTimeColumn extends React.PureComponent<IProps> { | |||
return ( | |||
<Column border={false} className="flex-justify--start sd-padding-t--1"> | |||
<Row classes="sd-margin--0"> | |||
<EventDateTime item={this.props.item} /> | |||
<EventDateTime item={this.props.item} planningItem={this.props.planningItem} /> |
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.
Why is this component called EventDateTime
and we're passing an event item and a planningItem? If it's meant to show both planning & event item times you should rename it accordingly
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.
The component only renders the date and time of the event, but conditionally, when the event's date differs from the planning item's date.
client/utils/events.ts
Outdated
@@ -80,6 +80,10 @@ function isEventSameDay(startingDate: IDateTime, endingDate: IDateTime): boolean | |||
return moment(startingDate).format('DD/MM/YYYY') === moment(endingDate).format('DD/MM/YYYY'); | |||
} | |||
|
|||
function showEventStartDate(eventDate: IDateTime, planningDate: IDateTime): 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.
Since up in the code you're passing a possibly undefined
planningDate it only makes sense to make this optional here, and handle the case where planningDate
is undefined explicitly
@tomaskikutis you can take a look as well if you want, but I feel confident in the review and that this is a simple feature |
I'll take a look |
@@ -79,7 +81,7 @@ export class EventDateTime extends React.PureComponent<IProps> { | |||
</span> | |||
)} | |||
<DateTime | |||
withDate={multiDay} | |||
withDate={(showEventStartDate || multiDay)} |
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.
Move multiDay
check to showEventStartDate
function
client/utils/events.ts
Outdated
if (planningDate == null) { | ||
return true; | ||
} | ||
return moment(eventDate).format('DD/MM/YYYY') != moment(planningDate).format('DD/MM/YYYY'); |
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'd be cleaner to use isSame
method from moment. We don't care about date format here
@@ -69,6 +69,7 @@ export class PlanningItemWithEvents extends React.Component<IProps, IState> { | |||
{...this.props.getEventProps(event)} | |||
multiSelectDisabled | |||
key={event._id} | |||
planningItem={planningProps} |
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.
planningProps
would be a more consistent naming for a prop
73d2311
into
superdesk:feature/multiple-events-in-planning
STT-93
Front-end checklist
memo
orPureComponent
to define new React components (and updates existing usages in modified code segments)lodash.get
with optional chaining and nullish coalescing for modified code segmentssuperdeskApi
)superdesk-ui-framework
andsuperdeskApi
when possible instead of using ones defined in this repository.planningApi
where it is possible to usesuperdeskApi
planningApi
)