Skip to content

Commit 53eeff3

Browse files
committed
error handling
1 parent c531008 commit 53eeff3

1 file changed

Lines changed: 13 additions & 6 deletions

File tree

frontend/src/app/page.tsx

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)