From 5b3283e760f681c6f3eb74ae4e104bbaa1a715e0 Mon Sep 17 00:00:00 2001 From: Matt Huntington Date: Wed, 23 Sep 2020 11:45:21 -0400 Subject: [PATCH] updating with react --- src/main/java/com/example/demo/Person.java | 10 +- src/main/resources/static/app.js | 128 +++++++++++++++++++++ src/main/resources/static/index.html | 9 +- src/main/resources/static/js/app.js | 1 - 4 files changed, 140 insertions(+), 8 deletions(-) create mode 100644 src/main/resources/static/app.js delete mode 100644 src/main/resources/static/js/app.js diff --git a/src/main/java/com/example/demo/Person.java b/src/main/java/com/example/demo/Person.java index 85a980b..cdd396a 100644 --- a/src/main/java/com/example/demo/Person.java +++ b/src/main/java/com/example/demo/Person.java @@ -13,7 +13,7 @@ public class Person { private String name; - private String email; + private Integer age; public Integer getId() { return id; @@ -31,11 +31,11 @@ public class Person { this.name = name; } - public String getEmail() { - return email; + public Integer getAge() { + return age; } - public void setEmail(String email) { - this.email = email; + public void setAge(Integer age) { + this.age = age; } } diff --git a/src/main/resources/static/app.js b/src/main/resources/static/app.js new file mode 100644 index 0000000..b701d5c --- /dev/null +++ b/src/main/resources/static/app.js @@ -0,0 +1,128 @@ +class App extends React.Component { + state = { + people:[] + } + + componentDidMount = () => { + axios.get('/people').then( + (response) => { + this.setState({ + people:response.data + }) + } + ) + } + + createPerson = (event) => { + event.preventDefault(); + axios.post( + '/people', + { + name:this.state.newPersonName, + age:this.state.newPersonAge, + } + ).then( + (response) => { + this.setState({ + people:response.data + }) + } + ) + } + + changeNewPersonAge = (event) => { + this.setState({ + newPersonAge:event.target.value + }); + } + + changeNewPersonName = (event) => { + this.setState({ + newPersonName:event.target.value + }); + } + + deletePerson = (event) => { + axios.delete('/people/' + event.target.value).then( + (response) => { + this.setState({ + people:response.data + }) + } + ) + + } + + updatePerson = (event) => { + event.preventDefault(); + const id = event.target.getAttribute('id'); + axios.put( + '/people/' + id, + { + name:this.state.updatePersonName, + age:this.state.updatePersonAge, + } + ).then( + (response) => { + this.setState({ + people:response.data, + name:'', + age:null, + }) + } + ) + } + + changeUpdatePersonName = (event) => { + this.setState( + { + updatePersonName:event.target.value + } + ) + } + + changeUpdatePersonAge = (event) => { + this.setState( + { + updatePersonAge:event.target.value + } + ) + } + + render = () => { + return
+

Create Person

+
+
+
+ +
+

List of People

+ +
+ } +} + +ReactDOM.render( + , + document.querySelector('main') +) diff --git a/src/main/resources/static/index.html b/src/main/resources/static/index.html index 6f74454..5569382 100644 --- a/src/main/resources/static/index.html +++ b/src/main/resources/static/index.html @@ -3,9 +3,14 @@ - + + + + + -

Hello Spring

+

People CRUD App

+
diff --git a/src/main/resources/static/js/app.js b/src/main/resources/static/js/app.js deleted file mode 100644 index 8e56b21..0000000 --- a/src/main/resources/static/js/app.js +++ /dev/null @@ -1 +0,0 @@ -alert('hi')