import React, { useState } from "react"; import { DropdownListContainer, DropdownHeader, DropdownIcon, DropdownTitle, ListContainer, ToggleIconClosed, ToggleIconOpened, DropdownOptions, ToggleContainer, } from "./DropdownList.styled"; import PropTypes from "prop-types"; const DropdownList = (props) => { const [listShown, setListShown] = useState(props.defaultOpen); const handleShow = () => { if (props.setIsOpened) { props.setIsOpened(!listShown); } setListShown((prevState) => !prevState); }; return ( {props.dropdownIcon && ( handleShow()}> {props.dropdownIcon} )} handleShow()} textcolor={props.textcolor}> {props.title} {listShown ? ( handleShow()} > {props.toggleIconOpened} ) : ( handleShow()} > {props.toggleIconClosed} )} {props.headerOptions} {props.children} ); }; export default DropdownList; DropdownList.propTypes = { title: PropTypes.string, dropdownIcon: PropTypes.node, toggleIconOpened: PropTypes.node, toggleIconClosed: PropTypes.node, children: PropTypes.node, fullWidth: PropTypes.bool, defaultOpen: PropTypes.bool, toggleIconStyles: PropTypes.any, headerOptions: PropTypes.node, textcolor: PropTypes.string, setIsOpened: PropTypes.func, }; DropdownList.defaultProps = { fullWidth: false, defaultOpen: false, };