@shopify/shop-minis-react 0.3.4 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/index3.js +2 -5
- package/dist/_virtual/index3.js.map +1 -1
- package/dist/_virtual/index4.js +5 -2
- package/dist/_virtual/index4.js.map +1 -1
- package/dist/components/MinisContainer.js +11 -10
- package/dist/components/MinisContainer.js.map +1 -1
- package/dist/hooks/content/useContent.js +12 -18
- package/dist/hooks/content/useContent.js.map +1 -1
- package/dist/hooks/product/useCuratedProducts.js +9 -11
- package/dist/hooks/product/useCuratedProducts.js.map +1 -1
- package/dist/hooks/product/usePopularProducts.js +9 -11
- package/dist/hooks/product/usePopularProducts.js.map +1 -1
- package/dist/hooks/product/useProduct.js +11 -17
- package/dist/hooks/product/useProduct.js.map +1 -1
- package/dist/hooks/product/useProductList.js +10 -21
- package/dist/hooks/product/useProductList.js.map +1 -1
- package/dist/hooks/product/useProductLists.js +11 -13
- package/dist/hooks/product/useProductLists.js.map +1 -1
- package/dist/hooks/product/useProductMedia.js +12 -18
- package/dist/hooks/product/useProductMedia.js.map +1 -1
- package/dist/hooks/product/useProductSearch.js +34 -27
- package/dist/hooks/product/useProductSearch.js.map +1 -1
- package/dist/hooks/product/useProductVariants.js +11 -14
- package/dist/hooks/product/useProductVariants.js.map +1 -1
- package/dist/hooks/product/useProducts.js +12 -11
- package/dist/hooks/product/useProducts.js.map +1 -1
- package/dist/hooks/product/useRecommendedProducts.js +11 -13
- package/dist/hooks/product/useRecommendedProducts.js.map +1 -1
- package/dist/hooks/shop/useRecommendedShops.js +11 -13
- package/dist/hooks/shop/useRecommendedShops.js.map +1 -1
- package/dist/hooks/shop/useShop.js +12 -11
- package/dist/hooks/shop/useShop.js.map +1 -1
- package/dist/hooks/user/useBuyerAttributes.js +8 -10
- package/dist/hooks/user/useBuyerAttributes.js.map +1 -1
- package/dist/hooks/user/useCurrentUser.js +7 -9
- package/dist/hooks/user/useCurrentUser.js.map +1 -1
- package/dist/hooks/user/useFollowedShops.js +11 -14
- package/dist/hooks/user/useFollowedShops.js.map +1 -1
- package/dist/hooks/user/useOrders.js +7 -9
- package/dist/hooks/user/useOrders.js.map +1 -1
- package/dist/hooks/user/useRecentProducts.js +11 -13
- package/dist/hooks/user/useRecentProducts.js.map +1 -1
- package/dist/hooks/user/useRecentShops.js +10 -13
- package/dist/hooks/user/useRecentShops.js.map +1 -1
- package/dist/hooks/user/useSavedProducts.js +10 -13
- package/dist/hooks/user/useSavedProducts.js.map +1 -1
- package/dist/hooks/util/useImagePicker.js +13 -6
- package/dist/hooks/util/useImagePicker.js.map +1 -1
- package/dist/internal/reactQuery/MinisQueryProvider.js +11 -0
- package/dist/internal/reactQuery/MinisQueryProvider.js.map +1 -0
- package/dist/internal/reactQuery/queryClient.js +33 -0
- package/dist/internal/reactQuery/queryClient.js.map +1 -0
- package/dist/internal/reactQuery/useShopActionInfiniteQuery.js +52 -0
- package/dist/internal/reactQuery/useShopActionInfiniteQuery.js.map +1 -0
- package/dist/internal/reactQuery/useShopActionQuery.js +37 -0
- package/dist/internal/reactQuery/useShopActionQuery.js.map +1 -0
- package/dist/internal/utils/resizeImage.js +61 -0
- package/dist/internal/utils/resizeImage.js.map +1 -0
- package/dist/providers/ImagePickerProvider.js +123 -102
- package/dist/providers/ImagePickerProvider.js.map +1 -1
- package/dist/shop-minis-react/node_modules/.pnpm/@tanstack_query-core@5.86.0/node_modules/@tanstack/query-core/build/modern/focusManager.js +45 -0
- package/dist/shop-minis-react/node_modules/.pnpm/@tanstack_query-core@5.86.0/node_modules/@tanstack/query-core/build/modern/focusManager.js.map +1 -0
- package/dist/shop-minis-react/node_modules/.pnpm/@tanstack_query-core@5.86.0/node_modules/@tanstack/query-core/build/modern/infiniteQueryBehavior.js +89 -0
- package/dist/shop-minis-react/node_modules/.pnpm/@tanstack_query-core@5.86.0/node_modules/@tanstack/query-core/build/modern/infiniteQueryBehavior.js.map +1 -0
- package/dist/shop-minis-react/node_modules/.pnpm/@tanstack_query-core@5.86.0/node_modules/@tanstack/query-core/build/modern/infiniteQueryObserver.js +55 -0
- package/dist/shop-minis-react/node_modules/.pnpm/@tanstack_query-core@5.86.0/node_modules/@tanstack/query-core/build/modern/infiniteQueryObserver.js.map +1 -0
- package/dist/shop-minis-react/node_modules/.pnpm/@tanstack_query-core@5.86.0/node_modules/@tanstack/query-core/build/modern/mutation.js +198 -0
- package/dist/shop-minis-react/node_modules/.pnpm/@tanstack_query-core@5.86.0/node_modules/@tanstack/query-core/build/modern/mutation.js.map +1 -0
- package/dist/shop-minis-react/node_modules/.pnpm/@tanstack_query-core@5.86.0/node_modules/@tanstack/query-core/build/modern/mutationCache.js +99 -0
- package/dist/shop-minis-react/node_modules/.pnpm/@tanstack_query-core@5.86.0/node_modules/@tanstack/query-core/build/modern/mutationCache.js.map +1 -0
- package/dist/shop-minis-react/node_modules/.pnpm/@tanstack_query-core@5.86.0/node_modules/@tanstack/query-core/build/modern/notifyManager.js +67 -0
- package/dist/shop-minis-react/node_modules/.pnpm/@tanstack_query-core@5.86.0/node_modules/@tanstack/query-core/build/modern/notifyManager.js.map +1 -0
- package/dist/shop-minis-react/node_modules/.pnpm/@tanstack_query-core@5.86.0/node_modules/@tanstack/query-core/build/modern/onlineManager.js +39 -0
- package/dist/shop-minis-react/node_modules/.pnpm/@tanstack_query-core@5.86.0/node_modules/@tanstack/query-core/build/modern/onlineManager.js.map +1 -0
- package/dist/shop-minis-react/node_modules/.pnpm/@tanstack_query-core@5.86.0/node_modules/@tanstack/query-core/build/modern/query.js +299 -0
- package/dist/shop-minis-react/node_modules/.pnpm/@tanstack_query-core@5.86.0/node_modules/@tanstack/query-core/build/modern/query.js.map +1 -0
- package/dist/shop-minis-react/node_modules/.pnpm/@tanstack_query-core@5.86.0/node_modules/@tanstack/query-core/build/modern/queryCache.js +80 -0
- package/dist/shop-minis-react/node_modules/.pnpm/@tanstack_query-core@5.86.0/node_modules/@tanstack/query-core/build/modern/queryCache.js.map +1 -0
- package/dist/shop-minis-react/node_modules/.pnpm/@tanstack_query-core@5.86.0/node_modules/@tanstack/query-core/build/modern/queryClient.js +215 -0
- package/dist/shop-minis-react/node_modules/.pnpm/@tanstack_query-core@5.86.0/node_modules/@tanstack/query-core/build/modern/queryClient.js.map +1 -0
- package/dist/shop-minis-react/node_modules/.pnpm/@tanstack_query-core@5.86.0/node_modules/@tanstack/query-core/build/modern/queryObserver.js +300 -0
- package/dist/shop-minis-react/node_modules/.pnpm/@tanstack_query-core@5.86.0/node_modules/@tanstack/query-core/build/modern/queryObserver.js.map +1 -0
- package/dist/shop-minis-react/node_modules/.pnpm/@tanstack_query-core@5.86.0/node_modules/@tanstack/query-core/build/modern/removable.js +25 -0
- package/dist/shop-minis-react/node_modules/.pnpm/@tanstack_query-core@5.86.0/node_modules/@tanstack/query-core/build/modern/removable.js.map +1 -0
- package/dist/shop-minis-react/node_modules/.pnpm/@tanstack_query-core@5.86.0/node_modules/@tanstack/query-core/build/modern/retryer.js +76 -0
- package/dist/shop-minis-react/node_modules/.pnpm/@tanstack_query-core@5.86.0/node_modules/@tanstack/query-core/build/modern/retryer.js.map +1 -0
- package/dist/shop-minis-react/node_modules/.pnpm/@tanstack_query-core@5.86.0/node_modules/@tanstack/query-core/build/modern/subscribable.js +21 -0
- package/dist/shop-minis-react/node_modules/.pnpm/@tanstack_query-core@5.86.0/node_modules/@tanstack/query-core/build/modern/subscribable.js.map +1 -0
- package/dist/shop-minis-react/node_modules/.pnpm/@tanstack_query-core@5.86.0/node_modules/@tanstack/query-core/build/modern/thenable.js +26 -0
- package/dist/shop-minis-react/node_modules/.pnpm/@tanstack_query-core@5.86.0/node_modules/@tanstack/query-core/build/modern/thenable.js.map +1 -0
- package/dist/shop-minis-react/node_modules/.pnpm/@tanstack_query-core@5.86.0/node_modules/@tanstack/query-core/build/modern/utils.js +176 -0
- package/dist/shop-minis-react/node_modules/.pnpm/@tanstack_query-core@5.86.0/node_modules/@tanstack/query-core/build/modern/utils.js.map +1 -0
- package/dist/shop-minis-react/node_modules/.pnpm/@tanstack_react-query@5.86.0_react@19.1.0/node_modules/@tanstack/react-query/build/modern/IsRestoringProvider.js +7 -0
- package/dist/shop-minis-react/node_modules/.pnpm/@tanstack_react-query@5.86.0_react@19.1.0/node_modules/@tanstack/react-query/build/modern/IsRestoringProvider.js.map +1 -0
- package/dist/shop-minis-react/node_modules/.pnpm/@tanstack_react-query@5.86.0_react@19.1.0/node_modules/@tanstack/react-query/build/modern/QueryClientProvider.js +17 -0
- package/dist/shop-minis-react/node_modules/.pnpm/@tanstack_react-query@5.86.0_react@19.1.0/node_modules/@tanstack/react-query/build/modern/QueryClientProvider.js.map +1 -0
- package/dist/shop-minis-react/node_modules/.pnpm/@tanstack_react-query@5.86.0_react@19.1.0/node_modules/@tanstack/react-query/build/modern/QueryErrorResetBoundary.js +19 -0
- package/dist/shop-minis-react/node_modules/.pnpm/@tanstack_react-query@5.86.0_react@19.1.0/node_modules/@tanstack/react-query/build/modern/QueryErrorResetBoundary.js.map +1 -0
- package/dist/shop-minis-react/node_modules/.pnpm/@tanstack_react-query@5.86.0_react@19.1.0/node_modules/@tanstack/react-query/build/modern/errorBoundaryUtils.js +21 -0
- package/dist/shop-minis-react/node_modules/.pnpm/@tanstack_react-query@5.86.0_react@19.1.0/node_modules/@tanstack/react-query/build/modern/errorBoundaryUtils.js.map +1 -0
- package/dist/shop-minis-react/node_modules/.pnpm/@tanstack_react-query@5.86.0_react@19.1.0/node_modules/@tanstack/react-query/build/modern/suspense.js +18 -0
- package/dist/shop-minis-react/node_modules/.pnpm/@tanstack_react-query@5.86.0_react@19.1.0/node_modules/@tanstack/react-query/build/modern/suspense.js.map +1 -0
- package/dist/shop-minis-react/node_modules/.pnpm/@tanstack_react-query@5.86.0_react@19.1.0/node_modules/@tanstack/react-query/build/modern/useBaseQuery.js +64 -0
- package/dist/shop-minis-react/node_modules/.pnpm/@tanstack_react-query@5.86.0_react@19.1.0/node_modules/@tanstack/react-query/build/modern/useBaseQuery.js.map +1 -0
- package/dist/shop-minis-react/node_modules/.pnpm/@tanstack_react-query@5.86.0_react@19.1.0/node_modules/@tanstack/react-query/build/modern/useInfiniteQuery.js +13 -0
- package/dist/shop-minis-react/node_modules/.pnpm/@tanstack_react-query@5.86.0_react@19.1.0/node_modules/@tanstack/react-query/build/modern/useInfiniteQuery.js.map +1 -0
- package/dist/shop-minis-react/node_modules/.pnpm/@tanstack_react-query@5.86.0_react@19.1.0/node_modules/@tanstack/react-query/build/modern/useQuery.js +9 -0
- package/dist/shop-minis-react/node_modules/.pnpm/@tanstack_react-query@5.86.0_react@19.1.0/node_modules/@tanstack/react-query/build/modern/useQuery.js.map +1 -0
- package/dist/shop-minis-react/node_modules/.pnpm/querystringify@2.2.0/node_modules/querystringify/index.js +1 -1
- package/dist/shop-minis-react/node_modules/.pnpm/video.js@8.23.3/node_modules/video.js/dist/video.es.js +1 -1
- package/package.json +2 -7
- package/src/components/MinisContainer.tsx +6 -3
- package/src/hooks/content/useContent.ts +6 -17
- package/src/hooks/product/useCuratedProducts.ts +4 -6
- package/src/hooks/product/usePopularProducts.ts +4 -6
- package/src/hooks/product/useProduct.ts +6 -17
- package/src/hooks/product/useProductList.ts +4 -19
- package/src/hooks/product/useProductLists.ts +4 -6
- package/src/hooks/product/useProductMedia.ts +6 -17
- package/src/hooks/product/useProductSearch.ts +19 -15
- package/src/hooks/product/useProductVariants.ts +5 -13
- package/src/hooks/product/useProducts.ts +8 -12
- package/src/hooks/product/useRecommendedProducts.ts +4 -6
- package/src/hooks/shop/useRecommendedShops.ts +4 -6
- package/src/hooks/shop/useShop.ts +8 -12
- package/src/hooks/user/useBuyerAttributes.ts +4 -6
- package/src/hooks/user/useCurrentUser.ts +4 -6
- package/src/hooks/user/useFollowedShops.ts +5 -13
- package/src/hooks/user/useOrders.ts +4 -6
- package/src/hooks/user/useRecentProducts.ts +4 -6
- package/src/hooks/user/useRecentShops.ts +5 -13
- package/src/hooks/user/useSavedProducts.ts +5 -13
- package/src/hooks/util/useImagePicker.test.tsx +193 -0
- package/src/hooks/util/useImagePicker.ts +24 -5
- package/src/internal/reactQuery/MinisQueryProvider.test.tsx +38 -0
- package/src/internal/reactQuery/MinisQueryProvider.tsx +16 -0
- package/src/internal/reactQuery/index.ts +8 -0
- package/src/internal/reactQuery/queryClient.test.tsx +91 -0
- package/src/internal/reactQuery/queryClient.ts +43 -0
- package/src/internal/reactQuery/useShopActionInfiniteQuery.test.tsx +357 -0
- package/src/internal/reactQuery/useShopActionInfiniteQuery.ts +129 -0
- package/src/internal/reactQuery/useShopActionQuery.test.tsx +184 -0
- package/src/internal/reactQuery/useShopActionQuery.ts +74 -0
- package/src/internal/utils/resizeImage.test.ts +314 -0
- package/src/internal/utils/resizeImage.ts +108 -0
- package/src/providers/ImagePickerProvider.test.tsx +32 -1
- package/src/providers/ImagePickerProvider.tsx +108 -65
- package/dist/internal/useShopActionsDataFetching.js +0 -79
- package/dist/internal/useShopActionsDataFetching.js.map +0 -1
- package/dist/internal/useShopActionsPaginatedDataFetching.js +0 -96
- package/dist/internal/useShopActionsPaginatedDataFetching.js.map +0 -1
- package/src/hooks/product/useProductSearch.test.ts +0 -470
- package/src/internal/useShopActionsDataFetching.test.ts +0 -465
- package/src/internal/useShopActionsDataFetching.ts +0 -150
- package/src/internal/useShopActionsPaginatedDataFetching.ts +0 -188
- package/src/stories/Accordion.stories.tsx +0 -124
- package/src/stories/AddToCart.stories.tsx +0 -251
- package/src/stories/Alert.stories.tsx +0 -38
- package/src/stories/AlertDialog.stories.tsx +0 -48
- package/src/stories/Avatar.stories.tsx +0 -29
- package/src/stories/Badge.stories.tsx +0 -46
- package/src/stories/Button.stories.tsx +0 -81
- package/src/stories/Card.stories.tsx +0 -40
- package/src/stories/Checkbox.stories.tsx +0 -44
- package/src/stories/FavoriteButton.stories.tsx +0 -58
- package/src/stories/IconButton.stories.tsx +0 -68
- package/src/stories/ImageContentWrapper.stories.tsx +0 -65
- package/src/stories/Input.stories.tsx +0 -44
- package/src/stories/Label.stories.tsx +0 -19
- package/src/stories/List.stories.tsx +0 -64
- package/src/stories/MerchantCard.stories.tsx +0 -127
- package/src/stories/ProductCard.stories.tsx +0 -92
- package/src/stories/ProductLink.stories.tsx +0 -46
- package/src/stories/ProductVariantPrice.stories.tsx +0 -70
- package/src/stories/Progress.stories.tsx +0 -30
- package/src/stories/PullToRefreshList.stories.tsx +0 -122
- package/src/stories/QuantitySelector.stories.tsx +0 -78
- package/src/stories/RadioGroup.stories.tsx +0 -51
- package/src/stories/Search.stories.tsx +0 -37
- package/src/stories/Select.stories.tsx +0 -85
- package/src/stories/Skeleton.stories.tsx +0 -19
- package/src/stories/TextInput.stories.tsx +0 -26
- package/src/stories/Toaster.stories.tsx +0 -46
- package/src/stories/Touchable.stories.tsx +0 -40
- package/src/stories/VideoPlayer.stories.tsx +0 -129
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
import {fn} from 'storybook/test'
|
|
2
|
-
|
|
3
|
-
import {ProductCard} from '../components/commerce/product-card'
|
|
4
|
-
import {createProduct, injectMocks} from '../mocks'
|
|
5
|
-
|
|
6
|
-
import type {Meta, StoryObj} from '@storybook/react-vite'
|
|
7
|
-
|
|
8
|
-
const meta = {
|
|
9
|
-
title: 'Commerce/ProductCard',
|
|
10
|
-
component: ProductCard,
|
|
11
|
-
parameters: {
|
|
12
|
-
layout: 'padded',
|
|
13
|
-
},
|
|
14
|
-
args: {onFavoriteToggled: fn()},
|
|
15
|
-
argTypes: {
|
|
16
|
-
variant: {
|
|
17
|
-
control: 'radio',
|
|
18
|
-
options: ['default', 'priceOverlay', 'compact'],
|
|
19
|
-
},
|
|
20
|
-
badgeVariant: {
|
|
21
|
-
control: 'radio',
|
|
22
|
-
options: ['default', 'secondary', 'destructive', 'outline'],
|
|
23
|
-
},
|
|
24
|
-
touchable: {
|
|
25
|
-
control: 'boolean',
|
|
26
|
-
},
|
|
27
|
-
},
|
|
28
|
-
tags: ['autodocs'],
|
|
29
|
-
} satisfies Meta<typeof ProductCard>
|
|
30
|
-
|
|
31
|
-
export default meta
|
|
32
|
-
type Story = StoryObj<typeof meta>
|
|
33
|
-
|
|
34
|
-
injectMocks()
|
|
35
|
-
|
|
36
|
-
export const Single: Story = {
|
|
37
|
-
decorators: [
|
|
38
|
-
Story => (
|
|
39
|
-
<div style={{maxWidth: 150}}>
|
|
40
|
-
<Story />
|
|
41
|
-
</div>
|
|
42
|
-
),
|
|
43
|
-
],
|
|
44
|
-
args: {
|
|
45
|
-
product: {
|
|
46
|
-
id: '1',
|
|
47
|
-
title: 'Teapot',
|
|
48
|
-
|
|
49
|
-
price: {
|
|
50
|
-
amount: '100',
|
|
51
|
-
currencyCode: 'USD',
|
|
52
|
-
},
|
|
53
|
-
|
|
54
|
-
compareAtPrice: {
|
|
55
|
-
amount: '120',
|
|
56
|
-
currencyCode: 'USD',
|
|
57
|
-
},
|
|
58
|
-
|
|
59
|
-
reviewAnalytics: {
|
|
60
|
-
averageRating: 4.5,
|
|
61
|
-
reviewCount: 10,
|
|
62
|
-
},
|
|
63
|
-
shop: {
|
|
64
|
-
id: 'shop1',
|
|
65
|
-
name: 'Mock Shop',
|
|
66
|
-
},
|
|
67
|
-
defaultVariantId: 'variant-1',
|
|
68
|
-
isFavorited: true,
|
|
69
|
-
|
|
70
|
-
featuredImage: {
|
|
71
|
-
url: 'https://cdn.shopify.com/static/sample-images/teapot.jpg',
|
|
72
|
-
altText: 'Teapot',
|
|
73
|
-
},
|
|
74
|
-
},
|
|
75
|
-
},
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
export const Grid: Story = {
|
|
79
|
-
decorators: [
|
|
80
|
-
Story => (
|
|
81
|
-
<div className="grid grid-cols-2 gap-4">
|
|
82
|
-
<Story />
|
|
83
|
-
<Story />
|
|
84
|
-
<Story />
|
|
85
|
-
<Story />
|
|
86
|
-
</div>
|
|
87
|
-
),
|
|
88
|
-
],
|
|
89
|
-
args: {
|
|
90
|
-
product: createProduct('1', 'Teapot', '100', '120'),
|
|
91
|
-
},
|
|
92
|
-
}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import {ProductLink} from '../components/commerce/product-link'
|
|
2
|
-
import {createProduct, injectMocks} from '../mocks'
|
|
3
|
-
|
|
4
|
-
import type {Meta, StoryObj} from '@storybook/react-vite'
|
|
5
|
-
|
|
6
|
-
const meta = {
|
|
7
|
-
title: 'Commerce/ProductLink',
|
|
8
|
-
component: ProductLink,
|
|
9
|
-
parameters: {
|
|
10
|
-
layout: 'padded',
|
|
11
|
-
},
|
|
12
|
-
args: {},
|
|
13
|
-
tags: ['autodocs'],
|
|
14
|
-
} satisfies Meta<typeof ProductLink>
|
|
15
|
-
|
|
16
|
-
export default meta
|
|
17
|
-
type Story = StoryObj<typeof meta>
|
|
18
|
-
|
|
19
|
-
injectMocks()
|
|
20
|
-
|
|
21
|
-
export const Default: Story = {
|
|
22
|
-
args: {
|
|
23
|
-
product: createProduct('1', 'Teapot', '100', '120'),
|
|
24
|
-
},
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export const WithDiscount: Story = {
|
|
28
|
-
args: {
|
|
29
|
-
product: createProduct('2', 'Discounted Teapot', '80', '120'),
|
|
30
|
-
},
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
export const List: Story = {
|
|
34
|
-
decorators: [
|
|
35
|
-
Story => (
|
|
36
|
-
<div className="grid grid-cols-1 gap-4 max-w-md">
|
|
37
|
-
<Story />
|
|
38
|
-
<Story />
|
|
39
|
-
<Story />
|
|
40
|
-
</div>
|
|
41
|
-
),
|
|
42
|
-
],
|
|
43
|
-
args: {
|
|
44
|
-
product: createProduct('1', 'Teapot', '100', '120'),
|
|
45
|
-
},
|
|
46
|
-
}
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import {ProductVariantPrice} from '../components/atoms/product-variant-price'
|
|
2
|
-
|
|
3
|
-
import type {Meta, StoryObj} from '@storybook/react-vite'
|
|
4
|
-
|
|
5
|
-
type ProductVariantPriceProps = React.ComponentProps<typeof ProductVariantPrice>
|
|
6
|
-
|
|
7
|
-
const meta = {
|
|
8
|
-
title: 'Atoms/ProductVariantPrice',
|
|
9
|
-
component: ProductVariantPrice,
|
|
10
|
-
parameters: {
|
|
11
|
-
layout: 'padded',
|
|
12
|
-
},
|
|
13
|
-
argTypes: {
|
|
14
|
-
amount: {
|
|
15
|
-
control: 'text',
|
|
16
|
-
},
|
|
17
|
-
currencyCode: {
|
|
18
|
-
control: 'select',
|
|
19
|
-
options: ['USD', 'CAD', 'EUR', 'GBP', 'JPY'],
|
|
20
|
-
},
|
|
21
|
-
compareAtPriceAmount: {
|
|
22
|
-
control: 'text',
|
|
23
|
-
},
|
|
24
|
-
compareAtPriceCurrencyCode: {
|
|
25
|
-
control: 'select',
|
|
26
|
-
options: ['USD', 'CAD', 'EUR', 'GBP', 'JPY'],
|
|
27
|
-
},
|
|
28
|
-
className: {
|
|
29
|
-
control: 'text',
|
|
30
|
-
},
|
|
31
|
-
currentPriceClassName: {
|
|
32
|
-
control: 'text',
|
|
33
|
-
},
|
|
34
|
-
originalPriceClassName: {
|
|
35
|
-
control: 'text',
|
|
36
|
-
},
|
|
37
|
-
},
|
|
38
|
-
tags: ['autodocs'],
|
|
39
|
-
} satisfies Meta<ProductVariantPriceProps>
|
|
40
|
-
|
|
41
|
-
export default meta
|
|
42
|
-
type Story = StoryObj<typeof meta>
|
|
43
|
-
|
|
44
|
-
export const Default: Story = {
|
|
45
|
-
args: {
|
|
46
|
-
amount: '29.99',
|
|
47
|
-
currencyCode: 'USD',
|
|
48
|
-
},
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
export const WithDiscount: Story = {
|
|
52
|
-
name: 'With Discount',
|
|
53
|
-
args: {
|
|
54
|
-
amount: '24.99',
|
|
55
|
-
currencyCode: 'USD',
|
|
56
|
-
compareAtPriceAmount: '39.99',
|
|
57
|
-
},
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
export const CustomStyling: Story = {
|
|
61
|
-
name: 'Custom Styling',
|
|
62
|
-
args: {
|
|
63
|
-
amount: '89.99',
|
|
64
|
-
currencyCode: 'USD',
|
|
65
|
-
compareAtPriceAmount: '119.99',
|
|
66
|
-
currentPriceClassName: 'text-2xl font-bold text-green-600',
|
|
67
|
-
originalPriceClassName: 'text-lg text-red-500 line-through',
|
|
68
|
-
className: 'gap-3 p-4 bg-gray-50 rounded-lg',
|
|
69
|
-
},
|
|
70
|
-
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import {Progress} from '../components/ui/progress'
|
|
2
|
-
|
|
3
|
-
import type {Meta, StoryObj} from '@storybook/react-vite'
|
|
4
|
-
|
|
5
|
-
const meta = {
|
|
6
|
-
title: 'UI/Progress',
|
|
7
|
-
component: Progress,
|
|
8
|
-
parameters: {},
|
|
9
|
-
tags: ['autodocs'],
|
|
10
|
-
argTypes: {
|
|
11
|
-
value: {
|
|
12
|
-
control: {type: 'range', min: 0, max: 100, step: 1},
|
|
13
|
-
},
|
|
14
|
-
},
|
|
15
|
-
} satisfies Meta<typeof Progress>
|
|
16
|
-
|
|
17
|
-
export default meta
|
|
18
|
-
type Story = StoryObj<typeof meta>
|
|
19
|
-
|
|
20
|
-
export const FiftyPercent: Story = {
|
|
21
|
-
args: {
|
|
22
|
-
value: 50,
|
|
23
|
-
},
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
export const OneHundredPercent: Story = {
|
|
27
|
-
args: {
|
|
28
|
-
value: 100,
|
|
29
|
-
},
|
|
30
|
-
}
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
import {useState, useCallback} from 'react'
|
|
2
|
-
|
|
3
|
-
import {fn} from 'storybook/test'
|
|
4
|
-
|
|
5
|
-
import {List} from '../components/atoms/list'
|
|
6
|
-
import {ProductCard} from '../components/commerce/product-card'
|
|
7
|
-
import {ProductLink} from '../components/commerce/product-link'
|
|
8
|
-
import {createProduct, injectMocks} from '../mocks'
|
|
9
|
-
|
|
10
|
-
import type {Product} from '@shopify/shop-minis-platform'
|
|
11
|
-
import type {Meta, StoryObj} from '@storybook/react-vite'
|
|
12
|
-
|
|
13
|
-
const meta = {
|
|
14
|
-
title: 'Atoms/PullToRefreshList',
|
|
15
|
-
component: List as any,
|
|
16
|
-
parameters: {
|
|
17
|
-
layout: 'padded',
|
|
18
|
-
},
|
|
19
|
-
argTypes: {
|
|
20
|
-
height: {
|
|
21
|
-
control: 'number',
|
|
22
|
-
description: 'Height of the virtualized list container',
|
|
23
|
-
},
|
|
24
|
-
enablePullToRefresh: {
|
|
25
|
-
control: 'boolean',
|
|
26
|
-
description: 'Enable pull-to-refresh functionality',
|
|
27
|
-
defaultValue: true,
|
|
28
|
-
},
|
|
29
|
-
},
|
|
30
|
-
tags: ['autodocs'],
|
|
31
|
-
} satisfies Meta<typeof List>
|
|
32
|
-
|
|
33
|
-
export default meta
|
|
34
|
-
type Story = StoryObj<typeof meta>
|
|
35
|
-
|
|
36
|
-
injectMocks()
|
|
37
|
-
|
|
38
|
-
const createProductList = (count: number) => {
|
|
39
|
-
return Array.from({length: count}, (_, index) =>
|
|
40
|
-
createProduct(`product-${index + 1}`, `Product ${index + 1}`, '9.99')
|
|
41
|
-
)
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
const PullToRefreshListWrapper = ({
|
|
45
|
-
initialItems,
|
|
46
|
-
renderItem,
|
|
47
|
-
...props
|
|
48
|
-
}: any) => {
|
|
49
|
-
const [items, setItems] = useState(initialItems)
|
|
50
|
-
const [refreshing, setRefreshing] = useState(false)
|
|
51
|
-
|
|
52
|
-
const handleRefresh = useCallback(async () => {
|
|
53
|
-
setRefreshing(true)
|
|
54
|
-
|
|
55
|
-
await new Promise(resolve => setTimeout(resolve, 2000))
|
|
56
|
-
|
|
57
|
-
const newItems = Array.from({length: 5}, (_, index) =>
|
|
58
|
-
createProduct(
|
|
59
|
-
`fresh-${Date.now()}-${index}`,
|
|
60
|
-
`Fresh Product ${index + 1}`,
|
|
61
|
-
'12.99'
|
|
62
|
-
)
|
|
63
|
-
)
|
|
64
|
-
|
|
65
|
-
setItems([...newItems, ...initialItems])
|
|
66
|
-
setRefreshing(false)
|
|
67
|
-
}, [initialItems])
|
|
68
|
-
|
|
69
|
-
return (
|
|
70
|
-
<List
|
|
71
|
-
{...props}
|
|
72
|
-
items={items}
|
|
73
|
-
renderItem={renderItem}
|
|
74
|
-
onRefresh={handleRefresh}
|
|
75
|
-
refreshing={refreshing}
|
|
76
|
-
enablePullToRefresh
|
|
77
|
-
/>
|
|
78
|
-
)
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
const ProductLinkWithRefreshComponent = (args: any) => (
|
|
82
|
-
<PullToRefreshListWrapper
|
|
83
|
-
{...args}
|
|
84
|
-
initialItems={createProductList(20)}
|
|
85
|
-
renderItem={(product: Product) => (
|
|
86
|
-
<div className="p-4">
|
|
87
|
-
<ProductLink product={product} />
|
|
88
|
-
</div>
|
|
89
|
-
)}
|
|
90
|
-
/>
|
|
91
|
-
)
|
|
92
|
-
|
|
93
|
-
export const ProductLinkWithRefresh: Story = {
|
|
94
|
-
render: ProductLinkWithRefreshComponent,
|
|
95
|
-
args: {
|
|
96
|
-
height: 600,
|
|
97
|
-
itemSizeForRow: () => 100,
|
|
98
|
-
showScrollbar: true,
|
|
99
|
-
},
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
const ProductGridWithRefreshComponent = (args: any) => (
|
|
103
|
-
<PullToRefreshListWrapper
|
|
104
|
-
{...args}
|
|
105
|
-
initialItems={createProductList(15)}
|
|
106
|
-
renderItem={(product: Product) => (
|
|
107
|
-
<div className="grid grid-cols-2 gap-4">
|
|
108
|
-
<ProductCard product={product} onFavoriteToggled={fn()} />
|
|
109
|
-
<ProductCard product={product} onFavoriteToggled={fn()} />
|
|
110
|
-
</div>
|
|
111
|
-
)}
|
|
112
|
-
/>
|
|
113
|
-
)
|
|
114
|
-
|
|
115
|
-
export const ProductGridWithRefresh: Story = {
|
|
116
|
-
render: ProductGridWithRefreshComponent,
|
|
117
|
-
args: {
|
|
118
|
-
height: 600,
|
|
119
|
-
itemSizeForRow: () => 220,
|
|
120
|
-
showScrollbar: true,
|
|
121
|
-
},
|
|
122
|
-
}
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import {fn} from 'storybook/test'
|
|
2
|
-
|
|
3
|
-
import {QuantitySelector} from '../components/commerce/quantity-selector'
|
|
4
|
-
|
|
5
|
-
import type {Meta, StoryObj} from '@storybook/react-vite'
|
|
6
|
-
|
|
7
|
-
type QuantitySelectorProps = React.ComponentProps<typeof QuantitySelector>
|
|
8
|
-
|
|
9
|
-
const meta: Meta<QuantitySelectorProps> = {
|
|
10
|
-
title: 'Commerce/QuantitySelector',
|
|
11
|
-
component: QuantitySelector,
|
|
12
|
-
parameters: {},
|
|
13
|
-
tags: ['autodocs'],
|
|
14
|
-
argTypes: {
|
|
15
|
-
quantity: {
|
|
16
|
-
control: 'number',
|
|
17
|
-
description: 'Current quantity value',
|
|
18
|
-
},
|
|
19
|
-
onQuantityChange: {
|
|
20
|
-
action: 'quantity changed',
|
|
21
|
-
description: 'Callback fired when quantity changes',
|
|
22
|
-
},
|
|
23
|
-
maxQuantity: {
|
|
24
|
-
control: 'number',
|
|
25
|
-
description: 'Maximum allowed quantity',
|
|
26
|
-
},
|
|
27
|
-
minQuantity: {
|
|
28
|
-
control: 'number',
|
|
29
|
-
description: 'Minimum allowed quantity',
|
|
30
|
-
},
|
|
31
|
-
disabled: {
|
|
32
|
-
control: 'boolean',
|
|
33
|
-
description: 'Whether the selector is disabled',
|
|
34
|
-
},
|
|
35
|
-
},
|
|
36
|
-
args: {
|
|
37
|
-
onQuantityChange: fn(),
|
|
38
|
-
},
|
|
39
|
-
} satisfies Meta<QuantitySelectorProps>
|
|
40
|
-
|
|
41
|
-
export default meta
|
|
42
|
-
type Story = StoryObj<typeof meta>
|
|
43
|
-
|
|
44
|
-
export const Default: Story = {
|
|
45
|
-
args: {
|
|
46
|
-
quantity: 2,
|
|
47
|
-
maxQuantity: 10,
|
|
48
|
-
minQuantity: 1,
|
|
49
|
-
disabled: false,
|
|
50
|
-
},
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
export const AtMinimum: Story = {
|
|
54
|
-
args: {
|
|
55
|
-
quantity: 1,
|
|
56
|
-
maxQuantity: 10,
|
|
57
|
-
minQuantity: 1,
|
|
58
|
-
disabled: false,
|
|
59
|
-
},
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
export const AtMaximum: Story = {
|
|
63
|
-
args: {
|
|
64
|
-
quantity: 10,
|
|
65
|
-
maxQuantity: 10,
|
|
66
|
-
minQuantity: 1,
|
|
67
|
-
disabled: false,
|
|
68
|
-
},
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
export const Disabled: Story = {
|
|
72
|
-
args: {
|
|
73
|
-
quantity: 3,
|
|
74
|
-
maxQuantity: 10,
|
|
75
|
-
minQuantity: 1,
|
|
76
|
-
disabled: true,
|
|
77
|
-
},
|
|
78
|
-
}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import {Label} from '../components/ui/label'
|
|
2
|
-
import {RadioGroup, RadioGroupItem} from '../components/ui/radio-group'
|
|
3
|
-
|
|
4
|
-
import type {Meta, StoryObj} from '@storybook/react-vite'
|
|
5
|
-
|
|
6
|
-
const meta = {
|
|
7
|
-
title: 'UI/RadioGroup',
|
|
8
|
-
component: RadioGroup,
|
|
9
|
-
parameters: {},
|
|
10
|
-
args: {
|
|
11
|
-
defaultValue: 'option-1',
|
|
12
|
-
disabled: false,
|
|
13
|
-
},
|
|
14
|
-
tags: ['autodocs'],
|
|
15
|
-
} satisfies Meta<typeof RadioGroup>
|
|
16
|
-
|
|
17
|
-
export default meta
|
|
18
|
-
type Story = StoryObj<typeof meta>
|
|
19
|
-
|
|
20
|
-
export const Default: Story = {
|
|
21
|
-
render: () => (
|
|
22
|
-
<RadioGroup defaultValue="option-1">
|
|
23
|
-
<div className="flex items-center space-x-2">
|
|
24
|
-
<RadioGroupItem value="option-1" id="option-1" />
|
|
25
|
-
<Label>Option 1</Label>
|
|
26
|
-
</div>
|
|
27
|
-
<div className="flex items-center space-x-2">
|
|
28
|
-
<RadioGroupItem value="option-2" id="option-2" />
|
|
29
|
-
<Label>Option 2</Label>
|
|
30
|
-
</div>
|
|
31
|
-
</RadioGroup>
|
|
32
|
-
),
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
export const Disabled: Story = {
|
|
36
|
-
args: {
|
|
37
|
-
disabled: true,
|
|
38
|
-
},
|
|
39
|
-
render: ({disabled}) => (
|
|
40
|
-
<RadioGroup defaultValue="option-1" disabled={disabled}>
|
|
41
|
-
<div className="flex items-center space-x-2">
|
|
42
|
-
<RadioGroupItem value="option-1" id="disabled-option-1" />
|
|
43
|
-
<Label>Option 1</Label>
|
|
44
|
-
</div>
|
|
45
|
-
<div className="flex items-center space-x-2">
|
|
46
|
-
<RadioGroupItem value="option-2" id="disabled-option-2" />
|
|
47
|
-
<Label>Option 2</Label>
|
|
48
|
-
</div>
|
|
49
|
-
</RadioGroup>
|
|
50
|
-
),
|
|
51
|
-
}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import {fn} from 'storybook/test'
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
Search,
|
|
5
|
-
SearchInput,
|
|
6
|
-
SearchProvider,
|
|
7
|
-
SearchResultsList,
|
|
8
|
-
} from '../components'
|
|
9
|
-
|
|
10
|
-
import type {Meta, StoryObj} from '@storybook/react-vite'
|
|
11
|
-
|
|
12
|
-
const meta = {
|
|
13
|
-
title: 'Commerce/Search',
|
|
14
|
-
component: Search,
|
|
15
|
-
parameters: {
|
|
16
|
-
layout: 'padded',
|
|
17
|
-
},
|
|
18
|
-
tags: ['autodocs'],
|
|
19
|
-
} satisfies Meta<typeof Search>
|
|
20
|
-
|
|
21
|
-
export default meta
|
|
22
|
-
type Story = StoryObj<typeof meta>
|
|
23
|
-
|
|
24
|
-
export const Default: Story = {
|
|
25
|
-
args: {
|
|
26
|
-
onProductClick: fn(),
|
|
27
|
-
},
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
export const Composite: Story = {
|
|
31
|
-
render: args => (
|
|
32
|
-
<SearchProvider {...args}>
|
|
33
|
-
<SearchInput placeholder="Search..." />
|
|
34
|
-
<SearchResultsList />
|
|
35
|
-
</SearchProvider>
|
|
36
|
-
),
|
|
37
|
-
}
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
Select,
|
|
3
|
-
SelectContent,
|
|
4
|
-
SelectGroup,
|
|
5
|
-
SelectItem,
|
|
6
|
-
SelectLabel,
|
|
7
|
-
SelectTrigger,
|
|
8
|
-
SelectValue,
|
|
9
|
-
} from '../components/ui/select'
|
|
10
|
-
|
|
11
|
-
import type {Meta, StoryObj} from '@storybook/react-vite'
|
|
12
|
-
|
|
13
|
-
const meta = {
|
|
14
|
-
title: 'UI/Select',
|
|
15
|
-
component: Select,
|
|
16
|
-
parameters: {},
|
|
17
|
-
tags: ['autodocs'],
|
|
18
|
-
} satisfies Meta<typeof Select>
|
|
19
|
-
|
|
20
|
-
export default meta
|
|
21
|
-
type Story = StoryObj<typeof meta>
|
|
22
|
-
|
|
23
|
-
export const Default: Story = {
|
|
24
|
-
args: {
|
|
25
|
-
defaultValue: 'option-1',
|
|
26
|
-
disabled: false,
|
|
27
|
-
},
|
|
28
|
-
render: args => (
|
|
29
|
-
<Select {...args}>
|
|
30
|
-
<SelectTrigger>
|
|
31
|
-
<SelectValue placeholder="Select an option" />
|
|
32
|
-
</SelectTrigger>
|
|
33
|
-
<SelectContent>
|
|
34
|
-
<SelectItem value="option-1">Option 1</SelectItem>
|
|
35
|
-
<SelectItem value="option-2">Option 2</SelectItem>
|
|
36
|
-
<SelectItem value="option-3">Option 3</SelectItem>
|
|
37
|
-
</SelectContent>
|
|
38
|
-
</Select>
|
|
39
|
-
),
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
export const WithGroups: Story = {
|
|
43
|
-
args: {
|
|
44
|
-
defaultValue: 'option-1',
|
|
45
|
-
disabled: false,
|
|
46
|
-
},
|
|
47
|
-
render: args => (
|
|
48
|
-
<Select {...args}>
|
|
49
|
-
<SelectTrigger>
|
|
50
|
-
<SelectValue placeholder="Select an option" />
|
|
51
|
-
</SelectTrigger>
|
|
52
|
-
<SelectContent>
|
|
53
|
-
<SelectGroup>
|
|
54
|
-
<SelectLabel>Group 1</SelectLabel>
|
|
55
|
-
<SelectItem value="option-1">Option 1</SelectItem>
|
|
56
|
-
<SelectItem value="option-2">Option 2</SelectItem>
|
|
57
|
-
</SelectGroup>
|
|
58
|
-
<SelectGroup>
|
|
59
|
-
<SelectLabel>Group 2</SelectLabel>
|
|
60
|
-
<SelectItem value="option-3">Option 3</SelectItem>
|
|
61
|
-
<SelectItem value="option-4">Option 4</SelectItem>
|
|
62
|
-
</SelectGroup>
|
|
63
|
-
</SelectContent>
|
|
64
|
-
</Select>
|
|
65
|
-
),
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
export const Disabled: Story = {
|
|
69
|
-
args: {
|
|
70
|
-
defaultValue: 'option-1',
|
|
71
|
-
disabled: true,
|
|
72
|
-
},
|
|
73
|
-
render: args => (
|
|
74
|
-
<Select {...args}>
|
|
75
|
-
<SelectTrigger>
|
|
76
|
-
<SelectValue placeholder="Select an option" />
|
|
77
|
-
</SelectTrigger>
|
|
78
|
-
<SelectContent>
|
|
79
|
-
<SelectItem value="option-1">Option 1</SelectItem>
|
|
80
|
-
<SelectItem value="option-2">Option 2</SelectItem>
|
|
81
|
-
<SelectItem value="option-3">Option 3</SelectItem>
|
|
82
|
-
</SelectContent>
|
|
83
|
-
</Select>
|
|
84
|
-
),
|
|
85
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import {Skeleton} from '../components/ui/skeleton'
|
|
2
|
-
|
|
3
|
-
import type {Meta, StoryObj} from '@storybook/react-vite'
|
|
4
|
-
|
|
5
|
-
const meta = {
|
|
6
|
-
title: 'UI/Skeleton',
|
|
7
|
-
component: Skeleton,
|
|
8
|
-
parameters: {},
|
|
9
|
-
tags: ['autodocs'],
|
|
10
|
-
} satisfies Meta<typeof Skeleton>
|
|
11
|
-
|
|
12
|
-
export default meta
|
|
13
|
-
type Story = StoryObj<typeof meta>
|
|
14
|
-
|
|
15
|
-
export const Default: Story = {
|
|
16
|
-
args: {
|
|
17
|
-
className: 'h-4 w-20',
|
|
18
|
-
},
|
|
19
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import {fn} from 'storybook/test'
|
|
2
|
-
|
|
3
|
-
import {TextInput} from '../components'
|
|
4
|
-
|
|
5
|
-
import type {Meta, StoryObj} from '@storybook/react-vite'
|
|
6
|
-
|
|
7
|
-
const meta = {
|
|
8
|
-
title: 'Atoms/TextInput',
|
|
9
|
-
component: TextInput,
|
|
10
|
-
parameters: {
|
|
11
|
-
layout: 'padded',
|
|
12
|
-
},
|
|
13
|
-
tags: ['autodocs'],
|
|
14
|
-
} satisfies Meta<typeof TextInput>
|
|
15
|
-
|
|
16
|
-
export default meta
|
|
17
|
-
type Story = StoryObj<typeof meta>
|
|
18
|
-
|
|
19
|
-
export const Default: Story = {
|
|
20
|
-
args: {
|
|
21
|
-
placeholder: 'Search...',
|
|
22
|
-
onFocus: fn(),
|
|
23
|
-
onBlur: fn(),
|
|
24
|
-
onChange: fn(),
|
|
25
|
-
},
|
|
26
|
-
}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import {toast} from 'sonner'
|
|
2
|
-
|
|
3
|
-
import {Button} from '../components/atoms/button'
|
|
4
|
-
import {Toaster} from '../components/ui/sonner'
|
|
5
|
-
|
|
6
|
-
import type {Meta, StoryObj} from '@storybook/react-vite'
|
|
7
|
-
|
|
8
|
-
const meta = {
|
|
9
|
-
title: 'Ui/Toaster',
|
|
10
|
-
component: Toaster,
|
|
11
|
-
decorators: [
|
|
12
|
-
Story => (
|
|
13
|
-
<>
|
|
14
|
-
<Story />
|
|
15
|
-
<Toaster />
|
|
16
|
-
</>
|
|
17
|
-
),
|
|
18
|
-
],
|
|
19
|
-
tags: ['autodocs'],
|
|
20
|
-
parameters: {},
|
|
21
|
-
args: {},
|
|
22
|
-
} satisfies Meta
|
|
23
|
-
|
|
24
|
-
export default meta
|
|
25
|
-
type Story = StoryObj<typeof meta>
|
|
26
|
-
|
|
27
|
-
export const SuccessToast: Story = {
|
|
28
|
-
decorators: [
|
|
29
|
-
() => (
|
|
30
|
-
<Button onClick={() => toast.success('Success toast!')}>
|
|
31
|
-
Show success Toast
|
|
32
|
-
</Button>
|
|
33
|
-
),
|
|
34
|
-
],
|
|
35
|
-
args: {},
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
export const ErrorToast: Story = {
|
|
39
|
-
decorators: [
|
|
40
|
-
() => (
|
|
41
|
-
<Button onClick={() => toast.error('Error toast!')}>
|
|
42
|
-
Show error Toast
|
|
43
|
-
</Button>
|
|
44
|
-
),
|
|
45
|
-
],
|
|
46
|
-
}
|