Added announcement pages and api changes and types to fix announcements

This commit is contained in:
Hieuhuy Pham 2025-01-21 19:20:43 -05:00
parent c32020aa47
commit 879dc44284
3 changed files with 9 additions and 5 deletions

View File

@ -1,6 +1,7 @@
import { formatDateToMonthDayYear } from "@/lib/utils"; import { formatDateToMonthDayYear } from "@/lib/utils";
import { Announcement } from "@/lib/types"; import { Announcement } from "@/lib/types";
import { fetchAnnouncements } from "@/lib/api"; import { fetchAnnouncements } from "@/lib/api";
import Link from "next/link";
export const metadata = { export const metadata = {
@ -27,10 +28,12 @@ export default async function AnnouncementPage() {
return ( return (
<div className="max-w-6xl mx-auto py-10 px-4"> <div className="max-w-6xl mx-auto py-10 px-4">
{sorted_announcements.map((announcement) => ( {sorted_announcements.map((announcement) => (
<Link href = {`/announcements/${announcement.documentId}`} key={announcement.documentId}>
<li key={announcement.id} className="mb-2 list-none"> <li key={announcement.id} className="mb-2 list-none">
<div className="text-lg font-semibold">{announcement.title}</div> <div className="text-lg font-semibold">{announcement.title}</div>
<div className="text-sm text-gray-500">{formatDateToMonthDayYear(new Date(announcement.datetime))}</div> <div className="text-sm text-gray-500">{formatDateToMonthDayYear(new Date(announcement.datetime))}</div>
</li> </li>
</Link>
))} ))}
</div> </div>
); );

View File

@ -124,6 +124,6 @@ export async function fetchReleases(): Promise<{current_chapters:Chapter[],futur
} }
export async function fetchAnnouncementById(announcementId: string): Promise<Announcement> { export async function fetchAnnouncementById(announcementId: string): Promise<Announcement> {
const data = await fetchFromAPI<Announcement>(`/api/announcements/${announcementId}`); const data = await fetchFromAPI<Announcement>(`/api/announcements/${announcementId}?`);
return data[0]; return data[0];
} }

View File

@ -65,6 +65,7 @@ export interface Book {
export interface Announcement { export interface Announcement {
id: number; id: number;
documentId: string;
title: string; title: string;
content: string; content: string;
datetime: string; datetime: string;