PaulPatterson48 / INDIVIDUAL-ASSIGNMENT-Team-Roster

0 stars 0 forks source link

Update Members #11

Open PaulPatterson48 opened 11 months ago

PaulPatterson48 commented 11 months ago

User Story

GIVEN: As an authenticated user, I should be able to se an edit button on each member card

Acceptance Criteria

Edit button visible on the card Should see information about the member pre-populated Can edit the information on the form Promises for PATCH request

Dependecies

api\memberData.js with Promises components\forms\NavBar.js components\forms\memberCard.js pages\member\edit[firebaseKey].js for routing pages\member\edit[firbaekey].js pages\member\edit\new.js

Dev Notes

// TODO: UPDATE BOOK const updateBook = (payload) => new Promise((resolve, reject) => { fetch(${endpoint}/books/${payload.firebaseKey}.json, { method: 'PATCH', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(payload), }) .then((response) => response.json()) .then((data) => resolve(data)) .catch(reject); });

import React, { useEffect, useState } from 'react'; import { useRouter } from 'next/router'; import { getSingleBook } from '../../../api/bookData'; import BookForm from '../../../components/forms/BookForm';

export default function EditBook() { const [editItem, setEditItem] = useState({}); const router = useRouter(); // TODO: grab the firebasekey const { firebaseKey } = router.query;

// TODO: make a call to the API to get the book data useEffect(() => { getSingleBook(firebaseKey).then(setEditItem); }, [firebaseKey]);

// TODO: pass object to form return (); }

/ eslint-disable @next/next/no-img-element / import React, { useEffect, useState } from 'react'; import { useRouter } from 'next/router'; import { viewBookDetails } from '../../api/mergedData';

export default function ViewBook() { const [bookDetails, setBookDetails] = useState({}); const router = useRouter();

// TODO: grab firebaseKey from url const { firebaseKey } = router.query;

// TODO: make call to API layer to get the data useEffect(() => { viewBookDetails(firebaseKey).then(setBookDetails); }, [firebaseKey]);

return (

{bookDetails.title}
{bookDetails.title} by {bookDetails.authorObject?.first_name} {bookDetails.authorObject?.last_name} {bookDetails.authorObject?.favorite ? ' 🤍' : ''}
Author Email: {bookDetails.authorObject?.email}

{bookDetails.description || ''}


{bookDetails.sale ? `🏷️ Sale $${bookDetails.price}` : `$${bookDetails.price}`}

); }

import React from 'react'; import BookForm from '../../components/forms/BookForm';

// TODO: create a reusable form to add/edit book and render in this view

export default function AddBook() { return ; }