{_list.map((item: any, index: number) => {
diff --git a/frontend/app/components/Session_/OverviewPanel/components/FeatureSelection/FeatureSelection.tsx b/frontend/app/components/Session_/OverviewPanel/components/FeatureSelection/FeatureSelection.tsx
new file mode 100644
index 000000000..c4bb3905e
--- /dev/null
+++ b/frontend/app/components/Session_/OverviewPanel/components/FeatureSelection/FeatureSelection.tsx
@@ -0,0 +1,73 @@
+import React from 'react';
+import { Checkbox } from 'UI';
+
+const NETWORK = 'NETWORK';
+const ERRORS = 'ERRORS';
+const EVENTS = 'EVENTS';
+const CLICKRAGE = 'CLICK RAGE';
+const PERFORMANCE = 'PERFORMANCE';
+
+interface Props {
+ list: any[];
+ updateList: any;
+}
+function FeatureSelection(props: Props) {
+ const { list } = props;
+
+ return (
+
+ {
+ console.log(e);
+ }}
+ label={NETWORK}
+ />
+ {
+ console.log(e);
+ }}
+ label={ERRORS}
+ />
+ {
+ console.log(e);
+ }}
+ label={EVENTS}
+ />
+ {
+ console.log(e);
+ }}
+ label={CLICKRAGE}
+ />
+ {
+ console.log(e);
+ }}
+ label={PERFORMANCE}
+ />
+
+ );
+}
+
+export default FeatureSelection;
diff --git a/frontend/app/components/Session_/OverviewPanel/components/TimelineScale/TimelineScale.tsx b/frontend/app/components/Session_/OverviewPanel/components/TimelineScale/TimelineScale.tsx
new file mode 100644
index 000000000..e0b4be0b7
--- /dev/null
+++ b/frontend/app/components/Session_/OverviewPanel/components/TimelineScale/TimelineScale.tsx
@@ -0,0 +1,14 @@
+import React from 'react';
+
+interface Props {
+
+}
+function TimelineScale(props: Props) {
+ return (
+
+
+
+ );
+}
+
+export default TimelineScale;
\ No newline at end of file
diff --git a/frontend/app/components/Session_/OverviewPanel/components/TimelineScale/index.ts b/frontend/app/components/Session_/OverviewPanel/components/TimelineScale/index.ts
new file mode 100644
index 000000000..9a2302a32
--- /dev/null
+++ b/frontend/app/components/Session_/OverviewPanel/components/TimelineScale/index.ts
@@ -0,0 +1 @@
+export { default } from './TimelineScale';
\ No newline at end of file
diff --git a/frontend/app/components/ui/Checkbox/Checkbox.tsx b/frontend/app/components/ui/Checkbox/Checkbox.tsx
index 0781183b1..2b68ccc97 100644
--- a/frontend/app/components/ui/Checkbox/Checkbox.tsx
+++ b/frontend/app/components/ui/Checkbox/Checkbox.tsx
@@ -2,19 +2,16 @@ import React from 'react';
import cn from 'classnames';
interface Props {
- classNam?: string;
- label?: string;
- [x: string]: any;
+ classNam?: string;
+ label?: string;
+ [x: string]: any;
}
export default (props: Props) => {
- const { className = '', label = '', ...rest } = props;
- return (
-
- )
-};
\ No newline at end of file
+ const { className = '', label = '', ...rest } = props;
+ return (
+
+ );
+};
diff --git a/frontend/app/components/ui/ErrorDetails/ErrorDetails.js b/frontend/app/components/ui/ErrorDetails/ErrorDetails.js
deleted file mode 100644
index 2a6afdd1e..000000000
--- a/frontend/app/components/ui/ErrorDetails/ErrorDetails.js
+++ /dev/null
@@ -1,65 +0,0 @@
-import React, { useState } from 'react'
-import ErrorFrame from '../ErrorFrame/ErrorFrame'
-import cn from 'classnames';
-import { IconButton, Icon } from 'UI';
-import { connect } from 'react-redux';
-
-const docLink = 'https://docs.openreplay.com/installation/upload-sourcemaps';
-
-function ErrorDetails({ className, name = "Error", message, errorStack, sourcemapUploaded }) {
- const [showRaw, setShowRaw] = useState(false)
- const firstFunc = errorStack.first() && errorStack.first().function
-
- const openDocs = () => {
- window.open(docLink, '_blank');
- }
-
- return (
-
- { !sourcemapUploaded && (
-
-
-
Source maps must be uploaded to OpenReplay to be able to see stack traces.
Learn more.
-
- ) }
-
-
- Stacktrace
-
-
- setShowRaw(false) }
- label="FULL"
- plain={!showRaw}
- primaryText={!showRaw}
- />
- setShowRaw(true) }
- plain={showRaw}
- label="RAW"
- />
-
-
-
- { showRaw &&
-
{name} : {firstFunc ? firstFunc : '?' }
- }
- { errorStack.map((frame, i) => (
-
-
-
- ))
- }
-
- )
-}
-
-ErrorDetails.displayName = "ErrorDetails";
-export default ErrorDetails;
diff --git a/frontend/app/components/ui/ErrorDetails/ErrorDetails.tsx b/frontend/app/components/ui/ErrorDetails/ErrorDetails.tsx
new file mode 100644
index 000000000..331535461
--- /dev/null
+++ b/frontend/app/components/ui/ErrorDetails/ErrorDetails.tsx
@@ -0,0 +1,79 @@
+import React, { useEffect, useState } from 'react';
+import ErrorFrame from '../ErrorFrame/ErrorFrame';
+import { fetchErrorStackList } from 'Duck/sessions';
+import { IconButton, Icon } from 'UI';
+import { connect } from 'react-redux';
+
+const docLink = 'https://docs.openreplay.com/installation/upload-sourcemaps';
+
+interface Props {
+ fetchErrorStackList: any;
+ sourcemapUploaded?: boolean;
+ errorStack?: any;
+ message?: string;
+ sessionId: string;
+ error: any;
+}
+function ErrorDetails(props: Props) {
+ const { error, sessionId, message = '', errorStack = [], sourcemapUploaded = false } = props;
+ const [showRaw, setShowRaw] = useState(false);
+ const firstFunc = errorStack.first() && errorStack.first().function;
+
+ const openDocs = () => {
+ window.open(docLink, '_blank');
+ };
+
+ useEffect(() => {
+ props.fetchErrorStackList(sessionId, error.errorId);
+ }, []);
+
+ return (
+
+ {!sourcemapUploaded && (
+
+
+
+ Source maps must be uploaded to OpenReplay to be able to see stack traces.{' '}
+
+ Learn more.
+
+
+
+ )}
+
+
Stacktrace
+
+ setShowRaw(false)} label="FULL" plain={!showRaw} primaryText={!showRaw} />
+ setShowRaw(true)} plain={showRaw} label="RAW" />
+
+
+
+
{error.name}
+
{message}
+
+ {showRaw && (
+
+ {error.name} : {firstFunc ? firstFunc : '?'}
+
+ )}
+ ;
+ {errorStack.map((frame: any, i: any) => (
+
+
+
+ ))}
+
+ );
+}
+
+ErrorDetails.displayName = 'ErrorDetails';
+export default connect(
+ (state: any) => ({
+ errorStack: state.getIn(['sessions', 'errorStack']),
+ sessionId: state.getIn(['sessions', 'current', 'sessionId']),
+ }),
+ { fetchErrorStackList }
+)(ErrorDetails);