@sonic-equipment/ui 0.0.116 → 0.0.117
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/algolia/use-algolia-insights.d.ts +7 -3
- package/dist/buttons/add-to-cart-button/connected-add-to-cart-button.d.ts +5 -1
- package/dist/cards/product-card/connected-product-card.d.ts +2 -1
- package/dist/index.js +69 -34
- package/dist/shared/model/currency.d.ts +27 -0
- package/package.json +1 -1
|
@@ -1,14 +1,18 @@
|
|
|
1
|
+
import { CartLineModel } from '../shared/api/storefront/model/shop.model';
|
|
1
2
|
import { AlgoliaInsightsProviderGlobalState } from './use-algolia-insights-provider-global-state';
|
|
2
3
|
export interface UseAlgoliaEventResult {
|
|
3
4
|
context: Readonly<AlgoliaInsightsProviderGlobalState>;
|
|
4
|
-
sendAddToCartFromProductListPageEvent({ objectId, }: {
|
|
5
|
+
sendAddToCartFromProductListPageEvent({ cartLine, objectId, }: {
|
|
6
|
+
cartLine: CartLineModel;
|
|
5
7
|
objectId: string;
|
|
6
8
|
}): void;
|
|
7
|
-
sendAddToCartFromSearchEvent({ objectId, queryId, }: {
|
|
9
|
+
sendAddToCartFromSearchEvent({ cartLine, objectId, queryId, }: {
|
|
10
|
+
cartLine: CartLineModel;
|
|
8
11
|
objectId: string;
|
|
9
12
|
queryId: string;
|
|
10
13
|
}): void;
|
|
11
|
-
sendAddToCartFromSearchResultPageEvent({ objectId, }: {
|
|
14
|
+
sendAddToCartFromSearchResultPageEvent({ cartLine, objectId, }: {
|
|
15
|
+
cartLine: CartLineModel;
|
|
12
16
|
objectId: string;
|
|
13
17
|
}): void;
|
|
14
18
|
sendAddToWishListFromProductListPageEvent({ objectId, position, }: {
|
|
@@ -1,5 +1,9 @@
|
|
|
1
|
+
import { CartLineModel } from '../../shared/api/storefront/model/shop.model';
|
|
2
|
+
export type AddToCartHandler = ({ cartLine, }: {
|
|
3
|
+
cartLine: CartLineModel;
|
|
4
|
+
}) => void;
|
|
1
5
|
interface Props {
|
|
2
|
-
onAddToCart?:
|
|
6
|
+
onAddToCart?: AddToCartHandler;
|
|
3
7
|
productId: string;
|
|
4
8
|
}
|
|
5
9
|
export declare const ConnectedAddToCartButton: ({ onAddToCart, productId }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { AddToCartHandler } from '../../buttons/add-to-cart-button/connected-add-to-cart-button';
|
|
1
2
|
import { ProductCardProps } from './product-card';
|
|
2
3
|
export interface ConnectedProductCartProps extends Omit<ProductCardProps, 'addToCartButton' | 'favoriteButton'> {
|
|
3
|
-
onAddToCart?:
|
|
4
|
+
onAddToCart?: AddToCartHandler;
|
|
4
5
|
onFavorited?: VoidFunction;
|
|
5
6
|
onFavoriting?: VoidFunction;
|
|
6
7
|
}
|
package/dist/index.js
CHANGED
|
@@ -3399,49 +3399,105 @@ function AlgoliaSortBy() {
|
|
|
3399
3399
|
return (jsx(Select, { label: t('Sort by'), onChange: value => refine(String(value)), options: options, selectedOption: currentRefinement, showLabel: false, size: "sm" }));
|
|
3400
3400
|
}
|
|
3401
3401
|
|
|
3402
|
+
const currencySymbolToISO = {
|
|
3403
|
+
$: 'USD', // US Dollar
|
|
3404
|
+
'Bs.': 'VES', // Venezuelan Bolívar Soberano
|
|
3405
|
+
Ft: 'HUF', // Hungarian Forint
|
|
3406
|
+
Kč: 'CZK', // Czech Koruna
|
|
3407
|
+
R: 'ZAR', // South African Rand
|
|
3408
|
+
kr: 'SEK', // Swedish Krona (and others like DKK, NOK depending on context)
|
|
3409
|
+
lei: 'RON', // Romanian Leu
|
|
3410
|
+
zł: 'PLN', // Polish Zloty
|
|
3411
|
+
'£': 'GBP', // British Pound
|
|
3412
|
+
'¥': 'JPY', // Japanese Yen
|
|
3413
|
+
'฿': 'THB', // Thai Baht
|
|
3414
|
+
'₡': 'CRC', // Costa Rican Colón
|
|
3415
|
+
'₦': 'NGN', // Nigerian Naira
|
|
3416
|
+
'₩': 'KRW', // South Korean Won
|
|
3417
|
+
'₪': 'ILS', // Israeli Shekel
|
|
3418
|
+
'₫': 'VND', // Vietnamese Dong
|
|
3419
|
+
'€': 'EUR', // Euro
|
|
3420
|
+
'₮': 'MNT', // Mongolian Tögrög
|
|
3421
|
+
'₱': 'PHP', // Philippine Peso
|
|
3422
|
+
'₲': 'PYG', // Paraguayan Guarani
|
|
3423
|
+
'₴': 'UAH', // Ukrainian Hryvnia
|
|
3424
|
+
'₵': 'GHS', // Ghanaian Cedi
|
|
3425
|
+
'₹': 'INR', // Indian Rupee
|
|
3426
|
+
'₺': 'TRY', // Turkish Lira
|
|
3427
|
+
'₽': 'RUB', // Russian Ruble
|
|
3428
|
+
};
|
|
3429
|
+
|
|
3430
|
+
function getCurrencyFromPriceString(priceString) {
|
|
3431
|
+
const currencySymbol = priceString?.replace(/\d|\.|,|-| /g, '');
|
|
3432
|
+
return currencySymbol ? currencySymbolToISO[currencySymbol] : undefined;
|
|
3433
|
+
}
|
|
3402
3434
|
function useAlgoliaInsights() {
|
|
3403
3435
|
const context = useContext(AlgoliaInsightsProviderContext);
|
|
3404
3436
|
const [, setGlobalState] = useAlgoliaInsightsGlobalState();
|
|
3405
3437
|
return {
|
|
3406
3438
|
context,
|
|
3407
|
-
sendAddToCartFromProductListPageEvent({ objectId }) {
|
|
3439
|
+
sendAddToCartFromProductListPageEvent({ cartLine, objectId }) {
|
|
3408
3440
|
if (!context.index)
|
|
3409
3441
|
return console.warn('Unable to send clickedObjectIDsAfterSearch event, no index', context);
|
|
3410
3442
|
if (!context.queryId)
|
|
3411
3443
|
return console.warn('Unable to send clickedObjectIDsAfterSearch event, no queryId', context);
|
|
3412
3444
|
aa('addedToCartObjectIDsAfterSearch', {
|
|
3445
|
+
currency: getCurrencyFromPriceString(cartLine.pricing?.actualPriceDisplay),
|
|
3413
3446
|
eventName: 'PLP: AddToCart ClickedAfterSearch',
|
|
3414
3447
|
index: context.index,
|
|
3448
|
+
objectData: [
|
|
3449
|
+
{
|
|
3450
|
+
price: cartLine.pricing?.actualPrice || undefined,
|
|
3451
|
+
quantity: cartLine.qtyOrdered || undefined,
|
|
3452
|
+
queryID: context.queryId,
|
|
3453
|
+
},
|
|
3454
|
+
],
|
|
3415
3455
|
objectIDs: [].concat(objectId),
|
|
3416
3456
|
queryID: context.queryId,
|
|
3417
3457
|
userToken,
|
|
3418
3458
|
});
|
|
3419
3459
|
},
|
|
3420
|
-
sendAddToCartFromSearchEvent({ objectId, queryId }) {
|
|
3460
|
+
sendAddToCartFromSearchEvent({ cartLine, objectId, queryId }) {
|
|
3421
3461
|
if (!context.index)
|
|
3422
3462
|
return console.warn('Unable to send clickedObjectIDsAfterSearch event, no index', context);
|
|
3423
3463
|
aa('addedToCartObjectIDsAfterSearch', {
|
|
3464
|
+
currency: getCurrencyFromPriceString(cartLine.pricing?.actualPriceDisplay),
|
|
3424
3465
|
eventName: 'SRP: AddToCart ClickedAfterSearch',
|
|
3425
3466
|
index: context.index,
|
|
3467
|
+
objectData: [
|
|
3468
|
+
{
|
|
3469
|
+
price: cartLine.pricing?.actualPrice || undefined,
|
|
3470
|
+
quantity: cartLine.qtyOrdered || undefined,
|
|
3471
|
+
queryID: context.queryId,
|
|
3472
|
+
},
|
|
3473
|
+
],
|
|
3426
3474
|
objectIDs: [].concat(objectId),
|
|
3427
3475
|
queryID: queryId,
|
|
3428
3476
|
userToken,
|
|
3429
3477
|
});
|
|
3430
3478
|
},
|
|
3431
|
-
sendAddToCartFromSearchResultPageEvent({
|
|
3479
|
+
sendAddToCartFromSearchResultPageEvent({ cartLine, objectId }) {
|
|
3432
3480
|
if (!context.index)
|
|
3433
3481
|
return console.warn('Unable to send clickedObjectIDsAfterSearch event, no index', context);
|
|
3434
3482
|
if (!context.queryId)
|
|
3435
3483
|
return console.warn('Unable to send clickedObjectIDsAfterSearch event, no queryId', context);
|
|
3436
3484
|
aa('addedToCartObjectIDsAfterSearch', {
|
|
3485
|
+
currency: getCurrencyFromPriceString(cartLine.pricing?.actualPriceDisplay),
|
|
3437
3486
|
eventName: 'SRP: AddToCart ClickedAfterSearch',
|
|
3438
3487
|
index: context.index,
|
|
3488
|
+
objectData: [
|
|
3489
|
+
{
|
|
3490
|
+
price: cartLine.pricing?.actualPrice || undefined,
|
|
3491
|
+
quantity: cartLine.qtyOrdered || undefined,
|
|
3492
|
+
queryID: context.queryId,
|
|
3493
|
+
},
|
|
3494
|
+
],
|
|
3439
3495
|
objectIDs: [].concat(objectId),
|
|
3440
3496
|
queryID: context.queryId,
|
|
3441
3497
|
userToken,
|
|
3442
3498
|
});
|
|
3443
3499
|
},
|
|
3444
|
-
sendAddToWishListFromProductListPageEvent({ objectId, position
|
|
3500
|
+
sendAddToWishListFromProductListPageEvent({ objectId, position }) {
|
|
3445
3501
|
if (!context.index)
|
|
3446
3502
|
return console.warn('Unable to send clickedObjectIDsAfterSearch event, no index', context);
|
|
3447
3503
|
if (!context.queryId)
|
|
@@ -3455,7 +3511,7 @@ function useAlgoliaInsights() {
|
|
|
3455
3511
|
userToken,
|
|
3456
3512
|
});
|
|
3457
3513
|
},
|
|
3458
|
-
sendAddToWishListFromSearchEvent({ objectId, position, queryId
|
|
3514
|
+
sendAddToWishListFromSearchEvent({ objectId, position, queryId }) {
|
|
3459
3515
|
if (!context.index)
|
|
3460
3516
|
return console.warn('Unable to send clickedObjectIDsAfterSearch event, no index', context);
|
|
3461
3517
|
aa('clickedObjectIDsAfterSearch', {
|
|
@@ -3519,7 +3575,7 @@ function useAlgoliaInsights() {
|
|
|
3519
3575
|
queryId,
|
|
3520
3576
|
});
|
|
3521
3577
|
},
|
|
3522
|
-
sendProductClickFromSearchResultPageEvent({ objectId, position
|
|
3578
|
+
sendProductClickFromSearchResultPageEvent({ objectId, position }) {
|
|
3523
3579
|
if (!objectId)
|
|
3524
3580
|
return console.warn('Unable to send clickedObjectIDsAfterSearch event, no index', context);
|
|
3525
3581
|
if (!context.index)
|
|
@@ -3541,30 +3597,6 @@ function useAlgoliaInsights() {
|
|
|
3541
3597
|
},
|
|
3542
3598
|
};
|
|
3543
3599
|
}
|
|
3544
|
-
/*
|
|
3545
|
-
init: Parameters<typeof init>;
|
|
3546
|
-
getVersion: Parameters<typeof getVersion>;
|
|
3547
|
-
addAlgoliaAgent: Parameters<typeof addAlgoliaAgent>;
|
|
3548
|
-
setUserToken: Parameters<typeof setUserToken>;
|
|
3549
|
-
getUserToken: Parameters<typeof getUserToken>;
|
|
3550
|
-
onUserTokenChange: Parameters<typeof onUserTokenChange>;
|
|
3551
|
-
setAuthenticatedUserToken: Parameters<typeof setAuthenticatedUserToken>;
|
|
3552
|
-
getAuthenticatedUserToken: Parameters<typeof getAuthenticatedUserToken>;
|
|
3553
|
-
onAuthenticatedUserTokenChange: Parameters<typeof onAuthenticatedUserTokenChange>;
|
|
3554
|
-
clickedObjectIDsAfterSearch: Parameters<typeof clickedObjectIDsAfterSearch>;
|
|
3555
|
-
clickedObjectIDs: Parameters<typeof clickedObjectIDs>;
|
|
3556
|
-
clickedFilters: Parameters<typeof clickedFilters>;
|
|
3557
|
-
convertedObjectIDsAfterSearch: Parameters<typeof convertedObjectIDsAfterSearch>;
|
|
3558
|
-
convertedObjectIDs: Parameters<typeof convertedObjectIDs>;
|
|
3559
|
-
convertedFilters: Parameters<typeof convertedFilters>;
|
|
3560
|
-
viewedObjectIDs: Parameters<typeof viewedObjectIDs>;
|
|
3561
|
-
viewedFilters: Parameters<typeof viewedFilters>;
|
|
3562
|
-
purchasedObjectIDs: Parameters<typeof purchasedObjectIDs>;
|
|
3563
|
-
purchasedObjectIDsAfterSearch: Parameters<typeof purchasedObjectIDsAfterSearch>;
|
|
3564
|
-
addedToCartObjectIDs: Parameters<typeof addedToCartObjectIDs>;
|
|
3565
|
-
addedToCartObjectIDsAfterSearch: Parameters<typeof addedToCartObjectIDsAfterSearch>;
|
|
3566
|
-
sendEvents: Parameters<ReturnType<typeof makeSendEvents>>;
|
|
3567
|
-
*/
|
|
3568
3600
|
|
|
3569
3601
|
function useAlgoliaSearch() {
|
|
3570
3602
|
const globalSearch = useContext(GlobalSearchContext);
|
|
@@ -4152,7 +4184,7 @@ const ConnectedAddToCartButton = ({ onAddToCart, productId }) => {
|
|
|
4152
4184
|
});
|
|
4153
4185
|
},
|
|
4154
4186
|
onSuccess: cartLine => {
|
|
4155
|
-
onAddToCart?.();
|
|
4187
|
+
onAddToCart?.({ cartLine });
|
|
4156
4188
|
onCartLineAdded?.(cartLine);
|
|
4157
4189
|
addToast({
|
|
4158
4190
|
body: (jsx(FormattedMessage, { id: "The product has been added to your cart." })),
|
|
@@ -11411,8 +11443,9 @@ function ProductHitCard$2({ autocomplete, hit, index, source, }) {
|
|
|
11411
11443
|
fit: 'contain',
|
|
11412
11444
|
image: hit.image,
|
|
11413
11445
|
title: hit.name,
|
|
11414
|
-
}, onAddToCart: () => hit.queryId &&
|
|
11446
|
+
}, onAddToCart: ({ cartLine }) => hit.queryId &&
|
|
11415
11447
|
sendAddToCartFromSearchEvent({
|
|
11448
|
+
cartLine,
|
|
11416
11449
|
objectId: hit.objectId,
|
|
11417
11450
|
queryId: hit.queryId,
|
|
11418
11451
|
}), onClick: () => {
|
|
@@ -12163,7 +12196,8 @@ function ProductHitCard$1({ hit }) {
|
|
|
12163
12196
|
fit: 'contain',
|
|
12164
12197
|
image: hit.image,
|
|
12165
12198
|
title: hit.name,
|
|
12166
|
-
}, onAddToCart: () => sendAddToCartFromProductListPageEvent({
|
|
12199
|
+
}, onAddToCart: ({ cartLine }) => sendAddToCartFromProductListPageEvent({
|
|
12200
|
+
cartLine,
|
|
12167
12201
|
objectId: hit.objectId,
|
|
12168
12202
|
}), onClick: () => sendProductClickFromProductListPageEvent({
|
|
12169
12203
|
objectId: hit.objectId,
|
|
@@ -12227,7 +12261,8 @@ function ProductHitCard({ hit }) {
|
|
|
12227
12261
|
fit: 'contain',
|
|
12228
12262
|
image: hit.image,
|
|
12229
12263
|
title: hit.name,
|
|
12230
|
-
}, onAddToCart: () => sendAddToCartFromSearchResultPageEvent({
|
|
12264
|
+
}, onAddToCart: ({ cartLine }) => sendAddToCartFromSearchResultPageEvent({
|
|
12265
|
+
cartLine,
|
|
12231
12266
|
objectId: hit.objectId,
|
|
12232
12267
|
}), onClick: () => {
|
|
12233
12268
|
sendProductClickFromSearchResultPageEvent({
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export declare const currencySymbolToISO: {
|
|
2
|
+
readonly $: "USD";
|
|
3
|
+
readonly 'Bs.': "VES";
|
|
4
|
+
readonly Ft: "HUF";
|
|
5
|
+
readonly Kč: "CZK";
|
|
6
|
+
readonly R: "ZAR";
|
|
7
|
+
readonly kr: "SEK";
|
|
8
|
+
readonly lei: "RON";
|
|
9
|
+
readonly zł: "PLN";
|
|
10
|
+
readonly '\u00A3': "GBP";
|
|
11
|
+
readonly '\u00A5': "JPY";
|
|
12
|
+
readonly '\u0E3F': "THB";
|
|
13
|
+
readonly '\u20A1': "CRC";
|
|
14
|
+
readonly '\u20A6': "NGN";
|
|
15
|
+
readonly '\u20A9': "KRW";
|
|
16
|
+
readonly '\u20AA': "ILS";
|
|
17
|
+
readonly '\u20AB': "VND";
|
|
18
|
+
readonly '\u20AC': "EUR";
|
|
19
|
+
readonly '\u20AE': "MNT";
|
|
20
|
+
readonly '\u20B1': "PHP";
|
|
21
|
+
readonly '\u20B2': "PYG";
|
|
22
|
+
readonly '\u20B4': "UAH";
|
|
23
|
+
readonly '\u20B5': "GHS";
|
|
24
|
+
readonly '\u20B9': "INR";
|
|
25
|
+
readonly '\u20BA': "TRY";
|
|
26
|
+
readonly '\u20BD': "RUB";
|
|
27
|
+
};
|