This commit is contained in:
Ahmed Bouhuolia
2020-03-16 00:06:15 +02:00
parent 56701951b7
commit 73711384f6
7925 changed files with 18478 additions and 959 deletions

View File

@@ -0,0 +1,36 @@
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;