77 xAccessorFunc ,
88 yAccessorFunc ,
99} from '../../types' ;
10+ import { getBrowser } from '../utils' ;
1011
1112export default function ListeningRect ( {
1213 data,
@@ -66,32 +67,6 @@ export default function ListeningRect({
6667 } ;
6768
6869 function onMouseMove ( e : any ) {
69- let sBrowser ;
70- const sUsrAg = navigator . userAgent ;
71- if ( sUsrAg . indexOf ( 'Firefox' ) > - 1 ) {
72- sBrowser = 'Mozilla Firefox' ;
73- // "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:61.0) Gecko/20100101 Firefox/61.0"
74- } else if ( sUsrAg . indexOf ( 'SamsungBrowser' ) > - 1 ) {
75- sBrowser = 'Samsung Internet' ;
76- // "Mozilla/5.0 (Linux; Android 9; SAMSUNG SM-G955F Build/PPR1.180610.011) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/9.4 Chrome/67.0.3396.87 Mobile Safari/537.36
77- } else if ( sUsrAg . indexOf ( 'Opera' ) > - 1 || sUsrAg . indexOf ( 'OPR' ) > - 1 ) {
78- sBrowser = 'Opera' ;
79- // "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 OPR/57.0.3098.106"
80- } else if ( sUsrAg . indexOf ( 'Trident' ) > - 1 ) {
81- sBrowser = 'Microsoft Internet Explorer' ;
82- // "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; Zoom 3.6.0; wbx 1.0.0; rv:11.0) like Gecko"
83- } else if ( sUsrAg . indexOf ( 'Edge' ) > - 1 ) {
84- sBrowser = 'Microsoft Edge' ;
85- // "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299"
86- } else if ( sUsrAg . indexOf ( 'Chrome' ) > - 1 ) {
87- sBrowser = 'Chrome' ;
88- // "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/66.0.3359.181 Chrome/66.0.3359.181 Safari/537.36"
89- } else if ( sUsrAg . indexOf ( 'Safari' ) > - 1 ) {
90- sBrowser = 'Safari' ;
91- // "Mozilla/5.0 (iPhone; CPU iPhone OS 11_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.0 Mobile/15E148 Safari/604.1 980x1306"
92- } else {
93- sBrowser = 'unknown' ;
94- }
9570 const mousePosition = d3 . pointer ( e ) ;
9671 const hoveredX = xScale . invert ( mousePosition [ 0 ] ) ;
9772 const hoveredY = yScale . invert ( mousePosition [ 1 ] ) ;
@@ -115,7 +90,7 @@ export default function ListeningRect({
11590 closestXValue = xAccessor ( closestDataPoint ) ;
11691
11792 tooltipState . cursorX =
118- sBrowser === 'Chrome'
93+ getBrowser ( ) === 'Chrome'
11994 ? e . nativeEvent . pageX - e . nativeEvent . layerX + xScale ( closestXValue )
12095 : e . nativeEvent . pageX - e . nativeEvent . offsetX + xScale ( closestXValue ) ;
12196 }
@@ -143,7 +118,7 @@ export default function ListeningRect({
143118 closestYValue = layers [ closestYIndex ] [ closestXIndex ] [ 1 ] ;
144119
145120 tooltipState . cursorY =
146- sBrowser === 'Chrome'
121+ getBrowser ( ) === 'Chrome'
147122 ? e . pageY - e . nativeEvent . layerY + yScale ( closestYValue )
148123 : e . pageY - e . nativeEvent . offsetY + yScale ( closestYValue ) ;
149124
0 commit comments