|
@@ -1,33 +1,46 @@
|
|
|
import {defined} from 'app/utils';
|
|
|
|
|
|
-function generateClassname(name?: string): string {
|
|
|
+function generateClassname(name?: string, version?: string): string {
|
|
|
if (!defined(name)) {
|
|
|
return '';
|
|
|
}
|
|
|
|
|
|
+ const lowerCaseName = name.toLowerCase();
|
|
|
+
|
|
|
// amazon fire tv device id changes with version: AFTT, AFTN, AFTS, AFTA, AFTVA (alexa), ...
|
|
|
- if (name.toLowerCase().startsWith('aft')) {
|
|
|
+ if (lowerCaseName.startsWith('aft')) {
|
|
|
return 'amazon';
|
|
|
}
|
|
|
|
|
|
- if (name.toLowerCase().startsWith('sm-') || name.toLowerCase().startsWith('st-')) {
|
|
|
+ if (lowerCaseName.startsWith('sm-') || lowerCaseName.startsWith('st-')) {
|
|
|
return 'samsung';
|
|
|
}
|
|
|
|
|
|
- if (name.toLowerCase().startsWith('moto')) {
|
|
|
+ if (lowerCaseName.startsWith('moto')) {
|
|
|
return 'motorola';
|
|
|
}
|
|
|
|
|
|
- if (name.toLowerCase().startsWith('pixel')) {
|
|
|
+ if (lowerCaseName.startsWith('pixel')) {
|
|
|
return 'google';
|
|
|
}
|
|
|
|
|
|
- return name
|
|
|
+ const formattedName = name
|
|
|
.split(/\d/)[0]
|
|
|
.toLowerCase()
|
|
|
.replace(/[^a-z0-9\-]+/g, '-')
|
|
|
.replace(/\-+$/, '')
|
|
|
.replace(/^\-+/, '');
|
|
|
+
|
|
|
+ if (formattedName === 'edge' && version) {
|
|
|
+ const majorVersion = version.split('.')[0];
|
|
|
+ const isLegacyEdge = majorVersion >= '12' && majorVersion <= '18';
|
|
|
+
|
|
|
+ if (isLegacyEdge) {
|
|
|
+ return 'legacy-edge';
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return formattedName;
|
|
|
}
|
|
|
|
|
|
export default generateClassname;
|