diff --git a/src/api/firebase.js b/src/api/firebase.js index c1b54d9..b6157fa 100644 --- a/src/api/firebase.js +++ b/src/api/firebase.js @@ -127,6 +127,8 @@ export async function createList(userId, userEmail, listName) { updateDoc(userDocumentRef, { sharedLists: arrayUnion(listDocRef), }); + + return listDocRef.path; } /** diff --git a/src/views/Home.jsx b/src/views/Home.jsx index 583ab59..adb5b3a 100644 --- a/src/views/Home.jsx +++ b/src/views/Home.jsx @@ -1,6 +1,37 @@ import './Home.css'; import { SingleList } from '../components'; +import { useState } from 'react'; +import { createList, useAuth } from '../api'; +import { useNavigate } from 'react-router-dom'; + export function Home({ data, setListPath }) { + const [listName, setListName] = useState(''); + const [error, setError] = useState(''); + const { user } = useAuth(); + const userId = user?.uid; + const userEmail = user?.email; + const navigate = useNavigate(); + + async function handleSubmit(e) { + e.preventDefault(); + + try { + if (!listName || !listName.trim()) { + throw new Error('Empty field, please enter a valid name'); + } + const result = await createList(userId, userEmail, listName); + setListPath(result); + navigate('/list'); + + setTimeout(() => { + alert('List saved to database'); + }, 100); + } catch (err) { + setError(err.message); + console.log(error); + } + } + return (
@@ -10,15 +41,28 @@ export function Home({ data, setListPath }) {
{data &&
data.map((list) => {
return (
-