diff --git a/src/models/Dev.ts b/src/models/Dev.ts index 0c86d43..6283b84 100644 --- a/src/models/Dev.ts +++ b/src/models/Dev.ts @@ -30,6 +30,31 @@ interface Dev extends DevSummary { export const getDescription = (status: string, company: string) => `${status} at ${company}`; +/** blank Dev serve as placeholder when initializing a new profile */ +export const blankDev: Dev = { + id: '42', + displayName: '', + status: 'Developer', + company: '', + picture: '', + description: '', + location: '', + skills: [], + links: { + website: '', + instagram: '', + facebook: '', + linkedin: '', + twitter: '', + github: '', + youtube: '', + }, + bio: '', + experiences: [], + educations: [], + repos: [], +}; + /** * sample Dev for development and tests */ diff --git a/src/pages/SignUp.tsx b/src/pages/SignUp.tsx index cbddce5..1ec1a8b 100644 --- a/src/pages/SignUp.tsx +++ b/src/pages/SignUp.tsx @@ -12,6 +12,7 @@ import Alert from '../components/Alert'; import Header from '../components/Header'; // Form import useForm from '../hooks'; +import {blankDev} from '../models/Dev'; // extends withFirebaseProps type to ad profile info interface IProps extends WithFirebaseProps { @@ -55,12 +56,18 @@ const SignUp: FC = ({firebase, isEmpty, isLoaded}) => { // pass the info to store into the second argument firebase .createUser({email, password}, newUser(name, email)) - .then(() => resetForm()) + .then(() => { + firebase.updateProfile(blankDev, {useSet: true, merge: true}); + resetForm(); + }) .catch(err => setError(err)); }; const loginWithGoogle = () => - firebase.login({provider: 'google', type: 'popup'}); + firebase + .login({provider: 'google', type: 'popup'}) + .then(() => firebase.updateProfile(blankDev, {useSet: true, merge: true})) + .catch(err => setError(err)); // redirect to dashboard if connected if (isLoaded && !isEmpty) {