![require(esm) Backported to Node.js 20, Paving the Way for ESM-Only Packages](https://cdn.sanity.io/images/cgdhsj6q/production/be8ab80c8efa5907bc341c6fefe9aa20d239d890-1600x1097.png?w=400&fit=max&auto=format)
Security News
require(esm) Backported to Node.js 20, Paving the Way for ESM-Only Packages
require(esm) backported to Node.js 20, easing the transition to ESM-only packages and reducing complexity for developers as Node 18 nears end-of-life.
@oieduardorabelo/use-user-agent
Advanced tools
React Hooks to detect browsers user-agent using ua-parser-js as main dependency.
React Hooks to detect browsers user-agent using ua-parser-js
as main dependency.
To install it:
yarn add @oieduardorabelo/use-user-agent
An online demo is available at CodeSandbox:
If you've any issues, open an issue with a CodeSandbox link with your issue
In your app, you can add:
import { useUserAgent } from '@oieduardorabelo/use-user-agent';
function App() {
let details = useUserAgent(uastring)
...
}
details
object is composed of:details
: It is either null
or an ua-parser-js object.details.os
: It is a Object
, with keys name
and version
as string|undefined
details.browser
: It is a Object
, with keys name
, version
and major
as string|undefined
details.cpu
: It is a Object
, with keys architecture
as string|undefined
details.device
: It is a Object
, with keys vendor
, model
and type
as string|undefined
details.engine
: It is a Object
, with keys name
and version
as string|undefined
For full documentation, refer to ua-parser-js repository.
uastring
parameter is composed of:uastring
: It is a String
, should be a user-agent string, if none is passed, we default to window.navigator.userAgent
Using default value from useUserAgent()
:
import { useUserAgent } from '@oieduardorabelo/use-user-agent';
function App() {
let details = useUserAgent(); // default is `window.navigator.userAgent`
if (!details) {
return null;
}
let { os, browser, cpu, device, engine } = details;
return (
<div>
<p>My OS is {os.name}, on version {os.version}</p>
<p>My Browser is {browser.name}, on version {browser.version} with major {browser.major}</p>
<p>My CPU architecture is {cpu.architecture}</p>
<p>My Device is {device.vendor}, with model {device.model} of type {device.type}</p>
<p>My Engine is {engine.name} with version {engine.version}</p>
</div>
);
}
Passing a custom user-agent string:
import { useUserAgent } from '@oieduardorabelo/use-user-agent';
function App() {
let uastring = "Mozilla/5.0 (PlayBook; U; RIM Tablet OS 1.0.0; en-US) AppleWebKit/534.11 (KHTML, like Gecko) Version/7.1.0.7 Safari/534.11";
let details = useUserAgent(uastring);
if (!details) {
return null;
}
let { os, browser, cpu, device, engine } = details;
return (
<div>
<p>My OS is {os.name}, on version {os.version}</p>
<p>My Browser is {browser.name}, on version {browser.version} with major {browser.major}</p>
<p>My CPU architecture is {cpu.architecture}</p>
<p>My Device is {device.vendor}, with model {device.model} of type {device.type}</p>
<p>My Engine is {engine.name} with version {engine.version}</p>
</div>
);
}
FAQs
React Hooks to detect browsers user-agent using ua-parser-js as main dependency.
We found that @oieduardorabelo/use-user-agent demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
require(esm) backported to Node.js 20, easing the transition to ESM-only packages and reducing complexity for developers as Node 18 nears end-of-life.
Security News
PyPI now supports iOS and Android wheels, making it easier for Python developers to distribute mobile packages.
Security News
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.