
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
react-device-context
Advanced tools
react-device-context is a ReactJS context module for exposing User Agent details to be accesible around the application.
npm install react-device-context
First, you must wrap your application root component with the DeviceContextProvider
import React from 'react';
import ReactDOM from 'react-dom';
import { DeviceContextProvider } from 'react-device-context';
const App = (): JSX.Element => (
<DeviceContextProvider>
{/* Other Components */}
</DeviceContextProvider>
);
ReactDOM.render(
<App />,
document.getElementById('app')
);
When your application is wrapped with the DeviceContextProvider, you will be able to consume the API.
type BrowserThe browser type enumerates the browsers supported by this module. Currently the module supports the following browsers:
| Browser | Value |
|---|---|
| Chrome | 'Chrome' |
| Edge | 'Edge' |
| Edge Multiplatform | 'EdgeChromium' |
| Firefox | 'Firefox' |
| Internet Explorer | 'IE' |
| Opera | 'Opera' |
| Safari | 'Safari' |
Supported browsers with its corresponding value from the Browser type.
import React from 'react';
import { useCurrentBrowser } from 'react-device-context';
function App(): JSX.Element {
const currentBrowser = useCurrentBrowser();
if (currentBrowser === 'Firefox') {
return <p>You are on firefox</p>;
} else {
return <p>{ currentBrowser }</p>;
}
}
DeviceFormat refers to the device type. Current supported devices are Desktop and Mobile.
useCurrentBrowser() => Browser | nulluseCurrentBrowser hook returns the current browser as a Browser type value if the browser is
supported. Otherwise returns null.
useCurrentFormat() => DeviceFormat | nulluseCurrentFormat hook returns the current device format as a Format type value.
useDeviceContext() => Context<IDeviceContext>useDeviceContext exposes the DeviceContext interface.
The DeviceContext interface has only one member which is the deviceProfile, which is used by useCurrentBrowser and useCurrentFormat
under the hood.
deviceProfile implements the DeviceProfile interface which has the following members:
| Property | Type |
|---|---|
| format | `DeviceFormat |
| browser | `Browser |
useIsMobile() => booleanA hook that returns true if the current instance is running in a mobile device, otherwise returns false.
<DeviceContextProvider>The DeviceContextProvider is the provider for the main context of this module, its recommended to wrap your application with this provider
in order to consume the API.
Any contribution is welcome, feel free to open an issue or a pull request. A changelog is beign kept in order to keep track of every change for each release, refer to keep-a-changelog for guiderlines.
Licensed under the MIT License.
FAQs
ReactJS Context to detect current device details
We found that react-device-context 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
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.