Reduce calling canFilter significantly (#108515) (#108660)

* Reduce calling canFIlter

* Fix lint

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
This commit is contained in:
Uladzislau Lasitsa 2021-08-16 17:44:39 +03:00 committed by GitHub
parent 621dee624a
commit d7d3f80e55
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 5 deletions

View file

@ -6,7 +6,7 @@
* Side Public License, v 1.
*/
import React, { useState, useEffect } from 'react';
import React, { useState, useEffect, useMemo } from 'react';
import { i18n } from '@kbn/i18n';
import { EuiContextMenuPanelDescriptor, EuiIcon, EuiPopover, EuiContextMenu } from '@elastic/eui';
@ -29,7 +29,7 @@ export const getLegendActions = (
return ({ series: [pieSeries] }) => {
const [popoverOpen, setPopoverOpen] = useState(false);
const [isfilterable, setIsfilterable] = useState(true);
const filterData = getFilterEventData(pieSeries);
const filterData = useMemo(() => getFilterEventData(pieSeries), [pieSeries]);
useEffect(() => {
(async () => setIsfilterable(await canFilter(filterData, actions)))();

View file

@ -6,7 +6,7 @@
* Side Public License, v 1.
*/
import React, { useState } from 'react';
import React, { useState, useEffect, useMemo } from 'react';
import { i18n } from '@kbn/i18n';
import { EuiContextMenuPanelDescriptor, EuiIcon, EuiPopover, EuiContextMenu } from '@elastic/eui';
@ -24,9 +24,11 @@ export const getLegendActions = (
const [popoverOpen, setPopoverOpen] = useState(false);
const [isfilterable, setIsfilterable] = useState(false);
const series = xySeries as XYChartSeriesIdentifier;
const filterData = getFilterEventData(series);
const filterData = useMemo(() => getFilterEventData(series), [series]);
(async () => setIsfilterable(await canFilter(filterData)))();
useEffect(() => {
(async () => setIsfilterable(await canFilter(filterData)))();
}, [filterData]);
if (!isfilterable || !filterData) {
return null;