Blame view
imports/modules/signup.js
1.64 KB
cac7cbc73
|
1 2 |
import $ from 'jquery'; import 'jquery-validation'; |
7df77f0fa
|
3 |
import { browserHistory } from 'react-router'; |
cac7cbc73
|
4 5 |
import { Accounts } from 'meteor/accounts-base'; import { Bert } from 'meteor/themeteorchef:bert'; |
7df77f0fa
|
6 7 8 |
import { getInputValue } from './get-input-value'; let component; |
cac7cbc73
|
9 10 11 |
const getUserData = () => ({ email: getInputValue(component.refs.emailAddress), password: getInputValue(component.refs.password), |
f0c912bf1
|
12 13 |
profile: { name: { |
cac7cbc73
|
14 15 |
first: getInputValue(component.refs.firstName), last: getInputValue(component.refs.lastName), |
f0c912bf1
|
16 17 18 |
}, }, }); |
7df77f0fa
|
19 |
|
cac7cbc73
|
20 21 |
const signUp = () => { const user = getUserData(); |
7df77f0fa
|
22 |
|
f0c912bf1
|
23 24 25 |
Accounts.createUser(user, (error) => { if (error) { Bert.alert(error.reason, 'danger'); |
7df77f0fa
|
26 |
} else { |
f0c912bf1
|
27 28 |
browserHistory.push('/'); Bert.alert('Welcome!', 'success'); |
7df77f0fa
|
29 30 31 |
} }); }; |
cac7cbc73
|
32 |
const validate = () => { |
f0c912bf1
|
33 |
$(component.refs.signup).validate({ |
7df77f0fa
|
34 35 |
rules: { firstName: { |
f0c912bf1
|
36 |
required: true, |
7df77f0fa
|
37 38 |
}, lastName: { |
f0c912bf1
|
39 |
required: true, |
7df77f0fa
|
40 41 42 |
}, emailAddress: { required: true, |
f0c912bf1
|
43 |
email: true, |
7df77f0fa
|
44 45 46 |
}, password: { required: true, |
f0c912bf1
|
47 48 |
minlength: 6, }, |
7df77f0fa
|
49 50 51 |
}, messages: { firstName: { |
f0c912bf1
|
52 |
required: 'First name?', |
7df77f0fa
|
53 54 |
}, lastName: { |
f0c912bf1
|
55 |
required: 'Last name?', |
7df77f0fa
|
56 57 58 |
}, emailAddress: { required: 'Need an email address here.', |
f0c912bf1
|
59 |
email: 'Is this email address legit?', |
7df77f0fa
|
60 61 62 |
}, password: { required: 'Need a password here.', |
f0c912bf1
|
63 64 |
minlength: 'Use at least six characters, please.', }, |
7df77f0fa
|
65 |
}, |
cac7cbc73
|
66 |
submitHandler() { signUp(); }, |
7df77f0fa
|
67 68 |
}); }; |
f0c912bf1
|
69 |
export const handleSignup = (options) => { |
7df77f0fa
|
70 |
component = options.component; |
cac7cbc73
|
71 |
validate(); |
7df77f0fa
|
72 |
}; |