<?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: Sasindu K.</title>
    <description>The latest articles on DEV Community by Sasindu K. (@skhdev).</description>
    <link>https://dev.to/skhdev</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%2F917549%2F8028ada4-a10d-4a07-b4f3-347554ce5880.png</url>
      <title>DEV Community: Sasindu K.</title>
      <link>https://dev.to/skhdev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/skhdev"/>
    <language>en</language>
    <item>
      <title>Create a Weather app using React Js</title>
      <dc:creator>Sasindu K.</dc:creator>
      <pubDate>Tue, 20 Sep 2022 08:58:11 +0000</pubDate>
      <link>https://dev.to/skhdev/create-a-weather-app-using-react-js-469d</link>
      <guid>https://dev.to/skhdev/create-a-weather-app-using-react-js-469d</guid>
      <description>&lt;p&gt;Hey there create a whether app using React js and openweathermap API&lt;/p&gt;

&lt;p&gt;Folder structure &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--O8vkpStq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fnnr0fk30n6ucxzi3c1n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--O8vkpStq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fnnr0fk30n6ucxzi3c1n.png" alt="Image description" width="228" height="851"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;App.js file&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import logo from './logo.svg';
import './App.css';
import Weather from './components/Weather';

function App() {
  return (
    &amp;lt;div className="App"&amp;gt;
     &amp;lt;Weather/&amp;gt;
    &amp;lt;/div&amp;gt;
  );
}

export default App;

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

&lt;/div&gt;



&lt;p&gt;Weather.js file&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import React, { useState } from 'react'
import './Weather.css'
import WeatherCard from './WeatherCard'

export default function Weather() {

    const [formData, setFormData] = useState([]);
    const [data, setData] = useState(null);

    const apiKey = 'ENTER YPOUR API KEY'; // https://openweathermap.org/

    const handlerChange = (e) =&amp;gt; {
        setFormData(prev =&amp;gt; ({ ...prev, [e.target.name]: e.target.value }))
    }


    const handlerSubmit = async () =&amp;gt; {
        if (!formData.city) {
            alert("Please Eneter City");
            return
        }

        if (!formData.country) {
            alert("Please Eneter Country");
            return
        }


        const res = await fetch(`https://api.openweathermap.org/data/2.5/weather?q=${formData.city},${formData.country}&amp;amp;appid=${apiKey}`).then((res) =&amp;gt; {
            res.json().then((data) =&amp;gt; {
                setData(data);
                console.log(data);
            });
            ;
        }).catch((err) =&amp;gt; {
            console.log(err);
            setData(null)
            return
        })




    }

    return (
        &amp;lt;div className='weather'&amp;gt;

            &amp;lt;br /&amp;gt;

            {!data ? (
                &amp;lt;div&amp;gt;
                    &amp;lt;span className='title' style={{
                        fontSize: 35
                    }}&amp;gt;This is Your weather&amp;lt;/span&amp;gt;
                    &amp;lt;input type="text" onChange={handlerChange} className='input-control' name="city" placeholder="Enter your city" /&amp;gt;
                    &amp;lt;input type="text" onChange={handlerChange} className='input-control' name="country" placeholder="Enter your Country" /&amp;gt;
                    &amp;lt;button className='btn' onClick={handlerSubmit}&amp;gt;
                        Find Now Weather
                    &amp;lt;/button&amp;gt;
                &amp;lt;/div&amp;gt;
            ) : (
                &amp;lt;&amp;gt;
                    &amp;lt;WeatherCard {...data} /&amp;gt;

                    &amp;lt;div class="location-container"&amp;gt;
                        &amp;lt;button onClick={() =&amp;gt; setData(null)} class="location-button"&amp;gt; &amp;lt;i data-feather="map-pin"&amp;gt;&amp;lt;/i&amp;gt;&amp;lt;span&amp;gt;Change location&amp;lt;/span&amp;gt;&amp;lt;/button&amp;gt;
                    &amp;lt;/div&amp;gt;
                &amp;lt;/&amp;gt;

            )}


            {/* Weather Card */}
            {/* */}

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

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

&lt;/div&gt;



&lt;p&gt;WeatherCard.js file&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import React from 'react'
import './WeatherCard.css'

export default function WeatherCard({ name, sys, main, weather, wind,visibility }) {
    return (
        &amp;lt;div&amp;gt;

            &amp;lt;div class="container"&amp;gt;
                &amp;lt;div class="weather-side"&amp;gt;
                    &amp;lt;div class="weather-gradient"&amp;gt;&amp;lt;/div&amp;gt;
                    &amp;lt;div class="date-container"&amp;gt;
                        &amp;lt;h2 class="date-dayname"&amp;gt;&amp;lt;/h2&amp;gt;&amp;lt;span class="date-day"&amp;gt;
                            {new Date().toLocaleDateString()}
                        &amp;lt;/span&amp;gt;&amp;lt;i class="location-icon" data-feather="map-pin"&amp;gt;&amp;lt;/i&amp;gt;&amp;lt;span class="location"&amp;gt;
                            {name} {sys.country}
                        &amp;lt;/span&amp;gt;
                    &amp;lt;/div&amp;gt;
                    &amp;lt;div class="weather-container"&amp;gt;&amp;lt;i class="weather-icon" data-feather="sun"&amp;gt;&amp;lt;/i&amp;gt;
                        &amp;lt;img src={`http://openweathermap.org/img/wn/${weather[0].icon}.png`} width={85} /&amp;gt;
                        &amp;lt;span&amp;gt;

                        &amp;lt;/span&amp;gt;
                        &amp;lt;h1 class="weather-temp"&amp;gt;{Math.floor(main.temp - 273.15)} °C&amp;lt;/h1&amp;gt;
                        &amp;lt;h4&amp;gt;
                        Hight/Low {" - "}
                            {Math.floor(main.temp_max - 273.15)}
                            / {" "}
                            {Math.floor(main.temp_max - 273.15)} °C
                        &amp;lt;/h4&amp;gt;



                        &amp;lt;h3 class="weather-desc"&amp;gt;{weather[0].main} ({weather[0].description})&amp;lt;/h3&amp;gt;
                    &amp;lt;/div&amp;gt;
                &amp;lt;/div&amp;gt;
                &amp;lt;div style={{
                    width: '350px'
                }} class="info-side"&amp;gt;
                    &amp;lt;div class="today-info-container"&amp;gt;
                        &amp;lt;div class="today-info"&amp;gt;
                            &amp;lt;div class="precipitation"&amp;gt; &amp;lt;span class="title"&amp;gt;PRESSURE&amp;lt;/span&amp;gt;&amp;lt;span class="value"&amp;gt;{main.pressure} hPa&amp;lt;/span&amp;gt;
                                &amp;lt;div class="clear"&amp;gt;&amp;lt;/div&amp;gt;
                            &amp;lt;/div&amp;gt;
                            &amp;lt;div class="humidity"&amp;gt; &amp;lt;span class="title"&amp;gt;HUMIDITY&amp;lt;/span&amp;gt;&amp;lt;span class="value"&amp;gt;{main.humidity} %&amp;lt;/span&amp;gt;
                                &amp;lt;div class="clear"&amp;gt;&amp;lt;/div&amp;gt;
                            &amp;lt;/div&amp;gt;
                            &amp;lt;div class="wind"&amp;gt; &amp;lt;span class="title"&amp;gt;WIND&amp;lt;/span&amp;gt;&amp;lt;span class="value"&amp;gt;{Math.floor((wind.speed * 18) / 5)} km/h&amp;lt;/span&amp;gt;
                                &amp;lt;div class="clear"&amp;gt;&amp;lt;/div&amp;gt;
                            &amp;lt;/div&amp;gt;
                            &amp;lt;div class="wind"&amp;gt; &amp;lt;span class="title"&amp;gt;VISIBILITY&amp;lt;/span&amp;gt;&amp;lt;span class="value"&amp;gt;{visibility / 1000} km&amp;lt;/span&amp;gt;
                                &amp;lt;div class="clear"&amp;gt;&amp;lt;/div&amp;gt;
                            &amp;lt;/div&amp;gt;
                        &amp;lt;/div&amp;gt;
                    &amp;lt;/div&amp;gt;
                    &amp;lt;div class="week-container"&amp;gt;

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

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


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

&lt;/div&gt;



&lt;p&gt;Final Code - &lt;a href="https://github.com/sasinduskh/react-js-weather-app.git"&gt;Github Code&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>react</category>
      <category>reactj</category>
    </item>
    <item>
      <title>Hello there how are u :)</title>
      <dc:creator>Sasindu K.</dc:creator>
      <pubDate>Mon, 29 Aug 2022 19:28:38 +0000</pubDate>
      <link>https://dev.to/skhdev/hello-there-how-are-u--2gmm</link>
      <guid>https://dev.to/skhdev/hello-there-how-are-u--2gmm</guid>
      <description>&lt;p&gt;This is so fare and some image i want&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
&amp;gt; 

## [](**url**)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>javascript</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
