diff --git a/frontend/app/components/Dashboard/Widgets/CustomMetricsWidgets/CustomMetriLineChart/CustomMetriLineChart.tsx b/frontend/app/components/Dashboard/Widgets/CustomMetricsWidgets/CustomMetriLineChart/CustomMetriLineChart.tsx
new file mode 100644
index 000000000..9f68abf3a
--- /dev/null
+++ b/frontend/app/components/Dashboard/Widgets/CustomMetricsWidgets/CustomMetriLineChart/CustomMetriLineChart.tsx
@@ -0,0 +1,56 @@
+import React from 'react'
+import { Styles } from '../../common';
+import { ResponsiveContainer, XAxis, YAxis, CartesianGrid, Area, Tooltip } from 'recharts';
+import { LineChart, Line, Legend } from 'recharts';
+
+interface Props {
+ data: any;
+ params: any;
+ seriesMap: any;
+ colors: any;
+}
+function CustomMetriLineChart(props: Props) {
+ const { data, params, seriesMap, colors } = props;
+ return (
+
+
+
+
+
+
+
+ { seriesMap.map((key, index) => (
+
+ ))}
+
+
+ )
+}
+
+export default CustomMetriLineChart
diff --git a/frontend/app/components/Dashboard/Widgets/CustomMetricsWidgets/CustomMetriLineChart/index.ts b/frontend/app/components/Dashboard/Widgets/CustomMetricsWidgets/CustomMetriLineChart/index.ts
new file mode 100644
index 000000000..f05a16274
--- /dev/null
+++ b/frontend/app/components/Dashboard/Widgets/CustomMetricsWidgets/CustomMetriLineChart/index.ts
@@ -0,0 +1 @@
+export { default } from './CustomMetriLineChart';
\ No newline at end of file
diff --git a/frontend/app/components/Dashboard/Widgets/CustomMetricsWidgets/CustomMetriPercentage/CustomMetriPercentage.tsx b/frontend/app/components/Dashboard/Widgets/CustomMetricsWidgets/CustomMetriPercentage/CustomMetriPercentage.tsx
new file mode 100644
index 000000000..7138f2b1c
--- /dev/null
+++ b/frontend/app/components/Dashboard/Widgets/CustomMetricsWidgets/CustomMetriPercentage/CustomMetriPercentage.tsx
@@ -0,0 +1,16 @@
+import React from 'react'
+
+interface Props {
+ data: any;
+}
+function CustomMetriPercentage(props: Props) {
+ const { data } = props;
+ return (
+
Timeseries
diff --git a/frontend/app/components/shared/DropdownPlain/DropdownPlain.css b/frontend/app/components/shared/DropdownPlain/DropdownPlain.css
index 87e26bc68..1bf3e305c 100644
--- a/frontend/app/components/shared/DropdownPlain/DropdownPlain.css
+++ b/frontend/app/components/shared/DropdownPlain/DropdownPlain.css
@@ -4,6 +4,8 @@
border-radius: 3px;
color: $gray-darkest;
font-weight: 500;
+ background-color: white;
+ border: solid thin $gray-light;
&:hover {
background-color: $gray-light;
}
diff --git a/frontend/app/components/shared/DropdownPlain/DropdownPlain.tsx b/frontend/app/components/shared/DropdownPlain/DropdownPlain.tsx
index d3313ac3e..07d64aa5d 100644
--- a/frontend/app/components/shared/DropdownPlain/DropdownPlain.tsx
+++ b/frontend/app/components/shared/DropdownPlain/DropdownPlain.tsx
@@ -12,7 +12,7 @@ interface Props {
}
export default function DropdownPlain(props: Props) {
- const { name = "sort", value, options, icon = "chevron-down", direction = "left" } = props;
+ const { name = "sort", value, options, icon = "chevron-down", direction = "right" } = props;
return (
{ list.map(item => (
@@ -27,7 +27,7 @@ class SegmentSelection extends React.Component {
data-active={ this.props.value && this.props.value.value === item.value }
onClick={ () => !item.disabled && this.setActiveItem(item) }
>
- { item.icon && }
+ { item.icon && }
{ item.name }
}
diff --git a/frontend/app/components/ui/SegmentSelection/segmentSelection.css b/frontend/app/components/ui/SegmentSelection/segmentSelection.css
index 20007b010..197627c9f 100644
--- a/frontend/app/components/ui/SegmentSelection/segmentSelection.css
+++ b/frontend/app/components/ui/SegmentSelection/segmentSelection.css
@@ -12,13 +12,13 @@
padding: 10px;
flex: 1;
text-align: center;
- border-right: solid thin $teal;
cursor: pointer;
background-color: $gray-lightest;
display: flex;
align-items: center;
justify-content: center;
white-space: nowrap;
+ border-right: solid thin $gray-light;
& span svg {
fill: $gray-medium;
@@ -53,6 +53,7 @@
& .item {
color: $teal;
background-color: white;
+ border-right: solid thin $teal;
&[data-active=true] {
background-color: $teal;
color: white;
@@ -65,6 +66,6 @@
}
.extraSmall .item {
- padding: 0 4px;
+ padding: 6px !important;
font-size: 12px;
}
\ No newline at end of file
diff --git a/frontend/app/constants/filterOptions.js b/frontend/app/constants/filterOptions.js
index 215832c1a..9884d7851 100644
--- a/frontend/app/constants/filterOptions.js
+++ b/frontend/app/constants/filterOptions.js
@@ -61,7 +61,7 @@ export const metricTypes = [
export const metricOf = [
{ text: 'Session Count', value: 'sessionCount', key: 'timeseries' },
- { text: 'Users', value: 'users', key: 'table' },
+ { text: 'Users', value: 'USERID', key: 'table' },
{ text: 'Rage Click', value: 'rageClick', key: 'table' },
{ text: 'Dead Click', value: 'deadClick', key: 'table' },
{ text: 'Browser', value: 'browser', key: 'table' },
diff --git a/frontend/app/svg/icons/graph-up-arrow.svg b/frontend/app/svg/icons/graph-up-arrow.svg
new file mode 100644
index 000000000..fd582e467
--- /dev/null
+++ b/frontend/app/svg/icons/graph-up-arrow.svg
@@ -0,0 +1,3 @@
+
\ No newline at end of file
diff --git a/frontend/app/svg/icons/hash.svg b/frontend/app/svg/icons/hash.svg
new file mode 100644
index 000000000..4621b1dac
--- /dev/null
+++ b/frontend/app/svg/icons/hash.svg
@@ -0,0 +1,3 @@
+
\ No newline at end of file
diff --git a/frontend/app/types/customMetric.js b/frontend/app/types/customMetric.js
index 902c10a23..9b3585be1 100644
--- a/frontend/app/types/customMetric.js
+++ b/frontend/app/types/customMetric.js
@@ -27,9 +27,9 @@ export const FilterSeries = Record({
export default Record({
metricId: undefined,
name: 'Series',
- metricType: 'timeseries',
- metricOf: 'sessionCount',
- viewType: 'sessionCount',
+ metricType: 'table',
+ metricOf: 'USERID',
+ viewType: 'lineChart',
series: List(),
isPublic: true,
startDate: '',