import { AttachmentItem } from '@/components/attachments/AttachmentItem' import { SnAttachment } from 'solar-js-sdk' import { sni } from 'solar-js-sdk' import { Box, ImageList, ImageListItem, Pagination, useMediaQuery, useTheme } from '@mui/material' import { GetServerSideProps, InferGetServerSidePropsType } from 'next' import { useRouter } from 'next/router' export const getServerSideProps: GetServerSideProps = async (context) => { let page: number = parseInt(context.query.page as string) if (isNaN(page)) page = 1 const countPerPage = 20 const { data: resp } = await sni.get<{ data: SnAttachment[]; count: number }>('/cgi/uc/attachments', { params: { take: countPerPage, offset: (page - 1) * countPerPage, }, }) const attachments = resp.data return { props: { attachments, page, pages: Math.ceil(resp.count / countPerPage) } } } export default function AttachmentsPage({ attachments, page, pages, }: InferGetServerSidePropsType) { const router = useRouter() const theme = useTheme() const breakpoints = useMediaQuery(theme.breakpoints.up('md')) return ( {attachments.map((item: SnAttachment) => ( ))} router.push('/attachments?page=' + page)} /> ) }