Code Duplication    Length = 20-24 lines in 2 locations

src/utils/helpers/visits.js 2 locations

@@ 26-49 (lines=24) @@
23
  }
24
};
25
26
export const browserFromUserAgent = (userAgent) => {
27
  if (!hasValue(userAgent)) {
28
    return DEFAULT;
29
  }
30
31
  const lowerUserAgent = userAgent.toLowerCase();
32
33
  switch (true) {
34
    case lowerUserAgent.includes('opera') || lowerUserAgent.includes('opr'):
35
      return 'Opera';
36
    case lowerUserAgent.includes('firefox'):
37
      return 'Firefox';
38
    case lowerUserAgent.includes('chrome'):
39
      return 'Chrome';
40
    case lowerUserAgent.includes('safari'):
41
      return 'Safari';
42
    case lowerUserAgent.includes('edg'):
43
      return 'Microsoft Edge';
44
    case lowerUserAgent.includes('msie'):
45
      return 'Internet Explorer';
46
    default:
47
      return DEFAULT;
48
  }
49
};
50
51
export const extractDomain = (url) => {
52
  if (!hasValue(url)) {
@@ 5-24 (lines=20) @@
2
3
const DEFAULT = 'Others';
4
5
export const osFromUserAgent = (userAgent) => {
6
  if (!hasValue(userAgent)) {
7
    return DEFAULT;
8
  }
9
10
  const lowerUserAgent = userAgent.toLowerCase();
11
12
  switch (true) {
13
    case lowerUserAgent.includes('linux'):
14
      return 'Linux';
15
    case lowerUserAgent.includes('windows'):
16
      return 'Windows';
17
    case lowerUserAgent.includes('mac'):
18
      return 'MacOS';
19
    case lowerUserAgent.includes('mobi'):
20
      return 'Mobile';
21
    default:
22
      return DEFAULT;
23
  }
24
};
25
26
export const browserFromUserAgent = (userAgent) => {
27
  if (!hasValue(userAgent)) {