Added userAgentBlock
This commit is contained in:
parent
2a4b4c4453
commit
de768f53cc
6 changed files with 119 additions and 13 deletions
|
|
@ -1,6 +1,6 @@
|
||||||
import { useState, useEffect } from 'react';
|
import { useState, useEffect } from 'react';
|
||||||
import ScanBlock from './ScanBlock';
|
import ScanBlock from './ScanBlock';
|
||||||
import Table from './Table';
|
import Table from './OldTable';
|
||||||
import { fetchAPI, getConnection } from './mainOld';
|
import { fetchAPI, getConnection } from './mainOld';
|
||||||
|
|
||||||
const ConnectionBlock = () => {
|
const ConnectionBlock = () => {
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import { useState, useEffect } from 'react';
|
import { useState, useEffect } from 'react';
|
||||||
import ScanBlock from './ScanBlock';
|
import ScanBlock from './ScanBlock';
|
||||||
import Table from './Table';
|
import Table from './OldTable';
|
||||||
import { fetchAPI, getLocation, getMap } from './mainOld';
|
import { fetchAPI, getLocation, getMap } from './mainOld';
|
||||||
|
|
||||||
const LocationBlock = () => {
|
const LocationBlock = () => {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
/* eslint-disable no-unused-vars */
|
/* eslint-disable no-unused-vars */
|
||||||
|
import UserAgentBlock from './UserAgentBlock';
|
||||||
import OtherBlock from './OtherBlock';
|
import OtherBlock from './OtherBlock';
|
||||||
import NavigatorBlock from './NavigatorBlock';
|
import NavigatorBlock from './NavigatorBlock';
|
||||||
import ScreenBlock from './ScreenBlock';
|
import ScreenBlock from './ScreenBlock';
|
||||||
|
|
@ -12,11 +13,12 @@ import FiltersBlock from './FiltersBlock';
|
||||||
|
|
||||||
const ScanBlocks = () => (
|
const ScanBlocks = () => (
|
||||||
<>
|
<>
|
||||||
|
<UserAgentBlock />
|
||||||
<OtherBlock />
|
<OtherBlock />
|
||||||
<ScreenBlock />
|
<ScreenBlock />
|
||||||
<NavigatorBlock />
|
<NavigatorBlock />
|
||||||
{/* <LocationBlock />
|
<LocationBlock />
|
||||||
<ConnectionBlock /> */}
|
<ConnectionBlock />
|
||||||
{/* <FingerprintBlock />
|
{/* <FingerprintBlock />
|
||||||
<LocationBlock />
|
<LocationBlock />
|
||||||
<ConnectionBlock />
|
<ConnectionBlock />
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
/* eslint-disable no-unused-vars */
|
/* eslint-disable no-unused-vars */
|
||||||
import parse from 'html-react-parser';
|
import parse from 'html-react-parser';
|
||||||
import { useState, useEffect } from 'react';
|
import { useState, useEffect } from 'react';
|
||||||
import Issues from './TableRow';
|
import TableRow from './TableRow';
|
||||||
|
|
||||||
const Table = ({ data }) => {
|
const Table = ({ data }) => {
|
||||||
const [workerData, setWorkerData] = useState();
|
const [workerData, setWorkerData] = useState();
|
||||||
|
|
@ -11,7 +11,7 @@ const Table = ({ data }) => {
|
||||||
<table>
|
<table>
|
||||||
{data.map((item) => (
|
{data.map((item) => (
|
||||||
<tbody key={item.key}>
|
<tbody key={item.key}>
|
||||||
<Issues item={item} />
|
<TableRow item={item} />
|
||||||
</tbody>
|
</tbody>
|
||||||
))}
|
))}
|
||||||
</table>
|
</table>
|
||||||
|
|
|
||||||
87
frontend/src/components/UserAgentBlock.js
Normal file
87
frontend/src/components/UserAgentBlock.js
Normal file
|
|
@ -0,0 +1,87 @@
|
||||||
|
/* eslint-disable no-unused-vars */
|
||||||
|
import { useState, useEffect } from 'react';
|
||||||
|
import Bowser from 'bowser';
|
||||||
|
import ScanBlock from './ScanBlock';
|
||||||
|
import Table from './Table';
|
||||||
|
import {
|
||||||
|
checkNavigatorProperties,
|
||||||
|
checkWebWorker,
|
||||||
|
checkScreenProperties,
|
||||||
|
getUserAgentData,
|
||||||
|
} from './main';
|
||||||
|
|
||||||
|
const UserAgentBlock = () => {
|
||||||
|
const [firstRender, setfirstRender] = useState(true);
|
||||||
|
const [workerData, setWorkerData] = useState('');
|
||||||
|
const [userAgent, setUserAgent] = useState();
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
checkWebWorker('userAgent', setWorkerData);
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (!workerData) {
|
||||||
|
setUserAgent(Bowser.parse(navigator.userAgent));
|
||||||
|
} else {
|
||||||
|
setUserAgent(Bowser.parse(workerData));
|
||||||
|
}
|
||||||
|
}, [workerData]);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<ScanBlock>
|
||||||
|
<h1>User Agent</h1>
|
||||||
|
{userAgent && (
|
||||||
|
<div className="tableWrap">
|
||||||
|
<table>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td>Browser</td>
|
||||||
|
<td>{userAgent.browser.name}</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td>Browser version</td>
|
||||||
|
<td>{userAgent.browser.version}</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td>OS</td>
|
||||||
|
<td>
|
||||||
|
{userAgent.os.name} {userAgent.os.versionName}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td>OS version</td>
|
||||||
|
<td>{userAgent.os.version}</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td>Engine</td>
|
||||||
|
<td>
|
||||||
|
{userAgent.engine.name} {userAgent.engine.version}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td>Platform type</td>
|
||||||
|
<td>{userAgent.platform.type}</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
<p>
|
||||||
|
<b>Explanation:</b> JavaScript can be used to find information about
|
||||||
|
your hardware. This information can be used to create a fingerprint.
|
||||||
|
</p>
|
||||||
|
</ScanBlock>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default UserAgentBlock;
|
||||||
|
|
@ -279,7 +279,24 @@ const getScreen = () => [
|
||||||
getColorDepth(),
|
getColorDepth(),
|
||||||
];
|
];
|
||||||
|
|
||||||
const getUserAgentData = () => [getBrowser()];
|
const getUserAgentData = (userAgent) => {
|
||||||
|
// getBrowser();
|
||||||
|
console.log(userAgent);
|
||||||
|
};
|
||||||
|
|
||||||
|
// const getBrowser = (userAgent) => {
|
||||||
|
// if (navigator.brave) {
|
||||||
|
// return 'Brave';
|
||||||
|
// }
|
||||||
|
// return userAgent;
|
||||||
|
// };
|
||||||
|
|
||||||
|
const getBrowser = () => ({
|
||||||
|
key: 'Browser',
|
||||||
|
title: 'Color depth',
|
||||||
|
value: window.screen.colorDepth,
|
||||||
|
issues: [],
|
||||||
|
});
|
||||||
|
|
||||||
// sorts plugins object into comma separated list
|
// sorts plugins object into comma separated list
|
||||||
const sortPlugins = (data) => {
|
const sortPlugins = (data) => {
|
||||||
|
|
@ -380,9 +397,9 @@ const checkWebWorker = (key, setWorkerData) => {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
const getBrowser = (userAgent) => {
|
// const getBrowser = (userAgent) => {
|
||||||
if (navigator.brave) {
|
// if (navigator.brave) {
|
||||||
return 'Brave';
|
// return 'Brave';
|
||||||
}
|
// }
|
||||||
return userAgent;
|
// return userAgent;
|
||||||
};
|
// };
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue