Skip to content
This repository has been archived by the owner on Jun 2, 2022. It is now read-only.

Commit

Permalink
Rename skeleton components
Browse files Browse the repository at this point in the history
  • Loading branch information
lucasfp13 committed Feb 12, 2022
1 parent 99c6fec commit 3b54f9a
Show file tree
Hide file tree
Showing 24 changed files with 161 additions and 161 deletions.
4 changes: 2 additions & 2 deletions src/components/product/ProductGrid/ProductGrid.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import React from 'react'
import type { ProductSummary_ProductFragment } from '@generated/graphql'
import { ITEMS_PER_PAGE } from 'src/constants'
import ProductCardSkeleton from 'src/components/skeletons/ProductCardSkeleton'
import SkeletonProductCard from 'src/components/skeletons/SkeletonProductCard'

import ProductCard from '../ProductCard'
import './product-grid.scss'
Expand Down Expand Up @@ -33,7 +33,7 @@ function ProductGrid({ products, page, pageSize }: Props) {
))
: Array.from({ length: ITEMS_PER_PAGE }, (_, index) => (
<li key={String(index)}>
<ProductCardSkeleton bordered />
<SkeletonProductCard bordered />
</li>
))}
</ul>
Expand Down
12 changes: 6 additions & 6 deletions src/components/sections/ProductGallery/ProductGallery.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ import Filter from 'src/components/search/Filter'
import Sort from 'src/components/search/Sort'
import Button, { LinkButton } from 'src/components/ui/Button'
import useWindowDimensions from 'src/hooks/useWindowDimensions'
import ElementSkeleton from 'src/components/skeletons/ElementSkeleton'
import FilterSkeleton from 'src/components/skeletons/FilterSkeleton'
import SkeletonElement from 'src/components/skeletons/SkeletonElement'
import SkeletonFilter from 'src/components/skeletons/SkeletonFilter'
import ProductGrid from 'src/components/product/ProductGrid'

import GalleryPage from './ProductGalleryPage'
Expand Down Expand Up @@ -49,20 +49,20 @@ function ProductGallery({ title, slug }: Props) {
onDismiss={() => setIsFilterOpen(false)}
/>
) : (
<FilterSkeleton />
<SkeletonFilter />
)}
</div>

<div className="product-listing__results-count" data-count={totalCount}>
{data ? (
<h2 data-testid="total-product-count">{totalCount} Results</h2>
) : (
<ElementSkeleton shimmer type="text" />
<SkeletonElement shimmer type="text" />
)}
</div>

<div className="product-listing__sort">
{data ? <Sort /> : <ElementSkeleton shimmer type="text" />}
{data ? <Sort /> : <SkeletonElement shimmer type="text" />}

{isMobile &&
(data ? (
Expand All @@ -77,7 +77,7 @@ function ProductGallery({ title, slug }: Props) {
Filters
</Button>
) : (
<ElementSkeleton shimmer type="button" />
<SkeletonElement shimmer type="button" />
))}
</div>

Expand Down
4 changes: 2 additions & 2 deletions src/components/sections/ProductShelf/ProductShelf.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import React from 'react'
import type { ProductSummary_ProductFragment } from '@generated/graphql'
import { ITEMS_PER_SECTION } from 'src/constants'
import ProductCardSkeleton from 'src/components/skeletons/ProductCardSkeleton'
import SkeletonProductCard from 'src/components/skeletons/SkeletonProductCard'

import ProductCard from '../../product/ProductCard'

Expand All @@ -24,7 +24,7 @@ function ProductShelf({ products }: ProductShelfProps) {
))
: Array.from({ length: ITEMS_PER_SECTION }, (_, index) => (
<li key={String(index)}>
<ProductCardSkeleton sectioned />
<SkeletonProductCard sectioned />
</li>
))}
</ul>
Expand Down
4 changes: 2 additions & 2 deletions src/components/sections/ProductTiles/ProductTiles.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -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 ProductTileSkeleton from 'src/components/skeletons/ProductTileSkeleton'
import SkeletonProductTile from 'src/components/skeletons/SkeletonProductTile'

interface TilesProps {
products: ProductSummary_ProductFragment[]
Expand Down Expand Up @@ -45,7 +45,7 @@ const ProductTiles = ({ products }: TilesProps) => {
))
: Array.from({ length: 3 }, (_, index) => (
<Tile key={String(index)}>
<ProductTileSkeleton tileIndex={index + 1} variant="horizontal" />
<SkeletonProductTile tileIndex={index + 1} variant="horizontal" />
</Tile>
))}
</Tiles>
Expand Down
23 changes: 0 additions & 23 deletions src/components/skeletons/ElementSkeleton/ElementSkeleton.tsx

This file was deleted.

1 change: 0 additions & 1 deletion src/components/skeletons/ElementSkeleton/index.ts

This file was deleted.

22 changes: 0 additions & 22 deletions src/components/skeletons/FilterSkeleton/FilterSkeleton.tsx

This file was deleted.

1 change: 0 additions & 1 deletion src/components/skeletons/FilterSkeleton/index.ts

This file was deleted.

This file was deleted.

1 change: 0 additions & 1 deletion src/components/skeletons/ProductCardSkeleton/index.ts

This file was deleted.

This file was deleted.

1 change: 0 additions & 1 deletion src/components/skeletons/ProductTileSkeleton/index.ts

This file was deleted.

23 changes: 23 additions & 0 deletions src/components/skeletons/SkeletonElement/SkeletonElement.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import React from 'react'

import Shimmer from '../Shimmer'

import './skeleton-element.scss'

type ElementVariant = 'text' | 'button' | 'image' | 'badge'

interface Props {
shimmer?: boolean
type: ElementVariant
}

function SkeletonElement({ type, shimmer = false }: Props) {
return (
<div data-store-skeleton-element data-shimmer={shimmer}>
<div data-skeleton-element-content data-element-variant={type} />
{shimmer && <Shimmer />}
</div>
)
}

export default SkeletonElement
1 change: 1 addition & 0 deletions src/components/skeletons/SkeletonElement/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { default } from './SkeletonElement'
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
[data-store-element-skeleton] {
[data-store-skeleton-element] {
&[data-shimmer="true"] {
position: relative;
overflow: hidden;
}

[data-element-skeleton] {
[data-skeleton-element-content] {
overflow: hidden;
background: var(--color-neutral-2);
border-radius: var(--border-radius-default);
Expand Down
22 changes: 22 additions & 0 deletions src/components/skeletons/SkeletonFilter/SkeletonFilter.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import React from 'react'

import Shimmer from '../Shimmer'
import SkeletonElement from '../SkeletonElement'
import './skeleton-filter.scss'

function SkeletonFilter() {
return (
<div data-store-skeleton-filter>
<SkeletonElement shimmer type="text" />

<div data-skeleton-filter-content>
<SkeletonElement type="text" />
<SkeletonElement type="text" />
<SkeletonElement type="text" />
<Shimmer />
</div>
</div>
)
}

export default SkeletonFilter
1 change: 1 addition & 0 deletions src/components/skeletons/SkeletonFilter/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { default } from './SkeletonFilter'
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
@import "../../../styles/scaffold";

[data-store-filter-skeleton] {
[data-store-skeleton-filter] {
margin-top: var(--space-1);

@include media("<notebook") { display: none; }

[data-filter-skeleton-content] {
[data-skeleton-filter-content] {
position: relative;
display: flex;
flex-direction: column;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import React from 'react'

import Shimmer from '../Shimmer'
import SkeletonElement from '../SkeletonElement'
import './skeleton-product-card.scss'

interface Props {
bordered?: boolean
sectioned?: boolean
showActions?: boolean
variant?: 'vertical' | 'horizontal'
}

const SkeletonProductCard = ({
bordered,
sectioned = false,
showActions = false,
variant = 'vertical',
}: Props) => {
return (
<div
data-store-skeleton-product-card
data-bordered={bordered}
data-variant={variant}
>
<div data-skeleton-product-card-image data-sectioned={sectioned}>
<SkeletonElement type="image" />
</div>
<div data-skeleton-product-card-content>
<SkeletonElement type="text" />
<SkeletonElement type="text" />
<SkeletonElement type="badge" />
{showActions && <SkeletonElement type="button" />}
</div>
<Shimmer />
</div>
)
}

export default SkeletonProductCard
1 change: 1 addition & 0 deletions src/components/skeletons/SkeletonProductCard/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { default } from './SkeletonProductCard'
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
@import "../../../styles/scaffold";

[data-store-product-card-skeleton] {
[data-store-skeleton-product-card] {
position: relative;
display: flex;
flex-direction: column;
Expand All @@ -27,7 +27,7 @@
}
}

[data-product-card-skeleton-image] {
[data-skeleton-product-card-image] {
[data-element-variant="image"] {
height: 45vw;

Expand All @@ -44,7 +44,7 @@
}
}

[data-product-card-skeleton-content] {
[data-skeleton-product-card-content] {
position: relative;
height: 20%;
margin-top: var(--space-2);
Expand Down
Loading

0 comments on commit 3b54f9a

Please sign in to comment.