Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
react-resizable-layout
Advanced tools
Lightweight, accessible headless React component and hook for drag-and-drop resizable layouts.
A lightweight, accessible headless React component and hook for drag-and-drop resizable layouts.
Install from npm:
# Using npm
npm install react-resizable-layout
# Using Yarn
yarn add react-resizable-layout
Resizable
componentimport Resizable from 'react-resizable-layout';
<Resizable axis={'x'}>
{({ position, separatorProps }) => (
<div className="wrapper">
<div className="left-block" style={{ width: position }} />
<YourSeparatorComponent {...separatorProps} />
<div className="right-block" />
</div>
)}
</Resizable>
useResizable
hookimport { useResizable } from 'react-resizable-layout';
const Component = () => {
const { position, separatorProps } = useResizable({
axis: 'x',
})
return (
<div className="wrapper">
<div className="left-block" style={{ width: position }} />
<YourSeparatorComponent {...separatorProps} />
<div className="right-block" />
</div>
)
}
The following attributes are added to separatorProps
in accordance with W3C.
https://www.w3.org/TR/wai-aria-1.2/#separator
Attribute | Value |
---|---|
role | 'separator' |
aria-valuenow | position |
aria-valuemin | props.min |
aria-valuemax | props.max |
aria-orientation | 'vertical' or 'horizontal' |
aria-disabled | props.disabled |
Name | Type | Default | Required | Description |
---|---|---|---|---|
axis | 'x' or 'y' | - | ◯ | Resize direction |
containerRef | ReactRef | - | - | Reference to container for calculating position |
disabled | boolean | false | - | Disable resize |
initial | number | 0 | - | Initial size |
min | number | 0 | - | Minimum size |
max | number | Infinity | - | Maximum size |
reverse | boolean | false | - | If true, returns position of the opposite side |
step | number | 10 | - | Pixel steps when operating with keyboard |
shiftStep | number | 50 | - | Pixel steps when operating with keyboard while holding down the shift key |
onResizeStart | function | - | - | Callback on resize start |
onResizeEnd | function | - | - | Callback on resize end |
Resizable
component children argsuseResizable
hook returns same.
Name | Type | Description |
---|---|---|
position | number | Separator's position (Width for 'x' axis, height for 'y' axis) |
endPosition | number | Separator's position at end of drag |
isDragging | boolean | True if dragging |
separatorProps | object | Separator's props like onPointerDown |
setPosition | function | Set separator's position |
The following keyboard operations are supported.
Key | Operation |
---|---|
Arrow (↑ ,→ ,↓ ,← ) | Move the separator by 10px (default) |
Shift + Arrow (↑ ,→ ,↓ ,← ) | Move the separator by 50px (default) |
Enter | Reset the separator to the initial position |
Double-click on the separator to return it to its initial position.
Feel free to open an issue or make a pull request.
Distributed under the MIT License. See LICENSE for more information.
FAQs
Lightweight, accessible headless React component and hook for drag-and-drop resizable layouts.
The npm package react-resizable-layout receives a total of 7,345 weekly downloads. As such, react-resizable-layout popularity was classified as popular.
We found that react-resizable-layout 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
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.