add create and delete
This commit is contained in:
parent
c404e856cf
commit
fd5b183d00
1 changed files with 49 additions and 3 deletions
52
src/App.js
52
src/App.js
|
|
@ -16,16 +16,52 @@ class App extends Component {
|
||||||
.then((myJson) => {
|
.then((myJson) => {
|
||||||
console.log(myJson)
|
console.log(myJson)
|
||||||
this.setState({
|
this.setState({
|
||||||
todos: myJson.data
|
todos: myJson
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
saveTodo = (e) => {
|
||||||
|
e.preventDefault();
|
||||||
|
|
||||||
|
if (!this.inputElement.value) {
|
||||||
|
alert('Please add todo text')
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
fetch('/.netlify/functions/todos-create', {
|
||||||
|
body: JSON.stringify({
|
||||||
|
title: this.inputElement.value
|
||||||
|
}),
|
||||||
|
method: 'POST',
|
||||||
|
// mode: 'cors', // no-cors, cors, *same-origin
|
||||||
|
})
|
||||||
|
.then(response => response.json())
|
||||||
|
.then((json) => {
|
||||||
|
console.log(json)
|
||||||
|
}).catch((e) => {
|
||||||
|
console.log('errrrr', e)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
deleteTodo = (e) => {
|
||||||
|
const todoId = e.target.dataset.id
|
||||||
|
console.log(`Delete todo ${todoId}`)
|
||||||
|
fetch(`/.netlify/functions/todos-delete/${todoId}`, {
|
||||||
|
method: 'POST',
|
||||||
|
})
|
||||||
|
.then(response => response.json())
|
||||||
|
.then((json) => {
|
||||||
|
console.log(json)
|
||||||
|
}).catch((e) => {
|
||||||
|
console.log('errrrr', e)
|
||||||
|
})
|
||||||
|
}
|
||||||
renderTodos() {
|
renderTodos() {
|
||||||
const { todos } = this.state
|
const { todos } = this.state
|
||||||
return todos.map((todo, i) => {
|
return todos.map((todo, i) => {
|
||||||
|
const { data } = todo
|
||||||
|
const id = todo.ref['@ref'].split('/').pop()
|
||||||
return (
|
return (
|
||||||
<div key={i}>
|
<div key={i} style={{borderBottom: '1px solid black', padding: 20}}>
|
||||||
{todo['@ref']}
|
{data.title} <button data-id={id} onClick={this.deleteTodo}>delete</button>
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
@ -40,6 +76,16 @@ class App extends Component {
|
||||||
<p className="App-intro">
|
<p className="App-intro">
|
||||||
Using FaunaDB & netlify functions
|
Using FaunaDB & netlify functions
|
||||||
</p>
|
</p>
|
||||||
|
<div>
|
||||||
|
<h2>Create todo</h2>
|
||||||
|
<form className='feature-add' onSubmit={this.saveTodo}>
|
||||||
|
<input placeholder='Todo Info' name='name' ref={el => this.inputElement = el} />
|
||||||
|
<button>
|
||||||
|
Create todo
|
||||||
|
</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
{this.renderTodos()}
|
{this.renderTodos()}
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue