import React, { useEffect, useState } from 'react'; import { Icon, BackLink, IconButton, Dropdown, Popup, TextEllipsis, Button } from 'UI'; import { remove as deleteFunnel, fetch, fetchInsights, fetchIssuesFiltered, fetchSessionsFiltered } from 'Duck/funnels'; import { editFilter, refresh, addFilter } from 'Duck/funnels'; import DateRange from 'Shared/DateRange'; import { connect } from 'react-redux'; import { confirm } from 'UI/Confirmation'; import FunnelSaveModal from 'Components/Funnels/FunnelSaveModal'; import stl from './funnelHeader.css'; const Info = ({ label = '', value = '', className = 'mx-4' }) => { return (
{label} {value}
) } const FunnelHeader = (props) => { const { funnel, insights, funnels, onBack, funnelId, showFilters = false, renameHandler } = props; const [showSaveModal, setShowSaveModal] = useState(false) const writeOption = (e, { name, value }) => { props.redirect(value) props.fetch(value).then(() => props.refresh(value)) } const deleteFunnel = async (e, funnel) => { e.preventDefault(); e.stopPropagation(); if (await confirm({ header: 'Delete Funnel', confirmButton: 'Delete', confirmation: `Are you sure you want to permanently delete "${funnel.name}"?` })) { props.deleteFunnel(funnel.funnelId).then(props.onBack); } else {} } const onDateChange = (e) => { props.editFilter(e, funnelId); } const options = funnels.map(({ funnelId, name }) => ({ text: name, value: funnelId })).toJS(); const selectedFunnel = funnels.filter(i => i.funnelId === parseInt(funnelId)).first() || {}; const eventsCount = funnel.filter.filters.filter(i => i.isEvent).size; return (
setShowSaveModal(false)} />
} options={options} className={ stl.dropdown } name="funnel" value={ parseInt(funnelId) } // icon={null} onChange={ writeOption } selectOnBlur={false} icon={ } /> -
setShowSaveModal(true)} />} content={ `Edit Funnel` } size="tiny" inverted position="top center" /> deleteFunnel(e, funnel)} className="ml-2 mr-2" />} content={ `Remove Funnel` } size="tiny" inverted position="top center" />
) } export default connect(state => ({ funnel: state.getIn([ 'funnels', 'instance' ]), }), { editFilter, deleteFunnel, fetch, fetchInsights, fetchIssuesFiltered, fetchSessionsFiltered, refresh })(FunnelHeader)