UNPKG

@findify/react-components

Version:
42 lines (41 loc) 1.73 kB
/** * @module components/Cards/Promo */ import styles from 'components/Cards/Promo/styles.css'; import { useCallback } from 'react'; import cx from 'classnames'; export default ({ item, config, theme = styles }) => { const card = item.getIn(['cards', 0]); const onClick = useCallback((e) => { if (!card.get('redirect_link')) return; e.preventDefault(); window.open(card.get('redirect_link'), '_blank'); }, [card]); return (<a onClick={onClick} className={cx(theme.root, `findify-promo-${card.get('id')}`)} href={card.get('url')}> <div className={theme.content} style={{ backgroundColor: card.get('background_color') || 'transparent', backgroundImage: card.get('image_url') && `url(${card.get('image_url')})`, }}> <div className={theme.container} style={{ color: card.getIn(['fe_settings', 'text_color']) }}> <p className={theme.title} display-if={card.get('top_header')}> {card.get('top_header')} </p> <p className={theme.description} display-if={card.get('sub_header')}> {card.get('sub_header')} </p> </div> <div className={theme.buttonContainer}> <button className={theme.button} display-if={card.get('cta_text')} onClick={onClick} style={{ color: card.getIn(['fe_settings', 'button_color']), background: card.getIn(['fe_settings', 'button_background']), }}> {card.get('cta_text')} </button> </div> </div> <p className={theme.footer} display-if={card.get('footer')} style={{ color: card.getIn(['fe_settings', 'footer_color']) }}> {card.get('footer')} </p> </a>); };