UNPKG

@awsui/components-react

Version:

On July 19th, 2022, we launched [Cloudscape Design System](https://cloudscape.design). Cloudscape is an evolution of AWS-UI. It consists of user interface guidelines, front-end components, design resources, and development tools for building intuitive, en

26 lines 1.4 kB
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 import { useCallback, useEffect } from 'react'; import { fireNonCancelableEvent } from '../../internal/events'; import { useControllable } from '../../internal/hooks/use-controllable'; // Provides controlled or uncontrolled props to filter chart series. export default function useFilterProps(series, controlledVisibleSeries, controlledOnVisibleChange) { const [visibleSeries = [], setVisibleSeriesState] = useControllable(controlledVisibleSeries, controlledOnVisibleChange, series, { componentName: 'AreaChart', controlledProp: 'visibleSeries', changeHandler: 'onFilterChange', }); const setVisibleSeries = useCallback((selectedSeries) => { setVisibleSeriesState(selectedSeries); fireNonCancelableEvent(controlledOnVisibleChange, { visibleSeries: selectedSeries }); }, [controlledOnVisibleChange, setVisibleSeriesState]); // Reset filter if series change. useEffect(() => { const newVisibleSeries = visibleSeries.filter(s => series.indexOf(s) !== -1); if (newVisibleSeries.length !== visibleSeries.length) { setVisibleSeries(newVisibleSeries); } }, [series, visibleSeries, setVisibleSeries]); return [visibleSeries, setVisibleSeries]; } //# sourceMappingURL=use-filter-props.js.map