@awsui/components-react
Version:
On July 19th, 2022, we launched [Cloudscape Design System](https://cloudscape.design). Cloudscape is an evolution of AWS-UI. It consists of user interface guidelines, front-end components, design resources, and development tools for building intuitive, en
23 lines • 1.11 kB
JavaScript
import { getLimitedValue } from '../../../split-panel/utils/size-utils';
import { useKeyboardEvents } from '../../utils/use-keyboard-events';
import { usePointerEvents } from '../../utils/use-pointer-events';
export function useResize({ currentWidth, minWidth, maxWidth, panelRef, handleRef, onResize, position }) {
const onResizeHandler = (newWidth) => {
const size = getLimitedValue(minWidth, newWidth, maxWidth);
if (maxWidth >= minWidth) {
onResize(size);
}
};
const sizeControlProps = {
position: position !== null && position !== void 0 ? position : 'side',
panelRef,
handleRef,
onResize: onResizeHandler,
};
const clampedWidth = getLimitedValue(minWidth, currentWidth, maxWidth);
const relativeSize = ((clampedWidth - minWidth) / (maxWidth - minWidth)) * 100;
const onPointerDown = usePointerEvents(sizeControlProps);
const { onKeyDown, onDirectionClick } = useKeyboardEvents(sizeControlProps);
return { onKeyDown, onDirectionClick, onPointerDown, relativeSize };
}
//# sourceMappingURL=use-resize.js.map