From 9e91375632c7b61564bd59e3ce2bbd3a4c39edde Mon Sep 17 00:00:00 2001
From: Raj Kamal Singh <1133322+rkssisodiya@users.noreply.github.com>
Date: Sun, 8 Oct 2023 14:49:16 +0530
Subject: [PATCH] Logs pipeline editor - filter preview (#3683)
* feat: get started with Logs Filter Preview
* chore: rename PipelineFilterPreview -> PipelineFilterSummary
* chore: initial styles for pipeline filter preview
* feat: wire up logs fetching for pipeline filter preview
* feat: show empty preview if filter is empty
* feat: get logs preview table display started
* feat: use simple div + style based display for logs preview
* feat: log preview item expand action
* feat: move preview below filter and make filter last i/p in pipeline form
* feat: add duration selector for logs filter preview
* feat: add matched logs count to pipeline filter preview
* chore: reorganize preview logs list into its own file
* chore: cleanup
* chore: revert type export from useGetQueryRange.ts
* chore: get all tests passing
* chore: address review comments: import cloneDeep directly
* chore: address review comments: avoid inline handler func, return JSX.Element | null
* chore: address review comments: move preview interval selector helper into its own folder
* chore: address feedback: fix cloneDeep import
* chore: address feedback: avoid inline handler and remove eslint supression
---
.../index.tsx} | 35 +++++++--
.../FormFields/FilterInput/styles.scss | 3 +
.../Preview/LogsFilterPreview/index.tsx | 43 +++++++++++
.../Preview/LogsFilterPreview/styles.scss | 18 +++++
.../Preview/components/LogsList/index.tsx | 52 +++++++++++++
.../Preview/components/LogsList/styles.scss | 46 +++++++++++
.../components/LogsCountInInterval/index.tsx | 55 ++++++++++++++
.../LogsCountInInterval/styles.scss | 3 +
.../PreviewIntervalSelector/index.tsx | 45 +++++++++++
.../PreviewIntervalSelector/styles.scss | 4 +
.../Preview/components/SampleLogs/index.tsx | 76 +++++++++++++++++++
.../Preview/components/SampleLogs/styles.scss | 7 ++
.../index.tsx | 8 +-
.../styles.scss | 0
.../TableComponents/index.tsx | 4 +-
.../PipelinePage/PipelineListsView/config.ts | 16 ++--
.../TopNav/DateTimeSelection/config.ts | 6 +-
17 files changed, 398 insertions(+), 23 deletions(-)
rename frontend/src/container/PipelinePage/PipelineListsView/AddNewPipeline/FormFields/{FilterInput.tsx => FilterInput/index.tsx} (64%)
create mode 100644 frontend/src/container/PipelinePage/PipelineListsView/AddNewPipeline/FormFields/FilterInput/styles.scss
create mode 100644 frontend/src/container/PipelinePage/PipelineListsView/Preview/LogsFilterPreview/index.tsx
create mode 100644 frontend/src/container/PipelinePage/PipelineListsView/Preview/LogsFilterPreview/styles.scss
create mode 100644 frontend/src/container/PipelinePage/PipelineListsView/Preview/components/LogsList/index.tsx
create mode 100644 frontend/src/container/PipelinePage/PipelineListsView/Preview/components/LogsList/styles.scss
create mode 100644 frontend/src/container/PipelinePage/PipelineListsView/Preview/components/PreviewIntervalSelector/components/LogsCountInInterval/index.tsx
create mode 100644 frontend/src/container/PipelinePage/PipelineListsView/Preview/components/PreviewIntervalSelector/components/LogsCountInInterval/styles.scss
create mode 100644 frontend/src/container/PipelinePage/PipelineListsView/Preview/components/PreviewIntervalSelector/index.tsx
create mode 100644 frontend/src/container/PipelinePage/PipelineListsView/Preview/components/PreviewIntervalSelector/styles.scss
create mode 100644 frontend/src/container/PipelinePage/PipelineListsView/Preview/components/SampleLogs/index.tsx
create mode 100644 frontend/src/container/PipelinePage/PipelineListsView/Preview/components/SampleLogs/styles.scss
rename frontend/src/container/PipelinePage/PipelineListsView/TableComponents/{PipelineFilterPreview => PipelineFilterSummary}/index.tsx (72%)
rename frontend/src/container/PipelinePage/PipelineListsView/TableComponents/{PipelineFilterPreview => PipelineFilterSummary}/styles.scss (100%)
diff --git a/frontend/src/container/PipelinePage/PipelineListsView/AddNewPipeline/FormFields/FilterInput.tsx b/frontend/src/container/PipelinePage/PipelineListsView/AddNewPipeline/FormFields/FilterInput/index.tsx
similarity index 64%
rename from frontend/src/container/PipelinePage/PipelineListsView/AddNewPipeline/FormFields/FilterInput.tsx
rename to frontend/src/container/PipelinePage/PipelineListsView/AddNewPipeline/FormFields/FilterInput/index.tsx
index ef6b93f11c..94466aa197 100644
--- a/frontend/src/container/PipelinePage/PipelineListsView/AddNewPipeline/FormFields/FilterInput.tsx
+++ b/frontend/src/container/PipelinePage/PipelineListsView/AddNewPipeline/FormFields/FilterInput/index.tsx
@@ -1,3 +1,5 @@
+import './styles.scss';
+
import { Form } from 'antd';
import { initialQueryBuilderFormValuesMap } from 'constants/queryBuilder';
import QueryBuilderSearch from 'container/QueryBuilder/filters/QueryBuilderSearch';
@@ -5,9 +7,10 @@ import isEqual from 'lodash-es/isEqual';
import { useTranslation } from 'react-i18next';
import { TagFilter } from 'types/api/queryBuilder/queryBuilderData';
-import { ProcessorFormField } from '../../AddNewProcessor/config';
-import { formValidationRules } from '../../config';
-import { FormLabelStyle } from '../styles';
+import { ProcessorFormField } from '../../../AddNewProcessor/config';
+import { formValidationRules } from '../../../config';
+import LogsFilterPreview from '../../../Preview/LogsFilterPreview';
+import { FormLabelStyle } from '../../styles';
function TagFilterInput({
value,
@@ -41,9 +44,27 @@ interface TagFilterInputProps {
placeholder: string;
}
+function TagFilterInputWithLogsResultPreview({
+ value,
+ onChange,
+ placeholder,
+}: TagFilterInputProps): JSX.Element {
+ return (
+ <>
+