Add member since

This commit is contained in:
Chi Vinh Le
2017-09-01 23:15:00 +07:00
parent 9c2ea693b9
commit c07eaf0edb
13 changed files with 150 additions and 216 deletions
@@ -7,7 +7,7 @@
position: absolute;
-webkit-box-shadow: 0 2px 2px 0 rgba(0,0,0,0.14), 0 1px 5px 0 rgba(0,0,0,0.12), 0 3px 1px -2px rgba(0,0,0,0.2);
box-shadow: 0 2px 2px 0 rgba(0,0,0,0.14), 0 1px 5px 0 rgba(0,0,0,0.12), 0 3px 1px -2px rgba(0,0,0,0.2);
z-index: 10;
z-index: 9;
top: 26px;
left: 0px;
min-width: 20px;
@@ -0,0 +1,14 @@
{
"presets": [
"es2015"
],
"plugins": [
"add-module-exports",
"transform-class-properties",
"transform-decorators-legacy",
"transform-object-assign",
"transform-object-rest-spread",
"transform-async-to-generator",
"transform-react-jsx"
]
}
@@ -0,0 +1,23 @@
{
"env": {
"browser": true,
"es6": true,
"mocha": true
},
"parserOptions": {
"sourceType": "module",
"ecmaFeatures": {
"experimentalObjectRestSpread": true,
"jsx": true
}
},
"parser": "babel-eslint",
"plugins": [
"react"
],
"rules": {
"react/jsx-uses-react": "error",
"react/jsx-uses-vars": "error",
"no-console": ["warn", { "allow": ["warn", "error"] }]
}
}
@@ -0,0 +1,16 @@
.root {
white-space: nowrap;
}
.memberSince {
color: #484747;
margin-left: 4px;
letter-spacing: 0.2px;
font-size: 0.9em;
vertical-align: middle;
}
.icon {
font-size: 1.4em;
vertical-align: middle;
}
@@ -0,0 +1,14 @@
import React from 'react';
import styles from './MemberSinceInfo.css';
import {t} from 'plugin-api/beta/client/services';
import {Icon} from 'plugin-api/beta/client/components/ui';
import moment from 'moment';
export default ({memberSinceDate}) => (
<div className={styles.root}>
<Icon name="date_range" className={styles.icon} />
<span className={styles.memberSince}>
{t('talk-plugin-member-since.member_since')}: {moment(new Date(memberSinceDate)).format('MMM DD, YYYY')}
</span>
</div>
);
@@ -0,0 +1,28 @@
import React from 'react';
import MemberSinceInfo from '../components/MemberSinceInfo';
import {compose, gql} from 'react-apollo';
import {withFragments} from 'plugin-api/beta/client/hocs';
class MemberSinceInfoContainer extends React.Component {
render() {
return <MemberSinceInfo
memberSinceDate={this.props.comment.user.created_at}
/>;
}
}
const withMemberSinceInfoFragments = withFragments({
comment: gql`
fragment TalkAuthorMenu_MemberSinceInfo_comment on Comment {
user {
username
created_at
}
}`,
});
const enhance = compose(
withMemberSinceInfoFragments,
);
export default enhance(MemberSinceInfoContainer);
@@ -0,0 +1,9 @@
import MemberSinceInfo from './containers/MemberSinceInfo';
import translations from './translations.yml';
export default {
slots: {
authorMenuInfos: [MemberSinceInfo]
},
translations
};
@@ -0,0 +1,6 @@
en:
talk-plugin-member-since:
member_since: "Member Since"
es:
talk-plugin-member-since:
member_since: "Miembro desde"
@@ -0,0 +1 @@
module.exports = {};