diff --git a/package-lock.json b/package-lock.json index 713c9bb..8f12d4f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -434,6 +434,17 @@ "@babel/runtime": "^7.17.0" } }, + "@reduxjs/toolkit": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-1.8.1.tgz", + "integrity": "sha512-Q6mzbTpO9nOYRnkwpDlFOAbQnd3g7zj7CtHAZWz5SzE5lcV97Tf8f3SzOO8BoPOMYBFgfZaqTUZqgGu+a0+Fng==", + "requires": { + "immer": "^9.0.7", + "redux": "^4.1.2", + "redux-thunk": "^2.4.1", + "reselect": "^4.1.5" + } + }, "@rollup/pluginutils": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.0.tgz", @@ -1495,6 +1506,11 @@ "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==" }, + "immer": { + "version": "9.0.12", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.12.tgz", + "integrity": "sha512-lk7UNmSbAukB5B6dh9fnh5D0bJTOFKxVg2cyJWTYrWRfhLrLMBquONcUs3aFq507hNoIZEDDh8lb8UtOizSMhA==" + }, "import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", @@ -2016,6 +2032,11 @@ "@babel/runtime": "^7.9.2" } }, + "redux-thunk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.1.tgz", + "integrity": "sha512-OOYGNY5Jy2TWvTL1KgAlVy6dcx3siPJ1wTq741EPyUKfn6W6nChdICjZwCd0p8AZBs5kWpZlbkXW2nE/zjUa+Q==" + }, "regenerator-runtime": { "version": "0.13.9", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", @@ -2040,6 +2061,11 @@ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" }, + "reselect": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.5.tgz", + "integrity": "sha512-uVdlz8J7OO+ASpBYoz1Zypgx0KasCY20H+N8JD13oUMtPvSHQuscrHop4KbXrbsBcdB9Ds7lVK7eRkBIfO43vQ==" + }, "resolve": { "version": "1.22.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", diff --git a/package.json b/package.json index dd73d0d..9a8100a 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ }, "dependencies": { "@redux-devtools/extension": "^3.2.2", + "@reduxjs/toolkit": "^1.8.1", "eslint": "^7.32.0", "eslint-plugin-react": "^7.29.4", "react": "^17.0.2", diff --git a/src/components/BlockEditor/BlockEditor.jsx b/src/components/BlockEditor/BlockEditor.jsx index 57e25a4..1fa5961 100644 --- a/src/components/BlockEditor/BlockEditor.jsx +++ b/src/components/BlockEditor/BlockEditor.jsx @@ -3,7 +3,7 @@ import { React } from 'react'; import { EditorCancel } from './EditorCancel'; import { EditorSave } from './EditorSave'; import { useDispatch, useSelector } from 'react-redux'; -import { changeLastBlock } from '../../store/actions'; +import { changeLastBlock } from '../../store/slice'; export const BlockEditor = () => { const dispatch = useDispatch(); diff --git a/src/components/BlockEditor/EditorCancel.jsx b/src/components/BlockEditor/EditorCancel.jsx index 3848059..35b99ca 100644 --- a/src/components/BlockEditor/EditorCancel.jsx +++ b/src/components/BlockEditor/EditorCancel.jsx @@ -1,6 +1,6 @@ import { React } from 'react'; import { useDispatch } from 'react-redux'; -import { changeModalVisible } from '../../store/actions'; +import { changeModalVisible } from '../../store/slice'; export const EditorCancel = () => { const dispatch = useDispatch(); diff --git a/src/components/BlockEditor/EditorSave.jsx b/src/components/BlockEditor/EditorSave.jsx index e460b07..a071a03 100644 --- a/src/components/BlockEditor/EditorSave.jsx +++ b/src/components/BlockEditor/EditorSave.jsx @@ -1,6 +1,6 @@ import React from 'react'; import { useDispatch, useSelector } from 'react-redux'; -import { changeBlock, changeModalVisible } from '../../store/actions'; +import { changeBlock, changeModalVisible } from '../../store/slice'; export const EditorSave = () => { const dispatch = useDispatch(); diff --git a/src/components/Blocks/Block.jsx b/src/components/Blocks/Block.jsx index fec3bb6..0a59b89 100644 --- a/src/components/Blocks/Block.jsx +++ b/src/components/Blocks/Block.jsx @@ -1,7 +1,7 @@ import { coordsToGrid, resize, resizeStop, setResizeCursor } from '../../blocks'; import { React, useState } from 'react'; import { useDispatch, useSelector } from 'react-redux'; -import { changeBlock, changeLastBlock, changeModalVisible } from '../../store/actions'; +import { changeBlock, changeLastBlock, changeModalVisible } from '../../store/slice'; export const Block = (props) => { const { blocks, settingsMode } = useSelector(state => state); diff --git a/src/components/Blocks/Blocks.jsx b/src/components/Blocks/Blocks.jsx index 516343a..bf55a5a 100644 --- a/src/components/Blocks/Blocks.jsx +++ b/src/components/Blocks/Blocks.jsx @@ -1,5 +1,5 @@ import './blocks.css'; - +import React from 'react'; import { Block } from './Block'; import { useSelector } from 'react-redux'; diff --git a/src/components/Settings/SettingsIcon.jsx b/src/components/Settings/SettingsIcon.jsx index 17436fe..6506415 100644 --- a/src/components/Settings/SettingsIcon.jsx +++ b/src/components/Settings/SettingsIcon.jsx @@ -1,10 +1,10 @@ import { React } from 'react'; import { useDispatch, useSelector } from 'react-redux'; -import { settingsModeHandler } from '../../store/actions'; +import { settingsModeHandler } from '../../store/slice'; export const SettingsIcon = () => { const dispatch = useDispatch(); - const { settingsMode } = useSelector(state => state); + const settingsMode = useSelector(state => state.settingsMode); return (