Spaces:
Runtime error
Runtime error
File size: 2,039 Bytes
8fd7a1d |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
import PropTypes from 'prop-types';
import React from 'react';
import classNames from 'classnames';
import {FormattedMessage} from 'react-intl';
import UserAvatar from './user-avatar.jsx';
import styles from './author-info.css';
const ActualAuthorInfo = ({
className,
imageUrl,
projectTitle,
// TODO: use userId to link to user's profile
userId, // eslint-disable-line no-unused-vars
username
}) => (
<div
className={classNames(
className,
styles.authorInfo
)}
>
<UserAvatar
className={styles.avatar}
imageUrl={imageUrl}
/>
<div className={styles.titleAuthor}>
<h1 className={styles.projectTitle}>
{projectTitle}
</h1>
<div>
<span className={styles.usernameLine}>
<FormattedMessage
defaultMessage="by {username}"
description="Shows that a project was created by this user"
id="gui.authorInfo.byUser"
values={{
username: <span className={styles.username}>{username}</span>
}}
/>
</span>
</div>
</div>
</div>
);
ActualAuthorInfo.propTypes = {
className: PropTypes.string,
imageUrl: PropTypes.string,
projectTitle: PropTypes.string,
userId: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),
username: PropTypes.oneOfType([PropTypes.string, PropTypes.bool])
};
const AuthorInfo = ({projectId, ...props}) => (
projectId ? (
<a
className={styles.link}
href={`https://scratch.mit.edu/projects/${projectId}`}
target="_blank"
rel="noreferrer"
>
<ActualAuthorInfo {...props} />
</a>
) : <ActualAuthorInfo {...props} />
);
AuthorInfo.propTypes = {
projectId: PropTypes.string
};
export default AuthorInfo;
|