From 9d4b5f9976fc4acb148f3c4cab935d49796e44d8 Mon Sep 17 00:00:00 2001 From: Andre Emiliano Date: Thu, 13 May 2021 15:47:40 +0000 Subject: [PATCH] Changed the items in the menu and added minor changes to the code --- package-lock.json | 17 ++++++ package.json | 1 + src/App.js | 6 ++ src/components/editDog.js | 114 +++++++++++++++++++++++++++++++++++++ src/components/home.js | 15 +++-- src/components/homegrid.js | 27 ++++++--- src/components/messages.js | 11 ++++ src/components/nav.js | 44 ++++---------- src/components/newDog.js | 105 ++++++++++++++++++++++++++++++++++ 9 files changed, 296 insertions(+), 44 deletions(-) create mode 100644 src/components/editDog.js create mode 100644 src/components/messages.js create mode 100644 src/components/newDog.js diff --git a/package-lock.json b/package-lock.json index 887a629..ff4e0ec 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,6 +13,7 @@ "@testing-library/react": "^11.1.0", "@testing-library/user-event": "^12.1.10", "antd": "^4.7.3", + "axios": "^0.21.1", "react": "^17.0.1", "react-dom": "^17.0.1", "react-router-dom": "^5.2.0", @@ -3327,6 +3328,14 @@ "node": ">=4" } }, + "node_modules/axios": { + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", + "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", + "dependencies": { + "follow-redirects": "^1.10.0" + } + }, "node_modules/axobject-query": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", @@ -22838,6 +22847,14 @@ "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.0.2.tgz", "integrity": "sha512-arU1h31OGFu+LPrOLGZ7nB45v940NMDMEJeNmbutu57P+UFDVnkZg3e+J1I2HJRZ9hT7gO8J91dn/PMrAiKakA==" }, + "axios": { + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", + "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", + "requires": { + "follow-redirects": "^1.10.0" + } + }, "axobject-query": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", diff --git a/package.json b/package.json index cff7a70..31864fe 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "@testing-library/react": "^11.1.0", "@testing-library/user-event": "^12.1.10", "antd": "^4.7.3", + "axios": "^0.21.1", "react": "^17.0.1", "react-dom": "^17.0.1", "react-router-dom": "^5.2.0", diff --git a/src/App.js b/src/App.js index ad88094..d05b286 100644 --- a/src/App.js +++ b/src/App.js @@ -13,6 +13,9 @@ import Register from './components/register'; import Login from './components/login'; import Home from './components/home'; import Dog from './components/dog'; +import NewDog from './components/newDog'; +import EditDog from './components/editDog'; +import Messages from './components/messages'; import Uploader from './components/upload'; import UserContext from './contexts/user'; @@ -74,6 +77,9 @@ class App extends React.Component { } /> } /> } /> + } /> + + } /> } exact /> diff --git a/src/components/editDog.js b/src/components/editDog.js new file mode 100644 index 0000000..a38930d --- /dev/null +++ b/src/components/editDog.js @@ -0,0 +1,114 @@ +import React from 'react'; +import axios from 'axios'; +import { withRouter } from "react-router"; + +import { Upload, Form, Input, Button, Typography } from 'antd'; +const { Title } = Typography; +const { TextArea } = Input; + +const formItemLayout = { + labelCol: { xs: { span: 24 }, sm: { span: 6 } }, + wrapperCol: { xs: { span: 24 }, sm: { span: 12 } } +}; + +const tailFormItemLayout = { + wrapperCol: { xs: { span: 24, offset: 0 }, sm: { span: 16, offset: 6 } }, +}; + +class EditDog extends React.Component { + + constructor(props) { + super(props); + this.state = { + selectedFile: null + } + + } + + componentDidMount(){ + this.setState({ + dogID: this.props.match.params.id + }) + } + + handleBreedChange=event=>{ + this.setState({ + breed: event.target.value + }) + } + + handleAgeChange=event=>{ + this.setState({ + age: event.target.value + }) + } + + handleSizeChange=event=>{ + this.setState({ + size: event.target.value + }) + } + + handleDescriptionChange=event=>{ + this.setState({ + description: event.target.value + }) + } + + handleImageChange=event=>{ + this.setState({ + selectedFile: event.target.files[0], + loaded: 0, + }) + } + + onClickHandler = () => { + const data = new FormData() + if(this.state.selectedFile){data.append('upload', this.state.selectedFile)} + if(this.state.breed){data.append('breed', this.state.breed)} + if(this.state.age){data.append('age', this.state.age)} + if(this.state.size){data.append('size', this.state.size)} + if(this.state.description){data.append('description', this.state.description)} + axios.put(`https://animal-hello-3000.codio-box.uk/api/v1/dogs/${this.state.dogID}`, data, { + auth: { + username: 'daniel', + password: 'abc' + }, + headers: { + 'content-type': 'multipart/form-data' + } + }) + .then(res => { // then print response status + console.log(res.statusText) + this.props.history.push('/') + }) + } + + render(){ + return ( +
+ Edit dog + + + + + + + + + + +