- 1
- 2
- 3
- 4
- 5
updateStateByHotkey(items, keyCode, isModifierPressed) {
const getNewState = stateGetter => items.every(item => stateGetter(item) !== isModifierPressed) === isModifierPressed;
// Под switch'ем для каждой горячей клавиши
this.setItemsX(items, getNewState(item => item.x));
}
ES6.
Нежелание подумать над менее запутанной реализацией заставило подумать над реализацией вот этого вот. Под Modifier'ом имеется в виду Ctrl или Command.
СПОЙЛЕР:
Горячие клавиши, переключающие состояние, идут парами - без Ctrl и с ним.
Если все элементы находятся в одном и том же состоянии, оба варианта делают одно и то же - переключают это состояние.
Если элементы в разных состояниях, то без Ctrl оно включает состояние во всех элементах, а с Ctrl - выключает.
Значения состояния и isModifierPressed, отличные от true или false, вроде бы, исключены.