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