Jelajahi Sumber

Удалить 'Market GraphQL + Redux/test.js'

Козырь Илья Сергеевич 1 tahun lalu
induk
melakukan
efecc6a18a
1 mengubah file dengan 0 tambahan dan 71 penghapusan
  1. 0 71
      Market GraphQL + Redux/test.js

+ 0 - 71
Market GraphQL + Redux/test.js

@@ -1,71 +0,0 @@
-function createStore(reducer) {
-    let state = reducer(undefined, {}); //стартовая инициализация состояния, запуск редьюсера со state === undefined
-    let cbs = []; //массив подписчиков
-
-    const getState = () => state; //функция, возвращающая переменную из замыкания
-    const subscribe = (cb) => (
-        cbs.push(cb), //запоминаем подписчиков в массиве
-        () => (cbs = cbs.filter((c) => c !== cb))
-    ); //возвращаем функцию unsubscribe, которая удаляет подписчика из списка
-
-    const dispatch = (action) => {
-        if (typeof action === "function") {
-            //если action - не объект, а функция
-            return action(dispatch, getState); //запускаем эту функцию и даем ей dispatch и getState для работы
-        }
-        const newState = reducer(state, action); //пробуем запустить редьюсер
-        if (newState !== state) {
-            //проверяем, смог ли редьюсер обработать action
-            state = newState; //если смог, то обновляем state
-            for (let cb of cbs) cb(); //и запускаем подписчиков
-        }
-    };
-
-    return {
-        getState, //добавление функции getState в результирующий объект
-        dispatch,
-        subscribe, //добавление subscribe в объект
-    };
-}
-
-function countReducer(state = {count: 0}, {type}){
-    if(type === "COUNT_INC"){
-        return {
-            count: state.count + 1
-        }
-    }
-    if(type === "COUNT_DEC"){
-        return {
-            count: state.count - 1
-        }
-    }
-    return state
-} 
-
-function localStoreReducer (reducer, localStorageKey){
-    function localStoredReducer (state, action){
-        // Если state === undefined, то достать старый state из local storage
-        if(state === undefined){
-            try {
-                return JSON.parse(localStorage[localStorageKey])
-            } catch(e){}
-            
-        }
-       const newState = reducer(state, action)
-        // Сохранить newState в local storage
-        localStorage[localStorageKey] = JSON.stringify(newState)
-       return newState
-
-    } 
-    return localStoredReducer
-}
-
-const store = createStore(localStoreReducer(countReducer, 'count'))
-
-store.subscribe(
-    () => console.log(store.getState())
-)
-store.dispatch({type: "COUNT_INC"})
-store.dispatch({type: "COUNT_INC"})
-store.dispatch({type: "COUNT_DEC"})
-