Implement facebook auth client

This commit is contained in:
Chi Vinh Le
2018-02-13 12:26:55 +01:00
parent 3999b806c7
commit d857585c7f
10 changed files with 93 additions and 0 deletions
+1
View File
@@ -8,6 +8,7 @@
],
"client": [
"talk-plugin-auth",
"talk-plugin-facebook-auth",
"talk-plugin-author-menu",
"talk-plugin-comment-content",
"talk-plugin-featured-comments",
@@ -0,0 +1,3 @@
{
"extends": "@coralproject/eslint-config-talk/client"
}
@@ -0,0 +1,7 @@
export const loginWithFacebook = () => (dispatch, _, { rest }) => {
window.open(
`${rest.uri}/auth/facebook`,
'Continue with Facebook',
'menubar=0,resizable=0,width=500,height=500,top=200,left=500'
);
};
@@ -0,0 +1,13 @@
.button {
background-color: #4267b2;
border-color: #4267b2;
color: rgb(255, 255, 255);
width: 100%;
box-sizing: border-box;
padding: 10px 20px;
}
.button:hover {
background-color: #365899;
border-color: #365899;
}
@@ -0,0 +1,11 @@
import React from 'react';
import { BareButton } from 'plugin-api/beta/client/components/ui';
import styles from './FacebookButton.css';
export default ({ onClick, children }) => {
return (
<BareButton className={styles.button} onClick={onClick}>
{children}
</BareButton>
);
};
@@ -0,0 +1,9 @@
import React from 'react';
import FacebookButton from '../containers/FacebookButton';
import { t } from 'plugin-api/beta/client/services';
export default () => {
return (
<FacebookButton>{t('talk-plugin-facebook-auth.sign_in')}</FacebookButton>
);
};
@@ -0,0 +1,9 @@
import React from 'react';
import FacebookButton from '../containers/FacebookButton';
import { t } from 'plugin-api/beta/client/services';
export default () => {
return (
<FacebookButton>{t('talk-plugin-facebook-auth.sign_up')}</FacebookButton>
);
};
@@ -0,0 +1,9 @@
import { connect } from 'plugin-api/beta/client/hocs';
import { bindActionCreators } from 'redux';
import { loginWithFacebook } from '../actions';
import FacebookButton from '../components/FacebookButton';
const mapDispatchToProps = dispatch =>
bindActionCreators({ onClick: loginWithFacebook }, dispatch);
export default connect(null, mapDispatchToProps)(FacebookButton);
@@ -0,0 +1,11 @@
import SignIn from './components/SignIn';
import SignUp from './components/SignUp';
import translations from './translations.yml';
export default {
translations,
slots: {
authExternalSignIn: [SignIn],
authExternalSignUp: [SignUp],
},
};
@@ -0,0 +1,20 @@
en:
talk-plugin-facebook-auth:
sign_in: "Sign in with Facebook"
sign_up: "Sign up with Facebook"
es:
talk-plugin-facebook-auth:
facebook_sign_in: "Entrar con Facebook"
facebook_sign_up: "Registrarse con Facebook"
fr:
talk-plugin-facebook-auth:
facebook_sign_in: "Connectez-vous avec Facebook"
facebook_sign_up: "Inscrivez-vous avec Facebook"
zh_CN:
talk-plugin-facebook-auth:
facebook_sign_in: "使用 Facebook 帐号"
facebook_sign_up: "使用 Facebook 帐号"
zh_TW:
talk-plugin-facebook-auth:
facebook_sign_in: "使用 Facebook 帳號"
facebook_sign_up: "使用 Facebook 帳號"