@q2devel/q2-storybook 1.0.199 → 1.0.201
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/components/Ecommerce/basket-dialog/BasketDialog.d.ts +2 -1
- package/dist/components/Ecommerce/basket-dialog/BasketDialog.js +2 -2
- package/dist/components/Ecommerce/product-detail/ProductDetail.d.ts +3 -1
- package/dist/components/Ecommerce/product-detail/ProductDetail.js +6 -6
- package/package.json +1 -1
|
@@ -41,6 +41,7 @@ export type BasketDialogProps = {
|
|
|
41
41
|
shippingAndTax: string;
|
|
42
42
|
};
|
|
43
43
|
showLinkToProduct?: boolean;
|
|
44
|
+
fallbackImageSrc?: string;
|
|
44
45
|
classNames?: {
|
|
45
46
|
container?: string;
|
|
46
47
|
title?: string;
|
|
@@ -65,4 +66,4 @@ export type BasketDialogProps = {
|
|
|
65
66
|
quantity?: string;
|
|
66
67
|
};
|
|
67
68
|
};
|
|
68
|
-
export declare const BasketDialog: ({ isOpen, onClose, products, subtotal, onQuantityChange, onRemoveProduct, onCheckout, onContinueShopping, productLink, title, checkoutText, checkoutTextClass, continueShoppingText, showShippingNote, showQuantityControls, pendingUpdates, processingItems, isAddingToCart, totalItems, locale, productPriceOptions, totalPriceOptions, translations, showLinkToProduct, classNames, }: BasketDialogProps) => import("react/jsx-runtime").JSX.Element;
|
|
69
|
+
export declare const BasketDialog: ({ isOpen, onClose, products, subtotal, onQuantityChange, onRemoveProduct, onCheckout, onContinueShopping, productLink, title, checkoutText, checkoutTextClass, continueShoppingText, showShippingNote, showQuantityControls, pendingUpdates, processingItems, isAddingToCart, totalItems, locale, productPriceOptions, totalPriceOptions, translations, showLinkToProduct, fallbackImageSrc, classNames, }: BasketDialogProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -8,7 +8,7 @@ import Heading from '../../../components/Base/heading/Heading';
|
|
|
8
8
|
import { Price } from '../../../components/Base/price/Price';
|
|
9
9
|
import Spinner from '../../../components/Base/spinner/Spinner';
|
|
10
10
|
import { buildClassesByJoining } from '../../../utils/StyleHelper';
|
|
11
|
-
export const BasketDialog = ({ isOpen, onClose, products, subtotal, onQuantityChange, onRemoveProduct, onCheckout, onContinueShopping, productLink, title = 'Váš košík', checkoutText = 'Pokračovat k objednávce', checkoutTextClass = 'button-brand w-full', continueShoppingText = 'Pokračovat v nákupu', showShippingNote = true, showQuantityControls = true, pendingUpdates = {}, processingItems = {}, isAddingToCart = false, totalItems, locale, productPriceOptions, totalPriceOptions, translations, showLinkToProduct = true, classNames, }) => {
|
|
11
|
+
export const BasketDialog = ({ isOpen, onClose, products, subtotal, onQuantityChange, onRemoveProduct, onCheckout, onContinueShopping, productLink, title = 'Váš košík', checkoutText = 'Pokračovat k objednávce', checkoutTextClass = 'button-brand w-full', continueShoppingText = 'Pokračovat v nákupu', showShippingNote = true, showQuantityControls = true, pendingUpdates = {}, processingItems = {}, isAddingToCart = false, totalItems, locale, productPriceOptions, totalPriceOptions, translations, showLinkToProduct = true, fallbackImageSrc = '', classNames, }) => {
|
|
12
12
|
const [shouldShowAddingIndicator, setShouldShowAddingIndicator] = useState(false);
|
|
13
13
|
const initialTotalItems = useRef(null);
|
|
14
14
|
useEffect(() => {
|
|
@@ -70,7 +70,7 @@ export const BasketDialog = ({ isOpen, onClose, products, subtotal, onQuantityCh
|
|
|
70
70
|
product.variation_name, src: product
|
|
71
71
|
.all_images[0]
|
|
72
72
|
?.href ||
|
|
73
|
-
|
|
73
|
+
fallbackImageSrc, className: buildClassesByJoining('size-full object-contain', classNames?.image) }), isTemporaryRow && (_jsx("div", { className: buildClassesByJoining('absolute inset-0 flex items-center justify-center bg-white bg-opacity-75', classNames?.temporaryRow), children: _jsx(Spinner, { className: buildClassesByJoining('h-8 w-8 text-[var(--primary)]', classNames?.spinner) }) }))] }), _jsxs("div", { className: "ml-4 flex flex-1 flex-col", children: [_jsx("div", { children: _jsxs("div", { className: "flex justify-between text-base font-medium text-gray-900", children: [_jsx(Heading, { level: 3, className: buildClassesByJoining('font-extralight text-lg', classNames?.heading), children: _jsxs("div", { className: "flex items-center gap-2", children: [showLinkToProduct ? (_jsx(Button, { asLink: true, unstyled: true, href: productLink?.(product.product_name, product.variation_id), children: product.product_name })) : (_jsx("span", { children: product.product_name })), isProcessing &&
|
|
74
74
|
!isTemporaryRow && (_jsx(Spinner, { className: buildClassesByJoining('h-4 w-4 text-gray-400', classNames?.spinner) }))] }) }), _jsx(Price, { value: product.price, locale: locale, options: productPriceOptions, className: buildClassesByJoining('ml-4 font-light', classNames?.price) })] }) }), _jsxs("div", { className: "flex flex-1 items-end justify-between text-sm", children: [isTemporaryRow ? (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Spinner, { className: buildClassesByJoining('h-4 w-4 text-[var(--primary)]', classNames?.spinner) }), _jsx("p", { className: "text-gray-500 italic", children: translations.addingToBasket })] })) : showQuantityControls &&
|
|
75
75
|
onQuantityChange ? (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("p", { className: buildClassesByJoining('text-gray-500 mr-2', classNames?.amount), children: translations.amount }), _jsxs("div", { className: "flex items-center", children: [_jsx("button", { type: "button", onClick: () => !isProcessing &&
|
|
76
76
|
handleDecrement(product.variation_uuid, displayQuantity), disabled: isProcessing, className: buildClassesByJoining(`rounded-full p-1 text-gray-600 ${isProcessing
|
|
@@ -135,6 +135,8 @@ export type ProductProps = {
|
|
|
135
135
|
variations: ProductVariation[];
|
|
136
136
|
currentVariationId: string;
|
|
137
137
|
selectedVariationGradient?: boolean;
|
|
138
|
+
variationsLimit?: number;
|
|
139
|
+
showAllVariations?: boolean;
|
|
138
140
|
cartMode?: 'full' | 'add-only';
|
|
139
141
|
onOpenBasket?: () => void;
|
|
140
142
|
addToCartButtonCustomAction?: () => void | Promise<void>;
|
|
@@ -229,4 +231,4 @@ export type ProductProps = {
|
|
|
229
231
|
stockAvailability?: React.ReactNode;
|
|
230
232
|
stockAvailabilityClassName?: string;
|
|
231
233
|
};
|
|
232
|
-
export declare const ProductDetail: ({ name, price, discountPercent, description, detail, buttonText, className, specification, conversionToOtherUnit, hiddenStock, classNames, buttonClassName, descriptionClassName, product, currentQuantity, onQuantityChange, maxQuantity, disabled, badges, showVariations, variations, currentVariationId, cartMode, onOpenBasket, addToCartButtonCustomAction, selectedVariationGradient, showWishlistButton, isInWishlist, onWishlistToggle, enableMultipleWishlists, wishlists, onAddToWishlist, onRemoveFromWishlist, onCreateWishlist, productWishlistIds, isWishlistPending, isLogged, onWishlistTextClick, showWishlistDropdown, onCloseWishlistDropdown, onAddToSpecificWishlist, onRemoveFromSpecificWishlist, onCreateNewWishlistFromDropdown, translationsWishlistDropdown, classNamesWishlistDropdown, onShippingOptionsClick, isWatchdogEnabled, onWatchdogClick, onDemandClick, translations, locale, quantUnit, mainPriceFormatOptions, discountPriceFormatOptions, variationPriceFormatOptions, volumePriceFormatOptions, secondaryPrice, secondaryPriceFormatOptions, secondaryPriceClassName, secondaryQuantUnit, secondaryOmitMainQuantUnit, secondaryQuantUnitClassName, secondaryPriceRowClassName, mainPriceClassName, discountPriceClassName, variationPriceClassName, mainQuantUnitClassName, discountQuantUnitClassName, volumePriceClassName, volumeQuantUnitClassName, breakpointForFreeShipping, stockAvailability, stockAvailabilityClassName, }: ProductProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
234
|
+
export declare const ProductDetail: ({ name, price, discountPercent, description, detail, buttonText, className, specification, conversionToOtherUnit, hiddenStock, classNames, buttonClassName, descriptionClassName, product, currentQuantity, onQuantityChange, maxQuantity, disabled, badges, showVariations, variations, currentVariationId, cartMode, onOpenBasket, addToCartButtonCustomAction, selectedVariationGradient, variationsLimit, showAllVariations, showWishlistButton, isInWishlist, onWishlistToggle, enableMultipleWishlists, wishlists, onAddToWishlist, onRemoveFromWishlist, onCreateWishlist, productWishlistIds, isWishlistPending, isLogged, onWishlistTextClick, showWishlistDropdown, onCloseWishlistDropdown, onAddToSpecificWishlist, onRemoveFromSpecificWishlist, onCreateNewWishlistFromDropdown, translationsWishlistDropdown, classNamesWishlistDropdown, onShippingOptionsClick, isWatchdogEnabled, onWatchdogClick, onDemandClick, translations, locale, quantUnit, mainPriceFormatOptions, discountPriceFormatOptions, variationPriceFormatOptions, volumePriceFormatOptions, secondaryPrice, secondaryPriceFormatOptions, secondaryPriceClassName, secondaryQuantUnit, secondaryOmitMainQuantUnit, secondaryQuantUnitClassName, secondaryPriceRowClassName, mainPriceClassName, discountPriceClassName, variationPriceClassName, mainQuantUnitClassName, discountQuantUnitClassName, volumePriceClassName, volumeQuantUnitClassName, breakpointForFreeShipping, stockAvailability, stockAvailabilityClassName, }: ProductProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -91,7 +91,7 @@ classNames = {
|
|
|
91
91
|
},
|
|
92
92
|
}, buttonClassName = '', descriptionClassName = '',
|
|
93
93
|
// Cart props
|
|
94
|
-
product, currentQuantity = 0, onQuantityChange, maxQuantity = 99, disabled = false, badges = [], showVariations = false, variations = [], currentVariationId, cartMode = 'full', onOpenBasket, addToCartButtonCustomAction, selectedVariationGradient = false,
|
|
94
|
+
product, currentQuantity = 0, onQuantityChange, maxQuantity = 99, disabled = false, badges = [], showVariations = false, variations = [], currentVariationId, cartMode = 'full', onOpenBasket, addToCartButtonCustomAction, selectedVariationGradient = false, variationsLimit = 6, showAllVariations = false,
|
|
95
95
|
// Wishlist props
|
|
96
96
|
showWishlistButton = false, isInWishlist = false, onWishlistToggle, enableMultipleWishlists = false, wishlists = [], onAddToWishlist, onRemoveFromWishlist, onCreateWishlist, productWishlistIds = [], isWishlistPending = false, isLogged = false, onWishlistTextClick,
|
|
97
97
|
// Wishlist dropdown props
|
|
@@ -178,10 +178,9 @@ mainPriceFormatOptions, discountPriceFormatOptions, variationPriceFormatOptions,
|
|
|
178
178
|
return 1;
|
|
179
179
|
return 0;
|
|
180
180
|
});
|
|
181
|
-
const
|
|
182
|
-
const visibleVariations = showAll
|
|
181
|
+
const visibleVariations = showAllVariations || showAll
|
|
183
182
|
? sortedVariations
|
|
184
|
-
: sortedVariations.slice(0,
|
|
183
|
+
: sortedVariations.slice(0, variationsLimit);
|
|
185
184
|
if (!product) {
|
|
186
185
|
return null;
|
|
187
186
|
}
|
|
@@ -241,8 +240,9 @@ mainPriceFormatOptions, discountPriceFormatOptions, variationPriceFormatOptions,
|
|
|
241
240
|
?.variationEan), children: [translations.EAN, ":", ' ', variation.ean] })), _jsx(Price, { value: variation.price, locale: locale, options: variationPriceFormatOptions ||
|
|
242
241
|
mainPriceFormatOptions, className: buildClassesByJoining('font-semibold text-lg', variationPriceClassName, classNames
|
|
243
242
|
?.variations
|
|
244
|
-
?.variationPrice) })] })] }, variation.id))) }),
|
|
245
|
-
|
|
243
|
+
?.variationPrice) })] })] }, variation.id))) }), !showAllVariations &&
|
|
244
|
+
sortedVariations.length >
|
|
245
|
+
variationsLimit && (_jsx("button", { type: "button", onClick: () => setShowAll(!showAll), className: buildClassesByJoining('mt-3 text-sm font-medium text-green-700 hover:underline', classNames?.variations
|
|
246
246
|
?.variationShowAll), children: showAll
|
|
247
247
|
? translations.showLessVariations
|
|
248
248
|
: translations.showMoreVariations }))] })), _jsxs("div", { className: "mt-3", children: [_jsx(Heading, { level: 2, className: "sr-only", children: "Product information" }), _jsxs("div", { children: [_jsx(Price, { value: price, locale: locale, options: mainPriceFormatOptions, className: buildClassesByJoining('text-3xl tracking-tight font-semibold text-[var(--primary)]', mainPriceClassName, classNames?.price?.mainPrice), quantUnit: quantUnit, quantUnitClassName: buildClassesByJoining('text-3xl tracking-tight font-semibold text-black', mainQuantUnitClassName, classNames?.price?.mainQuantUnit) }), secondaryPrice !== undefined && (_jsx("div", { className: buildClassesByJoining('mt-0.5', classNames?.price
|