Skip to content

Commit

Permalink
implements useTaggedRelease hook
Browse files Browse the repository at this point in the history
  • Loading branch information
bdbch committed Jul 20, 2019
1 parent 8d75f18 commit 0d5d239
Show file tree
Hide file tree
Showing 4 changed files with 75 additions and 0 deletions.
34 changes: 34 additions & 0 deletions docs/components/TaggedRelease.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
import React from "react";
import { useTaggedRelease } from "../../src";

const TaggedRelease = () => {
const { release, loading, error } = useTaggedRelease(
"facebook",
"react",
"v16.8.4"
);

return (
<div>
<h1>Tagged release by repo</h1>
{loading && <div>Loading release from Github</div>}
{error && <div>{error}</div>}
{release && (
<div>
<h4>
<a
href={release.html_url}
target="_blank"
rel="nofollow noreferrer"
>
{release.tag_name}
</a>
</h4>
<div>{release.body}</div>
</div>
)}
</div>
);
};

export default TaggedRelease;
3 changes: 3 additions & 0 deletions docs/example.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import User from "./components/User";
import Branches from "./components/Branches";
import Branch from "./components/Branch";
import LatestRelease from "./components/LatestRelease";
import TaggedRelease from "./components/TaggedRelease";

function App() {
return (
Expand All @@ -19,6 +20,8 @@ function App() {
<hr />
<LatestRelease />
<hr />
<TaggedRelease />
<hr />
</div>
);
}
Expand Down
3 changes: 3 additions & 0 deletions src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,15 @@ import useUser from './lib/useUser'
import useBranches from './lib/branch/useBranches'
import useBranch from './lib/branch/useBranch'
import useLatestRelease from './lib/repository/useLatestRelease'
import useTaggedRelease from './lib/repository/useTaggedRelease'

export {
useRepos,
useUser,
useBranches,
useBranch,
useLatestRelease,
useTaggedRelease,
}

export default {
Expand All @@ -18,4 +20,5 @@ export default {
useBranches,
useBranch,
useLatestRelease,
useTaggedRelease,
}
35 changes: 35 additions & 0 deletions src/lib/repository/useTaggedRelease.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
import {
useState,
useEffect
} from 'react'

export default function useTaggedRelease(owner, repo, tag) {
const [release, setRelease] = useState(null)
const [loading, setLoading] = useState(false)
const [error, setError] = useState(null)

useEffect(() => {
if (owner && owner.length > 0 && repo && repo.length > 0 && tag && tag.length > 0) {
setError(null)
setLoading(true)

fetch(`https://api.github.com/repos/${owner}/${repo}/releases/tags/${tag}`)
.then(res => res.json())
.then(data => {
setLoading(false)
setRelease(data)
})
.catch(e => {
setLoading(false)
setRelease(null)
setError(e)
})
}
}, [owner, repo])

return {
release,
loading,
error
}
}

0 comments on commit 0d5d239

Please sign in to comment.