Advertisement
Guest User

Untitled

a guest
Feb 21st, 2019
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.79 KB | None | 0 0
  1. import React, { Component } from 'react';
  2.  
  3. class EmailForm extends Component {
  4. constructor(props){
  5. super(props);
  6. this.state = {
  7. formSubmitted: false,
  8. feedback: ""
  9. };
  10.  
  11. this.handleSubmit = this.handleSubmit.bind(this);
  12. this.sendFeedback = this.sendFeedback.bind(this);
  13. this.handleChange = this.handleChange.bind(this);
  14. this.handleClose = this.handleClose.bind(this);
  15. }
  16.  
  17. handleSubmit (event) {
  18. event.preventDefault();
  19.  
  20. const {
  21. REACT_APP_EMAILJS_RECEIVER: receiverEmail,
  22. REACT_APP_EMAILJS_TEMPLATEID: template
  23. } = process.env;
  24.  
  25. //let feedback = this.state.feedback;
  26. //console.log(`feedback: ${this.state.feedback}`);
  27. this.sendFeedback(
  28. template,
  29. this.props.senderEmail,
  30. receiverEmail,
  31. this.state.feedback);
  32.  
  33.  
  34. this.setState({
  35. formSubmitted: true
  36. })
  37. }
  38.  
  39. handleClose() {
  40. console.log("Closing"); // TODO fix this
  41. }
  42.  
  43. handleChange(event) {
  44. event.preventDefault();
  45. this.setState({
  46. feedback: event.target.value.feedback
  47. });
  48. console.log(this.state.feedback);
  49. }
  50.  
  51. sendFeedback (templateId, senderEmail, receiverEmail, feedback) {
  52. console.log(`feedback: ${feedback}`);
  53. console.log(`this.state.feedback ${this.state.feedback}`);
  54. window.emailjs.send(
  55. 'default_service',
  56. templateId,
  57. {
  58. senderEmail,
  59. receiverEmail,
  60. feedback
  61. })
  62. .then(res => {
  63. this.setState({ formEmailSent: true });
  64. console.log("Email sent!");
  65. })
  66. // Handle errors here however you like, or use a React error boundary
  67. .catch(err => console.error('Failed to send feedback. Error: ', err))
  68. }
  69.  
  70. render() {
  71. //let feedback = "";
  72. return(
  73. <form className="feedback-form" onSubmit={this.handleSubmit}>
  74. <h1>Your Feedback</h1>
  75. <textarea
  76. className="text-input"
  77. id="feedback-entry"
  78. name="feedback-entry"
  79. onChange={this.handleChange}
  80. placeholder="Enter your feedback here"
  81. required
  82. value={this.state.feedback}
  83. />
  84. <div className="btn-group">
  85. <button className="btn btn--cancel" onClick={this.handleClose}>
  86. Cancel
  87. </button>
  88. <input type="submit" value="Submit" className="btn btn--submit" />
  89. </div>
  90. </form>
  91. )
  92. }
  93. }
  94.  
  95. export default EmailForm;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement