Skip to content
This repository was archived by the owner on Sep 22, 2022. It is now read-only.

Korsikova PR#1

Open
lumejiodev wants to merge 13 commits into
lumejiodev:masterfrom
kors-ana:master
Open

Korsikova PR#1
lumejiodev wants to merge 13 commits into
lumejiodev:masterfrom
kors-ana:master

Conversation

@lumejiodev
Copy link
Copy Markdown
Owner

No description provided.

Comment thread leaderboard/src/App.js Outdated
<Header title='Добавить участника' />
<ParticipantCard title='Имя и фамилия'/>
<ParticipantCard title='Количество очков'/>
<button className='button'>Добавить</button>
Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Сейчас обычно используется подход, когда почти все элементы вёрстки - это компоненты. То есть как здесь в случае с button с классом button - делается такой компонент Button, импортируется и используется. Это делается для большей гибкости вёрстки/приложения. Если в какой-то момент понадобится поменять класс button на какой-нибудь другой, то это будет достаточно сделать в одном месте

Comment thread leaderboard/src/App.js Outdated
<Header title='Лидеры'/>

<div className='leadersContainer'>
<LeaderCard name='Пётр Иванов' score='8901 очков' img={cup}/>
Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

В реальности будет очень неудобно работать с форматом данных "nnnn очков". Если потребуются какие-то вычесления на бэке или фронте, то придётся извлекать число и тд. То есть в реальной ситуации почти с 100% вероятностью данные прилетят просто в виде числа - 8901.
Тебе здесь нужно заменить строки на числа (score={8901}) и дальше сделать в компоненте, чтоб выводилось слово "очков"

margin-bottom: 5px;
}

.Leader-name {
Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

то кемелкейс, то через дефис. Тут какая-то логика есть?)

<p className='Leader-score'>{ props.score }</p>
</div>
<div className='LeaderCard__image'>
<img src={props.img} alt='cup'/>
Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Дальше мы изучим propTypes, но пока просто следует предусмотреть отсутствие props.img
Сделай так, чтобы LeaderCard__image выводился только если есть props.img

@lumejiodev
Copy link
Copy Markdown
Owner Author

  1. Компоненты лучше поместить в папку /components
  2. Грязновато написано. Где-то есть пробелы между словом и фигурными скобками, где-то нет, где-то лишние переносы строк, где-то не хватает. Не так всё плохо, но надо лучше
  3. Я так понимаю ещё не хватило времени до конца доверстать, но надо хотя бы сделать чтобы были нужные цвета у шапок контейнеров, была левая панель в кнопками и разные картинки для 1, 2 и 3 мест в Лидерах

persons: [
{name:'Пётр Иванов', score: 8901, img: cup, imgColor:'gold' },
{name:'Максим Кальченко', score: 7890, img: cup, imgColor:'grey' },
{name:'Алёна Михалкова', score: 7801, img: cup, imgColor:'brown' },
Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

не мешай логику и представление.
img и imgColor здесь - это представление, а тебе нужно прокидывать логику, т.е. например place: 1
А дальше прокидывать этот place в Card и там уже рендерить соответствующую картинку

<Header title='Лидеры' color='purple' />

<div className='Leaders__container'>
{this.state.persons.map(person => {
Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

используй деструктуризацию
пример:
map(({ name, score, img, imgColor }) => <LeaderCard name={name} />)

class SidebarNavigation extends Component {

iconsColorChangeHandler = (e) => {
let svgs = document.querySelectorAll('.navigation-list__item .button svg');
Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

тут всё мимо Реакта сделано - так быть не должно )

<div className='Leader-card__image'>

<div className='Leader-card__trophy-bc'>
<svg width="64" height="64" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

вынеси эту svg в отдельный файл, а потом используй
придётся подумать, как прокидывать туда цвет, но если что, могу рассказать

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants