@atlaskit/editor-core
Version:
A package contains Atlassian editor core functionality
27 lines (26 loc) • 1.5 kB
JavaScript
/* eslint-disable require-unicode-regexp */
import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
export var isOutdatedBrowser = function isOutdatedBrowser(userAgent) {
// Take browsers in both Desktop and Mobile (includes Chrome, Firefox, Edge and Safari) within last 2 years
var chrome = /Chrome\//.test(userAgent) && !/OPR\//.test(userAgent);
var chromeVersion = chrome ? parseInt((userAgent.match(/Chrome\/(\d+)/) || [])[1], 10) : 0;
if (expValEquals('platform_editor_outdated_browser_update', 'isEnabled', true) ? chromeVersion >= 123 : chromeVersion >= 84) {
return false;
}
var gecko = /gecko\/\d/i.test(userAgent);
var geckoVersion = gecko ? parseInt((userAgent.match(/Firefox\/(\d+)/) || [])[1], 10) : 0;
if (expValEquals('platform_editor_outdated_browser_update', 'isEnabled', true) ? geckoVersion >= 124 : geckoVersion >= 84) {
return false;
}
var edge = /Edge\/(\d+)/.exec(userAgent);
var edgeVersion = edge ? +edge[1] : 0;
if (expValEquals('platform_editor_outdated_browser_update', 'isEnabled', true) ? edgeVersion >= 123 : edgeVersion >= 84) {
return false;
}
var safari = !chrome && !gecko && /Version\/([0-9\._]+).*Safari/.test(userAgent);
var safariVersion = safari ? parseInt((userAgent.match(/Version\/([0-9\._]+).*Safari/) || [])[1], 10) : 0;
if (expValEquals('platform_editor_outdated_browser_update', 'isEnabled', true) ? safariVersion >= 17 : safariVersion >= 12) {
return false;
}
return true;
};