11import { keyToCss } from '../../utils/css_map.js' ;
22import { dom } from '../../utils/dom.js' ;
3- import { buildStyle , filterPostElements , postSelector } from '../../utils/interface.js' ;
4- import { onNewPosts } from '../../utils/mutations.js' ;
3+ import { buildStyle , postSelector } from '../../utils/interface.js' ;
4+ import { pageModifications } from '../../utils/mutations.js' ;
55import { timelineObject } from '../../utils/react_props.js' ;
66
77const noteCountClass = 'xkit-classic-footer-note-count' ;
88
9- const postOwnerControlsSelector = `${ postSelector } ${ keyToCss ( 'postOwnerControls' ) } ` ;
10- const footerContentSelector = `${ postSelector } article footer ${ keyToCss ( 'footerContent' ) } ` ;
9+ const postOrRadarSelector = `:is(${ postSelector } , aside ${ keyToCss ( 'radar' ) } )` ;
10+ const postOwnerControlsSelector = `${ postOrRadarSelector } ${ keyToCss ( 'postOwnerControls' ) } ` ;
11+ const footerContentSelector = `${ postOrRadarSelector } article footer ${ keyToCss ( 'footerContent' ) } ` ;
1112const engagementControlsSelector = `${ footerContentSelector } ${ keyToCss ( 'engagementControls' ) } ` ;
1213const replyButtonSelector = `${ engagementControlsSelector } button:has(svg use[href="#managed-icon__ds-reply-outline-24"])` ;
13- const closeNotesButtonSelector = `${ postSelector } ${ keyToCss ( 'postActivity' ) } [role="tablist"] button:has(svg use[href="#managed-icon__ds-ui-x-20"])` ;
14+ const closeNotesButtonSelector = `${ postOrRadarSelector } ${ keyToCss ( 'postActivity' ) } [role="tablist"] button:has(svg use[href="#managed-icon__ds-ui-x-20"])` ;
1415
1516const locale = document . documentElement . lang ;
1617const noteCountFormat = new Intl . NumberFormat ( locale ) ;
@@ -71,15 +72,15 @@ export const styleElement = buildStyle(`
7172
7273const onNoteCountClick = ( event ) => {
7374 event . stopPropagation ( ) ;
74- const postElement = event . currentTarget . closest ( postSelector ) ;
75+ const postElement = event . currentTarget . closest ( postOrRadarSelector ) ;
7576 const closeNotesButton = postElement ?. querySelector ( closeNotesButtonSelector ) ;
7677
7778 closeNotesButton
7879 ? closeNotesButton . click ( )
7980 : postElement ?. querySelector ( replyButtonSelector ) ?. click ( ) ;
8081} ;
8182
82- const processPosts = ( postElements ) => filterPostElements ( postElements ) . forEach ( async postElement => {
83+ const processPosts = ( postElements ) => postElements . forEach ( async postElement => {
8384 postElement . querySelector ( `.${ noteCountClass } ` ) ?. remove ( ) ;
8485
8586 const { noteCount } = await timelineObject ( postElement ) ;
@@ -93,10 +94,10 @@ const processPosts = (postElements) => filterPostElements(postElements).forEach(
9394} ) ;
9495
9596export const main = async function ( ) {
96- onNewPosts . addListener ( processPosts ) ;
97+ pageModifications . register ( ` ${ postOrRadarSelector } article` , processPosts ) ;
9798} ;
9899
99100export const clean = async function ( ) {
100- onNewPosts . removeListener ( processPosts ) ;
101+ pageModifications . unregister ( processPosts ) ;
101102 $ ( `.${ noteCountClass } ` ) . remove ( ) ;
102103} ;
0 commit comments