Security News
tea.xyz Spam Plagues npm and RubyGems Package Registries
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
react-resizable-layout
Advanced tools
Readme
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 3,167 weekly downloads. As such, react-resizable-layout popularity was classified as popular.
We found that react-resizable-layout demonstrated a healthy version release cadence and project activity because the last version was released less than 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
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
Security News
As cyber threats become more autonomous, AI-powered defenses are crucial for businesses to stay ahead of attackers who can exploit software vulnerabilities at scale.
Security News
UnitedHealth Group disclosed that the ransomware attack on Change Healthcare compromised protected health information for millions in the U.S., with estimated costs to the company expected to reach $1 billion.