<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: AwaisRehman</title>
    <description>The latest articles on DEV Community by AwaisRehman (@awaisrehman_55).</description>
    <link>https://dev.to/awaisrehman_55</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F864633%2Ff60f24c6-33c6-438b-ad3c-720479c42b62.jpeg</url>
      <title>DEV Community: AwaisRehman</title>
      <link>https://dev.to/awaisrehman_55</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/awaisrehman_55"/>
    <language>en</language>
    <item>
      <title>Reactjs and RapidAPI</title>
      <dc:creator>AwaisRehman</dc:creator>
      <pubDate>Thu, 19 May 2022 05:39:56 +0000</pubDate>
      <link>https://dev.to/awaisrehman_55/reactjs-and-rapidapi-2c29</link>
      <guid>https://dev.to/awaisrehman_55/reactjs-and-rapidapi-2c29</guid>
      <description>&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import axios from 'axios';
 import React,{Component} from 'react';
 import {Button} from 'react-bootstrap';

class App extends Component {

  submit =  (e) =&amp;gt; {

    const options = {
      method: 'POST',
      url: 'https://rapidprod-sendgrid-v1.p.rapidapi.com/mail/send',
      headers: {
        'content-type': 'application/json',
        'X-RapidAPI-Host': '',
        'X-RapidAPI-Key': ''
      },

       data: '{"personalizations":[{"to":[{"email":"awais.ur.rehman16@gmail.com"}],"subject":"Email from Teacher"}],"from":{"email":"aebrahima830@gmail.com"},"content":[{"type":"json","value":"Hello, World!"}]}'


    };

    axios.request(options).then(function (response) {
      console.log(response.data);
    }).catch(function (error) {
      console.error(error);
    });
      };

  constructor(props) {
    super(props);
    this.state = {
      teachers: [],
      emails: [],
      message: '',
       // Initially, no file is selected
      selectedFile: null,

      selectedTeacher: 'Teacher',
      selectedEmail: 'Email',
      selectedMessage: ''


    };
    this.changeTeacher = this.changeTeacher.bind(this);
    this.changeEmail = this.changeEmail.bind(this);
    this.changeMessage = this.changeMessage.bind(this);

    // this.handleSubmit = this.handleSubmit.bind(this);
  }

  componentDidMount() {
    this.setState({
      teachers: [
        { name: "Ali" , emails: [ {name: "ali@gmail.com" }]},
        { name: "Awais" , emails: [ {name: "awais@gmail.com" }]}
      ]
    });
  }
  changeTeacher(e) {
    this.setState({selectedTeacher: e.target.value});
    this.setState({emails : this.state.teachers.find(teach =&amp;gt; teach.name === e.target.value).emails});
  }

  changeEmail(e) {
    this.setState({selectedEmail: e.target.value});

  }
  changeMessage(e) {
    this.setState({selectedMessage: e.target.value});
  }

  // handleSubmit(e) {
  //   alert('An Email was submitted: ' + this.state.value);
  //   e.preventDefault();
  // }



    // On file select (from the pop up)
    onFileChange = event =&amp;gt; {

      // Update the state
      this.setState({ selectedFile: event.target.files[0] });

    };

    // On file upload (click the upload button)
    onFileUpload = () =&amp;gt; {

      // Create an object of formData
      const formData = new FormData();

      // Update the formData object
      formData.append(
        "myFile",
        this.state.selectedFile,
        this.state.selectedFile.name
      );

      // Details of the uploaded file
      console.log(this.state.selectedFile);

      // Request made to the backend api
      // Send formData object
      axios.post("api/uploadfile", formData);
    };

    // File content to be displayed after
    // file upload is complete
    fileData = () =&amp;gt; {

      if (this.state.selectedFile) {

        return (
          &amp;lt;div&amp;gt;
            &amp;lt;h2&amp;gt;File Details:&amp;lt;/h2&amp;gt;

&amp;lt;p&amp;gt;File Name: {this.state.selectedFile.name}&amp;lt;/p&amp;gt;


&amp;lt;p&amp;gt;File Type: {this.state.selectedFile.type}&amp;lt;/p&amp;gt;


&amp;lt;p&amp;gt;
              Last Modified:{" "}
              {this.state.selectedFile.lastModifiedDate.toDateString()}
            &amp;lt;/p&amp;gt;

          &amp;lt;/div&amp;gt;
        );
      } else {
        return (
          &amp;lt;div&amp;gt;
            &amp;lt;br /&amp;gt;
            &amp;lt;h4&amp;gt;Choose before Pressing the Upload button&amp;lt;/h4&amp;gt;
          &amp;lt;/div&amp;gt;
        );
      }
    };

    render() {

      return (

        &amp;lt;form  onSubmit={this.submit}&amp;gt;
        &amp;lt;div className="container"&amp;gt;


          &amp;lt;div className="row"&amp;gt;

           &amp;lt;h2&amp;gt;Email Form&amp;lt;/h2&amp;gt;

           &amp;lt;div className="form-group"&amp;gt;
             &amp;lt;label style={styles.lbl}&amp;gt;Teacher Name&amp;lt;/label&amp;gt;
             &amp;lt;select className="form-select" placeholder="Select Teacher" value={this.state.selectedTeacher} onChange={this.changeTeacher}&amp;gt;
               &amp;lt;option disabled&amp;gt;Teacher&amp;lt;/option&amp;gt;
               {this.state.teachers.map((e, key)=&amp;gt; {
                 return &amp;lt;option key = {key}&amp;gt;{e.name}&amp;lt;/option&amp;gt;;
               })}
             &amp;lt;/select&amp;gt;
           &amp;lt;/div&amp;gt;

           &amp;lt;div className="form-group"&amp;gt;
             &amp;lt;label style={styles.lbl}&amp;gt;Teacher Email&amp;lt;/label&amp;gt;
             &amp;lt;select className="form-select" placeholder="Select Email" value={this.state.selectedEmail} onChange={this.changeEmail}&amp;gt;
               &amp;lt;option disabled&amp;gt;Email&amp;lt;/option&amp;gt;
               {this.state.emails.map((e, key)=&amp;gt; {
                 return &amp;lt;option key = {key}&amp;gt; {e.name}&amp;lt;/option&amp;gt;;
               })}
             &amp;lt;/select&amp;gt;
           &amp;lt;/div&amp;gt;
           &amp;lt;div  style={styles.lbl} className="form-group"&amp;gt;
           &amp;lt;textarea 
             className="form-control"
             id="exampleFormControlTextarea1"
             rows="5"
             placeholder="Enter the Message"
             value={this.state.selectedMessage}
             onChange={this.changeMessage}
             /&amp;gt;
          &amp;lt;/div&amp;gt;


          &amp;lt;/div&amp;gt;
        &amp;lt;div&amp;gt;



            &amp;lt;h3&amp;gt; File Upload &amp;lt;/h3&amp;gt;
            &amp;lt;div&amp;gt;
                &amp;lt;input type="file" onChange={this.onFileChange} /&amp;gt;
                &amp;lt;button onClick={this.onFileUpload}&amp;gt;
                  Upload!
                &amp;lt;/button&amp;gt;
            &amp;lt;/div&amp;gt;
          {this.fileData()}
        &amp;lt;/div&amp;gt;
        &amp;lt;div &amp;gt;
          &amp;lt;Button variant="outline-primary"  
          onClick={this.submit} 
          style={styles.btn}&amp;gt;SEND EMAIL&amp;lt;/Button&amp;gt;

          &amp;lt;/div&amp;gt;

        &amp;lt;/div&amp;gt;
        &amp;lt;/form&amp;gt;
      );
    }
  }

  export default App;


  //JUST SOME STYLES

  const styles = {
  lbl: {
  marginTop: 15,
  marginBottom: 15,
  },
  btn: {
    width: 200,
    marginLeft: 15,
    marginTop: 15,
  }

  };
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>email</category>
      <category>react</category>
      <category>rapidapi</category>
    </item>
  </channel>
</rss>
