From ad46d122029999b7639657936068c4643f3572eb Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Tue, 31 Jan 2023 16:30:13 +0700 Subject: Product skeleton --- src/components/elements/Skeleton.js | 32 +++++++++++++++++++++++++++++++- src/components/products/ProductSlider.js | 31 +++---------------------------- src/pages/index.js | 15 +++++++-------- 3 files changed, 41 insertions(+), 37 deletions(-) (limited to 'src') diff --git a/src/components/elements/Skeleton.js b/src/components/elements/Skeleton.js index 0a0bbc78..fbdbc245 100644 --- a/src/components/elements/Skeleton.js +++ b/src/components/elements/Skeleton.js @@ -1,3 +1,5 @@ +import ImagePlaceholderIcon from "../../icons/image-placeholder.svg"; + const SkeletonList = ({ number }) => (
{ Array.from(Array(number), (e, i) => ( @@ -13,6 +15,34 @@ const SkeletonList = ({ number }) => (
); +const SkeletonProduct = () => ( +
+
+
+ +
+
+
+
+
+
+ Loading... +
+
+
+ +
+
+
+
+
+
+ Loading... +
+
+); + export { - SkeletonList + SkeletonList, + SkeletonProduct }; \ No newline at end of file diff --git a/src/components/products/ProductSlider.js b/src/components/products/ProductSlider.js index cf663995..4cc98eb7 100644 --- a/src/components/products/ProductSlider.js +++ b/src/components/products/ProductSlider.js @@ -1,9 +1,9 @@ import { Swiper, SwiperSlide } from "swiper/react"; import ProductCard from "./ProductCard"; -import ImagePlaceholderIcon from "../../icons/image-placeholder.svg"; import "swiper/css"; import Image from "../elements/Image"; import Link from "../elements/Link"; +import { SkeletonProduct } from "../elements/Skeleton"; export default function ProductSlider({ products, @@ -12,7 +12,7 @@ export default function ProductSlider({ return ( <> { bannerMode && ( - {products.name} + {products.banner.name} ) } { bannerMode && ( @@ -26,32 +26,7 @@ export default function ProductSlider({ ))} - {products == null ? ( -
-
-
- -
-
-
-
-
-
- Loading... -
-
-
- -
-
-
-
-
-
- Loading... -
-
- ) : ''} + { !products ? : ''} ) } \ No newline at end of file diff --git a/src/pages/index.js b/src/pages/index.js index 8c636616..b233f81e 100644 --- a/src/pages/index.js +++ b/src/pages/index.js @@ -25,7 +25,6 @@ export async function getServerSideProps() { export default function Home({ heroBanners }) { const [manufactures, setManufactures] = useState(null); - const [readyStockProducts, setReadyStockProducts] = useState(null); const [popularProducts, setPopularProducts] = useState(null); const [categoryProducts, setCategoryProducts] = useState(null); @@ -35,12 +34,6 @@ export default function Home({ heroBanners }) { setManufactures(dataManufactures); } getManufactures(); - - const getReadyStockProducts = async () => { - const dataReadyStockProducts = await apiOdoo('GET', `/api/v1/product?ready_stock=1&limit=30`); - setReadyStockProducts(dataReadyStockProducts); - } - getReadyStockProducts(); const getPopularProducts = async () => { const dataPopularProducts = await axios(`${process.env.SELF_HOST}/api/shop/search?q=*&page=1&order_by=popular`); @@ -92,7 +85,13 @@ export default function Home({ heroBanners }) { { categoryProducts?.map((categoryProduct) => (
-- cgit v1.2.3