@awsui/components-react
Version:
AWS UI is a collection of [React](https://reactjs.org/) components that help create intuitive, responsive, and accessible user experiences for web applications. It is developed by Amazon Web Services (AWS). This work is available under the terms of the [A
23 lines (22 loc) • 906 B
JavaScript
import { useCallback, useState } from 'react';
export var useOpenState = function (_a) {
var resetHighlight = _a.resetHighlight, onOpen = _a.onOpen, onClose = _a.onClose;
var _b = useState(false), isOpen = _b[0], setIsOpen = _b[1];
var openDropdown = useCallback(function () {
if (!isOpen) {
setIsOpen(true);
onOpen && onOpen();
}
}, [isOpen, setIsOpen]);
var closeDropdown = useCallback(function () {
if (isOpen) {
resetHighlight();
setIsOpen(false);
onClose && onClose();
}
}, [isOpen, setIsOpen, resetHighlight]);
var toggleDropdown = useCallback(function () {
isOpen ? closeDropdown() : openDropdown();
}, [isOpen, closeDropdown, openDropdown]);
return { isOpen: isOpen, openDropdown: openDropdown, closeDropdown: closeDropdown, toggleDropdown: toggleDropdown };
};