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 (
-
![]()
+

+ // создаёт студент
+ 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 (
-
![]()
+

-
-
-
- {/*создаёт студент*/}
- {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