d6d03bf7c6
* feat: changing API urls does not need the app refresh * fix: propagate beeDebugApi and beeApi change to the refresh interval * fix: any failed request on the Bee provider does not stop the execution of other requests * fix: error handling for incorrect bee and bee debug urls * fix: change debug API in the settings tab
31 lines
878 B
TypeScript
31 lines
878 B
TypeScript
import { useState, useEffect } from 'react'
|
|
import axios from 'axios'
|
|
|
|
export interface LatestBeeReleaseHook {
|
|
latestBeeRelease: LatestBeeRelease | null
|
|
isLoadingLatestBeeRelease: boolean
|
|
error: Error | null
|
|
}
|
|
|
|
export const useLatestBeeRelease = (): LatestBeeReleaseHook => {
|
|
const [latestBeeRelease, setLatestBeeRelease] = useState<LatestBeeRelease | null>(null)
|
|
const [isLoadingLatestBeeRelease, setLoading] = useState<boolean>(false)
|
|
const [error, setError] = useState<Error | null>(null)
|
|
|
|
useEffect(() => {
|
|
axios
|
|
.get(`${process.env.REACT_APP_BEE_GITHUB_REPO_URL}/releases/latest`)
|
|
.then(res => {
|
|
setLatestBeeRelease(res.data)
|
|
})
|
|
.catch((error: Error) => {
|
|
setError(error)
|
|
})
|
|
.finally(() => {
|
|
setLoading(false)
|
|
})
|
|
}, [])
|
|
|
|
return { latestBeeRelease, isLoadingLatestBeeRelease, error }
|
|
}
|