This commit is contained in:
Vsevo;od 2023-12-23 19:58:18 +03:00
parent 9775e7b206
commit a08d4d3cdf
9 changed files with 435 additions and 52 deletions

View File

@ -3,7 +3,7 @@
<head> <head>
<link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,300;0,400;0,600;0,700;1,500&family=Roboto+Condensed:wght@300;400;700&family=Roboto:wght@300;400;500;700;900&display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@200;300;400;500;600;700&display=swap" rel="stylesheet">
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" /> <link rel="icon" type="image/svg+xml" href="/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />

View File

@ -1,6 +1,10 @@
import './App.css' import './App.css'
import FetchUtils from './components/utils/FetchUtils.jsx'
// import FetchUtils from './components/utils/FetchUtils.jsx'
// import FetchUtils from './components/fetchUtils/FetchUtils.jsx'
// import TableMeets from './components/fetchUtils/TableMeets.jsx' // import TableMeets from './components/fetchUtils/TableMeets.jsx'
import { BrowserRouter, Routes, Route } from "react-router-dom"; import { BrowserRouter, Routes, Route } from "react-router-dom";
import BeingPage from "./Components/BeingPage/index.jsx"; import BeingPage from "./Components/BeingPage/index.jsx";

View File

@ -1,7 +1,7 @@
import './style.module.scss'; import './style.module.scss';
import { HttpApiMethods } from '../fetchUtils/FetchUtils'; import { HttpApiMethods } from '../utils/FetchUtils';
const httpApiMethods = new HttpApiMethods() const httpApiMethods = new HttpApiMethods()
function extractDateTime(dateString) { function extractDateTime(dateString) {

View File

@ -2,7 +2,7 @@ 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 Home from "../Home/Home";
import FetchUtils from "../utils/FetchUtils"; // import FetchUtils from "../utils/FetchUtils";
import EditForm from "../edit/EditForm"; import EditForm from "../edit/EditForm";
import PostForm from "../post/PostForm"; import PostForm from "../post/PostForm";

View File

@ -3,34 +3,43 @@ 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 like from '../../img/MeetPage/Facebook.png';
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';
import { useState, CSSProperties, useEffect, useRef } from "react"; // import { useState, CSSProperties, useEffect, useRef } from "react";
import newAvatar from '../../img/MeetPage/newAvatar.png'; import newAvatar from '../../img/MeetPage/newAvatar.png';
import vk from '../../img/MeetPage/Vk.png'; import vk from '../../img/MeetPage/Vk.png';
import tg from '../../img/MeetPage/Telegram.png'; import tg from '../../img/MeetPage/Telegram.png';
import book from '../../img/MeetPage/Book.png'; import book from '../../img/MeetPage/Book.png';
import { useState } from "react";
import * as React from 'react';
import Button from '@mui/material/Button';
import Typography from '@mui/material/Typography';
import Modal from '@mui/material/Modal';
const style = {
position: 'absolute',
top: '50%',
left: '50%',
transform: 'translate(-50%, -50%)',
width: "56%",
height: "80vh",
bgcolor: 'background.paper',
borderRadius: '25px',
boxShadow: 24,
p: 4,
};
const MeetPage = () => { const MeetPage = () => {
// const textAreaRef = useRef<HTMLTextAreaElement>(null); const [open, setOpen] = React.useState(false);
// const [text, setText] = useState(""); const handleOpen = () => setOpen(true);
// const [textAreaHeight, setTextAreaHeight] = useState("auto"); const handleClose = () => setOpen(false);
// const [parentHeight, setParentHeight] = useState("auto");
// const parentStyle= {
// minHeight: parentHeight,
// };
// const textAreaStyle= {
// height: textAreaHeight,
// };
return ( return (
<> <>
<Header></Header> <Header></Header>
<section className={styles.meets}> <section className={styles.meets}>
@ -51,9 +60,9 @@ const MeetPage = () => {
<a href="#" className={styles.newMeeting__link}>Ссылка на мероприятие</a> <a href="#" className={styles.newMeeting__link}>Ссылка на мероприятие</a>
<a href="#" className={styles.newMeeting__ling_video}>СКАЧАТЬ ВИДЕО</a> <a href="#" className={styles.newMeeting__ling_video}>СКАЧАТЬ ВИДЕО</a>
</div> </div>
<div className={styles.meets__otziv}> <div onClick={handleOpen} className={styles.meets__otziv}>
<span className={styles.meets__otziv_title}>Отзывы</span> <span className={styles.meets__otziv_title}>Оставить вопрос</span>
Оставьте первый отзыв Оставьте вопрос первым
</div> </div>
</div> </div>
@ -96,13 +105,7 @@ const MeetPage = () => {
<div className={styles.comments__input_container}> <div className={styles.comments__input_container}>
<div className={styles.comments__input_img_container}> <div className={styles.comments__input_img_container}>
<img className={styles.comments__input_img} src={newAvatar} alt='avatar'></img> <img className={styles.comments__input_img} src={newAvatar} alt='avatar'></img>
<div style={parentStyle}> <textarea placeholder="Дмитрий Кирканов" className={styles.comments__input}></textarea>
<textarea
ref={textAreaRef}
style={textAreaStyle}
rows={1}
/>
</div>
</div> </div>
<div className={styles.comments__button_container}> <div className={styles.comments__button_container}>
<button className={styles.comments__button}>ОТПРАВИТЬ</button> <button className={styles.comments__button}>ОТПРАВИТЬ</button>
@ -121,6 +124,78 @@ const MeetPage = () => {
</div> </div>
</div> </div>
</div> </div>
<div className={styles.oneComment__container}>
<div className={styles.oneComment__img}><img alt='avatar' src={newAvatar}></img></div>
<div className={styles.oneComment__descr_container}>
<div className={styles.oneComment__descr_title_container}>
<div className={styles.oneComment__descr_title}><span className={styles.yellowSpan}>Д</span>митрий Кирсанов</div>
<div className={styles.oneComment__descr_time}>4 мая 1990, 00:00</div>
</div>
<div className={styles.oneComment__descr}>
Хорошее мероприятие, специалист знает свое дело
</div>
</div>
</div>
<div className={styles.oneComment__container}>
<div className={styles.oneComment__img}><img alt='avatar' src={newAvatar}></img></div>
<div className={styles.oneComment__descr_container}>
<div className={styles.oneComment__descr_title_container}>
<div className={styles.oneComment__descr_title}><span className={styles.yellowSpan}>Д</span>митрий Кирсанов</div>
<div className={styles.oneComment__descr_time}>4 мая 1990, 00:00</div>
</div>
<div className={styles.oneComment__descr}>
Хорошее мероприятие, специалист знает свое дело
</div>
</div>
</div>
<div className={styles.oneComment__container}>
<div className={styles.oneComment__img}><img alt='avatar' src={newAvatar}></img></div>
<div className={styles.oneComment__descr_container}>
<div className={styles.oneComment__descr_title_container}>
<div className={styles.oneComment__descr_title}><span className={styles.yellowSpan}>Д</span>митрий Кирсанов</div>
<div className={styles.oneComment__descr_time}>4 мая 1990, 00:00</div>
</div>
<div className={styles.oneComment__descr}>
Хорошее мероприятие, специалист знает свое дело
</div>
</div>
</div>
<div className={styles.oneComment__container}>
<div className={styles.oneComment__img}><img alt='avatar' src={newAvatar}></img></div>
<div className={styles.oneComment__descr_container}>
<div className={styles.oneComment__descr_title_container}>
<div className={styles.oneComment__descr_title}><span className={styles.yellowSpan}>Д</span>митрий Кирсанов</div>
<div className={styles.oneComment__descr_time}>4 мая 1990, 00:00</div>
</div>
<div className={styles.oneComment__descr}>
Хорошее мероприятие, специалист знает свое дело
</div>
</div>
</div>
<div className={styles.oneComment__container}>
<div className={styles.oneComment__img}><img alt='avatar' src={newAvatar}></img></div>
<div className={styles.oneComment__descr_container}>
<div className={styles.oneComment__descr_title_container}>
<div className={styles.oneComment__descr_title}><span className={styles.yellowSpan}>Д</span>митрий Кирсанов</div>
<div className={styles.oneComment__descr_time}>4 мая 1990, 00:00</div>
</div>
<div className={styles.oneComment__descr}>
Хорошее мероприятие, специалист знает свое дело
</div>
</div>
</div>
<div className={styles.oneComment__container}>
<div className={styles.oneComment__img}><img alt='avatar' src={newAvatar}></img></div>
<div className={styles.oneComment__descr_container}>
<div className={styles.oneComment__descr_title_container}>
<div className={styles.oneComment__descr_title}><span className={styles.yellowSpan}>Д</span>митрий Кирсанов</div>
<div className={styles.oneComment__descr_time}>4 мая 1990, 00:00</div>
</div>
<div className={styles.oneComment__descr}>
Хорошее мероприятие, специалист знает свое дело
</div>
</div>
</div>
</div> </div>
</div> </div>
@ -145,6 +220,43 @@ const MeetPage = () => {
</Grid> </Grid>
</Box> </Box>
</section> </section>
<div>
<Modal
open={open}
onClose={handleClose}
aria-labelledby="modal-modal-title"
aria-describedby="modal-modal-description"
>
<Box sx={style}>
<div className={styles.modal__title}>Вопросы</div>
<div className={styles.modal__close}><div className={styles.modal__close_img}>+</div></div>
<div className={styles.modal__line}></div>
<div className={styles.modal__question_number}>Всего <span>1</span></div>
<div className={styles.modal__question_container}>
<div className={styles.modal__question_containerSecond}>
<div className={styles.modal__question_user}>
<div className={styles.modal__question_user_img_container}><img src={newAvatar} alt='avatar' className={styles.modal__question_user_img}></img> Дмитрий Кирсанов</div>
<div className={styles.modal__question_user_descr}>Задача организации, в особенности же начало повседневной работы по формированию позиции обеспечивает актуальность приоретизации разума над эмоциями. </div>
<div className={styles.modal__question_time_container}>
<div className={styles.modal__question_time}>4 мая 1990, 00:00</div>
<div className={styles.modal__question_like_container}><img src={like} alt='like' className={styles.modal__question_like_container}></img> <span className={styles.modal__question_like}>0</span></div>
</div>
</div>
</div>
<div className={styles.modal__question_containerThird}>
<div className={styles.modal__question_user_img_container}><img src={newAvatar} alt='avatar' className={styles.modal__question_user_img}></img> Дмитрий Кирсанов</div>
<textarea placeholder="Дмитрий Кирканов" className={styles.modal__question_input}></textarea>
<div className={styles.modal__question_button_container}>
<button className={styles.modal__question_button + ' ' + styles.yellow}>Задать вопрос</button>
<button className={styles.modal__question_button + ' ' + styles.gray}>Отменить</button>
</div>
</div>
</div>
</Box>
</Modal>
</div>
</> </>
) )

View File

@ -327,6 +327,7 @@
&__number { &__number {
margin-left: 3px; margin-left: 3px;
} }
&__input { &__input {
border-radius: 10px; border-radius: 10px;
border: 1px solid var(--gray_stroke, #D0D2D8); border: 1px solid var(--gray_stroke, #D0D2D8);
@ -338,6 +339,15 @@
align-items: start; align-items: start;
padding-left: 20px; padding-left: 20px;
text-align: start; text-align: start;
display: flex;
justify-content: start;
padding-left: 30px;
font-family: Montserrat;
font-size: 22px;
font-style: normal;
font-weight: 400;
line-height: normal;
padding-top: 30px;
&_img { &_img {
height: 60px; height: 60px;
width: 60px; width: 60px;
@ -368,4 +378,218 @@
font-weight: 400; font-weight: 400;
line-height: normal; line-height: normal;
} }
&__button {
border-radius: 5.833px;
background: var(--yellow, #FD0);
width: 200px;
height: 45px;
margin-top: 35px;
&_container {
display: flex;
justify-content: flex-end;
}
}
&__all_container {
display: flex;
flex-direction: column;
height: 500px;
margin-top: 50px;
overflow-x: hidden;
}
}
.oneComment {
&__container {
display: flex;
margin-top: 70px;
}
&__img {
margin-right: 50px;
}
&__descr {
color: #000;
font-family: Montserrat;
font-size: 20px;
font-style: normal;
font-weight: 400;
line-height: normal;
margin-top: 20px;
&_title {
color: #000;
font-family: Montserrat;
font-size: 20px;
font-style: normal;
font-weight: 400;
line-height: normal;
margin-right: 12px;
&_container {
display: flex;
}
}
&_time {
color: var(--gray_text, #888);
font-family: Montserrat;
font-size: 20px;
font-style: normal;
font-weight: 400;
line-height: normal;
}
}
}
.modal {
background-color: #fff;
position: absolute;
height: 400px;
width: 300px;
&__container {
position: absolute;
top: 0px;
height: 5000px;
width: 100%;
background-color: rgba(0, 0, 0, 0.40);
}
&__title {
color: #000;
font-family: Montserrat;
font-size: 48px;
font-style: normal;
font-weight: 400;
line-height: normal;
}
&__line {
height: 1px;
width: 100%;
stroke-width: 1px;
background-color: #D0D2D8;
width: 100%;
margin-top: 40px;
}
&__close {
cursor: pointer;
transform: rotate(-45deg);
position: absolute;
height: 96px;
height: 45px;
color: #000;
font-family: Montserrat;
font-size: 58.625px;
font-style: normal;
font-weight: 200;
line-height: normal;
top: 0px;
right: 50px;
}
&__question {
&_number {
margin-top: 50px;
color: #000;
font-family: Montserrat;
font-size: 32px;
font-style: normal;
font-weight: 600;
line-height: normal;
span {
color: #000;
font-family: Montserrat;
font-size: 32px;
font-style: normal;
font-weight: 400;
line-height: normal;
}
}
&_container {
margin-top: 60px;
display: flex;
justify-content: space-between;
}
&_containerSecond {
width: 48%;
height: 250px;
display: flex;
flex-direction: column;
position: relative;
}
&_user {
&_img {
margin-right: 25px;
&_container {
display: flex;
align-items:center;
color: #000;
font-family: Montserrat;
font-size: 24px;
font-style: normal;
font-weight: 400;
line-height: normal;
}
}
&_descr {
color: #000;
font-family: Montserrat;
font-size: 18px;
font-style: normal;
font-weight: 400;
line-height: normal;
margin-top: 25px;
}
}
&_time {
display: flex;
justify-content: center;
align-items: center;
&_container {
display: flex;
align-items: center;
justify-content: space-between;
margin-top: 20px;
}
}
&_like {
display: flex;
justify-content: center;
align-items: center;
margin: 5px 0 0 10px;
&_container {
display: flex;
justify-content: center;
align-items: center;
}
}
&_input {
margin-top: 40px;
border-radius: 10px;
border: 1px solid var(--gray_stroke, #D0D2D8);
width: 100%;
height: 235px;
padding-top: 20px;
padding-left: 10px;
}
&_containerThird {
margin-right: 3%;
}
&_button {
&_container {
display: flex;
justify-content: center;
align-items: center;
}
}
}
}
.yellow {
border-radius: 10px;
background-color: #FD0;
width: 190px;
height: 50px;
margin-right: 30px;
}
.gray {
border-radius: 10px;
background: var(--gray_stroke, #D0D2D8);
width: 140px;
height: 40px;
} }

View File

@ -3,7 +3,7 @@ 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 '../fetchUtils/FetchUtils'; // 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";
@ -11,28 +11,28 @@ import Grid from '@mui/material/Grid';
import Box from '@mui/material/Box'; import Box from '@mui/material/Box';
const httpApiMethods = new HttpApiMethods() // const httpApiMethods = new HttpApiMethods()
const meets = await httpApiMethods.GetMeetings() // const meets = await httpApiMethods.GetMeetings()
const MeetPage = () => { const MeetPage = () => {
const filterMeet = meets.filter( (item, index) => index <= 3 ) // const filterMeet = meets.filter( (item, index) => index <= 3 )
console.log(filterMeet) // console.log(filterMeet)
const id = 5 // const id = 0
console.log(httpApiMethods.APIURL_FILES + meets[id].speackerImage) // console.log(httpApiMethods.APIURL_FILES + meets[id].speackerImage)
const meetPng = (id) => { // const meetPng = (id) => {
console.log(httpApiMethods.APIURL_FILES + meets[id].speackerImage) // console.log(httpApiMethods.APIURL_FILES + meets[id].speackerImage)
return httpApiMethods.APIURL_FILES + meets[id].speackerImage // return httpApiMethods.APIURL_FILES + meets[id].speackerImage
} // }
console.log(meetPng(id)) // console.log(meetPng(id))
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 };
} // }
return ( return (
<> <>
@ -45,7 +45,7 @@ const MeetPage = () => {
<div className={styles.meets__mainInfo_status}><img className={styles.meets__mainInfo_status_img} src={clock} alt="clock"></img> <span>Онлайн</span> </div> <div className={styles.meets__mainInfo_status}><img className={styles.meets__mainInfo_status_img} src={clock} alt="clock"></img> <span>Онлайн</span> </div>
<div className={styles.meets__mainInfo_time}><img className={styles.meets__mainInfo_status_img} src={globe} alt="globe"></img> <span>22 декабря, с 10:00 до 22:00 по Московскому времени</span> </div> <div className={styles.meets__mainInfo_time}><img className={styles.meets__mainInfo_status_img} src={globe} alt="globe"></img> <span>22 декабря, с 10:00 до 22:00 по Московскому времени</span> </div>
</div> </div>
<div className={styles.meets__img}><img src={meetPng(id)}></img></div> {/* <div className={styles.meets__img}><img src={meetPng(id)}></img></div> */}
</section> </section>
<div className={styles.meets__otziv_container}> <div className={styles.meets__otziv_container}>
@ -73,7 +73,7 @@ const MeetPage = () => {
<section className={styles.someMeetings}> <section className={styles.someMeetings}>
<div className={styles.someMeetings__title}>Еще мероприятия</div> <div className={styles.someMeetings__title}>Еще мероприятия</div>
<Box sx={{ flexGrow: 1 }}> <Box sx={{ flexGrow: 1 }}>
<Grid container spacing={1}> {/* <Grid container spacing={1}>
{Array.isArray(meets) ? ( {Array.isArray(meets) ? (
filterMeet.map((item, index) => ( filterMeet.map((item, index) => (
@ -97,7 +97,7 @@ const MeetPage = () => {
<p>Неверный тип данных с сервера!</p> <p>Неверный тип данных с сервера!</p>
)} )}
</Grid> </Grid> */}
</Box> </Box>
</section> </section>
</> </>

View File

@ -0,0 +1,43 @@
import * as React from 'react';
import Box from '@mui/material/Box';
import Button from '@mui/material/Button';
import Typography from '@mui/material/Typography';
import Modal from '@mui/material/Modal';
const style = {
position: 'absolute',
top: '50%',
left: '50%',
transform: 'translate(-50%, -50%)',
width: 400,
bgcolor: 'background.paper',
border: '2px solid #000',
boxShadow: 24,
p: 4,
};
export default function BasicModal(open, close) {
return (
<div>
<Modal
open={open}
onClose={close}
aria-labelledby="modal-modal-title"
aria-describedby="modal-modal-description"
>
<Box sx={style}>
<Typography id="modal-modal-title" variant="h6" component="h2">
Text in a modal
</Typography>
<Typography id="modal-modal-description" sx={{ mt: 2 }}>
Duis mollis, est non commodo luctus, nisi erat porttitor ligula.
</Typography>
</Box>
</Modal>
</div>
);
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 710 B