{"ast":null,"code":"var _jsxFileName = \"C:\\\\laragon\\\\www\\\\itokin\\\\DriverOPCDA\\\\frontend\\\\src\\\\components\\\\pages\\\\Roles\\\\RoleFormEdit.jsx\";\nimport React from \"react\";\nimport { withStyles } from \"@material-ui/core/styles\";\nimport { Grid, Box } from \"@material-ui/core\";\nimport Button from \"@material-ui/core/Button\";\nimport { withRouter } from \"react-router-dom\";\nimport { ValidatorForm, TextValidator } from \"react-material-ui-form-validator\";\nimport roleServices from \"./RoleServicesClass\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nconst roleServ = new roleServices();\n\nconst useStyles = theme => ({\n  root: {\n    \"& .MuiTextField-root\": {\n      margin: theme.spacing(1),\n      width: \"90%\"\n    }\n  },\n  gridColor: {\n    background: \"white\"\n  },\n  button: {\n    marginTop: theme.spacing(1),\n    color: \"#ffffff\",\n    background: theme.palette.success.main,\n    \"&:hover\": {\n      backgroundColor: theme.palette.success.dark,\n      borderColor: theme.palette.success.light,\n      boxShadow: \"none\"\n    }\n  },\n  form: {\n    background: \"white\"\n  },\n  textField: {\n    width: \"100%\",\n    marginTop: 10\n  },\n  selectField: {\n    width: \"100%\",\n    marginTop: 20\n  }\n});\n\nclass RoleFormEdit extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      role: {\n        RoleName: \"\",\n        Description: \"\"\n      }\n    };\n\n    this.handleChange = event => {\n      const {\n        role\n      } = this.state;\n      role[event.target.name] = event.target.value;\n      this.setState({\n        role\n      });\n    };\n\n    this.handleSubmit = async () => {\n      const {\n        role\n      } = this.state;\n      const paramInsert = {\n        RoleName: role.RoleName,\n        Description: role.Description\n      }; // save role data\n\n      const resp = await roleServ.updateRole(this.props.match.params.id, paramInsert);\n\n      if (resp.success) {\n        alert(resp.message);\n        this.onSuccess();\n      } else {\n        alert(resp.message);\n      }\n    };\n\n    this.onSuccess = this.onSuccess.bind(this);\n  }\n\n  onSuccess(e) {\n    this.props.history.push(\"/roles\");\n  }\n\n  async findRole(id) {\n    const resp = await roleServ.findRole(id);\n    const data = resp.data;\n\n    if (data != null) {\n      const {\n        role\n      } = this.state;\n      role[\"RoleName\"] = data.RoleName;\n      role[\"Description\"] = data.Description;\n      this.setState({\n        role\n      });\n    }\n\n    console.log(this.state);\n  }\n\n  componentDidMount() {\n    this.findRole(this.props.match.params.id);\n  }\n\n  componentWillUnmount() {}\n\n  render() {\n    const {\n      classes\n    } = this.props;\n    const {\n      role\n    } = this.state;\n    return /*#__PURE__*/_jsxDEV(Grid, {\n      container: true,\n      spacing: 1,\n      children: /*#__PURE__*/_jsxDEV(Grid, {\n        item: true,\n        lg: 5,\n        xs: 12,\n        children: /*#__PURE__*/_jsxDEV(Box, {\n          p: 3,\n          boxShadow: 3,\n          className: classes.form,\n          children: /*#__PURE__*/_jsxDEV(ValidatorForm, {\n            ref: \"form\",\n            onSubmit: this.handleSubmit,\n            onError: errors => console.log(errors),\n            children: [/*#__PURE__*/_jsxDEV(TextValidator, {\n              label: \"Role name\",\n              onChange: this.handleChange,\n              name: \"RoleName\",\n              value: role.RoleName,\n              validators: [\"required\"],\n              errorMessages: [\"this field is required\"],\n              className: classes.textField\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 117,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(TextValidator, {\n              label: \"Description\",\n              onChange: this.handleChange,\n              name: \"Description\",\n              value: role.Description,\n              validators: [],\n              errorMessages: [],\n              className: classes.textField\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 126,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(Button, {\n              type: \"submit\",\n              className: classes.button,\n              children: \"Submit\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 136,\n              columnNumber: 15\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 112,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 111,\n          columnNumber: 11\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 110,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 109,\n      columnNumber: 7\n    }, this);\n  }\n\n}\n\nexport default withRouter(withStyles(useStyles)(RoleFormEdit));","map":{"version":3,"sources":["C:/laragon/www/itokin/DriverOPCDA/frontend/src/components/pages/Roles/RoleFormEdit.jsx"],"names":["React","withStyles","Grid","Box","Button","withRouter","ValidatorForm","TextValidator","roleServices","roleServ","useStyles","theme","root","margin","spacing","width","gridColor","background","button","marginTop","color","palette","success","main","backgroundColor","dark","borderColor","light","boxShadow","form","textField","selectField","RoleFormEdit","Component","constructor","props","state","role","RoleName","Description","handleChange","event","target","name","value","setState","handleSubmit","paramInsert","resp","updateRole","match","params","id","alert","message","onSuccess","bind","e","history","push","findRole","data","console","log","componentDidMount","componentWillUnmount","render","classes","errors"],"mappings":"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","sourcesContent":["import React from \"react\";\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport { Grid, Box } from \"@material-ui/core\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport { withRouter } from \"react-router-dom\";\r\n\r\nimport { ValidatorForm, TextValidator } from \"react-material-ui-form-validator\";\r\n\r\nimport roleServices from \"./RoleServicesClass\";\r\nconst roleServ = new roleServices();\r\n\r\nconst useStyles = (theme) => ({\r\n  root: {\r\n    \"& .MuiTextField-root\": {\r\n      margin: theme.spacing(1),\r\n      width: \"90%\",\r\n    },\r\n  },\r\n  gridColor: {\r\n    background: \"white\",\r\n  },\r\n  button: {\r\n    marginTop: theme.spacing(1),\r\n    color: \"#ffffff\",\r\n    background: theme.palette.success.main,\r\n    \"&:hover\": {\r\n      backgroundColor: theme.palette.success.dark,\r\n      borderColor: theme.palette.success.light,\r\n      boxShadow: \"none\",\r\n    },\r\n  },\r\n  form: {\r\n    background: \"white\",\r\n  },\r\n  textField: {\r\n    width: \"100%\",\r\n    marginTop: 10,\r\n  },\r\n  selectField: {\r\n    width: \"100%\",\r\n    marginTop: 20,\r\n  },\r\n});\r\nclass RoleFormEdit extends React.Component {\r\n  constructor(props) {\r\n    super(props);\r\n    this.onSuccess = this.onSuccess.bind(this);\r\n  }\r\n  state = {\r\n    role: {\r\n      RoleName: \"\",\r\n      Description: \"\",\r\n    },\r\n  };\r\n\r\n  onSuccess(e) {\r\n    this.props.history.push(\"/roles\");\r\n  }\r\n\r\n  handleChange = (event) => {\r\n    const { role } = this.state;\r\n    role[event.target.name] = event.target.value;\r\n    this.setState({ role });\r\n  };\r\n\r\n  handleSubmit = async () => {\r\n    const { role } = this.state;\r\n    const paramInsert = {\r\n      RoleName: role.RoleName,\r\n      Description: role.Description,\r\n    };\r\n\r\n    // save role data\r\n    const resp = await roleServ.updateRole(\r\n      this.props.match.params.id,\r\n      paramInsert\r\n    );\r\n    if (resp.success) {\r\n      alert(resp.message);\r\n      this.onSuccess();\r\n    } else {\r\n      alert(resp.message);\r\n    }\r\n  };\r\n\r\n  async findRole(id) {\r\n    const resp = await roleServ.findRole(id);\r\n    const data = resp.data;\r\n    if (data != null) {\r\n      const { role } = this.state;\r\n      role[\"RoleName\"] = data.RoleName;\r\n      role[\"Description\"] = data.Description;\r\n      this.setState({ role });\r\n    }\r\n    console.log(this.state);\r\n  }\r\n\r\n  componentDidMount() {\r\n      this.findRole(this.props.match.params.id);\r\n  }\r\n\r\n  componentWillUnmount() {}\r\n\r\n  render() {\r\n    const { classes } = this.props;\r\n    const { role } = this.state;\r\n\r\n    return (\r\n      <Grid container spacing={1}>\r\n        <Grid item lg={5} xs={12}>\r\n          <Box p={3} boxShadow={3} className={classes.form}>\r\n            <ValidatorForm\r\n              ref=\"form\"\r\n              onSubmit={this.handleSubmit}\r\n              onError={(errors) => console.log(errors)}\r\n            >\r\n              <TextValidator\r\n                label=\"Role name\"\r\n                onChange={this.handleChange}\r\n                name=\"RoleName\"\r\n                value={role.RoleName}\r\n                validators={[\"required\"]}\r\n                errorMessages={[\"this field is required\"]}\r\n                className={classes.textField}\r\n              />\r\n              <TextValidator\r\n                label=\"Description\"\r\n                onChange={this.handleChange}\r\n                name=\"Description\"\r\n                value={role.Description}\r\n                validators={[]}\r\n                errorMessages={[]}\r\n                className={classes.textField}\r\n              />\r\n\r\n              <Button type=\"submit\" className={classes.button}>\r\n                Submit\r\n              </Button>\r\n            </ValidatorForm>\r\n          </Box>\r\n        </Grid>\r\n      </Grid>\r\n    );\r\n  }\r\n}\r\n\r\nexport default withRouter(withStyles(useStyles)(RoleFormEdit));\r\n"]},"metadata":{},"sourceType":"module"}