Browse Source

ProfileReducer objects copy

pocu46 4 years ago
parent
commit
de43ca7a8d

+ 0 - 28
hipstagram/src/Content/Messages/messagesContainer.js

@@ -1,36 +1,8 @@
-// import React from "react";
 import { connect } from "react-redux";
 import { sendMessageCreator, updateNewMessageBodyCreator } from "../../Redux/messages-reducer";
-// import StoreContext from "../../StoreContext";
 import Messages from "./messages";
 import "./messages.css";
 
-// const MessagesContainer = () => {
-
-//     return (
-//         <StoreContext.Consumer>
-//             {
-//                 (store) => {
-//                     let state = store.getState().messagesPage;
-
-//                     let onSendMessageClick = () => {
-//                         store.dispatch(sendMessageCreator());
-//                     }
-//                     let onNewMessageChange = (body) => {
-//                         store.dispatch(updateNewMessageBodyCreator(body));
-//                     }
-//                     return (
-//                         <Messages updateNewMessageBody={onNewMessageChange}
-//                             sendMessage={onSendMessageClick}
-//                             messagesPage={state}
-//                         />
-//                     )
-//                 }
-//             }
-//         </StoreContext.Consumer>
-//     )
-// }
-
 let mapStateToProps = (state) => {
     return {
         messagesPage: state.messagesPage

+ 0 - 30
hipstagram/src/Content/Profile/MyPosts/MyPostsContainer.js

@@ -1,38 +1,8 @@
-// import React from 'react';
 import './myPosts.css';
 import { addPostActionCreator, updateNewPostTextActionCreator } from '../../../Redux/profile-reducer';
 import MyPosts from './myPosts';
-// import StoreContext from '../../../StoreContext';
 import { connect } from 'react-redux';
 
-// function MyPostsContainer() {
-//     return (
-//         <StoreContext.Consumer>
-//             {
-//                 (store) => {
-//                     let state = store.getState();
-
-//                     let addPost = () => {
-//                         store.dispatch(addPostActionCreator());
-//                     }
-
-//                     let onPostChange = (text) => {
-//                         let action = updateNewPostTextActionCreator(text);
-//                         store.dispatch(action);
-//                     }
-
-//                     return (
-//                         <MyPosts updateNewPostText={onPostChange} addPost={addPost}
-//                             post={state.profilePage.post}
-//                             newPostText={state.profilePage.newPostText}
-//                         />
-//                     )
-//                 }
-//             }
-//         </StoreContext.Consumer>
-//     )
-// }
-
 const mapStateToProps = (state) => {
     return {
         post: state.profilePage.post,

+ 12 - 7
hipstagram/src/Redux/profile-reducer.js

@@ -13,18 +13,23 @@ let initialState = {
 
 const profileReducer = (state = initialState, action) => {
     switch (action.type) {
-        case ADD_POST:
+        case ADD_POST: {
             let newPost = {
                 id: 5,
                 message: state.newPostText,
                 likesCount: 0,
             };
-            state.post.push(newPost);
-            state.newPostText = '';
-            return state;
-        case UPDATE_NEW_POST_TEXT:
-            state.newPostText = action.newText;
-            return state;
+            let stateCopy = {...state};
+            stateCopy.post = [...state.post];
+            stateCopy.post.push(newPost);
+            stateCopy.newPostText = '';
+            return stateCopy;
+        }
+        case UPDATE_NEW_POST_TEXT: {
+            let stateCopy = {...state};
+            stateCopy.newPostText = action.newText;
+            return stateCopy; 
+        }
         default:
             return state;
     }

+ 2 - 0
hipstagram/src/Redux/store.js

@@ -11,4 +11,6 @@ let reducers = combineReducers({
 
 let store = createStore(reducers);
 
+window.store = store;
+
 export default store; 

+ 10 - 18
hipstagram/src/index.js

@@ -7,25 +7,17 @@ import App from "./App";
 import { BrowserRouter } from "react-router-dom";
 import { Provider } from "react-redux";
 
-let rerenderEntireTree = (state) => {
-    ReactDOM.render(
-        <React.StrictMode>
-            <BrowserRouter>
-                <Provider store={store}>
-                    <App />
-                </Provider>
-            </BrowserRouter>
-        </React.StrictMode>,
-        document.getElementById("root")
-    );
-};
+ReactDOM.render(
+    <React.StrictMode>
+        <BrowserRouter>
+            <Provider store={store}>
+                <App />
+            </Provider>
+        </BrowserRouter>
+    </React.StrictMode>,
+    document.getElementById("root")
+);
 
-rerenderEntireTree(store.getState());
-
-store.subscribe(() => {
-    let state = store.getState();
-    rerenderEntireTree(state);
-});
 
 // If you want to start measuring performance in your app, pass a function
 // to log results (for example: reportWebVitals(console.log))