
Security News
Axios Supply Chain Attack Reaches OpenAI macOS Signing Pipeline, Forces Certificate Rotation
OpenAI rotated macOS signing certificates after a malicious Axios package reached its CI pipeline in a broader software supply chain attack.
use-transition
Advanced tools
use transition hook for React
A tiny react custom hook for controlling transition state like react-transition-group.
yarn add use-transition
import useTransition from 'use-transition';
function App() {
const [isActive, setIsActive] = React.useState(false);
const state = useTransition(isActive, 1000);
return (
<>
<button onClick={() => setIsActive(active => !active)}>
toggle: {String(isActive)}
</button>
<h1>{state}</h1>
</>
);
}
useTransition(isActive: boolean, timeout: number, options?: Options): StatesThe main hook to return the current state of the transition. Takes an isActive indicating the transition state and timeout being the delay in ms. The return value is of type States, which is an enum similar to react-transition-group:
enum States {
unmounted = 'unmounted',
entering = 'entering',
entered = 'entered',
exiting = 'exiting',
exited = 'exited',
}
The options takes an object, and has type Options:
type Options = {
unmountOnExited?: boolean;
};
unmountOnExited: booleanWhether or not to transition to unmounted immediately after exited. Useful for controlling element which is only appearing when is active. When used together with useTriggerReflow, it can easily apply transition effect to elements appearing only when they were active, more on that later.
STATES: StatesThe object form of the enum States. Useful for conditionally trigger different transition effect in a more reliable way.
import { STATES } from 'use-transition';
{
transition: 'opacity 1s ease-out',
opacity: Number(state === STATES.entering || state === STATES.entered),
}
useTriggerReflow(isActive: boolean, state: STATES, targetRef: RefObject<HTMLElement>)An useful hook to automatically trigger reflow on targetRef.current when the state is STATES.exited and isActive being false. When you are only mounting the component when it is active, it is a useful hook combined with useTransition to force browser to paint the intermediate style when still in exited state. A common example would be to mount and fade in a component on active.
import useTransition, { STATES, useTriggerReflow } from 'use-transition';
const [isActive, setIsActive] = React.useState(false);
const targetRef = React.useRef();
const state = useTransition(isActive, 1000, { unmountOnExited: true });
useTriggerReflow(isActive, state, targetRef);
return (
<>
<button onClick={() => setIsActive(prev => !prev)}>Toggle</button>
{state !== STATES.unmounted && (
<div
ref={targetRef}
style={{
transition: 'opacity 1s ease-in-out',
opacity: Number(
state === STATES.entering || state === STATES.entered
),
}}
/>
)}
</>
);
Kai Hao, MIT
FAQs
use transition hook for React
The npm package use-transition receives a total of 5 weekly downloads. As such, use-transition popularity was classified as not popular.
We found that use-transition 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
OpenAI rotated macOS signing certificates after a malicious Axios package reached its CI pipeline in a broader software supply chain attack.

Security News
Open source is under attack because of how much value it creates. It has been the foundation of every major software innovation for the last three decades. This is not the time to walk away from it.

Security News
Socket CEO Feross Aboukhadijeh breaks down how North Korea hijacked Axios and what it means for the future of software supply chain security.