source: client_app/src/components/account_edit/company_edit.js@ ed3f5c4

Last change on this file since ed3f5c4 was be373a8, checked in by Vzdra <vladko.zdravkovski@…>, 3 years ago

edit complete

  • Property mode set to 100644
File size: 3.4 KB
Line 
1import React from 'react';
2import 'semantic-ui-react';
3import {Button, Container, Form} from "semantic-ui-react";
4import { Redirect } from 'react-router-dom';
5import UserRegister from "../../repository/register_repo";
6import {Component} from "react/cjs/react.production.min";
7import AccountEdit from "../../repository/edit_account_repo";
8
9class EditCompany extends Component {
10 constructor(props){
11 super(props);
12 this.state = {
13 email: props.oldUser.email,
14 name: props.oldUser.name,
15 country: props.oldUser.address.country,
16 city: props.oldUser.address.city,
17 street: props.oldUser.address.street,
18 error: null,
19 success: null,
20 id: props.oldUser.id,
21 oldEmail: props.oldUser.email,
22 type: props.oldUser.type
23 }
24 this.attemptCompanyEdit = this.attemptCompanyEdit.bind(this);
25 }
26
27 handleCheck = (e, {value}) => {
28 this.setState({
29 ...this.state,
30 [e.target.name]: value
31 })
32 }
33
34 attemptCompanyEdit = () => {
35 AccountEdit.companyEdit(
36 this.state.id,
37 this.state.oldEmail,
38 this.state.email,
39 this.state.name,
40 this.state.country,
41 this.state.city,
42 this.state.street
43 ).then(res =>{
44 this.setState({
45 success: true,
46 error: null
47 })
48 this.props.updateUser(res.data);
49 }).catch(err => {
50 this.setState({
51 error: "Company already exists!",
52 success: null
53 })
54 })
55 }
56
57 componentDidMount(){
58 this.props.message(null);
59 }
60
61 render() {
62 if(this.state.success!=null){
63 return(
64 <Redirect to={"/profile"}/>
65 );
66 }
67
68 if(this.state.type!=="COMPANY"){
69 return(
70 <Redirect to={"/profile"}/>
71 );
72 }
73
74 return (
75 <Container>
76 <h1 style={{color: "red"}}>{this.state.error}</h1>
77 <Form onSubmit={this.attemptCompanyEdit}>
78 <Form.Input id="email" name="email" type='email' required fluid label='E-mail'
79 placeholder='Enter e-mail.' value={this.state.email} onChange={this.handleCheck}/>
80 <Form.Input id="name" name="name" type='text' required fluid label='Name'
81 placeholder='Enter company name.' value={this.state.name} onChange={this.handleCheck}/>
82 <Form.Input id="country" name="country" type='text' required fluid label='Country'
83 placeholder='Enter your country.' value={this.state.country} onChange={this.handleCheck}/>
84 <Form.Input id="city" name="city" type='text' value={this.state.city} required fluid label='City'
85 placeholder='Enter your city.' onChange={this.handleCheck}/>
86 <Form.Input id="street" name="street" type='text' required fluid label='Street'
87 placeholder='Enter address street.' value={this.state.street} onChange={this.handleCheck}/>
88 <Form.Field control={Button}>Register</Form.Field>
89 </Form>
90 </Container>
91 );
92 }
93}
94
95export default EditCompany;
Note: See TracBrowser for help on using the repository browser.