diff --git a/.env b/.env
index b8fe071f7..eb9bcae21 100644
--- a/.env
+++ b/.env
@@ -1,4 +1,4 @@
ESLINT_NO_DEV_ERRORS=true
TSC_COMPILE_ON_ERROR=true
-
+REACT_APP_DATA_SOURCE_IS_ENABLE=$DATA_SOURCE_IS_ENABLE
diff --git a/package-lock.json b/package-lock.json
index 6cd0b0063..9c0ddcb26 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -7119,9 +7119,9 @@
}
},
"apexcharts": {
- "version": "3.35.2",
- "resolved": "https://registry.npmjs.org/apexcharts/-/apexcharts-3.35.2.tgz",
- "integrity": "sha512-VOSb25mrcSv/JjaWKjnasL8277cqnA0Gp20uV1+rlgE4U6j44fdTYW850Powl+S8RkXd/lPwzBB2jvKkEOHl0Q==",
+ "version": "3.36.3",
+ "resolved": "https://registry.npmjs.org/apexcharts/-/apexcharts-3.36.3.tgz",
+ "integrity": "sha512-8/FXEs0ohXMff07Gv28XjhPwEJphIUdq2/wii/pcvi54Tw6z1mjrV8ydN8rlWi/ve8BAPBefJkLmRWv7UOBsLw==",
"requires": {
"svg.draggable.js": "^2.2.2",
"svg.easing.js": "^2.0.0",
@@ -26491,7 +26491,7 @@
"svg.easing.js": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/svg.easing.js/-/svg.easing.js-2.0.0.tgz",
- "integrity": "sha1-iqmUawqOJ4V6XEChDrpAkeVpHxI=",
+ "integrity": "sha512-//ctPdJMGy22YoYGV+3HEfHbm6/69LJUTAqI2/5qBvaNHZ9uUFVC82B0Pl299HzgH13rKrBgi4+XyXXyVWWthA==",
"requires": {
"svg.js": ">=2.3.x"
}
@@ -26499,7 +26499,7 @@
"svg.filter.js": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/svg.filter.js/-/svg.filter.js-2.0.2.tgz",
- "integrity": "sha1-kQCOFROJ3ZIwd5/L5uLJo2LRwgM=",
+ "integrity": "sha512-xkGBwU+dKBzqg5PtilaTb0EYPqPfJ9Q6saVldX+5vCRy31P6TlRCP3U9NxH3HEufkKkpNgdTLBJnmhDHeTqAkw==",
"requires": {
"svg.js": "^2.2.5"
}
diff --git a/package.json b/package.json
index 59b29791e..d988bdce4 100644
--- a/package.json
+++ b/package.json
@@ -41,8 +41,8 @@
"react-collapse": "^5.1.0",
"qs": "^6.10.1",
"virtualizedtableforantd4": "^1.1.2",
- "apexcharts": "^3.28.1",
- "react-apexcharts": "^1.3.9",
+ "apexcharts": "^3.36.3",
+ "react-apexcharts": "^1.4.0",
"isnumber": "^1.0.0"
},
"devDependencies": {
diff --git a/src/Routes/Base/Header/Settings/SetDefaultTime.js b/src/Routes/Base/Header/Settings/SetDefaultTime.js
new file mode 100644
index 000000000..d5248c3bf
--- /dev/null
+++ b/src/Routes/Base/Header/Settings/SetDefaultTime.js
@@ -0,0 +1,68 @@
+import { Select as AntSelect, Typography } from 'antd';
+import { FlexBox } from 'components/common';
+import React, { useCallback } from 'react';
+import styled from 'styled-components';
+import { dateTimeDefaultVar, instanceFiltersVar } from 'cache';
+import { useReactiveVar } from '@apollo/client';
+import moment from 'moment';
+import { LOCAL_STORAGE_KEYS } from 'const';
+
+const Select = styled(AntSelect)`
+ width: 190px;
+`;
+
+// 1 hour / 24 hours/ 7 days/ 1 month
+
+const OptionDefaultTime = [
+ {
+ value: 1,
+ label: '1 hour',
+ },
+ {
+ value: 24,
+ label: '24 hour',
+ },
+ {
+ value: 168,
+ label: '7 days',
+ },
+ {
+ value: 720,
+ label: '1 month',
+ },
+];
+
+const SetDefaultTime = () => {
+ const dateTimeDefault = useReactiveVar(dateTimeDefaultVar);
+ const instanceFilters = useReactiveVar(instanceFiltersVar);
+
+ const onChange = useCallback(
+ itemSelect => {
+ window.localStorage.setItem(
+ LOCAL_STORAGE_KEYS.LOCAL_STORAGE_KEY_TIME,
+ itemSelect
+ );
+ const newDefTime = moment().add(-itemSelect, 'hours');
+
+ dateTimeDefaultVar({ hour: parseInt(itemSelect, 10), time: newDefTime });
+
+ instanceFilters.jobs.datesRange.from = newDefTime;
+ instanceFilters.jobs.datesRange.to = null;
+ instanceFiltersVar({ ...instanceFilters });
+ },
+ [instanceFilters]
+ );
+
+ return (
+
+ Filter Default Time
+
+
+ );
+};
+
+export default React.memo(SetDefaultTime);
diff --git a/src/Routes/Base/Header/Settings/Settings.react.js b/src/Routes/Base/Header/Settings/Settings.react.js
index 9713250d3..85449027a 100644
--- a/src/Routes/Base/Header/Settings/Settings.react.js
+++ b/src/Routes/Base/Header/Settings/Settings.react.js
@@ -3,6 +3,8 @@ import React from 'react';
import GraphDirection from './GraphDirection.react';
import LogSource from './LogSource.react';
import LogMode from './LogMode.react';
+import SetDefaultTime from './SetDefaultTime';
+
// import TypesSelect from './TypesSelect.react';
const Settings = () => (
@@ -10,6 +12,7 @@ const Settings = () => (
+
{/* */}
);
diff --git a/src/Routes/Base/SidebarLeft/index.js b/src/Routes/Base/SidebarLeft/index.js
index 178960773..60647aa99 100644
--- a/src/Routes/Base/SidebarLeft/index.js
+++ b/src/Routes/Base/SidebarLeft/index.js
@@ -19,7 +19,11 @@ import { ReactComponent as LogoFish } from 'images/logo-fish.svg';
import { ReactComponent as LogoTitle } from 'images/logo-title.svg';
import { ReactComponent as PipelineIcon } from 'images/pipeline-icon.svg';
-import { instanceCounterVar, instanceFiltersVar } from 'cache';
+import {
+ instanceCounterVar,
+ instanceFiltersVar,
+ configViewEnvVar,
+} from 'cache';
import { Theme, COLOR_LAYOUT } from 'styles';
import { selectors } from 'reducers';
// import { useDiscovery } from 'hooks/graphql';
@@ -104,17 +108,6 @@ const instanceCounterAdapter = obj => ({
[LEFT_SIDEBAR_NAMES.DATASOURCES]: obj.dataSources,
});
-const menuItems = [
- [LEFT_SIDEBAR_NAMES.JOBS, JobsIcon, '/jobs'],
- [LEFT_SIDEBAR_NAMES.QUEUE, QueueIcon, '/queue'],
- [LEFT_SIDEBAR_NAMES.PIPELINES, PipelineIcon, '/pipelines'],
- [LEFT_SIDEBAR_NAMES.ALGORITHMS, AlgorithmIcon, '/algorithms'],
- [LEFT_SIDEBAR_NAMES.DATASOURCES, DataSourceIcon, '/datasources'],
-
- // [LEFT_SIDEBAR_NAMES.WORKERS, WorkerIcon, '/workers'],
- // [LEFT_SIDEBAR_NAMES.DRIVERS, DriversIcon, '/drivers'],
-];
-
const Name = styled.span`
text-transform: capitalize;
`;
@@ -125,6 +118,30 @@ const BadgeStyle = styled(Badge)`
`;
const SidebarLeft = () => {
+ // add datasources when this enable
+
+ const configViewEnv = useReactiveVar(configViewEnvVar);
+
+ const menuItems = useMemo(() => {
+ const itemsMenu = [
+ [LEFT_SIDEBAR_NAMES.JOBS, JobsIcon, '/jobs'],
+ [LEFT_SIDEBAR_NAMES.QUEUE, QueueIcon, '/queue'],
+ [LEFT_SIDEBAR_NAMES.PIPELINES, PipelineIcon, '/pipelines'],
+ [LEFT_SIDEBAR_NAMES.ALGORITHMS, AlgorithmIcon, '/algorithms'],
+ // [LEFT_SIDEBAR_NAMES.WORKERS, WorkerIcon, '/workers'],
+ // [LEFT_SIDEBAR_NAMES.DRIVERS, DriversIcon, '/drivers'],
+ ];
+ if (configViewEnv.dataSources) {
+ itemsMenu.push([
+ LEFT_SIDEBAR_NAMES.DATASOURCES,
+ DataSourceIcon,
+ '/datasources',
+ ]);
+ }
+
+ return itemsMenu;
+ }, []);
+
// useDiscovery();
const { counters } = useCounters();
instanceCounterVar({
@@ -147,7 +164,15 @@ const SidebarLeft = () => {
const items = [];
menuItems.forEach(([name, component, path]) => {
- const isFilters = isValuesFiltersEmpty(instanceFilters[name]);
+ const objectsFilters = { ...instanceFilters[name] };
+
+ if (name === 'jobs') {
+ delete objectsFilters.experimentName;
+ delete objectsFilters.datesRange;
+ }
+
+ const isFilters = isValuesFiltersEmpty(objectsFilters);
+
items.push({
label: (
diff --git a/src/Routes/SidebarRight/AddPipeline/Steps/Nodes/index.js b/src/Routes/SidebarRight/AddPipeline/Steps/Nodes/index.js
index 1ca957107..bfb9c76e8 100644
--- a/src/Routes/SidebarRight/AddPipeline/Steps/Nodes/index.js
+++ b/src/Routes/SidebarRight/AddPipeline/Steps/Nodes/index.js
@@ -7,6 +7,8 @@ import { Button, Radio, Input, Tag } from 'antd';
import { FlexBox } from 'components/common';
import { NODE_KINDS_COLOR } from 'styles';
import { KIND_NODE_SHORT_NAME } from 'const';
+import { configViewEnvVar } from 'cache';
+import { useReactiveVar } from '@apollo/client';
import AlgorithmNode from './Algorithms';
import DataSourceNode from './DataSource';
import GatewayNode from './Gateway';
@@ -142,7 +144,7 @@ const Nodes = ({ style }) => {
isStreamingPipeline,
isRunPipeline,
} = useWizardContext();
-
+ const configViewEnv = useReactiveVar(configViewEnvVar);
const [ids, appendKey, dropKey] = useIds(Object.keys(initialState.nodes));
const [activeNodeId, setActiveNodeId] = useState(ids[0]);
@@ -249,7 +251,10 @@ const Nodes = ({ style }) => {
buttonStyle="solid"
style={{ display: 'flex', alignItems: 'center' }}>
Algorithm
- DataSource
+
+ {configViewEnv.dataSources && (
+ DataSource
+ )}
{isStreamingPipeline && (
Gateway
diff --git a/src/Routes/SidebarRight/AddPipeline/Steps/Options/SliderNumber.js b/src/Routes/SidebarRight/AddPipeline/Steps/Options/SliderNumber.js
index 9d2521263..0a359c0f0 100644
--- a/src/Routes/SidebarRight/AddPipeline/Steps/Options/SliderNumber.js
+++ b/src/Routes/SidebarRight/AddPipeline/Steps/Options/SliderNumber.js
@@ -21,7 +21,11 @@ const SliderNumber = forwardRef(
return (
-
+
diff --git a/src/Routes/SidebarRight/Bar.js b/src/Routes/SidebarRight/Bar.js
index df70f60ef..7ecf4a1a5 100644
--- a/src/Routes/SidebarRight/Bar.js
+++ b/src/Routes/SidebarRight/Bar.js
@@ -1,10 +1,13 @@
import React, { useCallback, useMemo } from 'react';
+import { configViewEnvVar } from 'cache';
import PropTypes from 'prop-types';
import styled from 'styled-components';
import Icon from '@ant-design/icons';
import { Layout, Menu, Badge } from 'antd';
import { useHistory, useLocation, useParams } from 'react-router-dom';
import { useErrorLogs, useStats, useStorage } from 'hooks/graphql';
+import { useReactiveVar } from '@apollo/client';
+import { RIGHT_SIDEBAR_NAMES } from 'const';
// import useStorage from 'hooks/useStorage';
import {
getColorStatus,
@@ -29,6 +32,9 @@ const topMargin = { marginTop: '20%' };
const noItemSelect = [];
const SidebarRight = ({ isTop, className }) => {
+ // add datasources when this enable
+
+ const configViewEnv = useReactiveVar(configViewEnvVar);
const { root } = useParams();
const history = useHistory();
const location = useLocation();
@@ -38,7 +44,9 @@ const SidebarRight = ({ isTop, className }) => {
const { storage } = useStorage();
const { top, bottom } = useMemo(
() => ({
- top: topActions,
+ top: configViewEnv.dataSources
+ ? topActions
+ : topActions.filter(x => x.name !== RIGHT_SIDEBAR_NAMES.ADD_DATASOURCE),
bottom: getBottomActions({
warnings: totalNewWarnings,
cpuStatus: getColorStatus(cpu),
diff --git a/src/Routes/Tables/DataSources/EditDrawer/Body/VersionSelect.js b/src/Routes/Tables/DataSources/EditDrawer/Body/VersionSelect.js
index 059fdd03e..a63383abf 100644
--- a/src/Routes/Tables/DataSources/EditDrawer/Body/VersionSelect.js
+++ b/src/Routes/Tables/DataSources/EditDrawer/Body/VersionSelect.js
@@ -202,9 +202,7 @@ const Versions = ({
}
}, [snapshotName, dataSource]);
const hasMissingSnapshot = snapshotName && !activeSnapshot;
- // console.log("Selector versionsCollection",versionsCollection,isPending)
- // console.log("Selector dataSource",dataSource)
- // console.log("Selector activeSnapshot",activeSnapshot,hasMissingSnapshot)
+
return (
<>
{
{isValidGraph ? (
showGraph ? (
- {console.log(adaptedGraph, events)}
{
const { dataSource } = props;
@@ -23,6 +22,7 @@ const QueryDateChart = props => {
const data = {
// option chart
options: {
+ timezone: '',
grid: {
show: false,
},
@@ -104,13 +104,14 @@ const QueryDateChart = props => {
},
xaxis: {
type: 'datetime',
-
+ labels: {
+ datetimeUTC: false,
+ },
categories:
_histogram && _histogram.sections && _histogram.sections.length > 0
- ? _histogram?.sections?.map(s =>
- moment(s).utc(moment(s).format('Z')).format()
- )
+ ? _histogram?.sections?.map(s => new Date(s).toISOString())
: [],
+ // ? _histogram?.sections?.map(s => moment(s).utc(moment(s).format('Z')).format()): [],
// categories: _histogram && _histogram.sections && _histogram.sections.length > 0 ? _histogram?.sections?.map(s => new Date(s).toLocaleString()) : [],
},
legend: {
diff --git a/src/Routes/Tables/Jobs/QueryTable/QueryForm.js b/src/Routes/Tables/Jobs/QueryTable/QueryForm.js
index b4d3d5309..c88938c5c 100644
--- a/src/Routes/Tables/Jobs/QueryTable/QueryForm.js
+++ b/src/Routes/Tables/Jobs/QueryTable/QueryForm.js
@@ -9,8 +9,6 @@ import { FiltersForms } from 'styles';
import { RangePickerNow } from 'components/common';
import { isPinActiveJobVar } from 'cache';
-const DateFormat = 'YYYY-MM-DD HH:mm';
-
const QueryForm = ({ onSubmit, params, zoomDate }) => {
const [form] = Form.useForm();
const isPinActiveJobs = useReactiveVar(isPinActiveJobVar);
@@ -25,8 +23,8 @@ const QueryForm = ({ onSubmit, params, zoomDate }) => {
form.setFieldsValue({
time: {
datesRange: {
- from: moment(params.datesRange.from, DateFormat),
- to: moment(params.datesRange.to, DateFormat),
+ from: moment(params.datesRange.from),
+ to: moment(params.datesRange.to),
},
},
});
@@ -51,7 +49,7 @@ const QueryForm = ({ onSubmit, params, zoomDate }) => {
} else {
form.resetFields(['pipelineStatus']);
}
- }, [params, zoomDate]);
+ }, [params]);
const onFinish = values => {
onSubmit(values);
@@ -108,7 +106,11 @@ const QueryForm = ({ onSubmit, params, zoomDate }) => {
onFinish={onFinish}
spacearound={1}>
-
+
{
const instanceFilters = useReactiveVar(instanceFiltersVar);
const filterToggeled = useReactiveVar(filterToggeledVar);
const isPinActiveJob = useReactiveVar(isPinActiveJobVar);
+ const dateTimeDefault = useReactiveVar(dateTimeDefaultVar);
const metaMode = useReactiveVar(metaVar);
const [dataSourceGraph, setDataSourceGraph] = useState([]);
@@ -81,6 +83,7 @@ const useJobsFunctionsLimit = () => {
instanceFilters.jobs?.datesRange?.from,
instanceFilters.jobs?.datesRange?.to,
metaMode?.experimentName,
+ dateTimeDefault.hour,
]);
// all limit Jobs
@@ -248,6 +251,10 @@ const useJobsFunctionsLimit = () => {
onFetchMore();
}
});
+
+ // set default time in first
+ instanceFilters.jobs.datesRange.from = dateTimeDefault.time;
+ instanceFiltersVar({ ...instanceFilters });
}, []);
return {
diff --git a/src/cache.js b/src/cache.js
index 3b856c81f..dfb5062e4 100644
--- a/src/cache.js
+++ b/src/cache.js
@@ -1,6 +1,22 @@
import { InMemoryCache, makeVar } from '@apollo/client';
import _ from 'lodash';
+import moment from 'moment';
+import { LOCAL_STORAGE_KEYS } from 'const';
+const defTimeFromLocalStorage =
+ parseInt(
+ window.localStorage.getItem(LOCAL_STORAGE_KEYS.LOCAL_STORAGE_KEY_TIME),
+ 10
+ ) || 24;
+export const dateTimeDefaultVar = makeVar({
+ hour: defTimeFromLocalStorage,
+ time: moment().add(-defTimeFromLocalStorage, 'hours'),
+});
+
+export const configViewEnvVar = makeVar({
+ dataSources:
+ process.env.REACT_APP_DATA_SOURCE_IS_ENABLE.toLowerCase() !== 'false',
+});
export const isPinActiveJobVar = makeVar(false);
export const filterToggeledVar = makeVar(true);
export const inactiveModeVar = makeVar(false);
diff --git a/src/components/common/RangePickerNow.js b/src/components/common/RangePickerNow.js
index a9d1f5647..7bba6b89f 100644
--- a/src/components/common/RangePickerNow.js
+++ b/src/components/common/RangePickerNow.js
@@ -1,14 +1,15 @@
import { DatePicker } from 'antd';
+import { dateTimeDefaultVar } from 'cache';
import { ArrowRightOutlined } from '@ant-design/icons';
import PropTypes from 'prop-types';
+import { useReactiveVar } from '@apollo/client';
import React, { memo, forwardRef, useEffect, useState } from 'react';
-import moment from 'moment';
const DateFormat = 'YYYY-MM-DD HH:mm';
-const dateNow = new Date();
-dateNow.setHours(-24);
+
const RangePickerNow = forwardRef(({ onChange, value, isDisabled }) => {
const [stateDate, setStateDate] = useState(value);
+ const dateTimeDefault = useReactiveVar(dateTimeDefaultVar);
const onChangeHandel = (momentDate, param) => {
let dateNew;
@@ -56,7 +57,7 @@ const RangePickerNow = forwardRef(({ onChange, value, isDisabled }) => {
value={
value?.datesRange?.from?.isValid()
? value?.datesRange?.from
- : moment(dateNow)
+ : dateTimeDefault.time
}
style={{ width: '160px' }}
format={DateFormat}
diff --git a/src/const/local-storage.js b/src/const/local-storage.js
index 3cc9c3ed4..456c6b631 100644
--- a/src/const/local-storage.js
+++ b/src/const/local-storage.js
@@ -6,4 +6,6 @@ export default {
FILTER_TYPES: `filterTypes`,
SETTINGS: `settings`,
EXPERIMENT: `experiment`,
+ LOCAL_STORAGE_KEY_TIME: 'defaultTimeFilter',
+ LOCAL_STORAGE_KEY_ADD_PIPELINE: 'add-pipeline-form-state',
};
diff --git a/src/hooks/graphql/useCounters.js b/src/hooks/graphql/useCounters.js
index ae8f93f08..27dd1a2bf 100644
--- a/src/hooks/graphql/useCounters.js
+++ b/src/hooks/graphql/useCounters.js
@@ -1,14 +1,16 @@
import { COUNTERS_QUERY } from 'graphql/queries';
import { usePolling } from 'hooks';
import { useQuery, useReactiveVar } from '@apollo/client';
-import { instanceFiltersVar } from 'cache';
+import { instanceFiltersVar, dateTimeDefaultVar } from 'cache';
const useCounters = () => {
const instanceFilters = useReactiveVar(instanceFiltersVar);
+ const dateTimeDefault = useReactiveVar(dateTimeDefaultVar);
+
const query = useQuery(COUNTERS_QUERY, {
variables: {
datesRange: {
- from: instanceFilters?.jobs?.datesRange?.from || null,
+ from: instanceFilters?.jobs?.datesRange?.from || dateTimeDefault.time,
to: instanceFilters?.jobs?.datesRange?.to || null,
},
},
diff --git a/src/hooks/useWizardAddPipeline.js b/src/hooks/useWizardAddPipeline.js
index b923c22aa..8ec71ed56 100644
--- a/src/hooks/useWizardAddPipeline.js
+++ b/src/hooks/useWizardAddPipeline.js
@@ -1,5 +1,5 @@
import { useEffect, useCallback } from 'react';
-import { WIZARD_STATE } from 'const';
+import { WIZARD_STATE, LOCAL_STORAGE_KEYS } from 'const';
import cleanDeep from 'clean-deep';
import { usePipeline } from 'hooks';
@@ -35,8 +35,6 @@ const formatNode = node => {
return formatter ? formatter(node) : node;
};
-const LOCAL_STORAGE_KEY = 'add-pipeline-form-state';
-
const useWizardAddPipeline = (
jsonPipeline,
status,
@@ -69,11 +67,15 @@ const useWizardAddPipeline = (
setEditorState(jsonEdit);
} else {
- const rawData = window.localStorage.getItem(LOCAL_STORAGE_KEY);
+ const rawData = window.localStorage.getItem(
+ LOCAL_STORAGE_KEYS.LOCAL_STORAGE_KEY_ADD_PIPELINE
+ );
try {
const parsedState = JSON.parse(rawData);
if (parsedState?.stateVersion !== packageJson.version) {
- window.localStorage.removeItem(LOCAL_STORAGE_KEY);
+ window.localStorage.removeItem(
+ LOCAL_STORAGE_KEYS.LOCAL_STORAGE_KEY_ADD_PIPELINE
+ );
} else if (parsedState) {
setEditorState(parsedState);
}
@@ -87,7 +89,9 @@ const useWizardAddPipeline = (
if (status === WIZARD_STATE.CLEAR) {
form.resetFields();
- window.localStorage.removeItem(LOCAL_STORAGE_KEY);
+ window.localStorage.removeItem(
+ LOCAL_STORAGE_KEYS.LOCAL_STORAGE_KEY_ADD_PIPELINE
+ );
setEditorState(addPipelineTemplate);
setWizardStepIdx(0);
setStatus(WIZARD_STATE.IDLE);
@@ -99,10 +103,13 @@ const useWizardAddPipeline = (
if (!isEdit) {
window.localStorage.setItem(
- LOCAL_STORAGE_KEY,
+ LOCAL_STORAGE_KEYS.LOCAL_STORAGE_KEY_ADD_PIPELINE,
JSON.stringify({ ...editorState, stateVersion: packageJson.version })
);
- } else window.localStorage.removeItem(LOCAL_STORAGE_KEY);
+ } else
+ window.localStorage.removeItem(
+ LOCAL_STORAGE_KEYS.LOCAL_STORAGE_KEY_ADD_PIPELINE
+ );
};
}, [
setEditorState,
@@ -137,13 +144,13 @@ const useWizardAddPipeline = (
} else {
updatePipeline(
cleanDeep(formattedData, { emptyArrays: false }),
- LOCAL_STORAGE_KEY
+ LOCAL_STORAGE_KEYS.LOCAL_STORAGE_KEY_ADD_PIPELINE
);
}
} else {
addPipeline(
cleanDeep(formattedData, { emptyArrays: false }),
- LOCAL_STORAGE_KEY
+ LOCAL_STORAGE_KEYS.LOCAL_STORAGE_KEY_ADD_PIPELINE
);
}