Skip to content

Commit

Permalink
review: row_renderer_switch
Browse files Browse the repository at this point in the history
  • Loading branch information
logeekal committed Jul 2, 2024
1 parent 78662ba commit 1c07c65
Showing 1 changed file with 14 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

import type { EuiSwitchEvent } from '@elastic/eui';
import { EuiToolTip, EuiSwitch, EuiFormRow, useGeneratedHtmlId } from '@elastic/eui';
import React, { useCallback, useEffect, useMemo, useState } from 'react';
import React, { useCallback, useMemo } from 'react';
import { useDispatch, useSelector } from 'react-redux';
import styled from 'styled-components';
import { RowRendererId } from '../../../../common/api/timeline';
Expand Down Expand Up @@ -39,13 +39,11 @@ export const RowRendererSwitch = React.memo(function RowRendererSwitch(
selectExcludedRowRendererIds(state, timelineId)
);

const areAllRowRenderersExcluded = useMemo(
() => Object.values(RowRendererId).every((id) => excludedRowRendererIds.includes(id)),
const isAnyRowRendererEnabled = useMemo(
() => Object.values(RowRendererId).some((id) => !excludedRowRendererIds.includes(id)),
[excludedRowRendererIds]
);

const [checked, setChecked] = useState(!areAllRowRenderersExcluded);

const handleDisableAll = useCallback(() => {
dispatch(
setExcludedRowRendererIds({
Expand All @@ -59,31 +57,29 @@ export const RowRendererSwitch = React.memo(function RowRendererSwitch(
dispatch(setExcludedRowRendererIds({ id: timelineId, excludedRowRendererIds: [] }));
}, [dispatch, timelineId]);

const onChange = (e: EuiSwitchEvent) => {
setChecked(e.target.checked);
if (e.target.checked) {
handleEnableAll();
} else {
handleDisableAll();
}
};
const onChange = useCallback(
(e: EuiSwitchEvent) => {
if (e.target.checked) {
handleEnableAll();
} else {
handleDisableAll();
}
},
[handleDisableAll, handleEnableAll]
);

const rowRendererLabel = useMemo(
() => <span id={toggleTextSwitchId}>{i18n.EVENT_RENDERERS_SWITCH}</span>,
[toggleTextSwitchId]
);

useEffect(() => {
setChecked(!areAllRowRenderersExcluded);
}, [areAllRowRenderersExcluded]);

return (
<EuiToolTip position="top" content={i18n.EVENT_RENDERERS_SWITCH_WARNING}>
<CustomFormRow display="columnCompressedSwitch" label={rowRendererLabel}>
<EuiSwitch
data-test-subj="row-renderer-switch"
label=""
checked={checked}
checked={isAnyRowRendererEnabled}
onChange={onChange}
compressed
/>
Expand Down

0 comments on commit 1c07c65

Please sign in to comment.