import React, { useState, useRef } from 'react'; import PropTypes from 'prop-types'; import useOnEscapeKeyDown from 'shared/hooks/onEscapeKeyDown'; import useOnOutsideClick from 'shared/hooks/onOutsideClick'; import { Cross } from 'shared/icons'; import { CardComposerWrapper, CancelIconWrapper, AddCardButton, ComposerControls, ComposerControlsSaveSection, ComposerControlsActionsSection, } from './Styles'; import Card from '../Card'; type Props = { isOpen: boolean; onCreateCard: (cardName: string) => void; onClose: () => void; }; const CardComposer = ({ isOpen, onCreateCard, onClose }: Props) => { const [cardName, setCardName] = useState(''); const $cardRef = useRef(null); useOnOutsideClick($cardRef, true, onClose, null); useOnEscapeKeyDown(isOpen, onClose); return ( { onCreateCard(name); setCardName(''); }} onCardTitleChange={name => { setCardName(name); }} /> { onCreateCard(cardName); setCardName(''); }} > Add Card onClose()}> ); }; CardComposer.propTypes = { isOpen: PropTypes.bool, onClose: PropTypes.func.isRequired, onCreateCard: PropTypes.func.isRequired, }; CardComposer.defaultProps = { isOpen: true, }; export default CardComposer;