Skip to content

Instantly share code, notes, and snippets.

@aleksejkozin
Created January 13, 2021 19:41
Show Gist options
  • Save aleksejkozin/52c013d3fb166ca90c189f8a09a1664b to your computer and use it in GitHub Desktop.
Save aleksejkozin/52c013d3fb166ca90c189f8a09a1664b to your computer and use it in GitHub Desktop.
import {useEffect, useState} from 'react'
import {Browser, BrowsersListProps} from '../components/BrowsersList'
export function useBrowsers(url: string): BrowsersListProps {
const [loading, setLoading] = useState(false)
const [browsers, setBrowsers] = useState<Browser[]>([])
const [selectedBrowser, setSelectedBrowser] = useState<Browser | undefined>(
undefined,
)
useEffect(() => {
setLoading(true)
fetch(url)
.then((response) => response.json())
.then((responseJson) => {
return responseJson.Browsers
})
.then((browsers) => {
setBrowsers(browsers)
})
.catch((error) => {
console.log(error)
})
.finally(() => setLoading(false))
}, [url])
return {
loading,
browsers,
selectedBrowser,
setSelectedBrowser,
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment