loading.tsx 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import {NOT_IMAGE} from "@/utils/constants";
  2. export default function Loading() {
  3. const arr = [1,2,3,4,5,6];
  4. return (
  5. <div className="w-full h-full box-border animate-pulse">
  6. <div className="w-full bg-skeletonbg">
  7. <img className="block w-full h-130 object-cover" src={NOT_IMAGE} />
  8. </div>
  9. <div className="flex justify-between box-border px-4 py-1.5">
  10. <span className="w-20 h-5 bg-skeletonbg"></span>
  11. <span className="w-20 h-5 bg-skeletonbg"></span>
  12. <span className="w-20 h-5 bg-skeletonbg"></span>
  13. </div>
  14. <div className="box-border px-4 mt-1 flex flex-wrap justify-between">
  15. {arr.map((i) => {
  16. return (
  17. <div className="w-27 h-36 mt-3 bg-skeletonbg" key={'one'+String(i)}>
  18. <img className="block w-full h-full object-cover" src={NOT_IMAGE} />
  19. </div>
  20. )
  21. })}
  22. </div>
  23. <div className="box-border px-4 mt-6">
  24. <div className="h-6 w-40 bg-skeletonbg"></div>
  25. <div className="flex justify-between flex-wrap">
  26. {arr.map((i) => {
  27. if(i > 4) return <></>;
  28. return (
  29. <div className="flex-none w-42.75 mt-4" key={'two'+String(i)}>
  30. <img className="block w-42.75 h-57 bg-skeletonbg object-cover" src={NOT_IMAGE} />
  31. <p className="h-5 mt-2 bg-skeletonbg"></p>
  32. <p className="w-3/5 h-4 mt-2 bg-skeletonbg"></p>
  33. <div className="flex justify-between items-center mt-2">
  34. <span className="w-25 h-5 bg-skeletonbg"></span>
  35. <span className="w-8 h-8 bg-skeletonbg"></span>
  36. </div>
  37. </div>
  38. )
  39. })}
  40. </div>
  41. </div>
  42. </div>
  43. );
  44. }