Skip to content

Commit

Permalink
Merge pull request #14 from mikeyyyzhao/kenny/vim-2468-investigate-rb…
Browse files Browse the repository at this point in the history
…c-bug-with-event-keys

VIM-2468 Add keyAccessor for events
  • Loading branch information
kenny-vimcal authored Mar 27, 2024
2 parents e21dedb + 443e2f3 commit 2fb3c15
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 4 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "rbc-fork-react-big-calendar",
"version": "0.33.51",
"version": "0.33.52",
"description": "Calendar! with events",
"author": {
"name": "Jason Quense",
Expand Down
14 changes: 14 additions & 0 deletions src/Calendar.js
Original file line number Diff line number Diff line change
Expand Up @@ -259,6 +259,17 @@ class Calendar extends React.Component {
*/
resourceTitleAccessor: accessor,

/**
* Provides a unique key for an event.
*
* ```js
* string | (resource: Object) => any
* ```
*
* @type {(func|string)}
*/
keyAccessor: accessor,

/**
* Determines the current date/time which is highlighted in the views.
*
Expand Down Expand Up @@ -858,6 +869,7 @@ class Calendar extends React.Component {
startAccessor: 'start',
endAccessor: 'end',
resourceAccessor: 'resourceId',
keyAccessor: () => null,

resourceIdAccessor: 'id',
resourceTitleAccessor: 'title',
Expand Down Expand Up @@ -891,6 +903,7 @@ class Calendar extends React.Component {
resourceAccessor,
resourceIdAccessor,
resourceTitleAccessor,
keyAccessor,
eventPropGetter,
backgroundEventPropGetter,
slotPropGetter,
Expand Down Expand Up @@ -938,6 +951,7 @@ class Calendar extends React.Component {
resource: wrapAccessor(resourceAccessor),
resourceId: wrapAccessor(resourceIdAccessor),
resourceTitle: wrapAccessor(resourceTitleAccessor),
key: wrapAccessor(keyAccessor),
},
}
}
Expand Down
3 changes: 2 additions & 1 deletion src/DayColumn.js
Original file line number Diff line number Diff line change
Expand Up @@ -240,7 +240,8 @@ class DayColumn extends React.Component {
style={style}
event={event}
label={label}
key={'evt_' + idx}
// Make the key unique and constant.
key={accessors.key(event) ?? 'evt_' + idx}
getters={getters}
rtl={rtl}
components={components}
Expand Down
3 changes: 2 additions & 1 deletion src/EventRow.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import EventRowMixin from './EventRowMixin'
class EventRow extends React.Component {
render() {
let {
accessors,
segments,
slotMetrics: { slots },
className,
Expand All @@ -16,7 +17,7 @@ class EventRow extends React.Component {
return (
<div className={clsx(className, 'rbc-row')}>
{segments.reduce((row, { event, left, right, span }, li) => {
let key = '_lvl_' + li
let key = accessors.key(event) ?? '_lvl_' + li
let gap = left - lastEnd

let content = EventRowMixin.renderEvent(this.props, event)
Expand Down
2 changes: 1 addition & 1 deletion src/Popup.js
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ class Popup extends React.Component {
</div>
{events.map((event, idx) => (
<EventCell
key={idx}
key={accessors.key(event) ?? idx}
type="popup"
localizer={localizer}
event={event}
Expand Down

0 comments on commit 2fb3c15

Please sign in to comment.