Files
AdGuardHome/client/src/reducers/queryLogs.js
Ildar Kamalov 5bf958ec6b cherry-pick: 4212 fix query log search results
Closes #4212.

Squashed commit of the following:

commit cd854e5bf71953c753c690c28b5571f2c8b1ea0f
Merge: 8532ca80 bf9b35b9
Author: Ainar Garipov <A.Garipov@AdGuard.COM>
Date:   Mon Jan 31 20:10:17 2022 +0300

    Merge branch 'master' into 4212-logs

commit 8532ca80d135e4c306ac4d0c999475d77ba51a02
Author: Ildar Kamalov <ik@adguard.com>
Date:   Mon Jan 31 19:22:52 2022 +0300

    fix lint

commit 1a85074180d95d7a7aad854c75a7a811aee719e9
Author: Ildar Kamalov <ik@adguard.com>
Date:   Mon Jan 31 19:14:54 2022 +0300

    client: fix query log search results
2022-02-07 20:09:27 +03:00

102 lines
3.5 KiB
JavaScript

import { handleActions } from 'redux-actions';
import * as actions from '../actions/queryLogs';
import { DEFAULT_LOGS_FILTER } from '../helpers/constants';
const queryLogs = handleActions(
{
[actions.setFilteredLogsRequest]: (state) => ({ ...state, processingGetLogs: true }),
[actions.setFilteredLogsFailure]: (state) => ({ ...state, processingGetLogs: false }),
[actions.toggleDetailedLogs]: (state, { payload }) => ({
...state,
isDetailed: payload,
}),
[actions.setFilteredLogsSuccess]: (state, { payload }) => {
const { logs, oldest, filter } = payload;
const isFiltered = filter && Object.keys(filter).some((key) => filter[key]);
return {
...state,
oldest,
filter,
isFiltered,
logs,
isEntireLog: logs.length < 1,
processingGetLogs: false,
};
},
[actions.setLogsFilterRequest]: (state, { payload }) => ({ ...state, filter: payload }),
[actions.getLogsRequest]: (state) => ({ ...state, processingGetLogs: true }),
[actions.getLogsFailure]: (state) => ({ ...state, processingGetLogs: false }),
[actions.getLogsSuccess]: (state, { payload }) => {
const {
logs, oldest, older_than,
} = payload;
return {
...state,
oldest,
logs: older_than ? [...state.logs, ...logs] : logs,
isEntireLog: logs.length < 1,
processingGetLogs: false,
};
},
[actions.clearLogsRequest]: (state) => ({ ...state, processingClear: true }),
[actions.clearLogsFailure]: (state) => ({ ...state, processingClear: false }),
[actions.clearLogsSuccess]: (state) => ({
...state,
logs: [],
processingClear: false,
}),
[actions.getLogsConfigRequest]: (state) => ({ ...state, processingGetConfig: true }),
[actions.getLogsConfigFailure]: (state) => ({ ...state, processingGetConfig: false }),
[actions.getLogsConfigSuccess]: (state, { payload }) => ({
...state,
...payload,
processingGetConfig: false,
}),
[actions.setLogsConfigRequest]: (state) => ({ ...state, processingSetConfig: true }),
[actions.setLogsConfigFailure]: (state) => ({ ...state, processingSetConfig: false }),
[actions.setLogsConfigSuccess]: (state, { payload }) => ({
...state,
...payload,
processingSetConfig: false,
}),
[actions.getAdditionalLogsRequest]: (state) => ({
...state, processingAdditionalLogs: true, processingGetLogs: true,
}),
[actions.getAdditionalLogsFailure]: (state) => ({
...state, processingAdditionalLogs: false, processingGetLogs: false,
}),
[actions.getAdditionalLogsSuccess]: (state) => ({
...state, processingAdditionalLogs: false, processingGetLogs: false, isEntireLog: true,
}),
},
{
processingGetLogs: true,
processingClear: false,
processingGetConfig: false,
processingSetConfig: false,
processingAdditionalLogs: false,
interval: 1,
logs: [],
enabled: true,
oldest: '',
filter: DEFAULT_LOGS_FILTER,
isFiltered: false,
anonymize_client_ip: false,
isDetailed: true,
isEntireLog: false,
},
);
export default queryLogs;