From 96a08f881a87a17644d8cfd8d6120d8df802306c Mon Sep 17 00:00:00 2001 From: haritondan Date: Mon, 21 Jul 2025 14:53:23 +0300 Subject: [PATCH] add redux starter code --- .gitignore | 3 ++- redux/package-lock.json | 22 ++++++++++++++++++++++ redux/package.json | 16 ++++++++++++++++ redux/redux-demo.js | 29 +++++++++++++++++++++++++++++ 4 files changed, 69 insertions(+), 1 deletion(-) create mode 100644 redux/package-lock.json create mode 100644 redux/package.json create mode 100644 redux/redux-demo.js diff --git a/.gitignore b/.gitignore index 3360f5c..58757bc 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ tik-tak-toe/node_modules tik-tak-toe/.DS_Store react-essentials/node_modules -calculator/node_modules \ No newline at end of file +calculator/node_modules +redux/node_modules diff --git a/redux/package-lock.json b/redux/package-lock.json new file mode 100644 index 0000000..c02e73d --- /dev/null +++ b/redux/package-lock.json @@ -0,0 +1,22 @@ +{ + "name": "redux", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "redux", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "redux": "^5.0.1" + } + }, + "node_modules/redux": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", + "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==", + "license": "MIT" + } + } +} diff --git a/redux/package.json b/redux/package.json new file mode 100644 index 0000000..43626f9 --- /dev/null +++ b/redux/package.json @@ -0,0 +1,16 @@ +{ + "name": "redux", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC", + "type": "commonjs", + "dependencies": { + "redux": "^5.0.1" + } +} diff --git a/redux/redux-demo.js b/redux/redux-demo.js new file mode 100644 index 0000000..7564309 --- /dev/null +++ b/redux/redux-demo.js @@ -0,0 +1,29 @@ +const redux = require("redux"); + +const counterReducer = (state = { counter: 0 }, action) => { + if (action.type === "increment") { + return { + counter: state.counter + 1, + }; + } + + if (action.type === "decrement") { + return { + counter: state.counter - 1, + }; + } + + return state; +}; + +const store = redux.createStore(counterReducer); + +const counterSubscriber = () => { + const latestState = store.getState(); + console.log(latestState); +}; + +store.subscribe(counterSubscriber); + +store.dispatch({ type: "increment" }); +store.dispatch({ type: "decrement" });