Browse Source

11.03.2023 23:10

Volddemar4ik 1 year ago
parent
commit
6d02407326

+ 4 - 4
js/Project/project/src/App.js

@@ -49,13 +49,13 @@ function App() {
                     <Header />
                     <main style={{ flexGrow: '1' }}>
                         <Switch>
+                            <Route path="/" component={ReduxFeed} exact />
                             <Route path="/autorization" component={Autorization} />
-                            <Route path="/user/:userId" component={CUser} />
                             <Route path="/registration" component={Registration} />
-                            <Route path="/" component={ReduxFeed} exact />
-                            <Route path="/createpost" component={CreatePost} />
-                            <Route path="/about" component={PageAbout} />
                             <Route path="/post/:postId" component={CComments} />
+                            <Route path="/user/:userId" component={CUser} />
+                            <Route path="/createpost" component={CreatePost} />
+                            {/* <Route path="/about" component={PageAbout} /> */}
                             <Route path="*" component={Page404} />
                             {/* <Page404 /> - это аналог записи выше */}
                         </Switch>

+ 4 - 1
js/Project/project/src/components/create_post/index.js

@@ -76,7 +76,7 @@ export const CreatePost = () => {
 
 
 // const formData = new FormData()
-// formData.append('photo', getPhoto.files[0])  // аналог одного поля input; photo.files[0] - это массив, в котором находятся все файлы, которые мы хотим залить на сервак
+// formData.append('photo', getPhoto.files[0])  // аналог одного поля input; 'photo' - это имя поля формы, с которой отправляем файлыж photo.files[0] - это массив, в котором находятся все файлы, которые мы хотим залить на сервак. в реакте это компонент Dropzone
 
 // fetch('/upload', {
 //     method: 'POST',
@@ -85,3 +85,6 @@ export const CreatePost = () => {
 //     },
 //     body: formData
 // }).then(res => res.json()).then(res2 => console.log(res2))
+
+
+// создается форма formData, в которой один инпут, в который мы запихиваем один файл и через фетч идет заливка этого файла

+ 14 - 2
js/Project/project/src/components/feed/index.js

@@ -8,7 +8,7 @@ import { styled } from '@mui/material/styles';
 import { Container } from '@mui/system';
 import Grid2 from '@mui/material/Unstable_Grid2/Grid2';
 
-import { actionfindPosts, actionFindUserOne } from '../redux/action';
+import { actionfindPosts, actionFindUserOne, actionFeedFindOne } from '../redux/action';
 import { RecipeReviewCard as Card } from './card_feed';
 import AboutMe from './aboutMe';
 
@@ -20,6 +20,7 @@ const Item = styled(Paper)(() => ({
 }))
 
 const myId = ((JSON.parse(atob(localStorage.authToken.split('.')[1]))).sub.id)
+console.log('myId: ', typeof myId)
 
 function Feed({ feed = [], me = {} }) {
 
@@ -57,4 +58,15 @@ store.dispatch(actionFindUserOne(myId)) // скорее всего нужно б
 
 const Me = connect(state => ({ me: state?.promise?.UserFindOne?.payload }))(AboutMe)
 
-export const ReduxFeed = connect(state => ({ feed: state?.promise?.PostsFind?.payload }))(Feed)
+export const ReduxFeed = connect(state => ({ feed: state?.promise?.PostsFind?.payload }))(Feed)
+
+
+
+
+// запрос на ленту постов моих подписчиков
+const arr = ["5d6fccfc5fce6722147978f2", "5d66e01dc6a7071408ac1e1c"]
+const sort = -1
+
+store.dispatch(actionFeedFindOne(arr, sort))
+// export const ReduxFeed2 = connect(state => ({ feed: state?.promise?.feed?.payload }))(Feed)
+

+ 26 - 1
js/Project/project/src/components/redux/action.js

@@ -83,7 +83,7 @@ export const actionFindPostOne = _id => actionPromise('PostFindOne', gql(`query
 }))
 
 
-// запрос на поиск конкретного поста
+// запрос на поиск конкретного юзера
 export const actionFindUserOne = _id => actionPromise('UserFindOne', gql(`query OneUserFind ($userOne: String) {
     UserFindOne(query: $userOne) {
       _id createdAt login nick 
@@ -151,3 +151,28 @@ export const actionFullLogin = (login, password) =>
       console.log(error)
     }
   }
+
+
+
+
+
+
+// Запрос на поиск ленты
+export const actionFeedFindOne = (arr, sortOne) => actionPromise('feed', gql(`query FeedFindOne ($feedOne: String){
+	PostFind(query: $feedOne){
+            _id createdAt title text likesCount owner{
+              _id login avatar{
+                url
+              }
+            }
+            comments {
+              _id
+            }
+    images{
+      url
+    }
+    	}
+    }`, {
+  feedOne: JSON.stringify([{ ___owner: { $in: arr } }, { sort: [{ _id: sortOne }] }])
+}))
+