Merge branch 'main' of https://git.zetcraft.ru/CyberBloom/OgeetoCaseCyberGarden
This commit is contained in:
commit
e756a3ab23
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(() => {
|
||||||
@ -63,7 +62,7 @@ const EditForm = () => {
|
|||||||
<ul>
|
<ul>
|
||||||
{Array.isArray(data) && data.length > 0 ? (
|
{Array.isArray(data) && data.length > 0 ? (
|
||||||
data.map((item, index) => (
|
data.map((item, index) => (
|
||||||
<button style={{border: '1px solid black'}} onClick={() => handleDataClick(item.id)} key={index}>
|
<button style={{ border: '1px solid black' }} onClick={() => handleDataClick(item.id)} key={index}>
|
||||||
{/* {item.id} */}
|
{/* {item.id} */}
|
||||||
<div>{item.title}</div>
|
<div>{item.title}</div>
|
||||||
</button>
|
</button>
|
||||||
@ -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,14 +2,22 @@
|
|||||||
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
|
||||||
GetByID = async (id) => {
|
GetByID = async (id) => {
|
||||||
|
|
||||||
let innerUrl = this.APIURL + `/meetings?id=${id}`
|
let innerUrl = this.APIURL + `/meetings?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`;
|
||||||
|
|
||||||
@ -26,79 +39,218 @@ export class HttpApiMethods {
|
|||||||
|
|
||||||
return response.data;
|
return response.data;
|
||||||
}
|
}
|
||||||
// Создание мероприятия
|
// Создание мероприятия
|
||||||
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;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Удалить мероприятие, пока что не реализовано
|
// Удалить мероприятие, пока что не реализовано
|
||||||
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 httpApiMethods = new HttpApiMethods() // Создание экземпляра класса HttpApiMethods
|
|
||||||
|
|
||||||
const meets = httpApiMethods.GetMeetings()
|
|
||||||
|
|
||||||
const FetchUtils = () => {
|
const FetchUtils = async () => {
|
||||||
|
const httpApiMethods = new HttpApiMethods() // Создание экземпляра класса HttpApiMethods
|
||||||
|
|
||||||
|
const meets = await httpApiMethods.GetMeetings()
|
||||||
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;
|
Loading…
x
Reference in New Issue
Block a user