parent
c873b3ffac
commit
b608e38454
@ -1,27 +0,0 @@
|
|||||||
import React from 'react';
|
|
||||||
import FilterMenu from 'Components/Menu/FilterMenu';
|
|
||||||
import { align } from 'Helpers/Props';
|
|
||||||
|
|
||||||
interface IndexerStatsFilterMenuProps {
|
|
||||||
selectedFilterKey: string | number;
|
|
||||||
filters: object[];
|
|
||||||
isDisabled: boolean;
|
|
||||||
onFilterSelect(filterName: string): unknown;
|
|
||||||
}
|
|
||||||
|
|
||||||
function IndexerStatsFilterMenu(props: IndexerStatsFilterMenuProps) {
|
|
||||||
const { selectedFilterKey, filters, isDisabled, onFilterSelect } = props;
|
|
||||||
|
|
||||||
return (
|
|
||||||
<FilterMenu
|
|
||||||
alignMenu={align.RIGHT}
|
|
||||||
isDisabled={isDisabled}
|
|
||||||
selectedFilterKey={selectedFilterKey}
|
|
||||||
filters={filters}
|
|
||||||
customFilters={[]}
|
|
||||||
onFilterSelect={onFilterSelect}
|
|
||||||
/>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
export default IndexerStatsFilterMenu;
|
|
@ -0,0 +1,56 @@
|
|||||||
|
import React, { useCallback } from 'react';
|
||||||
|
import { useDispatch, useSelector } from 'react-redux';
|
||||||
|
import { createSelector } from 'reselect';
|
||||||
|
import AppState from 'App/State/AppState';
|
||||||
|
import FilterModal from 'Components/Filter/FilterModal';
|
||||||
|
import { setIndexerStatsFilter } from 'Store/Actions/indexerStatsActions';
|
||||||
|
|
||||||
|
function createIndexerStatsSelector() {
|
||||||
|
return createSelector(
|
||||||
|
(state: AppState) => state.indexerStats.item,
|
||||||
|
(indexerStats) => {
|
||||||
|
return indexerStats;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
function createFilterBuilderPropsSelector() {
|
||||||
|
return createSelector(
|
||||||
|
(state: AppState) => state.indexerStats.filterBuilderProps,
|
||||||
|
(filterBuilderProps) => {
|
||||||
|
return filterBuilderProps;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
interface IndexerStatsFilterModalProps {
|
||||||
|
isOpen: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export default function IndexerStatsFilterModal(
|
||||||
|
props: IndexerStatsFilterModalProps
|
||||||
|
) {
|
||||||
|
const sectionItems = [useSelector(createIndexerStatsSelector())];
|
||||||
|
const filterBuilderProps = useSelector(createFilterBuilderPropsSelector());
|
||||||
|
const customFilterType = 'indexerStats';
|
||||||
|
|
||||||
|
const dispatch = useDispatch();
|
||||||
|
|
||||||
|
const dispatchSetFilter = useCallback(
|
||||||
|
(payload: unknown) => {
|
||||||
|
dispatch(setIndexerStatsFilter(payload));
|
||||||
|
},
|
||||||
|
[dispatch]
|
||||||
|
);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<FilterModal
|
||||||
|
// TODO: Don't spread all the props
|
||||||
|
{...props}
|
||||||
|
sectionItems={sectionItems}
|
||||||
|
filterBuilderProps={filterBuilderProps}
|
||||||
|
customFilterType={customFilterType}
|
||||||
|
dispatchSetFilter={dispatchSetFilter}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
}
|
Loading…
Reference in new issue