1+ "use client" ;
2+
3+ import React , { useState , useEffect } from "react" ;
14import {
25 Button ,
36 Code ,
@@ -8,7 +11,6 @@ import {
811 Title ,
912} from "@mantine/core" ;
1013import classes from "./downloads.module.css" ;
11- import React from "react" ;
1214import { ExtensionList } from "@/app/downloads/extensions" ;
1315import { NightlyList } from "@/app/downloads/nightlies" ;
1416import Link from "next/link" ;
@@ -93,12 +95,24 @@ function DesktopDownload({ latest }: { latest: GithubRelease | null }) {
9395 ) ;
9496}
9597
96- export default async function Page ( ) {
97- const releases = await getLatestReleases ( ) ;
98- const latest = releases . length > 0 ? releases [ 0 ] : null ;
99- const nightlies = releases
100- . filter ( ( release ) => release . prerelease )
101- . slice ( 0 , maxNightlies ) ;
98+ export default function Page ( ) {
99+ const [ latest , setLatest ] = useState < GithubRelease | null > ( null ) ;
100+ const [ nightlies , setNightlies ] = useState < GithubRelease [ ] > ( [ ] ) ;
101+ useEffect ( ( ) => {
102+ const fetchReleases = async ( ) => {
103+ try {
104+ const releases = await getLatestReleases ( ) ;
105+ const nightlies = releases
106+ . filter ( ( release ) => release . prerelease )
107+ . slice ( 0 , maxNightlies ) ;
108+ setNightlies ( nightlies ) ;
109+ setLatest ( releases . length > 0 ? releases [ 0 ] : null ) ;
110+ } catch ( err ) {
111+ console . warn ( "Failed to fetch releases" , err ) ;
112+ }
113+ } ;
114+ fetchReleases ( ) ;
115+ } , [ ] ) ;
102116 return (
103117 < Container size = "xl" className = { classes . container } >
104118 < Stack gap = "xl" >
0 commit comments