diff --git a/imports/helpers.js b/imports/helpers.js
index c38a010..9f0c0f5 100644
--- a/imports/helpers.js
+++ b/imports/helpers.js
@@ -80,11 +80,12 @@ export function validatePassword(password = '', showMessage, clearMessage){
}
};
-export function validateUsername(username, showMessage, clearMessage) {
+export function validateUsername(username, showMessage, clearMessage, formState) {
if ( username ) {
return true;
} else {
- showMessage(T9n.get("error.usernameRequired"), 'warning', false, 'username');
+ const fieldName = (passwordSignupFields() === 'USERNAME_ONLY' || formState === STATES.SIGN_UP) ? 'username' : 'usernameOrEmail';
+ showMessage(T9n.get("error.usernameRequired"), 'warning', false, fieldName);
return false;
}
}
diff --git a/imports/ui/components/Field.jsx b/imports/ui/components/Field.jsx
index 5741dd1..79e0076 100644
--- a/imports/ui/components/Field.jsx
+++ b/imports/ui/components/Field.jsx
@@ -12,7 +12,7 @@ export class Field extends React.Component {
triggerUpdate() {
// Trigger an onChange on inital load, to support browser prefilled values.
const { onChange } = this.props;
- if (this.input && this.input.value) {
+ if (this.input && onChange) {
onChange({ target: { value: this.input.value } });
}
}
diff --git a/imports/ui/components/Form.jsx b/imports/ui/components/Form.jsx
index f43578f..a4301c0 100644
--- a/imports/ui/components/Form.jsx
+++ b/imports/ui/components/Form.jsx
@@ -34,7 +34,7 @@ export class Form extends React.Component {
ref={(ref) => this.form = ref}
className={[className, ready ? "ready" : null].join(' ')}
className="accounts-ui"
- novalidate
+ noValidate
>
diff --git a/imports/ui/components/LoginForm.jsx b/imports/ui/components/LoginForm.jsx
index a8e05cb..d0d1b9e 100644
--- a/imports/ui/components/LoginForm.jsx
+++ b/imports/ui/components/LoginForm.jsx
@@ -92,6 +92,7 @@ export class LoginForm extends Tracker.Component {
}
validateField(field, value) {
+ const { formState } = this.state;
switch(field) {
case 'email':
return validateEmail(value,
@@ -107,6 +108,7 @@ export class LoginForm extends Tracker.Component {
return validateUsername(value,
this.showMessage.bind(this),
this.clearMessage.bind(this),
+ formState,
);
}
}
@@ -425,7 +427,7 @@ export class LoginForm extends Tracker.Component {
setDefaultFieldValues(defaults) {
if (typeof defaults !== 'object') {
throw new Error('Argument to setDefaultFieldValues is not of type object');
- } else if (localStorage) {
+ } else if (typeof localStorage !== 'undefined' && localStorage) {
localStorage.setItem('accounts_ui', JSON.stringify({
passwordSignupFields: passwordSignupFields(),
...this.getDefaultFieldValues(),
@@ -438,7 +440,7 @@ export class LoginForm extends Tracker.Component {
* Helper to get field values when switching states in the form.
*/
getDefaultFieldValues() {
- if (localStorage) {
+ if (typeof localStorage !== 'undefined' && localStorage) {
const defaultFieldValues = JSON.parse(localStorage.getItem('accounts_ui') || null);
if (defaultFieldValues
&& defaultFieldValues.passwordSignupFields === passwordSignupFields()) {
@@ -451,7 +453,7 @@ export class LoginForm extends Tracker.Component {
* Helper to clear field values when signing in, up or out.
*/
clearDefaultFieldValues() {
- if (localStorage) {
+ if (typeof localStorage !== 'undefined' && localStorage) {
localStorage.removeItem('accounts_ui');
}
}
@@ -906,12 +908,14 @@ export class LoginForm extends Tracker.Component {
componentWillMount() {
// XXX Check for backwards compatibility.
- const container = document.createElement('div');
- ReactDOM.render(, container);
- if (container.getElementsByClassName('message').length == 0) {
- // Found backwards compatibility issue with 1.3.x
- console.warn(`Implementations of Accounts.ui.Field must render message in v1.2.11.
- https://github.com/studiointeract/accounts-ui/#deprecations`);
+ if (Meteor.isClient) {
+ const container = document.createElement('div');
+ ReactDOM.render(, container);
+ if (container.getElementsByClassName('message').length == 0) {
+ // Found backwards compatibility issue with 1.3.x
+ console.warn(`Implementations of Accounts.ui.Field must render message in v1.2.11.
+ https://github.com/studiointeract/accounts-ui/#deprecations`);
+ }
}
}