Add bot icon to bot avatars and migrate to newer version of Font Awesome (#8484)

* Migrate to newer version of Font Awesome

* Add bot icon to bot avatars
pull/8704/head^2
Maciek Baron 2018-09-25 04:08:55 +01:00 committed by Eugen Rochko
parent 8864009e8d
commit 4b794e134d
9 changed files with 66 additions and 10 deletions

View File

@ -1,7 +1,8 @@
import Rails from 'rails-ujs'; import Rails from 'rails-ujs';
export function start() { export function start() {
require('font-awesome/css/font-awesome.css'); require('@fortawesome/fontawesome-free/css/fontawesome.css');
require('@fortawesome/fontawesome-free/css/solid.css');
require.context('../images/', true); require.context('../images/', true);
Rails.start(); Rails.start();

View File

@ -13,7 +13,11 @@ exports[`<Avatar /> Autoplay renders a animated avatar 1`] = `
"width": "100px", "width": "100px",
} }
} }
>
<i
className="fa fa-fw fa-robot bot-icon"
/> />
</div>
`; `;
exports[`<Avatar /> Still renders a still avatar 1`] = ` exports[`<Avatar /> Still renders a still avatar 1`] = `
@ -29,5 +33,9 @@ exports[`<Avatar /> Still renders a still avatar 1`] = `
"width": "100px", "width": "100px",
} }
} }
>
<i
className="fa fa-fw fa-robot bot-icon"
/> />
</div>
`; `;

View File

@ -10,6 +10,7 @@ describe('<Avatar />', () => {
display_name: 'Alice', display_name: 'Alice',
avatar: '/animated/alice.gif', avatar: '/animated/alice.gif',
avatar_static: '/static/alice.jpg', avatar_static: '/static/alice.jpg',
bot: true,
}); });
const size = 100; const size = 100;

View File

@ -1,6 +1,7 @@
import React from 'react'; import React from 'react';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes'; import ImmutablePropTypes from 'react-immutable-proptypes';
import BotIcon from './bot_icon';
import { autoPlayGif } from '../initial_state'; import { autoPlayGif } from '../initial_state';
export default class Avatar extends React.PureComponent { export default class Avatar extends React.PureComponent {
@ -65,7 +66,9 @@ export default class Avatar extends React.PureComponent {
onMouseEnter={this.handleMouseEnter} onMouseEnter={this.handleMouseEnter}
onMouseLeave={this.handleMouseLeave} onMouseLeave={this.handleMouseLeave}
style={style} style={style}
/> >
<BotIcon account={account} />
</div>
); );
} }

View File

@ -0,0 +1,23 @@
import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
export default class BotIcon extends ImmutablePureComponent {
static propTypes = {
account: ImmutablePropTypes.map.isRequired,
};
render () {
const { account } = this.props;
if (account.get('bot')) {
return (
<i className='fa fa-fw fa-robot bot-icon' />
);
}
return '';
}
}

View File

@ -3,6 +3,7 @@ import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import IconButton from '../../../components/icon_button'; import IconButton from '../../../components/icon_button';
import BotIcon from '../../../components/bot_icon';
import Motion from '../../ui/util/optional_motion'; import Motion from '../../ui/util/optional_motion';
import spring from 'react-motion/lib/spring'; import spring from 'react-motion/lib/spring';
import ImmutablePureComponent from 'react-immutable-pure-component'; import ImmutablePureComponent from 'react-immutable-pure-component';
@ -67,6 +68,7 @@ class Avatar extends ImmutablePureComponent {
onBlur={this.handleMouseOut} onBlur={this.handleMouseOut}
> >
<span style={{ display: 'none' }}>{account.get('acct')}</span> <span style={{ display: 'none' }}>{account.get('acct')}</span>
<BotIcon account={account} />
</a> </a>
)} )}
</Motion> </Motion>

View File

@ -1110,6 +1110,12 @@
vertical-align: middle; vertical-align: middle;
margin-right: 5px; margin-right: 5px;
} }
.bot-icon {
position: absolute;
bottom: -.333em;
left: -.333em;
}
} }
a .account__avatar { a .account__avatar {
@ -1327,10 +1333,22 @@ a .account__avatar {
.account__header__avatar { .account__header__avatar {
background-size: 90px 90px; background-size: 90px 90px;
display: block; display: block;
font-size: 1.5em;
height: 90px; height: 90px;
margin: 0 auto 10px; margin: 0 auto 10px;
overflow: hidden; position: relative;
width: 90px; width: 90px;
.bot-icon {
color: $dark-text-color;
position: absolute;
bottom: 0;
left: 0;
.light & {
color: $inverted-text-color;
}
}
} }
.account-authorize { .account-authorize {

View File

@ -37,6 +37,7 @@
"@babel/preset-env": "^7.0.0", "@babel/preset-env": "^7.0.0",
"@babel/preset-react": "^7.0.0", "@babel/preset-react": "^7.0.0",
"@babel/runtime": "^7.0.0", "@babel/runtime": "^7.0.0",
"@fortawesome/fontawesome-free": "^5.2.0",
"array-includes": "^3.0.3", "array-includes": "^3.0.3",
"autoprefixer": "^8.6.5", "autoprefixer": "^8.6.5",
"axios": "~0.16.2", "axios": "~0.16.2",
@ -58,7 +59,6 @@
"exif-js": "^2.3.0", "exif-js": "^2.3.0",
"express": "^4.16.2", "express": "^4.16.2",
"file-loader": "^2.0.0", "file-loader": "^2.0.0",
"font-awesome": "^4.7.0",
"glob": "^7.1.1", "glob": "^7.1.1",
"history": "^4.7.2", "history": "^4.7.2",
"http-link-header": "^0.8.0", "http-link-header": "^0.8.0",

View File

@ -647,6 +647,10 @@
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/@csstools/sass-import-resolve/-/sass-import-resolve-1.0.0.tgz#32c3cdb2f7af3cd8f0dca357b592e7271f3831b5" resolved "https://registry.yarnpkg.com/@csstools/sass-import-resolve/-/sass-import-resolve-1.0.0.tgz#32c3cdb2f7af3cd8f0dca357b592e7271f3831b5"
"@fortawesome/fontawesome-free@^5.2.0":
version "5.2.0"
resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.2.0.tgz#50cd9856774351c56c0b1b0db4efe122d7913e58"
"@types/node@*": "@types/node@*":
version "10.9.4" version "10.9.4"
resolved "https://registry.yarnpkg.com/@types/node/-/node-10.9.4.tgz#0f4cb2dc7c1de6096055357f70179043c33e9897" resolved "https://registry.yarnpkg.com/@types/node/-/node-10.9.4.tgz#0f4cb2dc7c1de6096055357f70179043c33e9897"
@ -3279,10 +3283,6 @@ follow-redirects@^1.0.0, follow-redirects@^1.2.3:
dependencies: dependencies:
debug "=3.1.0" debug "=3.1.0"
font-awesome@^4.7.0:
version "4.7.0"
resolved "https://registry.yarnpkg.com/font-awesome/-/font-awesome-4.7.0.tgz#8fa8cf0411a1a31afd07b06d2902bb9fc815a133"
for-in@^0.1.3: for-in@^0.1.3:
version "0.1.8" version "0.1.8"
resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.8.tgz#d8773908e31256109952b1fdb9b3fa867d2775e1" resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.8.tgz#d8773908e31256109952b1fdb9b3fa867d2775e1"