Есть повторяющийся UI-блок уведомления. Вынеси его в отдельный компонент
MessageCardи используй вAppвместо дублирования разметки.
Чистый код — меньше дубликатов. Повторяющиеся куски UI легче поддерживать, когда они оформлены как отдельный компонент.
MessageCard с пропсами title и text.MessageCard.App замени три блока на три вызова MessageCard.data-testid="message-card" на корневой элемент компонента.function MessageCard({ title, text }) {
return (
<article className="notice" data-testid="message-card">
<h3 className="notice__title">{title}</h3>
<p className="notice__text">{text}</p>
</article>
);
}App:
<MessageCard title="Успех" text="Операция выполнена" />import React from 'react';
import './styles.css';
export function MessageCard({ title, text }) {
return (
<article className="notice" data-testid="message-card">
<h3 className="notice__title">{title}</h3>
<p className="notice__text">{text}</p>
</article>
);
}
export default function App() {
return (
<main className="challenge-container">
<section>
<MessageCard title="Успех" text="Операция выполнена" />
<div style={{ marginTop: 16 }}>
<MessageCard title="Предупреждение" text="Проверьте введённые данные" />
</div>
<div style={{ marginTop: 16 }}>
<MessageCard title="Ошибка" text="Что-то пошло не так" />
</div>
</section>
</main>
);
}Почему это работает: Повторяющийся UI инкапсулирован в компонент — меньше дубликатов, проще изменять и тестировать.
Есть повторяющийся UI-блок уведомления. Вынеси его в отдельный компонент
MessageCardи используй вAppвместо дублирования разметки.
Чистый код — меньше дубликатов. Повторяющиеся куски UI легче поддерживать, когда они оформлены как отдельный компонент.
MessageCard с пропсами title и text.MessageCard.App замени три блока на три вызова MessageCard.data-testid="message-card" на корневой элемент компонента.function MessageCard({ title, text }) {
return (
<article className="notice" data-testid="message-card">
<h3 className="notice__title">{title}</h3>
<p className="notice__text">{text}</p>
</article>
);
}App:
<MessageCard title="Успех" text="Операция выполнена" />import React from 'react';
import './styles.css';
export function MessageCard({ title, text }) {
return (
<article className="notice" data-testid="message-card">
<h3 className="notice__title">{title}</h3>
<p className="notice__text">{text}</p>
</article>
);
}
export default function App() {
return (
<main className="challenge-container">
<section>
<MessageCard title="Успех" text="Операция выполнена" />
<div style={{ marginTop: 16 }}>
<MessageCard title="Предупреждение" text="Проверьте введённые данные" />
</div>
<div style={{ marginTop: 16 }}>
<MessageCard title="Ошибка" text="Что-то пошло не так" />
</div>
</section>
</main>
);
}Почему это работает: Повторяющийся UI инкапсулирован в компонент — меньше дубликатов, проще изменять и тестировать.
Редактор кода намеренно скрыт на мобильном.
Поверь, так лучше: я оберегаю тебя от искушения писать код в неидеальных условиях. Маленький экран и виртуальная клавиатура — не лучшие помощники для программиста.
📖 Сейчас: Изучи задачу, продумай решение. Действуй как стратег.
💻 Потом: Сядь за компьютер, открой сайт и реализуй все идеи с комфортом. Действуй как код-джедай!