Skip to content

Commit cb5aeb4

Browse files
committed
fix: idempotent getTimelineItemWrapper
1 parent 0640dc3 commit cb5aeb4

1 file changed

Lines changed: 11 additions & 10 deletions

File tree

src/utils/interface.js

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,23 +9,24 @@ export const blogViewSelector = '[style*="--blog-title-color"] *';
99
export const notificationSelector = `:is(${keyToCss('notification')}[role="listitem"], ${keyToCss('activityItem')})`;
1010

1111
const listTimelineObjectSelector = keyToCss('listTimelineObject');
12-
const cellSelector = keyToCss('cell');
12+
const gridTimelineObjectSelector = keyToCss('gridTimelineObject');
13+
14+
/**
15+
* @param {Element} element An element that is contained within a timeline item.
16+
* @returns {Element | null} The element that wraps the entire timeline item.
17+
*/
18+
export const getTimelineItemWrapper = element =>
19+
element.closest(`.sortableContainer ${listTimelineObjectSelector}`) ??
20+
element.closest(`:has(> ${listTimelineObjectSelector})`) ??
21+
element.closest(gridTimelineObjectSelector);
22+
1323
const targetWrapperSelector = keyToCss(
1424
'targetWrapper',
1525
'targetWrapperBlock',
1626
'targetWrapperFlex',
1727
'targetWrapperInline',
1828
);
1929

20-
/**
21-
* @param {Element} element Element within a timeline item
22-
* @returns {Element | null} The timeline item wrapper
23-
*/
24-
export const getTimelineItemWrapper = element =>
25-
(element.closest('[data-timeline-id]') && element.closest(listTimelineObjectSelector)?.parentElement) ||
26-
element.closest(cellSelector) ||
27-
element.closest(listTimelineObjectSelector);
28-
2930
/**
3031
* @param {Element} element Element within a popover wrapper
3132
* @returns {Element | null} The outermost popover wrapper

0 commit comments

Comments
 (0)