diff --git a/.gitignore b/.gitignore index 7c0007dc9..fbeb12d8c 100644 --- a/.gitignore +++ b/.gitignore @@ -63,6 +63,7 @@ plugins/* !plugins/talk-plugin-viewing-options !plugins/talk-plugin-rich-text !plugins/talk-plugin-rich-text-pell +!plugins/talk-plugin-health-report **/node_modules/* yarn-error.log diff --git a/plugins/talk-plugin-auth/client/login/components/SignUp.js b/plugins/talk-plugin-auth/client/login/components/SignUp.js index 930d41819..a66e46dee 100644 --- a/plugins/talk-plugin-auth/client/login/components/SignUp.js +++ b/plugins/talk-plugin-auth/client/login/components/SignUp.js @@ -122,6 +122,7 @@ class SignUp extends React.Component { id="coralSignUpButton" className={styles.button} full + disabled={!this.props.submitSignUpForm} > {t('talk-plugin-auth.login.sign_up')} @@ -175,6 +176,7 @@ SignUp.propTypes = { success: PropTypes.bool.isRequired, enableSubmitSignUpForm: PropTypes.func.isRequired, disableSubmitSignUpForm: PropTypes.func.isRequired, + submitSignUpForm: PropTypes.bool.isRequired, }; export default SignUp; diff --git a/plugins/talk-plugin-health-report/client/.eslintrc.json b/plugins/talk-plugin-health-report/client/.eslintrc.json new file mode 100644 index 000000000..9fe56bd14 --- /dev/null +++ b/plugins/talk-plugin-health-report/client/.eslintrc.json @@ -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"] }] + } +} diff --git a/plugins/talk-plugin-health-report/client/components/TermsAndConditionsField.js b/plugins/talk-plugin-health-report/client/components/TermsAndConditionsField.js new file mode 100644 index 000000000..79d079d7f --- /dev/null +++ b/plugins/talk-plugin-health-report/client/components/TermsAndConditionsField.js @@ -0,0 +1,45 @@ +import React from 'react'; +import { Checkbox } from 'plugin-api/beta/client/components/ui'; +import { t } from 'plugin-api/beta/client/services'; + +const TermsLink = () => ( + + {t('talk-plugin-health-report.terms')} + +); + +class TermsAndConditionsField extends React.Component { + state = { checked: false }; + id = 'terms-and-conditions'; + + componentWillMount() { + this.props.disableSubmitSignUpForm(); + } + + onChange = ({ target: { checked } }) => { + if (checked) { + this.setState(() => ({ checked })); + this.props.enableSubmitSignUpForm(); + } else { + this.setState(() => ({ checked })); + this.props.disableSubmitSignUpForm(); + } + }; + + render() { + return ( +
+ + +
+ ); + } +} + +export default TermsAndConditionsField; diff --git a/plugins/talk-plugin-health-report/client/index.js b/plugins/talk-plugin-health-report/client/index.js new file mode 100644 index 000000000..d2aaaa1cb --- /dev/null +++ b/plugins/talk-plugin-health-report/client/index.js @@ -0,0 +1,9 @@ +import TermsAndConditionsField from './components/TermsAndConditionsField'; +import translations from './translations.yml'; + +export default { + slots: { + 'talkPluginAuth-formField': [TermsAndConditionsField], + }, + translations, +}; diff --git a/plugins/talk-plugin-health-report/client/translations.yml b/plugins/talk-plugin-health-report/client/translations.yml new file mode 100644 index 000000000..cfff60419 --- /dev/null +++ b/plugins/talk-plugin-health-report/client/translations.yml @@ -0,0 +1,21 @@ +en: + talk-plugin-health-report: + copy: I agree to the Mozilla {0} and {1}. + terms: Terms of Service + termslink: https://www.mozilla.org/en-US/about/legal/terms/mozilla/ + privacy: https://www.mozilla.org/en-US/privacy/websites/ +es: + talk-plugin-health-report: + copy: Estoy de acuerdo con los {0} de Mozilla y {1}. + terms: https://www.mozilla.org/en-US/about/legal/terms/mozilla/ + privacy: https://www.mozilla.org/en-US/privacy/websites/ +fr: + talk-plugin-health-report: + copy: J'accepte les conditions d'utilisation et la politique de confidentialité de Mozilla. + terms: https://www.mozilla.org/en-US/about/legal/terms/mozilla/ + privacy: https://www.mozilla.org/en-US/privacy/websites/ +de: + talk-plugin-health-report: + copy: J'accepte les conditions d'utilisation et la politique de confidentialité de Mozilla. + terms: https://www.mozilla.org/en-US/about/legal/terms/mozilla/ + privacy: https://www.mozilla.org/en-US/privacy/websites/ \ No newline at end of file diff --git a/plugins/talk-plugin-health-report/index.js b/plugins/talk-plugin-health-report/index.js new file mode 100644 index 000000000..f053ebf79 --- /dev/null +++ b/plugins/talk-plugin-health-report/index.js @@ -0,0 +1 @@ +module.exports = {};