|
@@ -1,45 +1,52 @@
|
|
|
-import { rerenderEntireTree } from "../render";
|
|
|
-
|
|
|
-let state = {
|
|
|
- profilePage: {
|
|
|
- post: [
|
|
|
- { id: 1, message: "Hi, how are you?", likesCount: 12 },
|
|
|
- { id: 2, message: "My first post", likesCount: 9 },
|
|
|
- { id: 2, message: "Bla Bla Bla", likesCount: 3 },
|
|
|
- { id: 2, message: "Say you'll haunt me", likesCount: 46 }
|
|
|
- ],
|
|
|
- newPostText: "front end"
|
|
|
- },
|
|
|
- messagesPage: {
|
|
|
- dialogsData: [
|
|
|
- { id: 1, name: "Oleh" },
|
|
|
- { id: 2, name: "Victor" },
|
|
|
- { id: 3, name: "Maria" },
|
|
|
- { id: 4, name: "Valeriy" },
|
|
|
- { id: 5, name: "John" }
|
|
|
- ],
|
|
|
- messagesData: [
|
|
|
- { id: 1, message: "Hi" },
|
|
|
- { id: 2, message: "How is your project?" },
|
|
|
- { id: 3, message: "Looks not ok" }
|
|
|
- ]
|
|
|
- }
|
|
|
-};
|
|
|
-
|
|
|
-export let addPost = () => {
|
|
|
- let newPost = {
|
|
|
- id: 5,
|
|
|
- message: state.profilePage.newPostText,
|
|
|
- likesCount: 0,
|
|
|
- };
|
|
|
- state.profilePage.post.push(newPost);
|
|
|
- state.profilePage.newPostText = '';
|
|
|
- rerenderEntireTree(state);
|
|
|
-};
|
|
|
-
|
|
|
-export let updateNewPostText = (newText) => {
|
|
|
- state.profilePage.newPostText = newText;
|
|
|
- rerenderEntireTree(state);
|
|
|
+let store = {
|
|
|
+ _state: {
|
|
|
+ profilePage: {
|
|
|
+ post: [
|
|
|
+ { id: 1, message: "Hi, how are you?", likesCount: 12 },
|
|
|
+ { id: 2, message: "My first post", likesCount: 9 },
|
|
|
+ { id: 2, message: "Bla Bla Bla", likesCount: 3 },
|
|
|
+ { id: 2, message: "Say you'll haunt me", likesCount: 46 },
|
|
|
+ ],
|
|
|
+ newPostText: "front end",
|
|
|
+ },
|
|
|
+ messagesPage: {
|
|
|
+ dialogsData: [
|
|
|
+ { id: 1, name: "Oleh" },
|
|
|
+ { id: 2, name: "Victor" },
|
|
|
+ { id: 3, name: "Maria" },
|
|
|
+ { id: 4, name: "Valeriy" },
|
|
|
+ { id: 5, name: "John" },
|
|
|
+ ],
|
|
|
+ messagesData: [
|
|
|
+ { id: 1, message: "Hi" },
|
|
|
+ { id: 2, message: "How is your project?" },
|
|
|
+ { id: 3, message: "Looks not ok" },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ },
|
|
|
+ getState() {
|
|
|
+ return this._state;
|
|
|
+ },
|
|
|
+ _callSubscriber() {
|
|
|
+ console.log("State is changed");
|
|
|
+ },
|
|
|
+ addPost() {
|
|
|
+ let newPost = {
|
|
|
+ id: 5,
|
|
|
+ message: this._state.profilePage.newPostText,
|
|
|
+ likesCount: 0,
|
|
|
+ };
|
|
|
+ this._state.profilePage.post.push(newPost);
|
|
|
+ this._state.profilePage.newPostText = "";
|
|
|
+ this._callSubscriber(this._state);
|
|
|
+ },
|
|
|
+ updateNewPostText(newText) {
|
|
|
+ this._state.profilePage.newPostText = newText;
|
|
|
+ this._callSubscriber(this._state);
|
|
|
+ },
|
|
|
+ subscribe(observer) {
|
|
|
+ this._callSubscriber = observer;
|
|
|
+ },
|
|
|
};
|
|
|
|
|
|
-export default state;
|
|
|
+export default store;
|