You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
984 B
51 lines
984 B
function formatDate(date) {
|
|
return date.toLocaleDateString();
|
|
}
|
|
|
|
function Avatar(props) {
|
|
return (
|
|
<img
|
|
className="Avatar"
|
|
src={props.user.avatarUrl}
|
|
alt={props.user.name}
|
|
/>
|
|
);
|
|
}
|
|
|
|
function UserInfo(props) {
|
|
return (
|
|
<div className="UserInfo">
|
|
<Avatar user={props.user} />
|
|
<div className="UserInfo-name">{props.user.name}</div>
|
|
</div>
|
|
);
|
|
}
|
|
|
|
function Comment(props) {
|
|
return (
|
|
<div className="Comment">
|
|
<UserInfo user={props.author} />
|
|
<div className="Comment-text">{props.text}</div>
|
|
<div className="Comment-date">
|
|
{formatDate(props.date)}
|
|
</div>
|
|
</div>
|
|
);
|
|
}
|
|
|
|
const comment = {
|
|
date: new Date(),
|
|
text: 'I hope you enjoy learning React!',
|
|
author: {
|
|
name: 'Hello Kitty',
|
|
avatarUrl: 'https://placekitten.com/g/64/64',
|
|
},
|
|
};
|
|
ReactDOM.render(
|
|
<Comment
|
|
date={comment.date}
|
|
text={comment.text}
|
|
author={comment.author}
|
|
/>,
|
|
document.getElementById('root')
|
|
);
|
|
|