diff --git a/frontend/app/components/Dashboard/Widgets/CustomMetricsWidgets/ClickMapCard/ClickMapCard.tsx b/frontend/app/components/Dashboard/Widgets/CustomMetricsWidgets/ClickMapCard/ClickMapCard.tsx index c3e9f4ba4..61b1c035b 100644 --- a/frontend/app/components/Dashboard/Widgets/CustomMetricsWidgets/ClickMapCard/ClickMapCard.tsx +++ b/frontend/app/components/Dashboard/Widgets/CustomMetricsWidgets/ClickMapCard/ClickMapCard.tsx @@ -1,17 +1,31 @@ import React from 'react' import { useStore } from 'App/mstore' import { observer } from 'mobx-react-lite' -import { toJS } from 'mobx' -// import WebPlayer from "Player/web/WebPlayer"; +import WebPlayer from 'App/components/Session/WebPlayer' // inject mob file from chalice +import { connect } from 'react-redux' +import { setCustomSession } from 'App/duck/sessions' -function ClickMapCard() { +function ClickMapCard({ setCustomSession, visitedEvents }) { const { metricStore } = useStore() + React.useEffect(() => { + if (metricStore.instance.data.mobsUrl) { + setCustomSession(metricStore.instance.data) + } + }, [metricStore.instance.data.mobsUrl]) - // console.log(toJS(metricStore.instance)) + if (!metricStore.instance.data.mobsUrl) return
looking for session
+ console.log(visitedEvents, metricStore.instance.data.events) + if (!visitedEvents || !visitedEvents.length) { + return
loading
+ } return ( -
this is a card
+
+ +
) } -export default observer(ClickMapCard) +export default connect((state: any) => ({ visitedEvents: state.getIn(['sessions', 'visitedEvents']) }), {setCustomSession})( + observer(ClickMapCard) +) diff --git a/frontend/app/components/Dashboard/components/WidgetForm/WidgetForm.tsx b/frontend/app/components/Dashboard/components/WidgetForm/WidgetForm.tsx index bc3a67651..a081cdbc5 100644 --- a/frontend/app/components/Dashboard/components/WidgetForm/WidgetForm.tsx +++ b/frontend/app/components/Dashboard/components/WidgetForm/WidgetForm.tsx @@ -5,17 +5,15 @@ import { useStore } from 'App/mstore'; import { observer } from 'mobx-react-lite'; import { Button, Icon } from 'UI'; import FilterSeries from '../FilterSeries'; -import { confirm, Tooltip, Input } from 'UI'; +import { confirm, Tooltip } from 'UI'; import Select from 'Shared/Select'; import { withSiteId, dashboardMetricDetails, metricDetails } from 'App/routes'; import MetricTypeDropdown from './components/MetricTypeDropdown'; import MetricSubtypeDropdown from './components/MetricSubtypeDropdown'; import { TIMESERIES, TABLE, CLICKMAP } from 'App/constants/card'; -import { pageUrlOperators } from 'App/constants/filterOptions'; -import FilterAutoComplete from 'Shared/Filters/FilterAutoComplete'; import { clickmapFilter } from 'App/types/filter/newFilter'; import { toJS } from 'mobx'; -import { List } from 'immutable'; +import Period, { LAST_30_DAYS } from 'Types/app/period'; interface Props { history: any; @@ -43,6 +41,7 @@ function WidgetForm(props: Props) { const timeseriesOptions = metricOf.filter((i) => i.type === 'timeseries'); const tableOptions = metricOf.filter((i) => i.type === 'table'); const isTable = metric.metricType === 'table'; + const isClickmap = metric.metricType === CLICKMAP const isFunnel = metric.metricType === 'funnel'; const canAddSeries = metric.series.length < 3; const eventsLength = metric.series[0].filter.filters.filter((i: any) => i.isEvent).length; @@ -77,11 +76,16 @@ function WidgetForm(props: Props) { } if (value === CLICKMAP) { obj['viewType'] = 'chart'; + // @ts-ignore + const { start, end } = Period({ rangeName: LAST_30_DAYS }) + obj["startTimestamp"] = start; + obj["endTimestamp"] = end; + if (metric.series[0].filter.filters.length < 1) { metric.series[0].filter.addFilter({ ...clickmapFilter, value: [''], - },) + }) } } } @@ -179,8 +183,8 @@ function WidgetForm(props: Props) {
- {`${isTable || isFunnel ? 'Filter by' : 'Chart Series'}`} - {!isTable && !isFunnel && ( + {`${isTable || isFunnel || isClickmap ? 'Filter by' : 'Chart Series'}`} + {!isTable && !isFunnel && !isClickmap && (