@@ -27,7 +27,6 @@ export default function Home() {
2727 const {
2828 downloadNewsletter,
2929 isLoading : newsletterLoading ,
30- error : newsletterError ,
3130 } = useNewsletter ( ) ;
3231
3332 // Recently viewed students
@@ -49,6 +48,7 @@ export default function Home() {
4948 const [ openSection , setOpenSection ] = useState <
5049 "students" | "curriculum" | null
5150 > ( "students" ) ;
51+ const [ newsletterErrorMessage , setNewsletterErrorMessage ] = useState < string | null > ( null ) ;
5252
5353 // Fetch students for the selected session
5454 const { students : sessionStudents , isLoading : studentsLoading } =
@@ -81,7 +81,12 @@ export default function Home() {
8181 }
8282
8383 const handleDownloadNewsletter = async ( ) => {
84- await downloadNewsletter ( ) ;
84+ try {
85+ await downloadNewsletter ( ) ;
86+ setNewsletterErrorMessage ( null ) ;
87+ } catch {
88+ setNewsletterErrorMessage ( "Newsletter not yet available for this month." ) ;
89+ }
8590 } ;
8691
8792 return (
@@ -101,11 +106,11 @@ export default function Home() {
101106 } ) }
102107 </ p >
103108 </ div >
104- < div className = "flex gap-2" >
109+ < div className = "flex flex-col items-end gap-2" >
105110 < Button
106111 variant = "outline"
107112 onClick = { handleDownloadNewsletter }
108- disabled = { newsletterLoading }
113+ disabled = { newsletterLoading || newsletterErrorMessage !== null }
109114 className = "text-pink border-pink hover:bg-pink hover:text-white"
110115 >
111116 { newsletterLoading ? (
@@ -117,8 +122,10 @@ export default function Home() {
117122 "This Month's Newsletter ↓"
118123 ) }
119124 </ Button >
120- { newsletterError && (
121- < span className = "text-sm text-error" > { newsletterError } </ span >
125+ { newsletterErrorMessage && (
126+ < span className = "text-sm text-gray-500 italic" >
127+ { newsletterErrorMessage }
128+ </ span >
122129 ) }
123130 </ div >
124131 </ div >
0 commit comments