<?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: vinit kumar pandey</title>
    <description>The latest articles on DEV Community by vinit kumar pandey (@vineetp6).</description>
    <link>https://dev.to/vineetp6</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%2F1070451%2F327c2bae-6111-48bb-a087-644ef6fcd8a6.jpeg</url>
      <title>DEV Community: vinit kumar pandey</title>
      <link>https://dev.to/vineetp6</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vineetp6"/>
    <language>en</language>
    <item>
      <title>Explain X Like I'm Five</title>
      <dc:creator>vinit kumar pandey</dc:creator>
      <pubDate>Mon, 01 May 2023 03:19:54 +0000</pubDate>
      <link>https://dev.to/vineetp6/explain-x-like-im-five-4hfb</link>
      <guid>https://dev.to/vineetp6/explain-x-like-im-five-4hfb</guid>
      <description>&lt;p&gt;Medium Beginners project :&lt;br&gt;
Setup and working -  Input’s value to search for users in GitHub using their username or email.Perform an HTTP request to a GitHub API endpoint to then fetch the users' profile which once again uses the browser fetch API. The request URL will use the input value. .&lt;br&gt;
 Want : I want search functionality as the user types the github email instead of having to first submit the form .Tried Debounce but didn't work .&lt;br&gt;
`import { useState } from "react";&lt;br&gt;
import "./styles.css";&lt;/p&gt;

&lt;p&gt;const API_URL = "&lt;a href="https://api.github.com"&gt;https://api.github.com&lt;/a&gt;";&lt;/p&gt;

&lt;p&gt;async function fetchResults(query) {&lt;br&gt;
  try {&lt;br&gt;
    const response = await fetch(&lt;code&gt;${API_URL}/search/users?q=${query}&lt;/code&gt;);&lt;br&gt;
    const json = await response.json();&lt;br&gt;
    return json.items || [];&lt;br&gt;
  } catch (e) {&lt;br&gt;
    throw new Error(e);&lt;br&gt;
  }&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;export default function App() {&lt;br&gt;
  const [query, setQuery] = useState("");&lt;br&gt;
  const [results, setResults] = useState([]);&lt;/p&gt;

&lt;p&gt;function onSearchChange(event) {&lt;br&gt;
    setQuery(event.target.value);&lt;br&gt;
  }&lt;/p&gt;

&lt;p&gt;async function onSearchSubmit(event) {&lt;br&gt;
    event.preventDefault();&lt;br&gt;
    const results = await fetchResults(query);&lt;br&gt;
    setResults(results);&lt;br&gt;
  }&lt;/p&gt;

&lt;p&gt;return (&lt;br&gt;
    &lt;/p&gt;
&lt;br&gt;
      &lt;br&gt;
        &lt;h2&gt;GitHub User Search&lt;/h2&gt;
&lt;br&gt;
        
          onChange={onSearchChange}&lt;br&gt;
          onSubmit={onSearchSubmit}&lt;br&gt;
          value={query}&lt;br&gt;
        /&amp;gt;&lt;br&gt;
        &lt;h3&gt;Results&lt;/h3&gt;
&lt;br&gt;
        &lt;br&gt;
          &lt;br&gt;
            {results.map((user) =&amp;gt; (&lt;br&gt;
              
                key={user.login}&lt;br&gt;
                avatar={user.avatar_url}&lt;br&gt;
                url={user.html_url}&lt;br&gt;
                username={user.login}&lt;br&gt;
              /&amp;gt;&lt;br&gt;
            ))}&lt;br&gt;
          &lt;br&gt;
        &lt;br&gt;
      &lt;br&gt;
    &lt;br&gt;
  );&lt;br&gt;
}

&lt;p&gt;function User({ avatar, url, username }) {&lt;br&gt;
  return (&lt;br&gt;
    &lt;/p&gt;
&lt;br&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--QvQJz4bC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/%7Bavatar%7D" alt="Profile" width="" height=""&gt;&lt;br&gt;
      &lt;a href="%7Burl%7D" rel="noopener noreferrer"&gt;&lt;br&gt;
        {username}&lt;br&gt;
      &lt;/a&gt;&lt;br&gt;
    &lt;br&gt;
  );&lt;br&gt;
}

&lt;p&gt;function Form({ onSubmit, onChange, value }) {&lt;br&gt;
  return (&lt;br&gt;
    &lt;/p&gt;
&lt;br&gt;
      
        id="search"&lt;br&gt;
        type="text"&lt;br&gt;
        // onkeyup="processChange()"&lt;br&gt;
        placeholder="Enter username or email"&lt;br&gt;
        onChange={onChange}&lt;br&gt;
        value={value}&lt;br&gt;
      /&amp;gt;&lt;br&gt;
      {/* Search */}&lt;br&gt;
      Click me
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;/form&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;);&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;function debounce(func, timeout = 300){&lt;br&gt;
  let timer;&lt;br&gt;
  return (...args) =&amp;gt; {&lt;br&gt;
    clearTimeout(timer);&lt;br&gt;
    timer = setTimeout(() =&amp;gt; { func.apply(this, args); }, timeout);&lt;br&gt;
  };&lt;br&gt;
}&lt;br&gt;
function saveInput(){&lt;br&gt;
  console.log('Saving data');&lt;br&gt;
}&lt;br&gt;
const processChange = debounce(() =&amp;gt; saveInput());`&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
