@salla.sa/twilight-theme-engine 1.0.90 → 1.0.92
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/{AddToCartForm-QMTJMDBE.js → AddToCartForm-NJDWY5UO.js} +3 -3
- package/dist/{AddToCartForm-QMTJMDBE.js.map → AddToCartForm-NJDWY5UO.js.map} +1 -1
- package/dist/{BlogAuthorPage-JFPJVF5V.js → BlogAuthorPage-KNLY6INT.js} +7 -7
- package/dist/{BlogAuthorPage-JFPJVF5V.js.map → BlogAuthorPage-KNLY6INT.js.map} +1 -1
- package/dist/{BlogCategoryPage-PC5O2VXV.js → BlogCategoryPage-PKJJEVJN.js} +7 -7
- package/dist/{BlogCategoryPage-PC5O2VXV.js.map → BlogCategoryPage-PKJJEVJN.js.map} +1 -1
- package/dist/{BlogPage-Q7C2PQ4S.js → BlogPage-JSCQWH4K.js} +6 -6
- package/dist/{BlogPage-Q7C2PQ4S.js.map → BlogPage-JSCQWH4K.js.map} +1 -1
- package/dist/{BlogSinglePage-BFJVMLFS.js → BlogSinglePage-VGSUYBPQ.js} +6 -6
- package/dist/{BlogSinglePage-BFJVMLFS.js.map → BlogSinglePage-VGSUYBPQ.js.map} +1 -1
- package/dist/{BlogTagPage-K2MV4GUT.js → BlogTagPage-7RBVWWVO.js} +7 -7
- package/dist/{BlogTagPage-K2MV4GUT.js.map → BlogTagPage-7RBVWWVO.js.map} +1 -1
- package/dist/{BrandsPage-A267NG34.js → BrandsPage-2EZAYDFS.js} +6 -6
- package/dist/{BrandsPage-A267NG34.js.map → BrandsPage-2EZAYDFS.js.map} +1 -1
- package/dist/{Breadcrumb-PPVWWX5S.js → Breadcrumb-3BZBCWDK.js} +6 -6
- package/dist/{Breadcrumb-PPVWWX5S.js.map → Breadcrumb-3BZBCWDK.js.map} +1 -1
- package/dist/{CartItem-AHUDNTQR.js → CartItem-O6DFABXA.js} +6 -6
- package/dist/{CartItem-AHUDNTQR.js.map → CartItem-O6DFABXA.js.map} +1 -1
- package/dist/{CartSummary-S67UB3AG.js → CartSummary-3U4F2BLY.js} +6 -6
- package/dist/{CartSummary-S67UB3AG.js.map → CartSummary-3U4F2BLY.js.map} +1 -1
- package/dist/{Copyright-DR4ZT2CS.js → Copyright-UGII52NH.js} +3 -3
- package/dist/{Copyright-DR4ZT2CS.js.map → Copyright-UGII52NH.js.map} +1 -1
- package/dist/{CustomerLayout-MPRNNYLC.js → CustomerLayout-EI2PAOU6.js} +6 -6
- package/dist/{CustomerLayout-MPRNNYLC.js.map → CustomerLayout-EI2PAOU6.js.map} +1 -1
- package/dist/{Footer-JLIWTJ5D.js → Footer-TW4N2GMF.js} +4 -4
- package/dist/{Footer-JLIWTJ5D.js.map → Footer-TW4N2GMF.js.map} +1 -1
- package/dist/{Header-5WISG7DQ.js → Header-YW7FOVIW.js} +4 -4
- package/dist/{Header-5WISG7DQ.js.map → Header-YW7FOVIW.js.map} +1 -1
- package/dist/{LoyaltyPage-2DNT5B4C.js → LoyaltyPage-G6IYKWME.js} +6 -6
- package/dist/{LoyaltyPage-2DNT5B4C.js.map → LoyaltyPage-G6IYKWME.js.map} +1 -1
- package/dist/{LoyaltyPointsPage-XQUSSPMN.js → LoyaltyPointsPage-RXXL6C74.js} +3 -3
- package/dist/{LoyaltyPointsPage-XQUSSPMN.js.map → LoyaltyPointsPage-RXXL6C74.js.map} +1 -1
- package/dist/{MainMenu-32JMOTLQ.js → MainMenu-7KRYJ7OP.js} +3 -3
- package/dist/{MainMenu-32JMOTLQ.js.map → MainMenu-7KRYJ7OP.js.map} +1 -1
- package/dist/{MasterLayout-OMAGB4P6.js → MasterLayout-WLLTQJAY.js} +6 -6
- package/dist/{MasterLayout-OMAGB4P6.js.map → MasterLayout-WLLTQJAY.js.map} +1 -1
- package/dist/{MobileMenu-GJFKTT7L.js → MobileMenu-MV4SBF2W.js} +6 -6
- package/dist/{MobileMenu-GJFKTT7L.js.map → MobileMenu-MV4SBF2W.js.map} +1 -1
- package/dist/{NotificationsPage-6DFTZNHX.js → NotificationsPage-MSVZN25W.js} +6 -6
- package/dist/{NotificationsPage-6DFTZNHX.js.map → NotificationsPage-MSVZN25W.js.map} +1 -1
- package/dist/{OrderSinglePage-F7WGLADB.js → OrderSinglePage-3YXNPLEV.js} +6 -6
- package/dist/{OrderSinglePage-F7WGLADB.js.map → OrderSinglePage-3YXNPLEV.js.map} +1 -1
- package/dist/{OrdersPage-EPGA6BGW.js → OrdersPage-JXQSQLSQ.js} +6 -6
- package/dist/{OrdersPage-EPGA6BGW.js.map → OrdersPage-JXQSQLSQ.js.map} +1 -1
- package/dist/{PageSingle-MGSXARK3.js → PageSingle-4S2G45RQ.js} +3 -3
- package/dist/{PageSingle-MGSXARK3.js.map → PageSingle-4S2G45RQ.js.map} +1 -1
- package/dist/{ProductDetails-UJHQNBZY.js → ProductDetails-OUZMXQCC.js} +3 -3
- package/dist/{ProductDetails-UJHQNBZY.js.map → ProductDetails-OUZMXQCC.js.map} +1 -1
- package/dist/{ProfilePage-K4IK2NFB.js → ProfilePage-HK5LZYDT.js} +6 -6
- package/dist/{ProfilePage-K4IK2NFB.js.map → ProfilePage-HK5LZYDT.js.map} +1 -1
- package/dist/{ReviewsPage-5HOLWY3F.js → ReviewsPage-V3MPIT6B.js} +3 -3
- package/dist/{ReviewsPage-5HOLWY3F.js.map → ReviewsPage-V3MPIT6B.js.map} +1 -1
- package/dist/{SeoCartWidget-SWCLBEG4.js → SeoCartWidget-JOCFGXSU.js} +6 -6
- package/dist/{SeoCartWidget-SWCLBEG4.js.map → SeoCartWidget-JOCFGXSU.js.map} +1 -1
- package/dist/{SettingsPage-6A6VZQSL.js → SettingsPage-4BBBQQQJ.js} +6 -6
- package/dist/{SettingsPage-6A6VZQSL.js.map → SettingsPage-4BBBQQQJ.js.map} +1 -1
- package/dist/{StoreClosedNotification-AJ5NQTHL.js → StoreClosedNotification-BL5BRSY7.js} +7 -7
- package/dist/{StoreClosedNotification-AJ5NQTHL.js.map → StoreClosedNotification-BL5BRSY7.js.map} +1 -1
- package/dist/{TestimonialsPage-W6MLKTNP.js → TestimonialsPage-KT5PM4SO.js} +3 -3
- package/dist/{TestimonialsPage-W6MLKTNP.js.map → TestimonialsPage-KT5PM4SO.js.map} +1 -1
- package/dist/{ThankYouPage-MJFQH7UO.js → ThankYouPage-4MXMOGE3.js} +6 -6
- package/dist/{ThankYouPage-MJFQH7UO.js.map → ThankYouPage-4MXMOGE3.js.map} +1 -1
- package/dist/{WalletPage-4OOSR2VC.js → WalletPage-SPNV3SVO.js} +6 -6
- package/dist/{WalletPage-4OOSR2VC.js.map → WalletPage-SPNV3SVO.js.map} +1 -1
- package/dist/{WishlistPage-B3BWGZXX.js → WishlistPage-GZYVL7M4.js} +6 -6
- package/dist/{WishlistPage-B3BWGZXX.js.map → WishlistPage-GZYVL7M4.js.map} +1 -1
- package/dist/chunk-3LZJXKVO.js +43 -0
- package/dist/chunk-3LZJXKVO.js.map +1 -0
- package/dist/{chunk-ARLCEQNY.js → chunk-A2F2YCMS.js} +7 -7
- package/dist/{chunk-ARLCEQNY.js.map → chunk-A2F2YCMS.js.map} +1 -1
- package/dist/{chunk-PVVQ55WU.js → chunk-AMSEXJGY.js} +4 -4
- package/dist/{chunk-PVVQ55WU.js.map → chunk-AMSEXJGY.js.map} +1 -1
- package/dist/{chunk-PWCHXVAW.js → chunk-FCWHOLVA.js} +5 -5
- package/dist/{chunk-PWCHXVAW.js.map → chunk-FCWHOLVA.js.map} +1 -1
- package/dist/{chunk-S4TW6BTW.js → chunk-I4O4BOJV.js} +6 -6
- package/dist/{chunk-S4TW6BTW.js.map → chunk-I4O4BOJV.js.map} +1 -1
- package/dist/chunk-JPQSCLDG.js +14 -0
- package/dist/{chunk-PIXAIGO3.js.map → chunk-JPQSCLDG.js.map} +1 -1
- package/dist/{chunk-FSXQMBRZ.js → chunk-JWJK5K6G.js} +7 -7
- package/dist/{chunk-FSXQMBRZ.js.map → chunk-JWJK5K6G.js.map} +1 -1
- package/dist/{chunk-ABOH7PAS.js → chunk-L2JL2J2X.js} +3 -3
- package/dist/{chunk-ABOH7PAS.js.map → chunk-L2JL2J2X.js.map} +1 -1
- package/dist/{chunk-WF4ZYBTN.js → chunk-L5RO65A4.js} +3 -3
- package/dist/{chunk-WF4ZYBTN.js.map → chunk-L5RO65A4.js.map} +1 -1
- package/dist/{chunk-LCN5ZEXS.js → chunk-ROZYGY5L.js} +3 -3
- package/dist/{chunk-LCN5ZEXS.js.map → chunk-ROZYGY5L.js.map} +1 -1
- package/dist/{chunk-HXWTCFXD.js → chunk-VBZFPXFW.js} +4 -4
- package/dist/{chunk-HXWTCFXD.js.map → chunk-VBZFPXFW.js.map} +1 -1
- package/dist/{chunk-NVT4D5XH.js → chunk-VCIGJB62.js} +4 -4
- package/dist/{chunk-NVT4D5XH.js.map → chunk-VCIGJB62.js.map} +1 -1
- package/dist/{chunk-TY4GLQHS.js → chunk-X35KC3VM.js} +3 -3
- package/dist/{chunk-TY4GLQHS.js.map → chunk-X35KC3VM.js.map} +1 -1
- package/dist/{chunk-3JUS56LJ.js → chunk-Y2SZHUTP.js} +3 -3
- package/dist/{chunk-3JUS56LJ.js.map → chunk-Y2SZHUTP.js.map} +1 -1
- package/dist/components/cart/index.js +1 -1
- package/dist/components/common/index.js +1 -1
- package/dist/components/drawer/index.js +4 -4
- package/dist/components/home/index.js +6 -6
- package/dist/components/layout/index.js +1 -1
- package/dist/components/product/index.js +5 -5
- package/dist/components/store/index.js +6 -6
- package/dist/{document-class-HHFG6GA4.js → document-class-DUYOFGG5.js} +3 -3
- package/dist/{document-class-HHFG6GA4.js.map → document-class-DUYOFGG5.js.map} +1 -1
- package/dist/hooks/index.js +4 -4
- package/dist/hooks/useGtm.js +4 -4
- package/dist/hooks/useMoney.js +4 -4
- package/dist/hooks/useStore.js +4 -4
- package/dist/index.js +4 -4
- package/dist/{not-found-R7F34VWV.js → not-found-GEOZNKN5.js} +6 -6
- package/dist/{not-found-R7F34VWV.js.map → not-found-GEOZNKN5.js.map} +1 -1
- package/dist/providers/index.js +4 -4
- package/dist/routes/account/orders.js +1 -1
- package/dist/routes/account.js +6 -6
- package/dist/routes/blog.js +5 -5
- package/dist/routes/brands.js +1 -1
- package/dist/routes/cart.js +8 -8
- package/dist/routes/home.js +7 -7
- package/dist/routes/loyalty.js +2 -2
- package/dist/routes/page.js +1 -1
- package/dist/routes/product-listing/ProductListPage.d.ts.map +1 -1
- package/dist/routes/product-listing/loader.d.ts.map +1 -1
- package/dist/routes/product-listing.js +20 -12
- package/dist/routes/product-listing.js.map +1 -1
- package/dist/routes/product.js +6 -6
- package/dist/routes/testimonials.js +2 -2
- package/dist/routes/thank-you.js +1 -1
- package/dist/skeleton.js +7 -7
- package/dist/tanstack.js +1 -1
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/sort-options.d.ts +9 -2
- package/dist/utils/sort-options.d.ts.map +1 -1
- package/dist/utils/sort-options.js +4 -0
- package/dist/utils/sort-options.js.map +1 -0
- package/dist/vite/index.js +2 -2
- package/package.json +5 -1
- package/tailwind/routes/product-listing/ProductListPage.tsx.txt +15 -3
- package/tailwind/routes/product-listing/loader.ts.txt +3 -1
- package/dist/chunk-6Z4MOC4S.js +0 -32
- package/dist/chunk-6Z4MOC4S.js.map +0 -1
- package/dist/chunk-PIXAIGO3.js +0 -14
|
@@ -3,7 +3,7 @@ import { HookSlot, useStore } from '../../hooks';
|
|
|
3
3
|
import { useTranslation } from '../../providers/I18nProvider';
|
|
4
4
|
import { useNavigate, useLocation } from '../../providers/NavigationProvider';
|
|
5
5
|
import { useTwilight } from '../../providers/TwilightProvider';
|
|
6
|
-
import { sortOptions } from '../../utils/sort-options';
|
|
6
|
+
import { availableSortIds, sortOptions } from '../../utils/sort-options';
|
|
7
7
|
import { Drawer } from '../../components/drawer';
|
|
8
8
|
import { Breadcrumb } from '../../components/common';
|
|
9
9
|
import { SallaFilters } from '@salla.sa/twilight-components-react/filters';
|
|
@@ -56,7 +56,14 @@ export function ProductListPage({
|
|
|
56
56
|
useReorderButtons(isReorder);
|
|
57
57
|
|
|
58
58
|
// Generate sort options with translations
|
|
59
|
-
const
|
|
59
|
+
const sortIds = availableSortIds(source.type, store?.settings?.product?.sort_options);
|
|
60
|
+
const sortOptionsWithTrans = useMemo(
|
|
61
|
+
() => sortOptions(selectedSort, t, sortIds),
|
|
62
|
+
[selectedSort, t, sortIds]
|
|
63
|
+
);
|
|
64
|
+
// The merchant may have turned off the sort the list is in (the default, or an old link's):
|
|
65
|
+
// show no choice rather than an option that does not describe the order.
|
|
66
|
+
const shownSort = sortOptionsWithTrans.some((option) => option.is_selected) ? selectedSort : '';
|
|
60
67
|
|
|
61
68
|
// Get location from hook for consistent URL handling
|
|
62
69
|
const location = useLocation();
|
|
@@ -221,9 +228,14 @@ export function ProductListPage({
|
|
|
221
228
|
<select
|
|
222
229
|
id="product-sort"
|
|
223
230
|
className="form-input pt-0 pb-1 rtl:md:pl-10 ltr:md:pr-10"
|
|
224
|
-
value={
|
|
231
|
+
value={shownSort}
|
|
225
232
|
onChange={handleSortChange}
|
|
226
233
|
>
|
|
234
|
+
{shownSort === '' && (
|
|
235
|
+
<option value="" disabled hidden>
|
|
236
|
+
{t('pages.categories.sorting', 'Sort By')}
|
|
237
|
+
</option>
|
|
238
|
+
)}
|
|
227
239
|
{sortOptionsWithTrans.map((option) => (
|
|
228
240
|
<option key={option.id} value={option.id}>
|
|
229
241
|
{option.name}
|
|
@@ -7,6 +7,7 @@ import { notFound, orThrow, unauthorized } from '../../providers/NavigationProvi
|
|
|
7
7
|
import { getAuthToken } from '../../api/client';
|
|
8
8
|
import { getTwilightContext } from '../../twilight/context';
|
|
9
9
|
import { RouteId } from '../../router/route-ids';
|
|
10
|
+
import { SORT_IDS } from '../../utils/sort-options';
|
|
10
11
|
|
|
11
12
|
const DEFAULT_SORT = 'ourSuggest';
|
|
12
13
|
|
|
@@ -44,7 +45,8 @@ export async function productListLoader(
|
|
|
44
45
|
// A number is a page from an old Twig link; the API pages only by its own cursor.
|
|
45
46
|
const page = search?.page ? String(search.page) : undefined;
|
|
46
47
|
const cursor = page && Number.isNaN(Number(page)) ? page : undefined;
|
|
47
|
-
|
|
48
|
+
// A sort the API does not know is a 422 for the whole page; fall back to the default.
|
|
49
|
+
const sort = search?.sort && SORT_IDS.includes(search.sort) ? search.sort : DEFAULT_SORT;
|
|
48
50
|
|
|
49
51
|
const sourceType = params.source ?? (params.id ? 'categories' : undefined);
|
|
50
52
|
|
package/dist/chunk-6Z4MOC4S.js
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
// src/utils/sort-options.ts
|
|
2
|
-
var sortOptions = (currentSort, t) => [
|
|
3
|
-
{
|
|
4
|
-
id: "ourSuggest",
|
|
5
|
-
name: t("pages.categories.sort_by_suggestions", "Our Suggestions"),
|
|
6
|
-
is_selected: currentSort === "ourSuggest"
|
|
7
|
-
},
|
|
8
|
-
{
|
|
9
|
-
id: "bestSell",
|
|
10
|
-
name: t("pages.categories.sort_by_sales", "Best Seller"),
|
|
11
|
-
is_selected: currentSort === "bestSell"
|
|
12
|
-
},
|
|
13
|
-
{
|
|
14
|
-
id: "topRated",
|
|
15
|
-
name: t("pages.categories.sort_by_rating", "Top Rated"),
|
|
16
|
-
is_selected: currentSort === "topRated"
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
id: "priceFromLowToTop",
|
|
20
|
-
name: t("pages.categories.sort_by_price_az", "Price Low to High"),
|
|
21
|
-
is_selected: currentSort === "priceFromLowToTop"
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
id: "priceFromTopToLow",
|
|
25
|
-
name: t("pages.categories.sort_by_price_za", "Price High to Low"),
|
|
26
|
-
is_selected: currentSort === "priceFromTopToLow"
|
|
27
|
-
}
|
|
28
|
-
];
|
|
29
|
-
|
|
30
|
-
export { sortOptions };
|
|
31
|
-
//# sourceMappingURL=chunk-6Z4MOC4S.js.map
|
|
32
|
-
//# sourceMappingURL=chunk-6Z4MOC4S.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils/sort-options.ts"],"names":[],"mappings":";AAEO,IAAM,WAAA,GAAc,CAAC,WAAA,EAAqB,CAAA,KAAmB;AAAA,EAClE;AAAA,IACE,EAAA,EAAI,YAAA;AAAA,IACJ,IAAA,EAAM,CAAA,CAAE,sCAAA,EAAwC,iBAAiB,CAAA;AAAA,IACjE,aAAa,WAAA,KAAgB;AAAA,GAC/B;AAAA,EACA;AAAA,IACE,EAAA,EAAI,UAAA;AAAA,IACJ,IAAA,EAAM,CAAA,CAAE,gCAAA,EAAkC,aAAa,CAAA;AAAA,IACvD,aAAa,WAAA,KAAgB;AAAA,GAC/B;AAAA,EACA;AAAA,IACE,EAAA,EAAI,UAAA;AAAA,IACJ,IAAA,EAAM,CAAA,CAAE,iCAAA,EAAmC,WAAW,CAAA;AAAA,IACtD,aAAa,WAAA,KAAgB;AAAA,GAC/B;AAAA,EACA;AAAA,IACE,EAAA,EAAI,mBAAA;AAAA,IACJ,IAAA,EAAM,CAAA,CAAE,mCAAA,EAAqC,mBAAmB,CAAA;AAAA,IAChE,aAAa,WAAA,KAAgB;AAAA,GAC/B;AAAA,EACA;AAAA,IACE,EAAA,EAAI,mBAAA;AAAA,IACJ,IAAA,EAAM,CAAA,CAAE,mCAAA,EAAqC,mBAAmB,CAAA;AAAA,IAChE,aAAa,WAAA,KAAgB;AAAA;AAEjC","file":"chunk-6Z4MOC4S.js","sourcesContent":["type TranslateFn = (key: string, fallback: string) => string;\n\nexport const sortOptions = (currentSort: string, t: TranslateFn) => [\n {\n id: 'ourSuggest',\n name: t('pages.categories.sort_by_suggestions', 'Our Suggestions'),\n is_selected: currentSort === 'ourSuggest',\n },\n {\n id: 'bestSell',\n name: t('pages.categories.sort_by_sales', 'Best Seller'),\n is_selected: currentSort === 'bestSell',\n },\n {\n id: 'topRated',\n name: t('pages.categories.sort_by_rating', 'Top Rated'),\n is_selected: currentSort === 'topRated',\n },\n {\n id: 'priceFromLowToTop',\n name: t('pages.categories.sort_by_price_az', 'Price Low to High'),\n is_selected: currentSort === 'priceFromLowToTop',\n },\n {\n id: 'priceFromTopToLow',\n name: t('pages.categories.sort_by_price_za', 'Price High to Low'),\n is_selected: currentSort === 'priceFromTopToLow',\n },\n];\n"]}
|
package/dist/chunk-PIXAIGO3.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { lazy } from 'react';
|
|
2
|
-
|
|
3
|
-
// src/components/cart/lazy.ts
|
|
4
|
-
var LazyCartItem = lazy(() => import('./CartItem-AHUDNTQR.js').then((m) => ({ default: m.CartItem })));
|
|
5
|
-
var LazyCartSummary = lazy(
|
|
6
|
-
() => import('./CartSummary-S67UB3AG.js').then((m) => ({ default: m.CartSummary }))
|
|
7
|
-
);
|
|
8
|
-
var LazySeoCartWidget = lazy(
|
|
9
|
-
() => import('./SeoCartWidget-SWCLBEG4.js').then((m) => ({ default: m.SeoCartWidget }))
|
|
10
|
-
);
|
|
11
|
-
|
|
12
|
-
export { LazyCartItem, LazyCartSummary, LazySeoCartWidget };
|
|
13
|
-
//# sourceMappingURL=chunk-PIXAIGO3.js.map
|
|
14
|
-
//# sourceMappingURL=chunk-PIXAIGO3.js.map
|