feat(ui) - filters issues live vs offline
This commit is contained in:
parent
2b5d85cb35
commit
0c45d43bb9
6 changed files with 30 additions and 24 deletions
|
|
@ -5,11 +5,10 @@ import { List } from 'immutable';
|
|||
import { useObserver } from 'mobx-react-lite';
|
||||
|
||||
interface Props {
|
||||
// filters: any[]; // event/filter
|
||||
filter?: any; // event/filter
|
||||
onUpdateFilter: (filterIndex, filter) => void;
|
||||
onRemoveFilter: (filterIndex) => void;
|
||||
onChangeEventsOrder: (e, { name, value }) => void;
|
||||
onUpdateFilter: (filterIndex: any, filter: any) => void;
|
||||
onRemoveFilter: (filterIndex: any) => void;
|
||||
onChangeEventsOrder: (e: any, { name, value }: any) => void;
|
||||
hideEventsOrder?: boolean;
|
||||
observeChanges?: () => void;
|
||||
saveRequestPayloads?: boolean;
|
||||
|
|
@ -23,7 +22,7 @@ function FilterList(props: Props) {
|
|||
|
||||
useEffect(observeChanges, [filters]);
|
||||
|
||||
const onRemoveFilter = (filterIndex) => {
|
||||
const onRemoveFilter = (filterIndex: any) => {
|
||||
props.onRemoveFilter(filterIndex);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -11,12 +11,12 @@ interface Props {
|
|||
filter?: any; // event/filter
|
||||
filterList: any;
|
||||
filterListLive: any;
|
||||
onFilterClick: (filter) => void;
|
||||
onFilterClick: (filter: any) => void;
|
||||
children?: any;
|
||||
isLive?: boolean;
|
||||
}
|
||||
function FilterSelection(props: Props) {
|
||||
const { filter, onFilterClick, children, isLive = true } = props;
|
||||
const { filter, onFilterClick, children } = props;
|
||||
const [showModal, setShowModal] = useState(false);
|
||||
|
||||
return (
|
||||
|
|
|
|||
|
|
@ -98,6 +98,12 @@ export default function({ name = '', onChange, right = false, plain = false, opt
|
|||
|
||||
return { ...provided, opacity, transition };
|
||||
},
|
||||
input: (provided: any) => ({
|
||||
...provided,
|
||||
'& input:focus': {
|
||||
border: 'none !important',
|
||||
}
|
||||
}),
|
||||
noOptionsMessage: (provided: any) => ({
|
||||
...provided,
|
||||
whiteSpace: 'nowrap !important',
|
||||
|
|
|
|||
|
|
@ -15,15 +15,15 @@ interface Props {
|
|||
}
|
||||
function SessionSearch(props: Props) {
|
||||
const { appliedFilter, saveRequestPayloads = false } = props;
|
||||
const hasEvents = appliedFilter.filters.filter(i => i.isEvent).size > 0;
|
||||
const hasFilters = appliedFilter.filters.filter(i => !i.isEvent).size > 0;
|
||||
const hasEvents = appliedFilter.filters.filter((i: any) => i.isEvent).size > 0;
|
||||
const hasFilters = appliedFilter.filters.filter((i: any) => !i.isEvent).size > 0;
|
||||
|
||||
const onAddFilter = (filter) => {
|
||||
const onAddFilter = (filter: any) => {
|
||||
props.addFilter(filter);
|
||||
}
|
||||
|
||||
const onUpdateFilter = (filterIndex, filter) => {
|
||||
const newFilters = appliedFilter.filters.map((_filter, i) => {
|
||||
const onUpdateFilter = (filterIndex: any, filter: any) => {
|
||||
const newFilters = appliedFilter.filters.map((_filter: any, i: any) => {
|
||||
if (i === filterIndex) {
|
||||
return filter;
|
||||
} else {
|
||||
|
|
@ -37,8 +37,8 @@ function SessionSearch(props: Props) {
|
|||
});
|
||||
}
|
||||
|
||||
const onRemoveFilter = (filterIndex) => {
|
||||
const newFilters = appliedFilter.filters.filter((_filter, i) => {
|
||||
const onRemoveFilter = (filterIndex: any) => {
|
||||
const newFilters = appliedFilter.filters.filter((_filter: any, i: any) => {
|
||||
return i !== filterIndex;
|
||||
});
|
||||
|
||||
|
|
@ -47,7 +47,7 @@ function SessionSearch(props: Props) {
|
|||
});
|
||||
}
|
||||
|
||||
const onChangeEventsOrder = (e, { name, value }) => {
|
||||
const onChangeEventsOrder = (e: any, { value }: any) => {
|
||||
props.edit({
|
||||
eventsOrder: value,
|
||||
});
|
||||
|
|
@ -90,7 +90,7 @@ function SessionSearch(props: Props) {
|
|||
) : <></>;
|
||||
}
|
||||
|
||||
export default connect(state => ({
|
||||
export default connect((state: any) => ({
|
||||
saveRequestPayloads: state.getIn(['site', 'active', 'saveRequestPayloads']),
|
||||
appliedFilter: state.getIn([ 'search', 'instance' ]),
|
||||
}), { edit, addFilter })(SessionSearch);
|
||||
|
|
@ -28,7 +28,7 @@ const initialState = Map({
|
|||
function reducer(state = initialState, action = {}) {
|
||||
switch (action.type) {
|
||||
case APPLY:
|
||||
return state.mergeIn(['instance'], action.filter).set('currentPage', 1);
|
||||
return state.mergeIn(['instance'], action.filter);
|
||||
case EDIT:
|
||||
return state.mergeIn(['instance'], action.instance).set('currentPage', 1);
|
||||
case UPDATE_CURRENT_PAGE:
|
||||
|
|
|
|||
|
|
@ -59,7 +59,8 @@ export const filtersMap = filters.reduce((acc, filter) => {
|
|||
return acc;
|
||||
}, {});
|
||||
|
||||
export const liveFiltersMap = filters.reduce((acc, filter) => {
|
||||
export const liveFiltersMap = {}
|
||||
filters.forEach(filter => {
|
||||
if (
|
||||
filter.category !== FilterCategory.INTERACTIONS &&
|
||||
filter.category !== FilterCategory.JAVASCRIPT &&
|
||||
|
|
@ -67,15 +68,15 @@ export const liveFiltersMap = filters.reduce((acc, filter) => {
|
|||
filter.key !== FilterKey.DURATION &&
|
||||
filter.key !== FilterKey.REFERRER
|
||||
) {
|
||||
acc[filter.key] = filter;
|
||||
acc[filter.key].operator = 'contains';
|
||||
acc[filter.key].operatorDisabled = true;
|
||||
liveFiltersMap[filter.key] = {...filter};
|
||||
liveFiltersMap[filter.key].operator = 'contains';
|
||||
liveFiltersMap[filter.key].operatorDisabled = true;
|
||||
if (filter.key === FilterKey.PLATFORM) {
|
||||
acc[filter.key].operator = 'is';
|
||||
liveFiltersMap[filter.key].operator = 'is';
|
||||
}
|
||||
}
|
||||
return acc
|
||||
}, {});
|
||||
})
|
||||
|
||||
|
||||
export const filterLabelMap = filters.reduce((acc, filter) => {
|
||||
acc[filter.key] = filter.label
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue