openreplay/frontend/app/components/shared/CustomMetrics/CustomMetrics.tsx
2022-01-23 23:25:28 +05:30

49 lines
No EOL
1.4 KiB
TypeScript

import CustomMetricWidgetPreview from 'App/components/Dashboard/Widgets/CustomMetricsWidgets/CustomMetricWidgetPreview';
import React, { useState } from 'react';
import { IconButton, SlideModal } from 'UI'
import CustomMetricForm from './CustomMetricForm';
import { connect } from 'react-redux';
import { edit } from 'Duck/customMetrics';
interface Props {
metric: any;
edit: (metric) => void;
}
function CustomMetrics(props: Props) {
const { metric } = props;
const [showModal, setShowModal] = useState(false);
const onClose = () => {
setShowModal(false);
}
return (
<div className="self-start">
<IconButton outline icon="plus" label="CREATE METRIC" onClick={() => {
setShowModal(true);
// props.edit({ name: 'New', series: [{ name: '', filter: {} }], type: '' });
}} />
<SlideModal
title={
<div className="flex items-center">
<span className="mr-3">{ 'Custom Metric' }</span>
</div>
}
isDisplayed={ showModal }
onClose={ () => setShowModal(false)}
// size="medium"
content={ (showModal || metric) && (
<div style={{ backgroundColor: '#f6f6f6' }}>
<CustomMetricForm metric={metric} />
</div>
)}
/>
</div>
);
}
export default connect(state => ({
metric: state.getIn(['customMetrics', 'instance']),
alertInstance: state.getIn(['alerts', 'instance']),
}), { edit })(CustomMetrics);