Add antenna exclusion adder dialog

This commit is contained in:
KMY 2023-08-22 20:06:00 +09:00
parent 1461ab0a2f
commit 4fbebebcb3
12 changed files with 143 additions and 28 deletions

View file

@ -6,8 +6,13 @@ import {
ANTENNA_ADDER_ANTENNAS_FETCH_REQUEST,
ANTENNA_ADDER_ANTENNAS_FETCH_SUCCESS,
ANTENNA_ADDER_ANTENNAS_FETCH_FAIL,
ANTENNA_ADDER_EXCLUDE_ANTENNAS_FETCH_REQUEST,
ANTENNA_ADDER_EXCLUDE_ANTENNAS_FETCH_SUCCESS,
ANTENNA_ADDER_EXCLUDE_ANTENNAS_FETCH_FAIL,
ANTENNA_EDITOR_ADD_SUCCESS,
ANTENNA_EDITOR_REMOVE_SUCCESS,
ANTENNA_EDITOR_ADD_EXCLUDE_SUCCESS,
ANTENNA_EDITOR_REMOVE_EXCLUDE_SUCCESS,
} from '../actions/antennas';
const initialState = ImmutableMap({
@ -29,18 +34,23 @@ export default function antennaAdderReducer(state = initialState, action) {
map.set('accountId', action.account.get('id'));
});
case ANTENNA_ADDER_ANTENNAS_FETCH_REQUEST:
case ANTENNA_ADDER_EXCLUDE_ANTENNAS_FETCH_REQUEST:
return state.setIn(['antennas', 'isLoading'], true);
case ANTENNA_ADDER_ANTENNAS_FETCH_FAIL:
return state.setIn(['antennas', 'isLoading'], false);
case ANTENNA_ADDER_EXCLUDE_ANTENNAS_FETCH_FAIL:
return state.setIn(['antennas', 'isLoading'], false);
case ANTENNA_ADDER_ANTENNAS_FETCH_SUCCESS:
return state.update('antennas', antennas => antennas.withMutations(map => {
case ANTENNA_ADDER_EXCLUDE_ANTENNAS_FETCH_SUCCESS:
return state.update('antennas', antennas => antennas.withMutations(map => {
map.set('isLoading', false);
map.set('loaded', true);
map.set('items', ImmutableList(action.antennas.map(item => item.id)));
}));
case ANTENNA_EDITOR_ADD_SUCCESS:
case ANTENNA_EDITOR_ADD_EXCLUDE_SUCCESS:
return state.updateIn(['antennas', 'items'], antenna => antenna.unshift(action.antennaId));
case ANTENNA_EDITOR_REMOVE_SUCCESS:
case ANTENNA_EDITOR_REMOVE_EXCLUDE_SUCCESS:
return state.updateIn(['antennas', 'items'], antenna => antenna.filterNot(item => item === action.antennaId));
default:
return state;

View file

@ -38,12 +38,6 @@ const initialState = ImmutableMap({
isLoading: false,
}),
excludeAccounts: ImmutableMap({
items: ImmutableList(),
loaded: false,
isLoading: false,
}),
suggestions: ImmutableMap({
value: '',
items: ImmutableList(),
@ -92,11 +86,11 @@ export default function antennaEditorReducer(state = initialState, action) {
map.set('items', ImmutableList(action.accounts.map(item => item.id)));
}));
case ANTENNA_EXCLUDE_ACCOUNTS_FETCH_REQUEST:
return state.setIn(['excludeAccounts', 'isLoading'], true);
return state.setIn(['accounts', 'isLoading'], true);
case ANTENNA_EXCLUDE_ACCOUNTS_FETCH_FAIL:
return state.setIn(['excludeAccounts', 'isLoading'], false);
return state.setIn(['accounts', 'isLoading'], false);
case ANTENNA_EXCLUDE_ACCOUNTS_FETCH_SUCCESS:
return state.update('excludeAccounts', accounts => accounts.withMutations(map => {
return state.update('accounts', accounts => accounts.withMutations(map => {
map.set('isLoading', false);
map.set('loaded', true);
map.set('items', ImmutableList(action.accounts.map(item => item.id)));
@ -111,13 +105,11 @@ export default function antennaEditorReducer(state = initialState, action) {
map.set('value', '');
}));
case ANTENNA_EDITOR_ADD_SUCCESS:
case ANTENNA_EDITOR_ADD_EXCLUDE_SUCCESS:
return state.updateIn(['accounts', 'items'], antenna => antenna.unshift(action.accountId));
case ANTENNA_EDITOR_REMOVE_SUCCESS:
return state.updateIn(['accounts', 'items'], antenna => antenna.filterNot(item => item === action.accountId));
case ANTENNA_EDITOR_ADD_EXCLUDE_SUCCESS:
return state.updateIn(['excludeAccounts', 'items'], antenna => antenna.unshift(action.accountId));
case ANTENNA_EDITOR_REMOVE_EXCLUDE_SUCCESS:
return state.updateIn(['excludeAccounts', 'items'], antenna => antenna.filterNot(item => item === action.accountId));
return state.updateIn(['accounts', 'items'], antenna => antenna.filterNot(item => item === action.accountId));
default:
return state;
}