Skip to content

Commit 47a735d

Browse files
Added edit page functionality
1 parent 7d51307 commit 47a735d

File tree

4 files changed

+69
-12
lines changed

4 files changed

+69
-12
lines changed

debug.log

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
[1019/003711.474:ERROR:directory_reader_win.cc(43)] FindFirstFile: The system cannot find the path specified. (0x3)

src/pages/Edit.js

+44-5
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,61 @@
1-
import React, { useState } from 'react';
1+
import React, { useEffect, useState } from 'react';
22
import { useHistory } from 'react-router-dom';
33
import firebase from 'firebase/app';
4+
import '../classes/Item';
45
import './Edit.scss';
6+
import Item from '../classes/Item';
57

68
function Edit({ params, user, list }) {
79
const history = useHistory();
10+
if (!user) {
11+
history.push('/');
12+
}
813
let { key } = params;
9-
const [item, setItem] = useState(list[key]);
14+
15+
const [item, setItem] = useState(list[key] || new Item(''));
1016

1117
const [name, setName] = useState(item?.name);
1218
const [tags, setTags] = useState(item?.tags);
1319

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 })}
1431
return (
1532
<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>
1855

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>
2059
<button onClick={() => {
2160
firebase.database().ref(`${user.uid}/${key}`).remove();
2261
history.goBack();

src/pages/Edit.scss

+20-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,21 @@
11
.Edit {
2-
3-
}
2+
margin: 25vh 0;
3+
text-align: center;
4+
> div {
5+
margin: 20px 0;
6+
> label {
7+
margin: 5px 20px;
8+
}
9+
}
10+
> ul {
11+
display: grid;
12+
grid-template-columns: 1fr 1fr 1fr 1fr;
13+
> li {
14+
margin: 5px 0;
15+
}
16+
}
17+
> button {
18+
width: 80vw;
19+
margin: 5px auto;
20+
}
21+
}

src/pages/Home.js

+4-5
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,15 @@ import Item from '../classes/Item';
99

1010
function Home({ list, setList, user }) {
1111
const history = useHistory();
12+
if (!user) {
13+
history.push('/');
14+
}
1215
const [name, setName] = useState('');
1316
const [filters, setFilters] = useState({
1417
checked: true,
1518
unchecked: true
1619
});
1720

18-
if (!user) {
19-
history.push('/');
20-
}
21-
2221
const addItem = () => firebase
2322
.database()
2423
.ref(`/${user.uid}`)
@@ -64,7 +63,7 @@ function Home({ list, setList, user }) {
6463
</form>
6564
</div>
6665
</div>
67-
<List list={list} setList={setList} filters={filters} user={user}/>
66+
<List list={list} setList={setList} filters={filters} user={user} />
6867
</div>
6968
);
7069
}

0 commit comments

Comments
 (0)