Files
bigcapital/src/hooks/stackableState.js
2021-09-21 17:13:53 +02:00

36 lines
808 B
JavaScript

import {useState} from 'react';
const useStackableState = (initialState = []) => {
const [stackableState, setStackableState] = useState(initialState);
const indexState = (state) => stackableState.indexOf(state);
const hasState = (state) => indexState(state) !== -1;
const removeState = (state) => {
if (this.hasState(state)) {
const index = indexState(state);
const mutableState = [...stackableState];
mutableState.splice(index, 1);
setStackableState(mutableState);
}
};
const setState = (state) => {
if (!hasState(state)) {
setStackableState([
...stackableState,
state,
]);
}
};
return {
state: stackableState,
removeState,
indexState,
hasState,
setState,
};
};
export default useStackableState;