Added more software stuff
This commit is contained in:
parent
0a6a37fd35
commit
1d03f40c70
3 changed files with 56 additions and 24 deletions
11
package-lock.json
generated
11
package-lock.json
generated
|
|
@ -9,6 +9,7 @@
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"bowser": "^2.11.0",
|
||||||
"react": "^16.14.0",
|
"react": "^16.14.0",
|
||||||
"react-dom": "^16.14.0",
|
"react-dom": "^16.14.0",
|
||||||
"react-flagpack": "^0.1.1",
|
"react-flagpack": "^0.1.1",
|
||||||
|
|
@ -3005,6 +3006,11 @@
|
||||||
"multicast-dns-service-types": "^1.1.0"
|
"multicast-dns-service-types": "^1.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/bowser": {
|
||||||
|
"version": "2.11.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz",
|
||||||
|
"integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA=="
|
||||||
|
},
|
||||||
"node_modules/brace-expansion": {
|
"node_modules/brace-expansion": {
|
||||||
"version": "1.1.11",
|
"version": "1.1.11",
|
||||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
||||||
|
|
@ -16726,6 +16732,11 @@
|
||||||
"multicast-dns-service-types": "^1.1.0"
|
"multicast-dns-service-types": "^1.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"bowser": {
|
||||||
|
"version": "2.11.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz",
|
||||||
|
"integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA=="
|
||||||
|
},
|
||||||
"brace-expansion": {
|
"brace-expansion": {
|
||||||
"version": "1.1.11",
|
"version": "1.1.11",
|
||||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
||||||
|
|
|
||||||
|
|
@ -38,6 +38,7 @@
|
||||||
"webpack-dev-server": "^3.11.0"
|
"webpack-dev-server": "^3.11.0"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"bowser": "^2.11.0",
|
||||||
"react": "^16.14.0",
|
"react": "^16.14.0",
|
||||||
"react-dom": "^16.14.0",
|
"react-dom": "^16.14.0",
|
||||||
"react-flagpack": "^0.1.1",
|
"react-flagpack": "^0.1.1",
|
||||||
|
|
|
||||||
68
src/App.jsx
68
src/App.jsx
|
|
@ -1,35 +1,13 @@
|
||||||
import * as React from 'react';
|
import * as React from 'react';
|
||||||
import { useState, useEffect } from 'react';
|
import { useState, useEffect } from 'react';
|
||||||
import Flag from 'react-flagpack';
|
import Flag from 'react-flagpack';
|
||||||
|
import * as Bowser from 'bowser';
|
||||||
import './App.css';
|
import './App.css';
|
||||||
|
|
||||||
const updateDOM = (id, text) => {
|
const updateDOM = (id, text) => {
|
||||||
document.getElementById(id).innerHTML += text;
|
document.getElementById(id).innerHTML += text;
|
||||||
};
|
};
|
||||||
|
|
||||||
const getBrowser = (userAgent) => {
|
|
||||||
if (
|
|
||||||
(userAgent.indexOf('Opera') ||
|
|
||||||
userAgent.indexOf('OPR')) !== -1
|
|
||||||
) {
|
|
||||||
return 'Opera';
|
|
||||||
} if (userAgent.indexOf('Edg') !== -1) {
|
|
||||||
return 'Edge';
|
|
||||||
} if (userAgent.indexOf('Chrome') !== -1) {
|
|
||||||
return 'Chrome';
|
|
||||||
} if (userAgent.indexOf('Safari') !== -1) {
|
|
||||||
return 'Safari';
|
|
||||||
} if (userAgent.indexOf('Firefox') !== -1) {
|
|
||||||
return 'Firefox';
|
|
||||||
} if (
|
|
||||||
userAgent.indexOf('MSIE') !== -1 ||
|
|
||||||
!!document.documentMode === true
|
|
||||||
) {
|
|
||||||
return 'IE';
|
|
||||||
}
|
|
||||||
return 'unknown';
|
|
||||||
};
|
|
||||||
|
|
||||||
const App = () => {
|
const App = () => {
|
||||||
const [country, setCountry] = useState('US');
|
const [country, setCountry] = useState('US');
|
||||||
const [flag, setFlag] = useState(false);
|
const [flag, setFlag] = useState(false);
|
||||||
|
|
@ -48,9 +26,21 @@ const App = () => {
|
||||||
updateDOM('provider', data.isp);
|
updateDOM('provider', data.isp);
|
||||||
});
|
});
|
||||||
|
|
||||||
updateDOM('browser', getBrowser(navigator.userAgent));
|
const uaResult = Bowser.parse(navigator.userAgent);
|
||||||
|
updateDOM('browser', uaResult.browser.name);
|
||||||
|
updateDOM('browserVersion', uaResult.browser.version);
|
||||||
|
updateDOM('browserEngine', uaResult.engine.name);
|
||||||
|
updateDOM('os', `${uaResult.os.name} ${uaResult.os.versionName}`);
|
||||||
|
|
||||||
|
updateDOM('language', navigator.language);
|
||||||
|
updateDOM('timezone', Intl.DateTimeFormat().resolvedOptions().timeZone);
|
||||||
|
updateDOM('cookies', navigator.cookieEnabled);
|
||||||
|
updateDOM('java', navigator.javaEnabled());
|
||||||
|
updateDOM('plugins', navigator.plugins);
|
||||||
|
|
||||||
|
updateDOM('platform', uaResult.platform.type);
|
||||||
updateDOM('screenSize', `${window.screen.width}x${window.screen.height}`);
|
updateDOM('screenSize', `${window.screen.width}x${window.screen.height}`);
|
||||||
|
updateDOM('color', window.screen.colorDepth);
|
||||||
|
|
||||||
navigator.getBattery().then((battery) => {
|
navigator.getBattery().then((battery) => {
|
||||||
updateDOM('batteryLevel', `${Math.round(battery.level * 100)}%`);
|
updateDOM('batteryLevel', `${Math.round(battery.level * 100)}%`);
|
||||||
|
|
@ -91,10 +81,40 @@ const App = () => {
|
||||||
<div className="item" id="browser">
|
<div className="item" id="browser">
|
||||||
Browser:{' '}
|
Browser:{' '}
|
||||||
</div>
|
</div>
|
||||||
|
<div className="item" id="browserVersion">
|
||||||
|
Browser version:{' '}
|
||||||
|
</div>
|
||||||
|
<div className="item" id="browserEngine">
|
||||||
|
Browser engine:{' '}
|
||||||
|
</div>
|
||||||
|
<div className="item" id="os">
|
||||||
|
Operating system:{' '}
|
||||||
|
</div>
|
||||||
|
<div className="item" id="language">
|
||||||
|
Language:{' '}
|
||||||
|
</div>
|
||||||
|
<div className="item" id="timezone">
|
||||||
|
Timezone:{' '}
|
||||||
|
</div>
|
||||||
|
<div className="item" id="cookies">
|
||||||
|
Cookies enabled:{' '}
|
||||||
|
</div>
|
||||||
|
<div className="item" id="java">
|
||||||
|
Java enabled:{' '}
|
||||||
|
</div>
|
||||||
|
<div className="item" id="plugins">
|
||||||
|
Plugins:{' '}
|
||||||
|
</div>
|
||||||
<div className="title">Hardware</div>
|
<div className="title">Hardware</div>
|
||||||
|
<div className="item" id="platform">
|
||||||
|
Platform:{' '}
|
||||||
|
</div>
|
||||||
<div className="item" id="screenSize">
|
<div className="item" id="screenSize">
|
||||||
Screen resolution:{' '}
|
Screen resolution:{' '}
|
||||||
</div>
|
</div>
|
||||||
|
<div className="item" id="color">
|
||||||
|
Color Resolution:{' '}
|
||||||
|
</div>
|
||||||
<div className="item" id="batteryLevel">
|
<div className="item" id="batteryLevel">
|
||||||
Battery level:{' '}
|
Battery level:{' '}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue