diff --git a/package-lock.json b/package-lock.json
index 550ac33..1bd6efb 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -18,6 +18,7 @@
"react-scripts": "4.0.3",
"react-toastify": "^8.1.0",
"redux": "^4.1.2",
+ "redux-thunk": "^2.4.0",
"styled-components": "^5.3.3",
"sweetalert": "^2.1.2",
"sweetalert2": "^11.1.10",
@@ -14887,6 +14888,14 @@
"@babel/runtime": "^7.9.2"
}
},
+ "node_modules/redux-thunk": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.0.tgz",
+ "integrity": "sha512-/y6ZKQNU/0u8Bm7ROLq9Pt/7lU93cT0IucYMrubo89ENjxPa7i8pqLKu6V4X7/TvYovQ6x01unTeyeZ9lgXiTA==",
+ "peerDependencies": {
+ "redux": "^4"
+ }
+ },
"node_modules/regenerate": {
"version": "1.4.2",
"resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
@@ -30642,6 +30651,12 @@
"@babel/runtime": "^7.9.2"
}
},
+ "redux-thunk": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.0.tgz",
+ "integrity": "sha512-/y6ZKQNU/0u8Bm7ROLq9Pt/7lU93cT0IucYMrubo89ENjxPa7i8pqLKu6V4X7/TvYovQ6x01unTeyeZ9lgXiTA==",
+ "requires": {}
+ },
"regenerate": {
"version": "1.4.2",
"resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
diff --git a/package.json b/package.json
index 86952a1..73944f5 100644
--- a/package.json
+++ b/package.json
@@ -13,6 +13,7 @@
"react-scripts": "4.0.3",
"react-toastify": "^8.1.0",
"redux": "^4.1.2",
+ "redux-thunk": "^2.4.0",
"styled-components": "^5.3.3",
"sweetalert": "^2.1.2",
"sweetalert2": "^11.1.10",
diff --git a/src/App.js b/src/App.js
index 314318f..cf7b816 100644
--- a/src/App.js
+++ b/src/App.js
@@ -53,9 +53,9 @@ function App() {
{/*
-
-
-
+ */}
+ {/* */}
+ {/*
*/}
diff --git a/src/components/alert/Alert.js b/src/components/alert/Alert.js
index 90ccd91..206222e 100644
--- a/src/components/alert/Alert.js
+++ b/src/components/alert/Alert.js
@@ -3,8 +3,6 @@ import Swal from "sweetalert2";
import withReactContent from "sweetalert2-react-content";
import "./alert.css";
import undraw from "../../icons/undraw.png";
-import { INFO_ALERT } from "../../redux";
-import { connect } from "react-redux";
const Alert = () => {
// error1
diff --git a/src/components/testt/Testt.js b/src/components/testt/Testt.js
index 1227af6..66c22d3 100644
--- a/src/components/testt/Testt.js
+++ b/src/components/testt/Testt.js
@@ -1,12 +1,237 @@
import React from "react";
import "./testt.css";
-import { infoAlert } from "../../redux";
+import { infoAlert } from "../../redux/actions/modalActions";
import { connect } from "react-redux";
function Testt(props) {
return (
-
@@ -14,15 +239,7 @@ function Testt(props) {
}
const mapStateToProps = (state) => {
- return {
- showCloseButton: state.showCloseButton,
- };
-};
-
-const mapDispatchToProps = (dispatch) => {
- return {
- infoAlert: () => dispatch(infoAlert()),
- };
+ return {};
};
-export default connect(mapStateToProps, mapDispatchToProps)(Testt);
+export default connect(mapStateToProps, { customAlert: infoAlert })(Testt);
diff --git a/src/redux/actions/modalActions.js b/src/redux/actions/modalActions.js
new file mode 100644
index 0000000..895ccfd
--- /dev/null
+++ b/src/redux/actions/modalActions.js
@@ -0,0 +1,8 @@
+import { INFO_ALERT } from "./types";
+
+export const infoAlert = (data) => (dispatch) => {
+ dispatch({
+ type: INFO_ALERT,
+ data: data,
+ });
+};
diff --git a/src/redux/modalBox/modalTypes.js b/src/redux/actions/types.js
similarity index 100%
rename from src/redux/modalBox/modalTypes.js
rename to src/redux/actions/types.js
diff --git a/src/redux/index.js b/src/redux/index.js
deleted file mode 100644
index abf60cb..0000000
--- a/src/redux/index.js
+++ /dev/null
@@ -1 +0,0 @@
-export { infoAlert } from "./modalBox/modalActions";
diff --git a/src/redux/modalBox/modalActions.js b/src/redux/modalBox/modalActions.js
deleted file mode 100644
index 3299b7d..0000000
--- a/src/redux/modalBox/modalActions.js
+++ /dev/null
@@ -1,46 +0,0 @@
-import { INFO_ALERT } from "./modalTypes";
-import Swal from "sweetalert2";
-
-// export const infoAlert = () => {
-// return {
-// type: INFO_ALERT,
-// title: "",
-// text: "",
-// confirmButton: true,
-// confirmButtonText: "",
-// showCloseButton: true,
-// showCancelButton: false,
-// cancelButtonText: "",
-// };
-// };
-
-// export const infoAlert = () => {
-// Swal.fire({
-// title: "عنوان متن ارور",
-// text: "در این قسمت یک توضیح بسیار کوتاه یا عادی در مورد ارور نوشته خواهد شد. طراح سعی می کند تا این متن را بیشتر از حدانتظار بلند کند تا دیگران متوجه مفهوم شوند",
-// confirmButtonText: "متوجه شدم",
-// showCloseButton: true,
-// customClass: {
-// title: "title-error-1",
-// closeButton: "close-button-1",
-// confirmButton: "confirm-button-1",
-// },
-// });
-// };
-
-export const infoAlert = () => {
- Swal.fire({
- title: "عنوان متن ارور",
- text: "در این قسمت یک توضیح بسیار کوتاه یا عادی در مورد ارور نوشته خواهد شد. طراح سعی می کند تا این متن را بیشتر از حدانتظار بلند کند تا دیگران متوجه مفهوم شوند",
- confirmButtonText: "متوجه شدم",
- showCloseButton: true,
- customClass: {
- title: "title-error-1",
- closeButton: "close-button-1",
- confirmButton: "confirm-button-1",
- },
- });
- return {
- type: INFO_ALERT,
- };
-};
diff --git a/src/redux/modalBox/modalReducer.js b/src/redux/modalBox/modalReducer.js
deleted file mode 100644
index 8eec71f..0000000
--- a/src/redux/modalBox/modalReducer.js
+++ /dev/null
@@ -1,18 +0,0 @@
-import { INFO_ALERT } from "./modalTypes";
-
-const initialState = {
- showCloseButton: false,
-};
-
-const modalReducer = (state = initialState, action) => {
- switch (action.type) {
- case INFO_ALERT:
- return {
- ...state,
- };
- default:
- return state;
- }
-};
-
-export default modalReducer;
diff --git a/src/redux/reducers/modalReducer.js b/src/redux/reducers/modalReducer.js
new file mode 100644
index 0000000..cb457d4
--- /dev/null
+++ b/src/redux/reducers/modalReducer.js
@@ -0,0 +1,46 @@
+import { INFO_ALERT } from "../actions/types";
+import Swal from "sweetalert2";
+
+const initialState = {
+ showCloseButton: false,
+};
+
+const modalReducer = (state = initialState, action) => {
+ const { type, data } = action;
+ switch (type) {
+ case INFO_ALERT:
+ Swal.fire({
+ icon: data.icon,
+ title: data.title,
+ text: data.text,
+ input: data.input,
+ inputPlaceholder: data.inputPlaceholder,
+ imageUrl: data.imageUrl,
+ imageAlt: data.imageAlt,
+ imageWidth: data.imageWidth,
+ imageHeight: data.imageHeight,
+ confirmButtonText: data.confirmButtonText,
+ showCloseButton: data.showCloseButton,
+ showCancelButton: data.showCancelButton,
+ cancelButtonText: data.cancelButtonText,
+ html: data.html,
+ footer: data.footer,
+ customClass: {
+ title: data.customClass.title,
+ closeButton: data.customClass.closeButton,
+ confirmButton: data.customClass.confirmButton,
+ cancelButton: data.customClass.cancelButton,
+ popup: data.customClass.popup,
+ input: data.customClass.input,
+ footer: data.customClass.footer,
+ },
+ });
+ return {
+ ...state,
+ };
+ default:
+ return state;
+ }
+};
+
+export default modalReducer;
diff --git a/src/redux/reducers/rootReducer.js b/src/redux/reducers/rootReducer.js
new file mode 100644
index 0000000..d928041
--- /dev/null
+++ b/src/redux/reducers/rootReducer.js
@@ -0,0 +1,6 @@
+import modalReducer from "./modalReducer";
+import { combineReducers } from "redux";
+
+const rootReducer = combineReducers({ modalReducer: modalReducer });
+
+export default rootReducer;
diff --git a/src/redux/store.js b/src/redux/store.js
index ec3d57f..405ef0a 100644
--- a/src/redux/store.js
+++ b/src/redux/store.js
@@ -1,6 +1,6 @@
-import { createStore } from "redux";
-import modalReducer from "./modalBox/modalReducer";
-
-const store = createStore(modalReducer);
+import { createStore, applyMiddleware } from "redux";
+import thunk from "redux-thunk";
+import rootReducer from "./reducers/rootReducer";
+const store = createStore(rootReducer, applyMiddleware(thunk));
export default store;
diff --git a/yarn.lock b/yarn.lock
index a097ecf..99e0de8 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -9604,7 +9604,12 @@
"indent-string" "^4.0.0"
"strip-indent" "^3.0.0"
-"redux@^4.0.0", "redux@^4.1.2":
+"redux-thunk@^2.4.0":
+ "integrity" "sha512-/y6ZKQNU/0u8Bm7ROLq9Pt/7lU93cT0IucYMrubo89ENjxPa7i8pqLKu6V4X7/TvYovQ6x01unTeyeZ9lgXiTA=="
+ "resolved" "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.0.tgz"
+ "version" "2.4.0"
+
+"redux@^4", "redux@^4.0.0", "redux@^4.1.2":
"integrity" "sha512-SH8PglcebESbd/shgf6mii6EIoRM0zrQyjcuQ+ojmfxjTtE0z9Y8pa62iA/OJ58qjP6j27uyW4kUF4jl/jd6sw=="
"resolved" "https://registry.npmjs.org/redux/-/redux-4.1.2.tgz"
"version" "4.1.2"