|
1 |
| -import React, { useState } from 'react'; |
| 1 | +import React, { useEffect, useState } from 'react'; |
2 | 2 | import { useHistory } from 'react-router-dom';
|
3 | 3 | import firebase from 'firebase/app';
|
| 4 | +import '../classes/Item'; |
4 | 5 | import './Edit.scss';
|
| 6 | +import Item from '../classes/Item'; |
5 | 7 |
|
6 | 8 | function Edit({ params, user, list }) {
|
7 | 9 | const history = useHistory();
|
| 10 | + if (!user) { |
| 11 | + history.push('/'); |
| 12 | + } |
8 | 13 | let { key } = params;
|
9 |
| - const [item, setItem] = useState(list[key]); |
| 14 | + |
| 15 | + const [item, setItem] = useState(list[key] || new Item('')); |
10 | 16 |
|
11 | 17 | const [name, setName] = useState(item?.name);
|
12 | 18 | const [tags, setTags] = useState(item?.tags);
|
13 | 19 |
|
| 20 | + /* |
| 21 | + dairy: false, |
| 22 | + vegetable: false, |
| 23 | + fruit: false, |
| 24 | + meat: false, |
| 25 | + sweet: false, |
| 26 | + fiber: false, |
| 27 | + other: false |
| 28 | + */ |
| 29 | + |
| 30 | + //onClick={() => firebase.database().ref(`${user.uid}/${key}`).set({ name, checked: false, tags })} |
14 | 31 | return (
|
15 | 32 | <div className="Edit">
|
16 |
| - <label htmlFor="item">Item</label> |
17 |
| - <input id="item" type="text" value={name} onChange={(e) => setName(e.target.value)} /> |
| 33 | + <div> |
| 34 | + <label htmlFor="name"> |
| 35 | + <span>Name</span> |
| 36 | + <input id="name" type="text" value={name} onChange={(e) => setName(e.target.value)} /> |
| 37 | + </label> |
| 38 | + </div> |
| 39 | + <ul> |
| 40 | + { |
| 41 | + Object.entries(tags).map(([tag, checked]) => { |
| 42 | + return <li key={tag}> |
| 43 | + <label htmlFor={tag}> |
| 44 | + <span>{`${tag[0].toUpperCase()}${tag.slice(1)}`}</span> |
| 45 | + <input id={tag} type="checkbox" checked={checked} onChange={() => { |
| 46 | + let newTags = { ...tags }; |
| 47 | + newTags[tag] = !checked; |
| 48 | + setTags(newTags); |
| 49 | + }} /> |
| 50 | + </label> |
| 51 | + </li> |
| 52 | + }) |
| 53 | + } |
| 54 | + </ul> |
18 | 55 |
|
19 |
| - <button onClick={() => firebase.database().ref(`${user.uid}/${key}`).set({ name, checked: false, tags })}>Update</button> |
| 56 | + <button onClick={() => { |
| 57 | + console.log(name, tags); |
| 58 | + }}>{item ? 'Update' : 'Add'}</button> |
20 | 59 | <button onClick={() => {
|
21 | 60 | firebase.database().ref(`${user.uid}/${key}`).remove();
|
22 | 61 | history.goBack();
|
|
0 commit comments