File tree Expand file tree Collapse file tree 4 files changed +75
-0
lines changed
Expand file tree Collapse file tree 4 files changed +75
-0
lines changed Original file line number Diff line number Diff line change 1+ import React from "react" ;
2+ import { useTaggedRelease } from "../../src" ;
3+
4+ const TaggedRelease = ( ) => {
5+ const { release, loading, error } = useTaggedRelease (
6+ "facebook" ,
7+ "react" ,
8+ "v16.8.4"
9+ ) ;
10+
11+ return (
12+ < div >
13+ < h1 > Tagged release by repo</ h1 >
14+ { loading && < div > Loading release from Github</ div > }
15+ { error && < div > { error } </ div > }
16+ { release && (
17+ < div >
18+ < h4 >
19+ < a
20+ href = { release . html_url }
21+ target = "_blank"
22+ rel = "nofollow noreferrer"
23+ >
24+ { release . tag_name }
25+ </ a >
26+ </ h4 >
27+ < div > { release . body } </ div >
28+ </ div >
29+ ) }
30+ </ div >
31+ ) ;
32+ } ;
33+
34+ export default TaggedRelease ;
Original file line number Diff line number Diff line change @@ -5,6 +5,7 @@ import User from "./components/User";
55import Branches from "./components/Branches" ;
66import Branch from "./components/Branch" ;
77import LatestRelease from "./components/LatestRelease" ;
8+ import TaggedRelease from "./components/TaggedRelease" ;
89
910function App ( ) {
1011 return (
@@ -19,6 +20,8 @@ function App() {
1920 < hr />
2021 < LatestRelease />
2122 < hr />
23+ < TaggedRelease />
24+ < hr />
2225 </ div >
2326 ) ;
2427}
Original file line number Diff line number Diff line change @@ -3,13 +3,15 @@ import useUser from './lib/useUser'
33import useBranches from './lib/branch/useBranches'
44import useBranch from './lib/branch/useBranch'
55import useLatestRelease from './lib/repository/useLatestRelease'
6+ import useTaggedRelease from './lib/repository/useTaggedRelease'
67
78export {
89 useRepos ,
910 useUser ,
1011 useBranches ,
1112 useBranch ,
1213 useLatestRelease ,
14+ useTaggedRelease ,
1315}
1416
1517export default {
@@ -18,4 +20,5 @@ export default {
1820 useBranches,
1921 useBranch,
2022 useLatestRelease,
23+ useTaggedRelease,
2124}
Original file line number Diff line number Diff line change 1+ import {
2+ useState ,
3+ useEffect
4+ } from 'react'
5+
6+ export default function useTaggedRelease ( owner , repo , tag ) {
7+ const [ release , setRelease ] = useState ( null )
8+ const [ loading , setLoading ] = useState ( false )
9+ const [ error , setError ] = useState ( null )
10+
11+ useEffect ( ( ) => {
12+ if ( owner && owner . length > 0 && repo && repo . length > 0 && tag && tag . length > 0 ) {
13+ setError ( null )
14+ setLoading ( true )
15+
16+ fetch ( `https://api.github.com/repos/${ owner } /${ repo } /releases/tags/${ tag } ` )
17+ . then ( res => res . json ( ) )
18+ . then ( data => {
19+ setLoading ( false )
20+ setRelease ( data )
21+ } )
22+ . catch ( e => {
23+ setLoading ( false )
24+ setRelease ( null )
25+ setError ( e )
26+ } )
27+ }
28+ } , [ owner , repo ] )
29+
30+ return {
31+ release,
32+ loading,
33+ error
34+ }
35+ }
You can’t perform that action at this time.
0 commit comments