diff --git a/src/s1-main/App.module.css b/src/s1-main/App.module.css index c4c5b31..2f8034e 100644 --- a/src/s1-main/App.module.css +++ b/src/s1-main/App.module.css @@ -1,5 +1,6 @@ .App { - + padding-top: 107px; + padding-bottom: 63px; } .hw { @@ -7,5 +8,22 @@ } .hwTitle { + font-family: 'Montserrat', sans-serif; + font-weight: 600; + font-size: 22px; + line-height: 27px; + margin-bottom: 10px; + margin-left: 70px; +} +.hwContainer { + padding: 0 70px 32px; + display: flex; + flex-direction: column; + justify-content: space-between; +} + +hr { + border-top: 1px solid #d9d9d9; + margin: 0 } \ No newline at end of file diff --git a/src/s1-main/App.tsx b/src/s1-main/App.tsx index b1079ae..d657b26 100644 --- a/src/s1-main/App.tsx +++ b/src/s1-main/App.tsx @@ -15,14 +15,14 @@ const App = () => { }, [themeId]) return (
-
react homeworks:
+ {/*
react homeworks:
*/} - {/**/} + {/**/} {/**/} {/**/} - + {/**/}
) } diff --git a/src/s2-homeworks/hw01/FriendMessage.tsx b/src/s2-homeworks/hw01/FriendMessage.tsx index df56ab7..c301cb1 100644 --- a/src/s2-homeworks/hw01/FriendMessage.tsx +++ b/src/s2-homeworks/hw01/FriendMessage.tsx @@ -5,34 +5,37 @@ import s from './Message.module.css' const FriendMessage = (props: any) => { return (
- + {'avatar'} + // создаёт студент + src={props.message.user.avatar} + width={'50px'} height={'50px'} + alt={'avatar'} + // + /> +
+
+ {/*создаёт студент*/} + {props.message.user.name} + {/**/} +
+
+ {/*создаёт студент*/} + {props.message.message.text} + {/**/} +
+
-
-
- {/*создаёт студент*/} - {props.message.user.name} - {/**/} -
-
-                    {/*создаёт студент*/}
-                    {props.message.message.text}
-                    {/**/}
-                
-
- {/*создаёт студент*/} - {props.message.message.time} - {/**/} -
+
+
+ {/*создаёт студент*/} + {props.message.message.time} + {/**/}
+ ) } diff --git a/src/s2-homeworks/hw01/HW1.tsx b/src/s2-homeworks/hw01/HW1.tsx index 72b4556..a7eea21 100644 --- a/src/s2-homeworks/hw01/HW1.tsx +++ b/src/s2-homeworks/hw01/HW1.tsx @@ -4,7 +4,7 @@ import MessageSender from './MessageSender' import s from './Message.module.css' import s2 from '../../s1-main/App.module.css' import FriendMessage from './FriendMessage' - +import avatar from './avatar.png' // нужно создать правильный тип вместо any export type MessageType = any @@ -12,18 +12,18 @@ export type MessageType = any export const message0: MessageType = { id: 0, user: { - avatar: 'https://sun9-74.userapi.com/Ph-WiuOtF985il9AvN9JqiCWedmHtSGSSTXrSA/ltEB2Z2-YO4.jpg', + avatar: avatar, name: 'Some Name', }, message: { - text: 'some text', + text: 'some textsome textsome textsome textsome textsome textsome text', time: '22:00', }, } export const friendMessage0: MessageType = { id: 100, user: { - avatar: 'https://sun9-74.userapi.com/Ph-WiuOtF985il9AvN9JqiCWedmHtSGSSTXrSA/ltEB2Z2-YO4.jpg', + avatar: avatar, name: 'Friend Name', }, message: { @@ -36,19 +36,24 @@ export const friendMessage0: MessageType = { const HW1 = () => { return (
-
+ {/*
*/} {/*можно убрать этот тег*/} -
homeworks 1
+
Homework #1
+
+
+ {/*проверка отображения (не менять)*/} +
+ - {/*проверка отображения (не менять)*/} - + {/*не обязательно*/} + +
- {/*не обязательно*/} - + {/*для автоматической проверки дз (не менять)*/} + +
- {/*для автоматической проверки дз (не менять)*/} -
{/*можно убрать этот тег*/} diff --git a/src/s2-homeworks/hw01/Message.module.css b/src/s2-homeworks/hw01/Message.module.css index 34034e3..b299352 100644 --- a/src/s2-homeworks/hw01/Message.module.css +++ b/src/s2-homeworks/hw01/Message.module.css @@ -1,26 +1,176 @@ .message { display: flex; - justify-content: right; - border: 1px solid lime; - margin: 10px; + flex-direction: column; + justify-content: flex-start; + align-items: flex-end; + margin: 24px 0 23px; } .friendMessage { display: flex; - border: 1px solid red; - margin: 10px; + flex-direction: column; + justify-content: flex-start; + align-items: flex-start; + margin: 24px 0 23px; +} + +.imageAndMessage { + display: flex; + flex-direction: row-reverse; + align-items: flex-end; +} + +.friendImageAndMessage { + display: flex; + align-items: flex-end; +} + +.friendName { + font-family: 'Montserrat', sans-serif; + font-weight: 600; + font-size: 18px; + line-height: 22px; + text-align: start; +} + +.name { + font-family: 'Montserrat', sans-serif; + font-weight: 600; + font-size: 18px; + line-height: 22px; + color: white; + text-align: end; +} + +.text { + font-family: 'Montserrat', sans-serif; + font-weight: 400; + font-size: 16px; + line-height: 20px; + color: white; +} + +.friendText { + font-family: 'Montserrat', sans-serif; + font-weight: 400; + font-size: 16px; + line-height: 20px; +} + +.messageText { + position: relative; + width: 100%; + max-width: 70%; + height: 100%; + background-color: #06c; + box-shadow: 0 5px 20px rgba(29, 33, 38, 0.03), 0 1px 2px rgba(29, 33, 38, 0.1); + display: flex; + flex-direction: column; + margin-right: 20px; + padding: 7px 25px 8px 13px; + border-radius: 10px; +} + +.messageText:after { + content: ' '; + position: absolute; + width: 0; + height: 0; + right: -15px; + left: auto; + top: auto; + bottom: 0; + border: 16px solid; + border-color: transparent transparent #06c transparent; +} + +.friendMessageText { + position: relative; + width: 100%; + max-width: 70%; + height: 100%; + background-color: #f5f7fb; + display: flex; + flex-direction: column; + margin-left: 20px; + padding: 7px 25px 8px 13px; + border-radius: 10px; +} + +.friendMessageText:after { + content: ' '; + position: absolute; + width: 0; + height: 0; + right: auto; + left: -15px; + top: auto; + bottom: 0; + border: 16px solid; + border-color: transparent transparent #f5f7fb transparent; } .sendForm { display: flex; justify-content: right; - margin: 10px; + gap: 44px; } .textarea { - + box-sizing: border-box; + background: #f5f7fb; + box-shadow: 0 5px 20px rgba(29, 33, 38, 0.03), 0 1px 2px rgba(29, 33, 38, 0.1); + border-radius: 20px; + width: 100%; + border: none; + resize: none; + font-family: 'Montserrat', sans-serif; + font-weight: 400; + font-size: 14px; + line-height: 16px; + padding: 12px 25px; } .button { + width: 120px; + height: 40px; + background: #06c; + border-radius: 20px; + border: none; + font-family: 'Montserrat', sans-serif; + font-weight: 600; + font-size: 16px; + line-height: 20px; + color: white; +} + +.button:hover { + cursor: pointer; +} + +.time { + font-family: 'Montserrat', sans-serif; + font-weight: 600; + font-size: 10px; + line-height: 12px; + margin-top: 5px; + width: 48px; + text-align: center; +} + +img { + border-radius: 50%; + width: 48px; + height: 48px; +} + +.friendTime { + font-family: 'Montserrat', sans-serif; + font-weight: 600; + font-size: 10px; + line-height: 12px; + margin-top: 5px; + width: 48px; + text-align: center; +} -} \ No newline at end of file diff --git a/src/s2-homeworks/hw01/Message.tsx b/src/s2-homeworks/hw01/Message.tsx index 6cf5062..aa46568 100644 --- a/src/s2-homeworks/hw01/Message.tsx +++ b/src/s2-homeworks/hw01/Message.tsx @@ -8,34 +8,35 @@ export type MessagePropsType = any const Message = (props: MessagePropsType) => { return (
- + {'avatar'} - -
-
- {/*создаёт студент*/} - {props.message.user.name} - {/**/} -
-
-                    {/*создаёт студент*/}
-                    {props.message.message.text}
-                    {/**/}
-                
-
- {/*создаёт студент*/} - {props.message.message.time} - {/**/} + // создаёт студент + src={props.message.user.avatar} + alt={'avatar'} + // + /> +
+
+ {/*создаёт студент*/} + {props.message.user.name} + {/**/} +
+
+ {/*создаёт студент*/} + {props.message.message.text} + {/**/} +
+
+ {/*создаёт студент*/} + {props.message.message.time} + {/**/} +
+ ) } diff --git a/src/s2-homeworks/hw01/MessageSender.tsx b/src/s2-homeworks/hw01/MessageSender.tsx index 24ac10f..26df1ff 100644 --- a/src/s2-homeworks/hw01/MessageSender.tsx +++ b/src/s2-homeworks/hw01/MessageSender.tsx @@ -1,5 +1,5 @@ -import React, {useState} from 'react' -import {message0} from './HW1' +import React, { useState } from 'react' +import { message0 } from './HW1' import s from './Message.module.css' // компонента, которая тестирует вашу компоненту (не изменять, any не трогать) @@ -29,13 +29,15 @@ const MessageSender = (props: any) => { id={'hw1-textarea'} value={text} onChange={e => setText(e.currentTarget.value)} - onKeyPress={e => e.key === 'Enter' && e.shiftKey && addMessage()} + placeholder={'Type your message'} + onKeyDown={e => e.key === 'Enter' && e.shiftKey && addMessage()} title={'Shift+Enter for send'} className={s.textarea} + rows={1} />
diff --git a/src/s2-homeworks/hw01/avatar.png b/src/s2-homeworks/hw01/avatar.png new file mode 100644 index 0000000..b9fc5fd Binary files /dev/null and b/src/s2-homeworks/hw01/avatar.png differ