diff --git a/src/components/sections/ProductTiles/ProductTiles.tsx b/src/components/sections/ProductTiles/ProductTiles.tsx index aee24e98d..deeb6f64f 100644 --- a/src/components/sections/ProductTiles/ProductTiles.tsx +++ b/src/components/sections/ProductTiles/ProductTiles.tsx @@ -2,7 +2,7 @@ import React from 'react' import Tiles, { Tile } from 'src/components/ui/Tiles' import ProductCard from 'src/components/product/ProductCard' import type { ProductSummary_ProductFragment } from '@generated/graphql' -import SkeletonProductTile from 'src/components/skeletons/SkeletonProductTile' +import SkeletonProductTiles from 'src/components/skeletons/SkeletonProductTiles' interface TilesProps { products: ProductSummary_ProductFragment[] @@ -30,25 +30,21 @@ const ProductTiles = ({ products }: TilesProps) => { } return ( - - {haveProducts - ? products.map((product, idx) => ( - - - - )) - : Array.from({ length: 3 }, (_, index) => ( - - - - ))} - + + + {products.map((product, idx) => ( + + + + ))} + + ) } diff --git a/src/components/skeletons/SkeletonProductTile/SkeletonProductTile.tsx b/src/components/skeletons/SkeletonProductTiles/SkeletonProductTile/SkeletonProductTile.tsx similarity index 92% rename from src/components/skeletons/SkeletonProductTile/SkeletonProductTile.tsx rename to src/components/skeletons/SkeletonProductTiles/SkeletonProductTile/SkeletonProductTile.tsx index 4c8828fde..a7a4143ee 100644 --- a/src/components/skeletons/SkeletonProductTile/SkeletonProductTile.tsx +++ b/src/components/skeletons/SkeletonProductTiles/SkeletonProductTile/SkeletonProductTile.tsx @@ -1,7 +1,7 @@ import React from 'react' -import Shimmer from '../Shimmer' -import SkeletonElement from '../SkeletonElement' +import Shimmer from '../../Shimmer' +import SkeletonElement from '../../SkeletonElement' import './skeleton-product-tile.scss' interface Props { diff --git a/src/components/skeletons/SkeletonProductTile/index.ts b/src/components/skeletons/SkeletonProductTiles/SkeletonProductTile/index.ts similarity index 100% rename from src/components/skeletons/SkeletonProductTile/index.ts rename to src/components/skeletons/SkeletonProductTiles/SkeletonProductTile/index.ts diff --git a/src/components/skeletons/SkeletonProductTile/skeleton-product-tile.scss b/src/components/skeletons/SkeletonProductTiles/SkeletonProductTile/skeleton-product-tile.scss similarity index 98% rename from src/components/skeletons/SkeletonProductTile/skeleton-product-tile.scss rename to src/components/skeletons/SkeletonProductTiles/SkeletonProductTile/skeleton-product-tile.scss index ba37633ee..a3474e27c 100644 --- a/src/components/skeletons/SkeletonProductTile/skeleton-product-tile.scss +++ b/src/components/skeletons/SkeletonProductTiles/SkeletonProductTile/skeleton-product-tile.scss @@ -1,4 +1,4 @@ -@import "../../../styles/vendors/include-media.scss"; +@import "../../../../styles/vendors/include-media.scss"; [data-store-skeleton-product-tile] { position: relative; diff --git a/src/components/skeletons/SkeletonProductTiles/SkeletonProductTiles.tsx b/src/components/skeletons/SkeletonProductTiles/SkeletonProductTiles.tsx new file mode 100644 index 000000000..e93575209 --- /dev/null +++ b/src/components/skeletons/SkeletonProductTiles/SkeletonProductTiles.tsx @@ -0,0 +1,30 @@ +import React from 'react' +import Tiles, { Tile } from 'src/components/ui/Tiles' + +import SkeletonProductTile from './SkeletonProductTile' + +interface Props { + loading?: boolean + children?: JSX.Element + variant?: 'vertical' | 'horizontal' +} + +function SkeletonProductTiles({ + children, + loading = true, + variant = 'vertical', +}: Props) { + return loading ? ( + + {Array.from({ length: 3 }, (_, index) => ( + + + + ))} + + ) : ( + children ?? null + ) +} + +export default SkeletonProductTiles diff --git a/src/components/skeletons/SkeletonProductTiles/index.ts b/src/components/skeletons/SkeletonProductTiles/index.ts new file mode 100644 index 000000000..2f7407eea --- /dev/null +++ b/src/components/skeletons/SkeletonProductTiles/index.ts @@ -0,0 +1 @@ +export { default } from './SkeletonProductTiles'