
Security News
Meet the Socket Team at RSAC and BSidesSF 2025
Join Socket for exclusive networking events, rooftop gatherings, and one-on-one meetings during BSidesSF and RSA 2025 in San Francisco.
@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.
The npm package @oieduardorabelo/use-user-agent receives a total of 1,555 weekly downloads. As such, @oieduardorabelo/use-user-agent popularity was classified as popular.
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
Join Socket for exclusive networking events, rooftop gatherings, and one-on-one meetings during BSidesSF and RSA 2025 in San Francisco.
Security News
Biome's v2.0 beta introduces custom plugins, domain-specific linting, and type-aware rules while laying groundwork for HTML support and embedded language features in 2025.
Security News
Next.js has patched a critical vulnerability (CVE-2025-29927) that allowed attackers to bypass middleware-based authorization checks in self-hosted apps.