@@ -34,16 +34,17 @@ export function withTracking(Component) {
3434 return function ( props ) {
3535 var eventHandlers = { } ;
3636 var trackers = props . trackers , origin = props . origin , dataContextFromProps = props . dataContext , originalProps = __rest ( props , [ "trackers" , "origin" , "dataContext" ] ) ;
37- var dataContext = useContext ( DataContext ) ;
38- if ( dataContextFromProps ) {
39- dataContext = dataContextFromProps ;
40- }
37+ var dataContext = dataContextFromProps ? dataContextFromProps : useContext ( DataContext ) ;
4138 function trackUserInteraction ( e , tracker ) {
4239 var targetNode = e . target ;
4340 var value = getValueFromNode ( e ) ;
44- var userInteractionResource = UserInteraction . generateResource ( dataContext . app , tracker . action , __assign ( __assign ( { context : dataContext . context } , ( originalProps . origin && {
45- origin : originalProps . origin
46- } ) ) , { component : Component . displayName || Component . name , element : __assign ( { currentTarget : e . currentTarget . nodeName , target : targetNode . nodeName || e . currentTarget . nodeName , innerHTML : targetNode . innerHTML , innerText : targetNode . innerText } , ( value && {
41+ var closestComponent = targetNode . closest ( '[data-element-type="component"]' ) ;
42+ var userInteractionResource = UserInteraction . generateResource ( dataContext . app , tracker . action , __assign ( __assign ( { context : dataContext . context } , ( origin && {
43+ origin : origin ,
44+ } ) ) , { component : {
45+ currentTarget : Component . displayName || Component . name ,
46+ target : closestComponent ? closestComponent . getAttribute ( 'data-display-name' ) : null
47+ } , element : __assign ( { currentTarget : e . currentTarget . nodeName , target : targetNode . nodeName || e . currentTarget . nodeName , innerHTML : targetNode . innerHTML , innerText : targetNode . innerText } , ( value && {
4748 value : value ,
4849 } ) ) } ) , tracker . data ) ;
4950 tracker . track ( e , userInteractionResource ) ;
0 commit comments