1
0
Fork 0
forked from gitea/nas

Add antenna excluding settings

This commit is contained in:
KMY 2023-08-21 11:14:11 +09:00
parent aed51cc7e3
commit 25af09f60b
11 changed files with 627 additions and 74 deletions

View file

@ -11,9 +11,13 @@ import {
ANTENNA_EDITOR_REMOVE_SUCCESS,
ANTENNA_EDITOR_ADD_DOMAIN_SUCCESS,
ANTENNA_EDITOR_REMOVE_DOMAIN_SUCCESS,
ANTENNA_EDITOR_ADD_EXCLUDE_DOMAIN_SUCCESS,
ANTENNA_EDITOR_REMOVE_EXCLUDE_DOMAIN_SUCCESS,
ANTENNA_EDITOR_FETCH_DOMAINS_SUCCESS,
ANTENNA_EDITOR_ADD_KEYWORD_SUCCESS,
ANTENNA_EDITOR_REMOVE_KEYWORD_SUCCESS,
ANTENNA_EDITOR_ADD_EXCLUDE_KEYWORD_SUCCESS,
ANTENNA_EDITOR_REMOVE_EXCLUDE_KEYWORD_SUCCESS,
ANTENNA_EDITOR_FETCH_KEYWORDS_SUCCESS,
} from '../actions/antennas';
@ -28,7 +32,9 @@ const normalizeAntenna = (state, antenna) => {
let s = state.set(antenna.id, fromJS(antenna));
if (old) {
s = s.setIn([antenna.id, 'domains'], old.get('domains'));
s = s.setIn([antenna.id, 'exclude_domains'], old.get('exclude_domains'));
s = s.setIn([antenna.id, 'keywords'], old.get('keywords'));
s = s.setIn([antenna.id, 'exclude_keywords'], old.get('exclude_keywords'));
s = s.setIn([antenna.id, 'accounts_count'], old.get('accounts_count'));
s = s.setIn([antenna.id, 'domains_count'], old.get('domains_count'));
s = s.setIn([antenna.id, 'keywords_count'], old.get('keywords_count'));
@ -63,12 +69,20 @@ export default function antennas(state = initialState, action) {
return state.setIn([action.antennaId, 'domains_count'], state.getIn([action.antennaId, 'domains_count']) + 1).updateIn([action.antennaId, 'domains', 'domains'], domains => (ImmutableList(domains || [])).push(action.domain));
case ANTENNA_EDITOR_REMOVE_DOMAIN_SUCCESS:
return state.setIn([action.antennaId, 'domains_count'], state.getIn([action.antennaId, 'domains_count']) - 1).updateIn([action.antennaId, 'domains', 'domains'], domains => (ImmutableList(domains || [])).filterNot(domain => domain === action.domain));
case ANTENNA_EDITOR_ADD_EXCLUDE_DOMAIN_SUCCESS:
return state.updateIn([action.antennaId, 'domains', 'exclude_domains'], domains => (ImmutableList(domains || [])).push(action.domain));
case ANTENNA_EDITOR_REMOVE_EXCLUDE_DOMAIN_SUCCESS:
return state.updateIn([action.antennaId, 'domains', 'exclude_domains'], domains => (ImmutableList(domains || [])).filterNot(domain => domain === action.domain));
case ANTENNA_EDITOR_FETCH_DOMAINS_SUCCESS:
return state.setIn([action.id, 'domains'], ImmutableMap(action.domains));
case ANTENNA_EDITOR_ADD_KEYWORD_SUCCESS:
return state.setIn([action.antennaId, 'keywords_count'], state.getIn([action.antennaId, 'keywords_count']) + 1).updateIn([action.antennaId, 'keywords', 'keywords'], keywords => (ImmutableList(keywords || [])).push(action.keyword));
case ANTENNA_EDITOR_REMOVE_KEYWORD_SUCCESS:
return state.setIn([action.antennaId, 'keywords_count'], state.getIn([action.antennaId, 'keywords_count']) - 1).updateIn([action.antennaId, 'keywords', 'keywords'], keywords => (ImmutableList(keywords || [])).filterNot(keyword => keyword === action.keyword));
case ANTENNA_EDITOR_ADD_EXCLUDE_KEYWORD_SUCCESS:
return state.updateIn([action.antennaId, 'keywords', 'exclude_keywords'], keywords => (ImmutableList(keywords || [])).push(action.keyword));
case ANTENNA_EDITOR_REMOVE_EXCLUDE_KEYWORD_SUCCESS:
return state.updateIn([action.antennaId, 'keywords', 'exclude_keywords'], keywords => (ImmutableList(keywords || [])).filterNot(keyword => keyword === action.keyword));
case ANTENNA_EDITOR_FETCH_KEYWORDS_SUCCESS:
return state.setIn([action.id, 'keywords'], ImmutableMap(action.keywords));
default: