add post list page loading

This commit is contained in:
DefectingCat
2023-05-17 14:56:11 +08:00
parent 2729631866
commit 884fb274de
4 changed files with 65 additions and 16 deletions

15
app/blog/loading.tsx Normal file
View File

@ -0,0 +1,15 @@
import PostCardLoading from './post-card-loading';
const Loading = () => {
const num = Array(4).fill(1);
return (
<>
{num.map((_, i) => (
<PostCardLoading key={i} />
))}
</>
);
};
export default Loading;

View File

@ -3,6 +3,7 @@ import PostCardLoading from './post-card-loading';
import { PostPerPage, postLists } from 'lib/posts';
import { Fragment, Suspense } from 'react';
import Pagination from 'components/rua/rua-pagination';
import clsx from 'clsx';
export default async function Page() {
const allPosts = await postLists();

View File

@ -5,23 +5,56 @@ const PostCardLoading = () => {
return (
<article
className={clsx(
'rounded-xl py-4 px-5 md:p-7 animate-pulse',
'bg-sky-100 bg-opacity-50',
'dark:bg-rua-gray-800 dark:bg-opacity-100',
'flex items-center justify-between text-gray-800 ',
'mb-4 dark:text-gray-200'
'rounded-xl py-4 px-5 md:p-7 ',
'hover:bg-sky-100 hover:bg-opacity-50',
'dark:hover:bg-rua-gray-800 dark:hover:bg-opacity-100',
'flex justify-between text-gray-800 ',
'mb-4 dark:text-gray-200',
'flex-col'
)}
>
<div className="flex-1">
<h2 className="w-full mb-4 bg-gray-300 rounded-lg md:w-96 h-9 dark:bg-gray-500"></h2>
<div className="flex justify-between">
<h2
className={clsx(
'w-96 bg-gray-300 h-7 animate-pulse',
'mb-4 text-3xl font-semibold font-Barlow',
'rounded-lg dark:bg-gray-500'
)}
></h2>
<div
className={clsx(
'hidden animate-pulse h-5 bg-gray-300',
'dark:bg-gray-500 lg:block w-24',
'rounded-lg'
)}
></div>
</div>
<div className="flex justify-between">
<div className="flex items-center text-sm">
<div className="w-16 h-5 mr-4 bg-gray-300 rounded-md last:mr-0 dark:bg-gray-500"></div>
<div className="w-16 h-5 bg-gray-300 rounded-md dark:bg-gray-500"></div>
</div>
<div
className={clsx(
'mr-4 last:mr-0 w-9 animate-pulse h-5',
'rounded-lg bg-gray-300 dark:bg-gray-500'
)}
></div>
<div
className={clsx(
'mr-4 last:mr-0 w-9 animate-pulse h-5',
'rounded-lg bg-gray-300 dark:bg-gray-500'
)}
></div>
</div>
<div className="hidden w-24 h-6 bg-gray-300 rounded-md md:block dark:bg-gray-500"></div>
<div
className={clsx(
'hidden animate-pulse h-5 bg-gray-300',
'dark:bg-gray-500 lg:block w-24',
'rounded-lg lg:hidden'
)}
></div>
</div>
</article>
);
};