Skip to content

Commit e297dec

Browse files
authored
Merge pull request #134 from duskload/RDD-114-83-Implement-Enums-And-Samsung-Browser-Support
RDD-114 RDD-83 implement enums and samsung browser support
2 parents 901f9d1 + 743ccc4 commit e297dec

File tree

8 files changed

+171
-120
lines changed

8 files changed

+171
-120
lines changed

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,7 @@ const styles = {
134134
| isYandex | bool | returns true if browser is `Yandex` |
135135
| isChromium | bool | returns true if browser is `Chromium` |
136136
| isMobileSafari | bool | returns true if browser is `Mobile Safari` |
137+
| isSamsungBrowser | bool | returns true if browser is `Samsung Browser` |
137138
| osVersion | string | returns os version (e.g 7 for `Windows` or 6 for `Android`) |
138139
| osName | string | returns os name (e.g `Windows`, `Android`) |
139140
| fullBrowserVersion | string | returns full browser version (e.g 65.0.3325.181 for `Chrome`) |
@@ -155,6 +156,8 @@ const styles = {
155156
| isWindows | boolean | returns true/false if os is `Windows` |
156157
| isMacOs | boolean | returns true/false if os is `Mac OS` |
157158
| deviceDetect | boolean | return data object which includes all data about device (e.g version, engine, os etc.) |
159+
| OsTypes | object | return data object with os types |
160+
| BrowserTypes | object | return data object with browser types |
158161
### Views
159162

160163
Available views:

index.d.ts

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,9 @@ declare module "react-device-detect" {
6363
export import isMacOs = ReactDeviceDetect.isMacOs;
6464
export import withOrientationChange = ReactDeviceDetect.withOrientationChange;
6565
export import isMIUI = ReactDeviceDetect.isMIUI;
66+
export import isSamsungBrowser = ReactDeviceDetect.isSamsungBrowser;
67+
export import OsTypes = ReactDeviceDetect.OsTypes;
68+
export import BrowserTypes = ReactDeviceDetect.BrowserTypes;
6669
}
6770

6871
declare namespace ReactDeviceDetect {
@@ -81,6 +84,30 @@ declare namespace ReactDeviceDetect {
8184
condition?: boolean;
8285
}
8386

87+
interface IOsTypes {
88+
IOS: string;
89+
Android: string;
90+
WindowsPhone: string;
91+
Windows: string;
92+
MAC_OS: string;
93+
}
94+
95+
interface IBrowserTypes {
96+
Chrome: string;
97+
Firefox: string;
98+
Opera: string;
99+
Yandex: string;
100+
Safari: string;
101+
InternetExplorer: string;
102+
Edge: string;
103+
Chromium: string;
104+
Ie: string;
105+
MobileSafari: string;
106+
EdgeChromium: string;
107+
MIUI: string;
108+
SamsungBrowser: string;
109+
}
110+
84111
export function deviceDetect(): any;
85112

86113
export function withOrientationChange<P, S = {}>(Component: React.Component<P, S> | React.FC<P>): React.ComponentClass<P, S>;
@@ -204,4 +231,10 @@ declare namespace ReactDeviceDetect {
204231
export const isMacOs: boolean;
205232

206233
export const isMIUI: boolean;
234+
235+
export const isSamsungBrowser: boolean;
236+
237+
export const OsTypes: IOsTypes;
238+
239+
export const BrowserTypes: IBrowserTypes;
207240
}

main.js

Lines changed: 64 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -221,33 +221,34 @@ function _possibleConstructorReturn(self, call) {
221221
return _assertThisInitialized(self);
222222
}
223223

224-
var DEVICE_TYPES = {
225-
MOBILE: 'mobile',
226-
TABLET: 'tablet',
227-
SMART_TV: 'smarttv',
228-
CONSOLE: 'console',
229-
WEARABLE: 'wearable',
230-
BROWSER: undefined
231-
};
232-
var BROWSER_TYPES = {
233-
CHROME: 'Chrome',
234-
FIREFOX: "Firefox",
235-
OPERA: "Opera",
236-
YANDEX: "Yandex",
237-
SAFARI: "Safari",
238-
INTERNET_EXPLORER: "Internet Explorer",
239-
EDGE: "Edge",
240-
CHROMIUM: "Chromium",
241-
IE: 'IE',
242-
MOBILE_SAFARI: "Mobile Safari",
243-
EDGE_CHROMIUM: "Edge Chromium",
244-
MIUI: "MIUI Browser"
245-
};
246-
var OS_TYPES = {
224+
var DeviceTypes = {
225+
Mobile: 'mobile',
226+
Tablet: 'tablet',
227+
SmartTv: 'smarttv',
228+
Console: 'console',
229+
Wearable: 'wearable',
230+
Browser: undefined
231+
};
232+
var BrowserTypes = {
233+
Chrome: 'Chrome',
234+
Firefox: "Firefox",
235+
Opera: "Opera",
236+
Yandex: "Yandex",
237+
Safari: "Safari",
238+
InternetExplorer: "Internet Explorer",
239+
Edge: "Edge",
240+
Chromium: "Chromium",
241+
Ie: 'IE',
242+
MobileSafari: "Mobile Safari",
243+
EdgeChromium: "Edge Chromium",
244+
MIUI: "MIUI Browser",
245+
SamsungBrowser: 'Samsung Browser'
246+
};
247+
var OsTypes = {
247248
IOS: 'iOS',
248-
ANDROID: "Android",
249-
WINDOWS_PHONE: "Windows Phone",
250-
WINDOWS: 'Windows',
249+
Android: "Android",
250+
WindowsPhone: "Windows Phone",
251+
Windows: 'Windows',
251252
MAC_OS: 'Mac OS'
252253
};
253254
var initialData = {
@@ -260,32 +261,32 @@ var initialData = {
260261
};
261262
var checkType = function checkType(type) {
262263
switch (type) {
263-
case DEVICE_TYPES.MOBILE:
264+
case DeviceTypes.Mobile:
264265
return {
265266
isMobile: true
266267
};
267268

268-
case DEVICE_TYPES.TABLET:
269+
case DeviceTypes.Tablet:
269270
return {
270271
isTablet: true
271272
};
272273

273-
case DEVICE_TYPES.SMART_TV:
274+
case DeviceTypes.SmartTv:
274275
return {
275276
isSmartTV: true
276277
};
277278

278-
case DEVICE_TYPES.CONSOLE:
279+
case DeviceTypes.Console:
279280
return {
280281
isConsole: true
281282
};
282283

283-
case DEVICE_TYPES.WEARABLE:
284+
case DeviceTypes.Wearable:
284285
return {
285286
isWearable: true
286287
};
287288

288-
case DEVICE_TYPES.BROWSER:
289+
case DeviceTypes.Browser:
289290
return {
290291
isBrowser: true
291292
};
@@ -383,17 +384,17 @@ function deviceDetect() {
383384
}
384385

385386
var isMobileType = function isMobileType() {
386-
return device.type === DEVICE_TYPES.MOBILE;
387+
return device.type === DeviceTypes.Mobile;
387388
};
388389

389390
var isTabletType = function isTabletType() {
390-
return device.type === DEVICE_TYPES.TABLET;
391+
return device.type === DeviceTypes.Tablet;
391392
};
392393

393394
var isMobileAndTabletType = function isMobileAndTabletType() {
394395
switch (device.type) {
395-
case DEVICE_TYPES.MOBILE:
396-
case DEVICE_TYPES.TABLET:
396+
case DeviceTypes.Mobile:
397+
case DeviceTypes.Tablet:
397398
return true;
398399

399400
default:
@@ -406,79 +407,83 @@ var isEdgeChromiumType = function isEdgeChromiumType() {
406407
};
407408

408409
var isSmartTVType = function isSmartTVType() {
409-
return device.type === DEVICE_TYPES.SMART_TV;
410+
return device.type === DeviceTypes.SmartTv;
410411
};
411412

412413
var isBrowserType = function isBrowserType() {
413-
return device.type === DEVICE_TYPES.BROWSER;
414+
return device.type === DeviceTypes.Browser;
414415
};
415416

416417
var isWearableType = function isWearableType() {
417-
return device.type === DEVICE_TYPES.WEARABLE;
418+
return device.type === DeviceTypes.Wearable;
418419
};
419420

420421
var isConsoleType = function isConsoleType() {
421-
return device.type === DEVICE_TYPES.CONSOLE;
422+
return device.type === DeviceTypes.Console;
422423
};
423424

424425
var isAndroidType = function isAndroidType() {
425-
return os.name === OS_TYPES.ANDROID;
426+
return os.name === OsTypes.Android;
426427
};
427428

428429
var isWindowsType = function isWindowsType() {
429-
return os.name === OS_TYPES.WINDOWS;
430+
return os.name === OsTypes.Windows;
430431
};
431432

432433
var isMacOsType = function isMacOsType() {
433-
return os.name === OS_TYPES.MAC_OS;
434+
return os.name === OsTypes.MAC_OS;
434435
};
435436

436437
var isWinPhoneType = function isWinPhoneType() {
437-
return os.name === OS_TYPES.WINDOWS_PHONE;
438+
return os.name === OsTypes.WindowsPhone;
438439
};
439440

440441
var isIOSType = function isIOSType() {
441-
return os.name === OS_TYPES.IOS;
442+
return os.name === OsTypes.IOS;
442443
};
443444

444445
var isChromeType = function isChromeType() {
445-
return browser.name === BROWSER_TYPES.CHROME;
446+
return browser.name === BrowserTypes.Chrome;
446447
};
447448

448449
var isFirefoxType = function isFirefoxType() {
449-
return browser.name === BROWSER_TYPES.FIREFOX;
450+
return browser.name === BrowserTypes.Firefox;
450451
};
451452

452453
var isChromiumType = function isChromiumType() {
453-
return browser.name === BROWSER_TYPES.CHROMIUM;
454+
return browser.name === BrowserTypes.Chromium;
454455
};
455456

456457
var isEdgeType = function isEdgeType() {
457-
return browser.name === BROWSER_TYPES.EDGE;
458+
return browser.name === BrowserTypes.Edge;
458459
};
459460

460461
var isYandexType = function isYandexType() {
461-
return browser.name === BROWSER_TYPES.YANDEX;
462+
return browser.name === BrowserTypes.Yandex;
462463
};
463464

464465
var isSafariType = function isSafariType() {
465-
return browser.name === BROWSER_TYPES.SAFARI || browser.name === BROWSER_TYPES.MOBILE_SAFARI;
466+
return browser.name === BrowserTypes.Safari || browser.name === BrowserTypes.MobileSafari;
466467
};
467468

468469
var isMobileSafariType = function isMobileSafariType() {
469-
return browser.name === BROWSER_TYPES.MOBILE_SAFARI;
470+
return browser.name === BrowserTypes.MobileSafari;
470471
};
471472

472473
var isOperaType = function isOperaType() {
473-
return browser.name === BROWSER_TYPES.OPERA;
474+
return browser.name === BrowserTypes.Opera;
474475
};
475476

476477
var isIEType = function isIEType() {
477-
return browser.name === BROWSER_TYPES.INTERNET_EXPLORER || browser.name === BROWSER_TYPES.IE;
478+
return browser.name === BrowserTypes.InternetExplorer || browser.name === BrowserTypes.Ie;
478479
};
479480

480481
var isMIUIType = function isMIUIType() {
481-
return browser.name === BROWSER_TYPES.MIUI;
482+
return browser.name === BrowserTypes.MIUI;
483+
};
484+
485+
var isSamsungBrowserType = function isSamsungBrowserType() {
486+
return browser.name === BrowserTypes.SamsungBrowser;
482487
};
483488

484489
var isElectronType = function isElectronType() {
@@ -589,6 +594,7 @@ var isLegacyEdge = isEdgeType() && !isEdgeChromiumType();
589594
var isWindows = isWindowsType();
590595
var isMacOs = isMacOsType();
591596
var isMIUI = isMIUIType();
597+
var isSamsungBrowser = isSamsungBrowserType();
592598

593599
var AndroidView = function AndroidView(_ref) {
594600
var renderWithFragment = _ref.renderWithFragment,
@@ -817,13 +823,15 @@ function withOrientationChange(WrappedComponent) {
817823
}
818824

819825
exports.AndroidView = AndroidView;
826+
exports.BrowserTypes = BrowserTypes;
820827
exports.BrowserView = BrowserView;
821828
exports.ConsoleView = ConsoleView;
822829
exports.CustomView = CustomView;
823830
exports.IEView = IEView;
824831
exports.IOSView = IOSView;
825832
exports.MobileOnlyView = MobileOnlyView;
826833
exports.MobileView = MobileView;
834+
exports.OsTypes = OsTypes;
827835
exports.SmartTVView = SmartTVView;
828836
exports.TabletView = TabletView;
829837
exports.WearableView = WearableView;
@@ -860,6 +868,7 @@ exports.isMobileOnly = isMobileOnly;
860868
exports.isMobileSafari = isMobileSafari;
861869
exports.isOpera = isOpera;
862870
exports.isSafari = isSafari;
871+
exports.isSamsungBrowser = isSamsungBrowser;
863872
exports.isSmartTV = isSmartTV;
864873
exports.isTablet = isTablet;
865874
exports.isWearable = isWearable;

package-lock.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "react-device-detect",
3-
"version": "1.16.0",
3+
"version": "1.17.0",
44
"description": "Detect device type and render your component according to it",
55
"main": "main.js",
66
"typings": "./index.d.ts",

0 commit comments

Comments
 (0)