
Research
Malicious fezbox npm Package Steals Browser Passwords from Cookies via Innovative QR Code Steganographic Technique
A malicious package uses a QR code as steganography in an innovative technique.
joystick-react
Advanced tools
A Focus System and Gamepad abstraction for React.
This module is available in the npm registry.
Using NPM
--
npm install joystick-react
Using Yarn
--
yarn add joystick-react
Joystick is built on React Hooks, which means that you need at least version 16.8 of React.
import * as React from 'react';
import { useFocus } from 'joystick-react';
export const Card = props => {
const { isFocused, ref } = useFocus();
return (
<div
ref={ref}
style={{
position: 'absolute',
top: props.y,
left: props.x,
width: 200,
height: 200,
backgroundColor: isFocused ? 'green' : 'red'
}}
/>
);
}
You can pass a function to the useFocus-hook which then will run whenever a Gamepad event occurs while focusing on the component. The function you pass will get the Gamepad event as a parameter.
import * as React from 'react';
import { useFocus } from 'joystick-react';
export const Card = props => {
const { isFocused, ref } = useFocus(gamepadEvent => {
console.log('A button was pressed on a gamepad while this component was focused!', gamepadEvent);
});
return (
<div
ref={ref}
style={{
position: 'absolute',
top: props.y,
left: props.x,
width: 200,
height: 200,
backgroundColor: isFocused ? 'green' : 'red'
}}
/>
);
}
As Framer X Beta supports React Hooks, it's super easy to use Joystick in your Framer X prototype. Here's an example of a Card component that animates to different styles depending on the focus-state.
import * as React from "react"
import { Frame } from "framer"
import { useFocus } from "joystick-react"
export const Card = props => {
const variants = {
initial: {
scale: 1,
background: "rgba(255, 255, 255, .1)",
transition: {
duration: 0.2,
},
},
focused: {
scale: 1.1,
background: "#fff",
transition: {
duration: 0.2,
},
},
}
const { isFocused, ref } = useFocus()
return (
<Frame
ref={ref}
variants={variants}
animate={isFocused ? "focused" : "initial"}
size="100%"
/>
)
}
If you want to listen to all gamepadevents regardless of the focus-state on a component, there's a simple Gamepad class available.
import { Gamepad } from 'joystick-react';
// The Gamepad-constructor takes a boolean as its first parameter, which dictates if the events should be throttled or not
// Set it to true if you want keyboard-like event emitting - very useful if you want to ensure 1 event when pressing a button
// Set it to false if you want realtime events - very useful if you want to get responsive data from the gamepad "sticks"
const gamepad = new Gamepad(true);
gamepad.on('gamepadevent', event => console.log(event));
FAQs
A Focus System and Gamepad abstraction for React.
We found that joystick-react 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.
Research
A malicious package uses a QR code as steganography in an innovative technique.
Research
/Security News
Socket identified 80 fake candidates targeting engineering roles, including suspected North Korean operators, exposing the new reality of hiring as a security function.
Application Security
/Research
/Security News
Socket detected multiple compromised CrowdStrike npm packages, continuing the "Shai-Hulud" supply chain attack that has now impacted nearly 500 packages.