Merge branch 'main' of https://git.zetcraft.ru/CyberBloom/OgeetoCaseCyberGarden
This commit is contained in:
		
							
								
								
									
										12
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										12
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							| @@ -16,7 +16,11 @@ | |||||||
|         "@mui/styled-engine-sc": "^6.0.0-alpha.9", |         "@mui/styled-engine-sc": "^6.0.0-alpha.9", | ||||||
|         "@mui/x-date-pickers": "^6.18.6", |         "@mui/x-date-pickers": "^6.18.6", | ||||||
|         "axios": "^1.6.2", |         "axios": "^1.6.2", | ||||||
|  | <<<<<<< Updated upstream | ||||||
|         "dayjs": "^1.11.10", |         "dayjs": "^1.11.10", | ||||||
|  | ======= | ||||||
|  |         "js-cookie": "^3.0.5", | ||||||
|  | >>>>>>> Stashed changes | ||||||
|         "react": "^18.2.0", |         "react": "^18.2.0", | ||||||
|         "react-dom": "^18.2.0", |         "react-dom": "^18.2.0", | ||||||
|         "react-router-dom": "^6.21.1", |         "react-router-dom": "^6.21.1", | ||||||
| @@ -3657,6 +3661,14 @@ | |||||||
|         "set-function-name": "^2.0.1" |         "set-function-name": "^2.0.1" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "node_modules/js-cookie": { | ||||||
|  |       "version": "3.0.5", | ||||||
|  |       "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.5.tgz", | ||||||
|  |       "integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==", | ||||||
|  |       "engines": { | ||||||
|  |         "node": ">=14" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "node_modules/js-tokens": { |     "node_modules/js-tokens": { | ||||||
|       "version": "4.0.0", |       "version": "4.0.0", | ||||||
|       "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", |       "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", | ||||||
|   | |||||||
| @@ -18,7 +18,11 @@ | |||||||
|     "@mui/styled-engine-sc": "^6.0.0-alpha.9", |     "@mui/styled-engine-sc": "^6.0.0-alpha.9", | ||||||
|     "@mui/x-date-pickers": "^6.18.6", |     "@mui/x-date-pickers": "^6.18.6", | ||||||
|     "axios": "^1.6.2", |     "axios": "^1.6.2", | ||||||
|  | <<<<<<< Updated upstream | ||||||
|     "dayjs": "^1.11.10", |     "dayjs": "^1.11.10", | ||||||
|  | ======= | ||||||
|  |     "js-cookie": "^3.0.5", | ||||||
|  | >>>>>>> Stashed changes | ||||||
|     "react": "^18.2.0", |     "react": "^18.2.0", | ||||||
|     "react-dom": "^18.2.0", |     "react-dom": "^18.2.0", | ||||||
|     "react-router-dom": "^6.21.1", |     "react-router-dom": "^6.21.1", | ||||||
|   | |||||||
| @@ -1,10 +1,13 @@ | |||||||
| import Header from "../Header"; | import Header from "../Header"; | ||||||
| import styles from "./style.module.scss"; | import styles from "./style.module.scss"; | ||||||
| import TableMeets from '../TableMeets/TableMeets' | import TableMeets from '../TableMeets/TableMeets' | ||||||
| import Home from "../Home/Home"; | // import EditForm from "../edit/EditMeetsForm"; | ||||||
| // import FetchUtils from "../utils/FetchUtils"; | import PostForm from "../post/Meets"; | ||||||
| import EditForm from "../edit/EditForm"; | import Users from "../post/Users"; | ||||||
| import PostForm from "../post/PostForm"; | // import User from "../get/User"; | ||||||
|  | import Questions from "../post/Questions"; | ||||||
|  | import { GetQuestions } from "../get/Questions"; | ||||||
|  |  | ||||||
|  |  | ||||||
| import muza from '../../img/homePage/muza.png'; | import muza from '../../img/homePage/muza.png'; | ||||||
| const APIURL = '' | const APIURL = '' | ||||||
| @@ -69,10 +72,16 @@ const HomePage = () => { | |||||||
|             <div className={styles.cards__container}> |             <div className={styles.cards__container}> | ||||||
|                 <div className={styles.card}></div> |                 <div className={styles.card}></div> | ||||||
|             </div> |             </div> | ||||||
|             <Home></Home> |             {/* <Questions></Questions> */} | ||||||
|  |             {/* <Home></Home> */} | ||||||
|             {/* <FetchUtils></FetchUtils> */} |             {/* <FetchUtils></FetchUtils> */} | ||||||
|             {/* <PostForm /> */} |             {/* <PostForm /> */} | ||||||
|             {/* <EditForm /> */} |             {/* <EditForm /> */} | ||||||
|  |             {/* <Users></Users> */} | ||||||
|  |             {/* <User></User> */} | ||||||
|  |             {/* <GetQuestions></GetQuestions> */} | ||||||
|  |             <Users></Users> | ||||||
|  |  | ||||||
|         </section> |         </section> | ||||||
|          |          | ||||||
|  |  | ||||||
|   | |||||||
| @@ -3,10 +3,9 @@ import styles from './style.module.scss'; | |||||||
| import clock from '../../img/MeetPage/Clock.png'; | import clock from '../../img/MeetPage/Clock.png'; | ||||||
| import globe from '../../img/MeetPage/Globe.png'; | import globe from '../../img/MeetPage/Globe.png'; | ||||||
| import avatar from '../../img/MeetPage/avatar.png'; | import avatar from '../../img/MeetPage/avatar.png'; | ||||||
| // import { HttpApiMethods } from '../utils/FetchUtils.jsx'; |  | ||||||
| import {useState} from 'react' | import {useState} from 'react' | ||||||
| import { style } from "@mui/system"; | import { style } from "@mui/system"; | ||||||
| import Card from "../Card"; | // import Card from "../Card"; | ||||||
| import Grid from '@mui/material/Grid'; | import Grid from '@mui/material/Grid'; | ||||||
| import Box from '@mui/material/Box'; | import Box from '@mui/material/Box'; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,71 +1,71 @@ | |||||||
| import React from 'react'; | // import React from 'react'; | ||||||
| import './style.css' | // import './style.css' | ||||||
| import styled from 'styled-components'; | // import styled from 'styled-components'; | ||||||
| import { HttpApiMethods } from '../utils/FetchUtils'; | // // import { HttpApiMethods } from '../utils/FetchUtils'; | ||||||
| import {useState} from 'react' | // import {useState} from 'react' | ||||||
| import EditForm from '../post/PostForm'; | // import EditForm from '../post/Meets'; | ||||||
| import Grid from '@mui/material/Grid'; | // import Grid from '@mui/material/Grid'; | ||||||
| import Card from '../Card'; | // import Card from '../Card'; | ||||||
| import Box from '@mui/material/Box'; | // import Box from '@mui/material/Box'; | ||||||
|  |  | ||||||
| function extractDateTime(dateString) { | // function extractDateTime(dateString) { | ||||||
|     const dateTime = new Date(dateString); | //     const dateTime = new Date(dateString); | ||||||
|     const date = dateTime.toLocaleDateString(); | //     const date = dateTime.toLocaleDateString(); | ||||||
|     const time = dateTime.toLocaleTimeString(); | //     const time = dateTime.toLocaleTimeString(); | ||||||
|      |      | ||||||
|     return { date, time }; | //     return { date, time }; | ||||||
| } | // } | ||||||
|  |  | ||||||
| const httpApiMethods = new HttpApiMethods() | // const httpApiMethods = new HttpApiMethods() | ||||||
|  |  | ||||||
| const meets = await httpApiMethods.GetMeetings() | // const meets = await httpApiMethods.GetMeetings() | ||||||
|  |  | ||||||
|  |  | ||||||
| const Home = () => { | // const Home = () => { | ||||||
|     const [count, setCount] = useState(7) | //     const [count, setCount] = useState(7) | ||||||
|     |     | ||||||
|     const filterMeet = meets.filter( (item, index) => index <= count ) | //     const filterMeet = meets.filter( (item, index) => index <= count ) | ||||||
|     const allMeets = () => { | //     const allMeets = () => { | ||||||
|         setCount(meets.length) | //         setCount(meets.length) | ||||||
|     } | //     } | ||||||
|     return ( | //     return ( | ||||||
|         <> | //         <> | ||||||
|             <Box sx={{ flexGrow: 1, display: 'flex', justifyContent: 'flex-end', alignItems:'center'}}> | //             <Box sx={{ flexGrow: 1, display: 'flex', justifyContent: 'flex-end', alignItems:'center'}}> | ||||||
|                 <Grid container sx={{width: '96%'}}> | //                 <Grid container sx={{width: '96%'}}> | ||||||
|  |  | ||||||
|                  |                  | ||||||
|                 {Array.isArray(meets) ? ( | //                 {Array.isArray(meets) ? ( | ||||||
|                     filterMeet.map((item, index) => ( | //                     filterMeet.map((item, index) => ( | ||||||
|                      |                      | ||||||
|                          |                          | ||||||
|                         <Grid item sm={6} xl={3} md={6} lg={4} key={index}> | //                         <Grid item sm={6} xl={3} md={6} lg={4} key={index}> | ||||||
|                              <div className='event_card' > | //                              <div className='event_card' > | ||||||
|                                 <div className="event-card__photo"><img className='img' src={httpApiMethods.APIURL_FILES + item.speackerImage} alt="{item.speackerImage}" /></div> | //                                 <div className="event-card__photo"><img className='img' src={httpApiMethods.APIURL_FILES + item.speackerImage} alt="{item.speackerImage}" /></div> | ||||||
|                                     <div className="taggs"> | //                                     <div className="taggs"> | ||||||
|                                         <div className='tagged'>{item.tags}</div> | //                                         <div className='tagged'>{item.tags}</div> | ||||||
|                                         <div className="feautures">{item.type}</div> | //                                         <div className="feautures">{item.type}</div> | ||||||
|                                     </div> | //                                     </div> | ||||||
|                                 <h4 className="event-card__title">{item.title}</h4> | //                                 <h4 className="event-card__title">{item.title}</h4> | ||||||
|                                 <p className="event-card__date">{extractDateTime(item.time).date}, в {extractDateTime(item.time).time} по Московскому времени</p> | //                                 <p className="event-card__date">{extractDateTime(item.time).date}, в {extractDateTime(item.time).time} по Московскому времени</p> | ||||||
|                             </div> | //                             </div> | ||||||
|                         </Grid> | //                         </Grid> | ||||||
|                      |                      | ||||||
|                      |                      | ||||||
|                      |                      | ||||||
|                     )) | //                     )) | ||||||
|                 ) : ( | //                 ) : ( | ||||||
|                     <p>Неверный тип данных с сервера!</p> | //                     <p>Неверный тип данных с сервера!</p> | ||||||
|                 )} | //                 )} | ||||||
|                 {/* <EditForm></EditForm> */} | //                 {/* <EditForm></EditForm> */} | ||||||
|                 </Grid> | //                 </Grid> | ||||||
|             </Box> | //             </Box> | ||||||
|             <div className='allButton__container'> | //             <div className='allButton__container'> | ||||||
|                 <button onClick={allMeets} className='allButton'>Все мероприятия</button> | //                 <button onClick={allMeets} className='allButton'>Все мероприятия</button> | ||||||
|             </div> | //             </div> | ||||||
|         </> | //         </> | ||||||
|          |          | ||||||
|          |          | ||||||
|     ); | //     ); | ||||||
| } | // } | ||||||
|  |  | ||||||
| export default Home; | // export default Home; | ||||||
|   | |||||||
							
								
								
									
										11
									
								
								src/components/delete/Reactions.jsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								src/components/delete/Reactions.jsx
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,11 @@ | |||||||
|  | import React from 'react'; | ||||||
|  |  | ||||||
|  | const DeleteReactions = () => { | ||||||
|  |     return ( | ||||||
|  |         <div> | ||||||
|  |              | ||||||
|  |         </div> | ||||||
|  |     ); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | export default DeleteReactions; | ||||||
| @@ -1,7 +1,7 @@ | |||||||
| import React, { useRef, useState, useEffect } from 'react'; | import React, { useRef, useState, useEffect } from 'react'; | ||||||
| import { HttpApiMethods } from '../utils/FetchUtils'; | import { HttpApiMethods } from '../utils/FetchUtils'; | ||||||
| 
 | 
 | ||||||
| const EditForm = () => { | const EditMeetsForm = () => { | ||||||
|     const formRef = useRef(null); |     const formRef = useRef(null); | ||||||
|     const [dataIsLoad, setDataIsLoad] = useState(false); |     const [dataIsLoad, setDataIsLoad] = useState(false); | ||||||
|     const httpApiMethods = new HttpApiMethods(); |     const httpApiMethods = new HttpApiMethods(); | ||||||
| @@ -13,14 +13,14 @@ const EditForm = () => { | |||||||
|         const updatedMeets = await httpApiMethods.EditMeetings(formData); |         const updatedMeets = await httpApiMethods.EditMeetings(formData); | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     // const handleData = (data) => { |     const handleData = (data) => { | ||||||
|     //     if (Array.isArray(data) && data.length > 0) { |         if (Array.isArray(data) && data.length > 0) { | ||||||
|     //         setData(data); |             setData(data); | ||||||
|     //     } else { |         } else { | ||||||
|     //         setData([]); |             setData([]); | ||||||
|     //         console.error('Неверный тип данных с сервера!'); |             console.error('Неверный тип данных с сервера!'); | ||||||
|     //     } |         } | ||||||
|     // }; |     }; | ||||||
| 
 | 
 | ||||||
|     const fetchData = async () => { |     const fetchData = async () => { | ||||||
|         try { |         try { | ||||||
| @@ -41,10 +41,9 @@ const EditForm = () => { | |||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     const handleChange = (event) => { |     const handleChange = (event) => { | ||||||
|         setSelectedData({ |         setSelectedId(event.target.value); | ||||||
|             ...selectedData, |         const selected = data.find((item) => item.id === event.target.value); | ||||||
|             [event.target.name]: event.target.value |         setSelectedData(selected); | ||||||
|         }); |  | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     useEffect(() => { |     useEffect(() => { | ||||||
| @@ -76,7 +75,14 @@ const EditForm = () => { | |||||||
|             {selectedData && ( |             {selectedData && ( | ||||||
|                 <> |                 <> | ||||||
|                     <form ref={formRef}> |                     <form ref={formRef}> | ||||||
|                         <input type="text" placeholder='id'  name='id' value={selectedData.id} onChange={handleChange} /> |                         <select name="id" value={selectedData.id} onChange={handleChange}> | ||||||
|  |                             {data.map((item) => ( | ||||||
|  |                                 <option key={item.id} value={item.id}> | ||||||
|  |                                     {item.id} | ||||||
|  |                                 </option> | ||||||
|  |                             ))} | ||||||
|  |                         </select> | ||||||
|  |                         {/* <input type="text" placeholder='id'  name='id' value={selectedData.id} onChange={handleChange} /> */} | ||||||
|                         <input type="text" placeholder='name' name='title' value={selectedData.title} onChange={handleChange} /> |                         <input type="text" placeholder='name' name='title' value={selectedData.title} onChange={handleChange} /> | ||||||
|                         <input type="text" placeholder='time' name='time' value={selectedData.time} onChange={handleChange} /> |                         <input type="text" placeholder='time' name='time' value={selectedData.time} onChange={handleChange} /> | ||||||
|                         <input type="text" placeholder='theme' name='theme' value={selectedData.theme} onChange={handleChange} /> |                         <input type="text" placeholder='theme' name='theme' value={selectedData.theme} onChange={handleChange} /> | ||||||
| @@ -100,4 +106,4 @@ const EditForm = () => { | |||||||
|     ); |     ); | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| export default EditForm; | export default EditMeetsForm; | ||||||
							
								
								
									
										11
									
								
								src/components/edit/EditQuestions.jsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								src/components/edit/EditQuestions.jsx
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,11 @@ | |||||||
|  | import React from 'react'; | ||||||
|  |  | ||||||
|  | const EditQuestions = () => { | ||||||
|  |     return ( | ||||||
|  |         <div> | ||||||
|  |              | ||||||
|  |         </div> | ||||||
|  |     ); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | export default EditQuestions; | ||||||
							
								
								
									
										11
									
								
								src/components/edit/EditReviews.jsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								src/components/edit/EditReviews.jsx
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,11 @@ | |||||||
|  | import React from 'react'; | ||||||
|  |  | ||||||
|  | const EditReviews = () => { | ||||||
|  |     return ( | ||||||
|  |         <div> | ||||||
|  |              | ||||||
|  |         </div> | ||||||
|  |     ); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | export default EditReviews; | ||||||
							
								
								
									
										11
									
								
								src/components/edit/EditUsers.jsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								src/components/edit/EditUsers.jsx
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,11 @@ | |||||||
|  | import React from 'react'; | ||||||
|  |  | ||||||
|  | const EditUsers = () => { | ||||||
|  |     return ( | ||||||
|  |         <div> | ||||||
|  |              | ||||||
|  |         </div> | ||||||
|  |     ); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | export default EditUsers; | ||||||
							
								
								
									
										82
									
								
								src/components/get/Meets.jsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										82
									
								
								src/components/get/Meets.jsx
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,82 @@ | |||||||
|  | import React from 'react'; | ||||||
|  | import './style.css' | ||||||
|  | import styled from 'styled-components'; | ||||||
|  | // import { HttpApiMethods } from '../utils/FetchUtils'; | ||||||
|  | import {useState} from 'react' | ||||||
|  | import EditMeetsForm from '../edit/EditMeetsForm'; | ||||||
|  | import Grid from '@mui/material/Grid'; | ||||||
|  | // import Card from '../Card'; | ||||||
|  | import Box from '@mui/material/Box'; | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | function extractDateTime(dateString) { | ||||||
|  |     const dateTime = new Date(dateString); | ||||||
|  |     const date = dateTime.toLocaleDateString(); | ||||||
|  |     const time = dateTime.toLocaleTimeString(); | ||||||
|  |      | ||||||
|  |     return { date, time }; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | const httpApiMethods = new HttpApiMethods() | ||||||
|  |  | ||||||
|  | const meets = await httpApiMethods.GetMeetings() | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | export const MeetsGetByID = () => { | ||||||
|  |     return ( | ||||||
|  |         <div> | ||||||
|  |              | ||||||
|  |         </div> | ||||||
|  |     ); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | const GetMeets = () => { | ||||||
|  |     const [count, setCount] = useState(7) | ||||||
|  |     | ||||||
|  |     const filterMeet = meets.filter( (item, index) => index <= count ) | ||||||
|  |     const allMeets = () => { | ||||||
|  |         setCount(meets.length) | ||||||
|  |     } | ||||||
|  |     return ( | ||||||
|  |         <> | ||||||
|  |             <Box sx={{ flexGrow: 1, display: 'flex', justifyContent: 'flex-end', alignItems:'center'}}> | ||||||
|  |                 <Grid container sx={{width: '96%'}}> | ||||||
|  |  | ||||||
|  |                  | ||||||
|  |                 {Array.isArray(meets) ? ( | ||||||
|  |                     filterMeet.map((item, index) => ( | ||||||
|  |                      | ||||||
|  |                          | ||||||
|  |                         <Grid item sm={6} xl={3} md={6} lg={4} key={index}> | ||||||
|  |                              <div className='event_card' > | ||||||
|  |                                 <div className="event-card__photo"><img className='img' src={httpApiMethods.APIURL_FILES + item.speackerImage} alt="{item.speackerImage}" /></div> | ||||||
|  |                                     <div className="taggs"> | ||||||
|  |                                         <div className='tagged'>{item.tags}</div> | ||||||
|  |                                         <div className="feautures">{item.type}</div> | ||||||
|  |                                     </div> | ||||||
|  |                                 <h4 className="event-card__title">{item.title}</h4> | ||||||
|  |                                 <p className="event-card__date">{extractDateTime(item.time).date}, в {extractDateTime(item.time).time} по Московскому времени</p> | ||||||
|  |                             </div> | ||||||
|  |                         </Grid> | ||||||
|  |                      | ||||||
|  |                      | ||||||
|  |                      | ||||||
|  |                     )) | ||||||
|  |                 ) : ( | ||||||
|  |                     <p>Неверный тип данных с сервера!</p> | ||||||
|  |                 )} | ||||||
|  |                 {/* <EditForm></EditForm> */} | ||||||
|  |                 </Grid> | ||||||
|  |             </Box> | ||||||
|  |             <div className='allButton__container'> | ||||||
|  |                 <button onClick={allMeets} className='allButton'>Все мероприятия</button> | ||||||
|  |             </div> | ||||||
|  |         </> | ||||||
|  |          | ||||||
|  |          | ||||||
|  |     ); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | export default GetMeets; | ||||||
							
								
								
									
										53
									
								
								src/components/get/Questions.jsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								src/components/get/Questions.jsx
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,53 @@ | |||||||
|  | import React from 'react'; | ||||||
|  | import { HttpApiMethods } from '../utils/FetchUtils'; | ||||||
|  |  | ||||||
|  | const httpApiMethods = new HttpApiMethods | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | export const GetQuestions = async () => { | ||||||
|  |     const questions = await httpApiMethods.GetQuestions() | ||||||
|  |  | ||||||
|  |     return ( | ||||||
|  |         <div> | ||||||
|  |             <div> | ||||||
|  |             {Array.isArray(questions) ? ( | ||||||
|  |                 questions.map((item, index) => ( | ||||||
|  |                     <div key={index}> | ||||||
|  |                         <div>{item.id}</div> | ||||||
|  |                         <div>{item.text}</div> | ||||||
|  |                         <div>{item.meetingId}</div> | ||||||
|  |                         <div>{item.userId}</div> | ||||||
|  |                     </div> | ||||||
|  |                     )) | ||||||
|  |                     ) : ( | ||||||
|  |                         <p>Неверный тип данных с сервера!</p> | ||||||
|  |                     )} | ||||||
|  |             </div> | ||||||
|  |         </div> | ||||||
|  |     ); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | const GetQuestionsByID = async (id) => { | ||||||
|  |     const question = await httpApiMethods.GetByIDQuestions(id) | ||||||
|  |  | ||||||
|  |     return ( | ||||||
|  |         <div> | ||||||
|  |             {Array.isArray(question) ? ( | ||||||
|  |                 question.map((item, index) => ( | ||||||
|  |                     <div key={index}> | ||||||
|  |                         <div>{item.id}</div> | ||||||
|  |                         <div>{item.text}</div> | ||||||
|  |                         <div>{item.meetingId}</div> | ||||||
|  |                         <div>{item.userId}</div> | ||||||
|  |                     </div> | ||||||
|  |                     )) | ||||||
|  |                     ) : ( | ||||||
|  |                         <p>Неверный тип данных с сервера!</p> | ||||||
|  |                     )} | ||||||
|  |         </div> | ||||||
|  |     ); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | export default GetQuestionsByID; | ||||||
							
								
								
									
										19
									
								
								src/components/get/Reactions.jsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								src/components/get/Reactions.jsx
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,19 @@ | |||||||
|  | import React from 'react'; | ||||||
|  |  | ||||||
|  | export const GetByIDReactions = () => { | ||||||
|  |     return ( | ||||||
|  |         <div> | ||||||
|  |              | ||||||
|  |         </div> | ||||||
|  |     ); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | const getReactions = () => { | ||||||
|  |     return ( | ||||||
|  |         <div> | ||||||
|  |              | ||||||
|  |         </div> | ||||||
|  |     ); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | export default Reactions; | ||||||
							
								
								
									
										19
									
								
								src/components/get/Reviews.jsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								src/components/get/Reviews.jsx
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,19 @@ | |||||||
|  | import React from 'react'; | ||||||
|  |  | ||||||
|  | export const GetReviews = () => { | ||||||
|  |     return ( | ||||||
|  |         <div> | ||||||
|  |              | ||||||
|  |         </div> | ||||||
|  |     ); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | const GetReviewsByID = () => { | ||||||
|  |     return ( | ||||||
|  |         <div> | ||||||
|  |              | ||||||
|  |         </div> | ||||||
|  |     ); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | export default GetReviewsByID; | ||||||
							
								
								
									
										36
									
								
								src/components/get/User.jsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								src/components/get/User.jsx
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,36 @@ | |||||||
|  | import React from 'react'; | ||||||
|  | import { HttpApiMethods } from '../utils/FetchUtils'; | ||||||
|  | import Cookies from 'js-cookie'; | ||||||
|  |  | ||||||
|  | const User = () => { | ||||||
|  |     let id = '9c69d5e7-74ec-4f92-af3a-fef7d30c55bb' | ||||||
|  |     // Cookies.set('userId') | ||||||
|  |     const user = new HttpApiMethods().GetUsers(id) | ||||||
|  |  | ||||||
|  |     if (!Array.isArray(user)) { | ||||||
|  |         return <p>Неверный тип данных с сервера!</p> | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     return ( | ||||||
|  |         <div> | ||||||
|  |             {user.map((item, index) => ( | ||||||
|  |                  | ||||||
|  |                 <div key={index}> | ||||||
|  |                     <p>{item.id}</p> | ||||||
|  |                     <img src={item.avatarUrl} alt={item.avatarUrl}/> | ||||||
|  |                     <p>{item.fio}</p> | ||||||
|  |                     <p>{item.specialities}</p> | ||||||
|  |                     <a>{item.telegramBotUrl}</a> | ||||||
|  |                     <p>{item.level}</p> | ||||||
|  |                     <p>{item.userName}</p> | ||||||
|  |                     <p>{item.normalizedUserName}</p> | ||||||
|  |                     <p>{item.email}</p> | ||||||
|  |                     <p>{item.phoneNumber}</p> | ||||||
|  |                     <p>{item.id}</p> | ||||||
|  |                 </div> | ||||||
|  |             ))} | ||||||
|  |         </div> | ||||||
|  |     ); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | export default User; | ||||||
							
								
								
									
										13
									
								
								src/components/post/PostReviews.jsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								src/components/post/PostReviews.jsx
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | |||||||
|  | import React from 'react'; | ||||||
|  |  | ||||||
|  | const PostReviews = () => { | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     return ( | ||||||
|  |         <div> | ||||||
|  |              | ||||||
|  |         </div> | ||||||
|  |     ); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | export default PostReviews; | ||||||
							
								
								
									
										51
									
								
								src/components/post/Questions.jsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								src/components/post/Questions.jsx
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,51 @@ | |||||||
|  | import React, { useRef, useState } from 'react'; | ||||||
|  | import { HttpApiMethods } from '../utils/FetchUtils'; | ||||||
|  | import Cookies from 'js-cookie'; | ||||||
|  |  | ||||||
|  | const Questions = () => { | ||||||
|  |     const formRef = useRef(null); | ||||||
|  |     const [dataIsLoad, setDataIsLoad] = useState(false); | ||||||
|  |     const [curentUser, setCurentUser] = useState(null); | ||||||
|  |  | ||||||
|  |     let post = async (event) => { | ||||||
|  |         event.preventDefault(); | ||||||
|  |         const httpApiMethods = new HttpApiMethods(); | ||||||
|  |         const user_id = Cookies.get('userData') | ||||||
|  |         let formData = new FormData(formRef.current); | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |         if (!formData.get('fio') || !formData.get('avatar') || !formData.get('userId') || !formData.get('text') || !formData.get('meetingId')) { | ||||||
|  |             console.error('Ошибка: Не все поля формы заполнены'); | ||||||
|  |             return; | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         setDataIsLoad(false); | ||||||
|  |         httpApiMethods.PostQuestions(formData).then(response => { | ||||||
|  |             console.log(response) | ||||||
|  |             setDataIsLoad(true); | ||||||
|  |             meets_id = '9c69d5e7-74ec-4f92-af3a-fef7d30c55bb' | ||||||
|  |             // let user_id = response.data.id; | ||||||
|  |             // console.log(response) | ||||||
|  |             // console.log(user_id) | ||||||
|  |         }); | ||||||
|  |         | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     return ( | ||||||
|  |         <div> | ||||||
|  |             <h2>Создание Questions, получение ID в Cookies</h2> | ||||||
|  |             <div>{dataIsLoad ? "Данные успешно загружены" : ""}</div> | ||||||
|  |             <form ref={formRef} action=''> | ||||||
|  |                  | ||||||
|  |                 {/* <input type="text" placeholder='userId' name={Cookies.get('userData')} /> */} | ||||||
|  |                 <input type="text" placeholder='userId' name='userId' value={Cookies.get('userId')} /> | ||||||
|  |                 <input type="text" placeholder='text' name='text' /> | ||||||
|  |                 <input type="text" placeholder='meetingId' name='meetingId' value={'9c69d5e7-74ec-4f92-af3a-fef7d30c55bb'} /> | ||||||
|  |                 <button onClick={post}>Create</button> | ||||||
|  |             </form> | ||||||
|  |         </div> | ||||||
|  |     ); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | export default Questions; | ||||||
							
								
								
									
										13
									
								
								src/components/post/UserAuth.jsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								src/components/post/UserAuth.jsx
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | |||||||
|  | import React from 'react'; | ||||||
|  |  | ||||||
|  | const UserAuth = () => { | ||||||
|  |      | ||||||
|  |  | ||||||
|  |     return ( | ||||||
|  |         <div> | ||||||
|  |              | ||||||
|  |         </div> | ||||||
|  |     ); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | export default UserAuth; | ||||||
							
								
								
									
										58
									
								
								src/components/post/Users.jsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								src/components/post/Users.jsx
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,58 @@ | |||||||
|  | import React, { useRef, useState } from 'react'; | ||||||
|  | import { HttpApiMethods } from '../utils/FetchUtils'; | ||||||
|  | import Cookies from 'js-cookie'; | ||||||
|  |  | ||||||
|  | export const PostUserModerator = () => { | ||||||
|  |     return ( | ||||||
|  |         <div> | ||||||
|  |              | ||||||
|  |         </div> | ||||||
|  |     ); | ||||||
|  | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  | const Users = () => { | ||||||
|  |     const formRef = useRef(null); | ||||||
|  |     const [dataIsLoad, setDataIsLoad] = useState(false); | ||||||
|  |     const [curentUser, setCurentUser] = useState(null); | ||||||
|  |  | ||||||
|  |     let post = async (event) => { | ||||||
|  |         event.preventDefault(); | ||||||
|  |         const httpApiMethods = new HttpApiMethods(); | ||||||
|  |         let formData = new FormData(formRef.current); | ||||||
|  |  | ||||||
|  |         if (!formData.get('fio') || !formData.get('avatar') || !formData.get('username') || !formData.get('specialities') || !formData.get('telegramBotUrl')) { | ||||||
|  |             console.error('Ошибка: Не все поля формы заполнены'); | ||||||
|  |             return; | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         setDataIsLoad(false); | ||||||
|  |         httpApiMethods.PostUsers(formData).then(response => { | ||||||
|  |             console.log(response) | ||||||
|  |             setDataIsLoad(true); | ||||||
|  |             // let user_id = response.data.id; | ||||||
|  |             // console.log(response) | ||||||
|  |             // console.log(user_id) | ||||||
|  |             Cookies.set('userId', response.id); | ||||||
|  |             Cookies.set('token', response.token) | ||||||
|  |             // return user_id | ||||||
|  |         }); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     return ( | ||||||
|  |         <div> | ||||||
|  |             <h2>Создание пользователя, получение ID в Cookies</h2> | ||||||
|  |             <div>{dataIsLoad ? "Данные успешно загружены" : ""}</div> | ||||||
|  |             <form ref={formRef} action=''> | ||||||
|  |                 <input type="text" placeholder='fio' name='fio' /> | ||||||
|  |                 <input type="file" placeholder='avatar' name='avatar' /> | ||||||
|  |                 <input type="text" placeholder='username' name='username' /> | ||||||
|  |                 <input type="text" placeholder='specialities' name='specialities' /> | ||||||
|  |                 <input type="text" placeholder='telegramBotUrl' name='telegramBotUrl' /> | ||||||
|  |                 <button onClick={post}>Create</button> | ||||||
|  |             </form> | ||||||
|  |         </div> | ||||||
|  |     ); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | export default Users; | ||||||
							
								
								
									
										0
									
								
								src/components/post/postReactions.jsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								src/components/post/postReactions.jsx
									
									
									
									
									
										Normal file
									
								
							| @@ -2,11 +2,19 @@ | |||||||
| import axios from "axios" | import axios from "axios" | ||||||
| import { useState } from "react" | import { useState } from "react" | ||||||
| import './style.css' | import './style.css' | ||||||
|  | import { Cookie } from "@mui/icons-material" | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| export class HttpApiMethods { | export class HttpApiMethods { | ||||||
|  |  | ||||||
|  |   token; | ||||||
|  |   HttpApiMethods() | ||||||
|  |   { | ||||||
|  |     token = Cookie,get('token') | ||||||
|  |   } | ||||||
|   // URL`s |   // URL`s | ||||||
|  |   user_id = '17e5fc7a-8f22-4c0b-8b33-5dc3a6937561' | ||||||
|   APIURL = "https://cyberbloom.zetcraft.ru/api" |   APIURL = "https://cyberbloom.zetcraft.ru/api" | ||||||
|   APIURL_FILES = "https://cyberbloom.zetcraft.ru/api/cyber-boom-files/" |   APIURL_FILES = "https://cyberbloom.zetcraft.ru/api/cyber-boom-files/" | ||||||
|   // получение мероприятий по ID |   // получение мероприятий по ID | ||||||
| @@ -18,7 +26,12 @@ export class HttpApiMethods { | |||||||
|  |  | ||||||
|     return response.data; |     return response.data; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |   //  | ||||||
|   //  Получение всех мероприятий |   //  Получение всех мероприятий | ||||||
|  |   //  | ||||||
|   GetMeetings = async () => { |   GetMeetings = async () => { | ||||||
|     let innerUrl = this.APIURL + `/meetings/list?offset=0&limit=20`; |     let innerUrl = this.APIURL + `/meetings/list?offset=0&limit=20`; | ||||||
|  |  | ||||||
| @@ -30,14 +43,14 @@ export class HttpApiMethods { | |||||||
|   AddMeetings = async (data) => { |   AddMeetings = async (data) => { | ||||||
|     let innerUrl = this.APIURL + `/meetings`; |     let innerUrl = this.APIURL + `/meetings`; | ||||||
|  |  | ||||||
|     let response = await axios.postForm(innerUrl, data); |     let response = await axios.postForm(innerUrl, data); // | ||||||
|     return response.data; |     return response.data; | ||||||
|  |  | ||||||
|   } |   } | ||||||
|   // Редактирование уже существующего мероприятия |   // Редактирование уже существующего мероприятия | ||||||
|   EditMeetings = async (data) => { |   EditMeetings = async (data) => { | ||||||
|     let innerUrl = this.APIURL + `/meetings`; |     let innerUrl = this.APIURL + `/meetings`; | ||||||
|     let response = await axios.putForm(innerUrl, data); |     let response = await axios.putForm(innerUrl, data); // | ||||||
|     return response.data; |     return response.data; | ||||||
|   } |   } | ||||||
|  |  | ||||||
| @@ -45,60 +58,199 @@ export class HttpApiMethods { | |||||||
|   DeleteMeetings = async (id) => { |   DeleteMeetings = async (id) => { | ||||||
|     let innerUrl = this.APIURL + `/meetings?id=${id}` |     let innerUrl = this.APIURL + `/meetings?id=${id}` | ||||||
|  |  | ||||||
|  |     const response = await axios.get(innerUrl) // | ||||||
|  |  | ||||||
|  |     return response.data; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |   //  | ||||||
|  |   // Users | ||||||
|  |   //  | ||||||
|  |   PostUsers = async (data) => { | ||||||
|  |     let innerUrl = this.APIURL + `/users` | ||||||
|  |     const responce = await axios.postForm(innerUrl, data) | ||||||
|  |     return responce.data | ||||||
|  |   } | ||||||
|  |   PostUsersModerator = async (data) => { | ||||||
|  |     let innerUrl = this.APIURL + `/users/moderator` | ||||||
|  |     const responce = await axios.postForm(innerUrl, data, { headers: {"Authorization" : `Bearer ${token}`} }) | ||||||
|  |     return responce.data.id | ||||||
|  |   } | ||||||
|  |   EditUsers = async (data) => { | ||||||
|  |     let innerUrl = this.APIURL + `/users` | ||||||
|  |     const responce = await axios.putForm(innerUrl, data, { headers: {"Authorization" : `Bearer ${token}`} }) //  | ||||||
|  |     return responce.data.id | ||||||
|  |   } | ||||||
|  |   GetUsers = async (id) => { | ||||||
|  |     let innerUrl = this.APIURL + `/users?id=${id}` | ||||||
|  |  | ||||||
|  |     const responce = await axios.get(innerUrl) // | ||||||
|  |  | ||||||
|  |     return responce.data | ||||||
|  |   } | ||||||
|  |   GetUsersStats = async (id) => { | ||||||
|  |     let innerUrl = this.APIURL + `/users/stats?id=${id}` | ||||||
|  |  | ||||||
|  |     const responce = await axios.get(innerUrl) // | ||||||
|  |  | ||||||
|  |     return responce.data | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |   //  | ||||||
|  |   // Questions | ||||||
|  |   //  | ||||||
|  |   GetByIDQuestions = async (id) => { | ||||||
|  |  | ||||||
|  |     let innerUrl = this.APIURL + `/questions?id=${id}` | ||||||
|  |  | ||||||
|     const response = await axios.get(innerUrl) |     const response = await axios.get(innerUrl) | ||||||
|  |  | ||||||
|     return response.data; |     return response.data; | ||||||
|   } |   } | ||||||
|  |   //  Получение всех мероприятий | ||||||
|  |   GetQuestions = async () => { | ||||||
|  |     let innerUrl = this.APIURL + `/questions/list?offset=0&limit=20`; | ||||||
|  |  | ||||||
|  |     const response = await axios.get(innerUrl); | ||||||
|  |  | ||||||
|  |     return response.data; | ||||||
|  |   } | ||||||
|  |   // Создание мероприятия | ||||||
|  |   PostQuestions = async (data) => { | ||||||
|  |     let innerUrl = this.APIURL + `/questions`; | ||||||
|  |  | ||||||
|  |     let response = await axios.post(innerUrl, data, { headers: {"Authorization" : `Bearer ${token}`} }); // | ||||||
|  |     return response.data; | ||||||
|  |  | ||||||
|  |   } | ||||||
|  |   // Редактирование уже существующего мероприятия | ||||||
|  |   EditQuestions = async (data) => { | ||||||
|  |     let innerUrl = this.APIURL + `/questions`; | ||||||
|  |     let response = await axios.put(innerUrl, data, { headers: {"Authorization" : `Bearer ${token}`} }); // | ||||||
|  |     return response.data; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |   //  | ||||||
|  |   // Reactions | ||||||
|  |   // | ||||||
|  |   GetByIDReactions = async (id) => { | ||||||
|  |  | ||||||
|  |     let innerUrl = this.APIURL + `/reactions?id=${id}` | ||||||
|  |  | ||||||
|  |     const response = await axios.get(innerUrl) | ||||||
|  |  | ||||||
|  |     return response.data; | ||||||
|  |   } | ||||||
|  |   //  Получение всех мероприятий | ||||||
|  |   GetReactions = async () => { | ||||||
|  |     let innerUrl = this.APIURL + `/reactions/list?offset=0&limit=20`; | ||||||
|  |  | ||||||
|  |     const response = await axios.get(innerUrl); | ||||||
|  |  | ||||||
|  |     return response.data; | ||||||
|  |   } | ||||||
|  |   // Создание мероприятия | ||||||
|  |   PostReactions = async (data) => { | ||||||
|  |     let innerUrl = this.APIURL + `/reactions`; | ||||||
|  |  | ||||||
|  |     let response = await axios.post(innerUrl, data, { headers: {"Authorization" : `Bearer ${token}`} }); // | ||||||
|  |     return response.data; | ||||||
|  |  | ||||||
|  |   } | ||||||
|  |   // Редактирование уже существующего мероприятия | ||||||
|  |   DeleteReactions = async (id) => { | ||||||
|  |     let innerUrl = this.APIURL + `/reactions?id=${id}`; | ||||||
|  |     let response = await axios.delete(innerUrl, data, { headers: {"Authorization" : `Bearer ${token}`} }); // | ||||||
|  |     return response.data; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   //  | ||||||
|  |   // Reviews | ||||||
|  |   // | ||||||
|  |   GetByIDReviews = async (id) => { | ||||||
|  |  | ||||||
|  |     let innerUrl = this.APIURL + `/reviews?id=${id}` | ||||||
|  |  | ||||||
|  |     const response = await axios.get(innerUrl) | ||||||
|  |  | ||||||
|  |     return response.data; | ||||||
|  |   } | ||||||
|  |   GetReviews = async () => { | ||||||
|  |     let innerUrl = this.APIURL + `/reviews/list?offset=0&limit=20`; | ||||||
|  |  | ||||||
|  |     const response = await axios.get(innerUrl); | ||||||
|  |  | ||||||
|  |     return response.data; | ||||||
|  |   } | ||||||
|  |   // Создание мероприятия | ||||||
|  |   PostReviews = async (data) => { | ||||||
|  |     let innerUrl = this.APIURL + `/reviews`; | ||||||
|  |  | ||||||
|  |     let response = await axios.post(innerUrl, data, { headers: {"Authorization" : `Bearer ${token}`} }); // | ||||||
|  |     return response.data; | ||||||
|  |  | ||||||
|  |   } | ||||||
|  |   // Редактирование уже существующего мероприятия | ||||||
|  |   EditReviews = async (data) => { | ||||||
|  |     let innerUrl = this.APIURL + `/reviews`; | ||||||
|  |     let response = await axios.put(innerUrl, data, { headers: {"Authorization" : `Bearer ${token}`} }); // | ||||||
|  |     return response.data; | ||||||
|  |   } | ||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | const FetchUtils = async () => { | ||||||
|   const httpApiMethods = new HttpApiMethods() // Создание экземпляра класса HttpApiMethods |   const httpApiMethods = new HttpApiMethods() // Создание экземпляра класса HttpApiMethods | ||||||
|  |  | ||||||
| const meets = httpApiMethods.GetMeetings() |   const meets = await httpApiMethods.GetMeetings() | ||||||
|  |  | ||||||
| const FetchUtils = () => { |  | ||||||
|  |  | ||||||
|   const [user, setUser] = useState([]) |   const [user, setUser] = useState([]) | ||||||
|  |  | ||||||
|   // async function getData() { |   // async function getData() { | ||||||
| //     const response = await axios.get(APIURL) |     // const response = await axios.get() | ||||||
|     // console.log(response.data) |     // console.log(response.data) | ||||||
|     // setUser(response.data) |     // setUser(response.data) | ||||||
|   // } |   // } | ||||||
|  |  | ||||||
| //   const removeList = () => { |   const removeList = () => { | ||||||
| //     setUser([]) |     setUser([]) | ||||||
|   } |   } | ||||||
|  |  | ||||||
| //   return ( |   return ( | ||||||
| //     <> |     <> | ||||||
| //       <button onClick={getData}>Click to Get Data</button> |       <button onClick={getData}>Click to Get Data</button> | ||||||
| //       <button onClick={removeList}>Click to Remove Data Listing</button> |       <button onClick={removeList}>Click to Remove Data Listing</button> | ||||||
| //       {/* Mapping of data */} |       {/* Mapping of data */} | ||||||
| //       <div> |       <div> | ||||||
| //         {/* {Array.isArray(meets) ? ( |         {Array.isArray(meets) ? ( | ||||||
| //           <ul> |           <ul> | ||||||
| //             {meets.map((item) => ( |             {meets.map((item) => ( | ||||||
| //               <ol key={item.id}> |               <ol key={item.id}> | ||||||
| //                 <li>{item.title}</li> |                 <li>{item.title}</li> | ||||||
| //                 <li>{item.time}</li> |                 <li>{item.time}</li> | ||||||
| //                 <li>{item.speakerName}</li> |                 <li>{item.speakerName}</li> | ||||||
| //                 <li>{item.speackerImage}</li> |                 <li>{item.speackerImage}</li> | ||||||
| //                 <li>{item.splecializations}</li> |                 <li>{item.splecializations}</li> | ||||||
| //                 <li>{item.type}</li> |                 <li>{item.type}</li> | ||||||
| //                 <li>{item.speakerTelephone}</li> |                 <li>{item.speakerTelephone}</li> | ||||||
| //                 <li>{item.speakerEmail}</li> |                 <li>{item.speakerEmail}</li> | ||||||
| //                 <li>{item.tags}</li> |                 <li>{item.tags}</li> | ||||||
| //                 <li>{item.videoUrl}</li> |                 <li>{item.videoUrl}</li> | ||||||
| //               </ol> |               </ol> | ||||||
| //             ))} |             ))} | ||||||
| //           </ul> |           </ul> | ||||||
| //         ) : ( |         ) : ( | ||||||
| //           <p>Bad data type from server!</p> |           <p>Bad data type from server!</p> | ||||||
| //         )} */} |         )} | ||||||
| //       </div> |       </div> | ||||||
| //     </> |     </> | ||||||
| //   ); |   ); | ||||||
| // } | } | ||||||
| // export default FetchUtils; | export default FetchUtils; | ||||||
		Reference in New Issue
	
	Block a user