33import { Avatar , Tabs } from '@skeletonlabs/skeleton-react' ;
44import { DownloadIcon , MonitorIcon , TerminalIcon } from 'lucide-react' ;
55import { useState } from 'react' ;
6- import type { Octokit } from 'octokit' ;
7-
8- type OctokitRelease = Awaited <
9- ReturnType < Octokit [ 'rest' ] [ 'repos' ] [ 'listReleases' ] >
10- > [ 'data' ] [ number ] ;
6+ import type { GithubRelease , GithubAsset } from './types' ;
117
128export default function DownloadView ( {
139 releases,
1410} : {
15- releases : OctokitRelease [ ] ;
11+ releases : GithubRelease [ ] ;
1612} ) {
1713 const [ tabOS , setTabOS ] = useState ( 'windows' ) ;
1814 const [ selectedReleaseIndex , setSelectedReleaseIndex ] = useState ( 0 ) ;
@@ -23,7 +19,7 @@ export default function DownloadView({
2319
2420 const release = releases [ selectedReleaseIndex ] ;
2521
26- const assets = release . assets ?? [ ] ;
22+ const assets = release . releaseAssets ?. nodes ?? [ ] ;
2723 const windows = assets . filter ( ( a ) =>
2824 a . name . toLowerCase ( ) . includes ( 'windows' ) ,
2925 ) ;
@@ -72,7 +68,7 @@ export default function DownloadView({
7268 >
7369 { releases . map ( ( rel , index ) => (
7470 < option key = { rel . id } value = { index } >
75- { rel . name ?? rel . tag_name ?? `#${ rel . id } ` }
71+ { rel . name ?? rel . tagName ?? `#${ rel . id } ` }
7672 </ option >
7773 ) ) }
7874 </ select >
@@ -81,7 +77,7 @@ export default function DownloadView({
8177 < div className = "mt-4 flex items-center justify-center gap-4 text-surface-800-200" >
8278 < Avatar className = "size-10" >
8379 < Avatar . Image
84- src = { release . author ?. avatar_url ?? '' }
80+ src = { release . author ?. avatarUrl ?? '' }
8581 alt = { release . author ?. login ?? 'author' }
8682 />
8783 < Avatar . Fallback >
@@ -96,9 +92,9 @@ export default function DownloadView({
9692 </ span >
9793 < span className = "opacity-60" >
9894 Published on{ ' ' }
99- { release . published_at
95+ { release . publishedAt
10096 ? new Date (
101- release . published_at ,
97+ release . publishedAt ,
10298 ) . toLocaleDateString ( )
10399 : 'Unknown' }
104100 </ span >
@@ -157,17 +153,7 @@ export default function DownloadView({
157153 ) ;
158154}
159155
160- function AssetGrid ( {
161- assets,
162- } : {
163- assets : {
164- id : number ;
165- name : string ;
166- size : number ;
167- download_count : number ;
168- browser_download_url : string ;
169- } [ ] ;
170- } ) {
156+ function AssetGrid ( { assets } : { assets : GithubAsset [ ] } ) {
171157 if ( ! assets || assets . length === 0 ) {
172158 return (
173159 < div className = "card preset-filled-surface-100-900 mx-auto flex max-w-xl flex-col items-center justify-center p-12 text-center opacity-70" >
@@ -191,12 +177,12 @@ function AssetGrid({
191177 { ( asset . size / 1024 / 1024 ) . toFixed ( 2 ) } MB
192178 </ span >
193179 < span className = "badge preset-tonal-surface rounded-lg py-1 text-xs" >
194- { asset . download_count } Downloads
180+ { asset . downloadCount } Downloads
195181 </ span >
196182 </ div >
197183 </ div >
198184 < a
199- href = { asset . browser_download_url }
185+ href = { asset . downloadUrl }
200186 className = "btn preset-filled w-full font-bold"
201187 >
202188 < DownloadIcon className = "mr-2 size-4" /> Download
0 commit comments