@salla.sa/twilight-theme-engine 1.0.78 → 1.0.80
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-54HRWC3X.js → AddToCartForm-ABEPCH2F.js} +3 -3
- package/dist/{AddToCartForm-54HRWC3X.js.map → AddToCartForm-ABEPCH2F.js.map} +1 -1
- package/dist/{BlogAuthorPage-JX3B3PAH.js → BlogAuthorPage-X5OCKAN7.js} +8 -8
- package/dist/{BlogAuthorPage-JX3B3PAH.js.map → BlogAuthorPage-X5OCKAN7.js.map} +1 -1
- package/dist/{BlogCategoryPage-3AMIT55T.js → BlogCategoryPage-YP5RPHJD.js} +8 -8
- package/dist/{BlogCategoryPage-3AMIT55T.js.map → BlogCategoryPage-YP5RPHJD.js.map} +1 -1
- package/dist/{BlogPage-QXJFRLLI.js → BlogPage-YHKHOYE7.js} +6 -6
- package/dist/{BlogPage-QXJFRLLI.js.map → BlogPage-YHKHOYE7.js.map} +1 -1
- package/dist/{BlogSinglePage-TGK3EW67.js → BlogSinglePage-TCZREB6P.js} +5 -5
- package/dist/{BlogSinglePage-TGK3EW67.js.map → BlogSinglePage-TCZREB6P.js.map} +1 -1
- package/dist/{BlogTagPage-CH34K6U3.js → BlogTagPage-RKO4SVTQ.js} +8 -8
- package/dist/{BlogTagPage-CH34K6U3.js.map → BlogTagPage-RKO4SVTQ.js.map} +1 -1
- package/dist/{BrandsPage-4OG5ISYQ.js → BrandsPage-ANXNXTHT.js} +5 -5
- package/dist/{BrandsPage-4OG5ISYQ.js.map → BrandsPage-ANXNXTHT.js.map} +1 -1
- package/dist/{Breadcrumb-FOOZHQ6F.js → Breadcrumb-7TU7PMK4.js} +5 -5
- package/dist/{Breadcrumb-FOOZHQ6F.js.map → Breadcrumb-7TU7PMK4.js.map} +1 -1
- package/dist/{CartItem-ZGGYYV3L.js → CartItem-S2OFU6WJ.js} +5 -5
- package/dist/{CartItem-ZGGYYV3L.js.map → CartItem-S2OFU6WJ.js.map} +1 -1
- package/dist/{CartSummary-OZWJKA7L.js → CartSummary-Z7VAC4C3.js} +5 -5
- package/dist/{CartSummary-OZWJKA7L.js.map → CartSummary-Z7VAC4C3.js.map} +1 -1
- package/dist/{Copyright-VU3DD7SP.js → Copyright-RZXDW5DC.js} +3 -3
- package/dist/{Copyright-VU3DD7SP.js.map → Copyright-RZXDW5DC.js.map} +1 -1
- package/dist/{CustomerLayout-OAYEDCLZ.js → CustomerLayout-6UKHOOZK.js} +5 -5
- package/dist/{CustomerLayout-OAYEDCLZ.js.map → CustomerLayout-6UKHOOZK.js.map} +1 -1
- package/dist/{Footer-TSG6JFZ5.js → Footer-JGDLKYDB.js} +5 -5
- package/dist/{Footer-TSG6JFZ5.js.map → Footer-JGDLKYDB.js.map} +1 -1
- package/dist/{Header-LIRGCVD3.js → Header-PMFY3IDC.js} +4 -4
- package/dist/{Header-LIRGCVD3.js.map → Header-PMFY3IDC.js.map} +1 -1
- package/dist/{LoyaltyPage-2Y277GGL.js → LoyaltyPage-MZTC3QAT.js} +5 -5
- package/dist/{LoyaltyPage-2Y277GGL.js.map → LoyaltyPage-MZTC3QAT.js.map} +1 -1
- package/dist/{LoyaltyPointsPage-CG2GTB56.js → LoyaltyPointsPage-24K2U332.js} +3 -3
- package/dist/{LoyaltyPointsPage-CG2GTB56.js.map → LoyaltyPointsPage-24K2U332.js.map} +1 -1
- package/dist/{MainMenu-QRFSHHDS.js → MainMenu-QFR5Y5GO.js} +3 -3
- package/dist/{MainMenu-QRFSHHDS.js.map → MainMenu-QFR5Y5GO.js.map} +1 -1
- package/dist/{MasterLayout-N4W5RMXN.js → MasterLayout-3QNCTTQT.js} +5 -5
- package/dist/{MasterLayout-N4W5RMXN.js.map → MasterLayout-3QNCTTQT.js.map} +1 -1
- package/dist/{MobileMenu-VDEAQVV7.js → MobileMenu-Q6TQ6KB3.js} +5 -5
- package/dist/{MobileMenu-VDEAQVV7.js.map → MobileMenu-Q6TQ6KB3.js.map} +1 -1
- package/dist/{NotificationsPage-WIZ4KMLE.js → NotificationsPage-TSHDB7CY.js} +5 -5
- package/dist/{NotificationsPage-WIZ4KMLE.js.map → NotificationsPage-TSHDB7CY.js.map} +1 -1
- package/dist/{OrderSinglePage-2SPAUVKK.js → OrderSinglePage-SF4DJHJY.js} +64 -25
- package/dist/OrderSinglePage-SF4DJHJY.js.map +1 -0
- package/dist/{OrdersPage-Q4IFEZRW.js → OrdersPage-D5OLTSXX.js} +5 -5
- package/dist/{OrdersPage-Q4IFEZRW.js.map → OrdersPage-D5OLTSXX.js.map} +1 -1
- package/dist/{PageSingle-MJ36XD2U.js → PageSingle-NXQSRA5W.js} +3 -3
- package/dist/{PageSingle-MJ36XD2U.js.map → PageSingle-NXQSRA5W.js.map} +1 -1
- package/dist/{ProductDetails-CQFKXECD.js → ProductDetails-7GTN6IYH.js} +3 -3
- package/dist/{ProductDetails-CQFKXECD.js.map → ProductDetails-7GTN6IYH.js.map} +1 -1
- package/dist/{ProfilePage-GG2R7VAB.js → ProfilePage-7LGBULXS.js} +5 -5
- package/dist/{ProfilePage-GG2R7VAB.js.map → ProfilePage-7LGBULXS.js.map} +1 -1
- package/dist/{ReviewsPage-VQF6L27O.js → ReviewsPage-CAICXKXR.js} +3 -3
- package/dist/{ReviewsPage-VQF6L27O.js.map → ReviewsPage-CAICXKXR.js.map} +1 -1
- package/dist/{SeoCartWidget-CAM67YDG.js → SeoCartWidget-2DXU2FO6.js} +5 -5
- package/dist/{SeoCartWidget-CAM67YDG.js.map → SeoCartWidget-2DXU2FO6.js.map} +1 -1
- package/dist/{SettingsPage-T6PFRFYO.js → SettingsPage-O2YOPWVH.js} +5 -5
- package/dist/{SettingsPage-T6PFRFYO.js.map → SettingsPage-O2YOPWVH.js.map} +1 -1
- package/dist/{StoreClosedNotification-GFCTOI7N.js → StoreClosedNotification-O664U74I.js} +6 -6
- package/dist/{StoreClosedNotification-GFCTOI7N.js.map → StoreClosedNotification-O664U74I.js.map} +1 -1
- package/dist/{TestimonialsPage-LKSRXIOK.js → TestimonialsPage-P6ATOXMW.js} +3 -3
- package/dist/{TestimonialsPage-LKSRXIOK.js.map → TestimonialsPage-P6ATOXMW.js.map} +1 -1
- package/dist/{ThankYouPage-FIZ6XDS7.js → ThankYouPage-SHQD4YH7.js} +5 -5
- package/dist/{ThankYouPage-FIZ6XDS7.js.map → ThankYouPage-SHQD4YH7.js.map} +1 -1
- package/dist/{WalletPage-3VUXXMTC.js → WalletPage-ELMYZTGC.js} +5 -5
- package/dist/{WalletPage-3VUXXMTC.js.map → WalletPage-ELMYZTGC.js.map} +1 -1
- package/dist/{WishlistPage-73Q47YZ5.js → WishlistPage-EHJ26BHI.js} +5 -5
- package/dist/{WishlistPage-73Q47YZ5.js.map → WishlistPage-EHJ26BHI.js.map} +1 -1
- package/dist/{chunk-RSBRAFR3.js → chunk-66YVVUDG.js} +7 -7
- package/dist/{chunk-RSBRAFR3.js.map → chunk-66YVVUDG.js.map} +1 -1
- package/dist/{chunk-6OC3LPYW.js → chunk-6EUHIP3B.js} +5 -5
- package/dist/{chunk-6OC3LPYW.js.map → chunk-6EUHIP3B.js.map} +1 -1
- package/dist/{chunk-AI2FG4XM.js → chunk-7Q3YWTWT.js} +4 -4
- package/dist/{chunk-AI2FG4XM.js.map → chunk-7Q3YWTWT.js.map} +1 -1
- package/dist/{chunk-7Q2DA236.js → chunk-CXKIU34R.js} +7 -7
- package/dist/{chunk-7Q2DA236.js.map → chunk-CXKIU34R.js.map} +1 -1
- package/dist/{chunk-RYFIWQ6L.js → chunk-KEZMQRKI.js} +12 -3
- package/dist/chunk-KEZMQRKI.js.map +1 -0
- package/dist/{chunk-3OD7SA3B.js → chunk-LBZHOOAE.js} +3 -3
- package/dist/{chunk-3OD7SA3B.js.map → chunk-LBZHOOAE.js.map} +1 -1
- package/dist/{chunk-Y52Y5O7I.js → chunk-N6A3V5RC.js} +4 -4
- package/dist/{chunk-Y52Y5O7I.js.map → chunk-N6A3V5RC.js.map} +1 -1
- package/dist/chunk-NFOJ6J2T.js +14 -0
- package/dist/{chunk-7KZSJQOP.js.map → chunk-NFOJ6J2T.js.map} +1 -1
- package/dist/{chunk-FR2X2QSL.js → chunk-RJM2BTNL.js} +7 -7
- package/dist/{chunk-FR2X2QSL.js.map → chunk-RJM2BTNL.js.map} +1 -1
- package/dist/{chunk-LD6AZSPT.js → chunk-UUCMNR64.js} +3 -3
- package/dist/{chunk-LD6AZSPT.js.map → chunk-UUCMNR64.js.map} +1 -1
- package/dist/{chunk-OV7YMZOR.js → chunk-WIU7LRBB.js} +5 -5
- package/dist/{chunk-OV7YMZOR.js.map → chunk-WIU7LRBB.js.map} +1 -1
- package/dist/{chunk-342EPVXN.js → chunk-Y32RHCOH.js} +9 -3
- package/dist/chunk-Y32RHCOH.js.map +1 -0
- package/dist/{chunk-BJ5OXLWT.js → chunk-YCN2W5UU.js} +34 -26
- package/dist/chunk-YCN2W5UU.js.map +1 -0
- package/dist/{chunk-QVFVPVPU.js → chunk-YT2FZH3X.js} +3 -3
- package/dist/{chunk-QVFVPVPU.js.map → chunk-YT2FZH3X.js.map} +1 -1
- package/dist/components/ComponentRegistry.d.ts +2 -0
- package/dist/components/ComponentRegistry.d.ts.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 +3 -3
- 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 +5 -5
- package/dist/{document-class-FMIFVKZY.js → document-class-ZFK6QJQA.js} +3 -3
- package/dist/{document-class-FMIFVKZY.js.map → document-class-ZFK6QJQA.js.map} +1 -1
- package/dist/hooks/index.js +3 -3
- package/dist/hooks/useGtm.js +3 -3
- package/dist/hooks/useMoney.js +3 -3
- package/dist/hooks/useStore.js +3 -3
- package/dist/index.js +5 -5
- package/dist/{not-found-QYT5LHOA.js → not-found-EXTMSJLO.js} +5 -5
- package/dist/{not-found-QYT5LHOA.js.map → not-found-EXTMSJLO.js.map} +1 -1
- package/dist/providers/index.js +3 -3
- package/dist/routes/account/orders/single/OrderHeader.d.ts.map +1 -1
- package/dist/routes/account/orders.js +1 -1
- package/dist/routes/account/types.d.ts +2 -0
- package/dist/routes/account/types.d.ts.map +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/index.js +1 -1
- package/dist/routes/loyalty.js +2 -2
- package/dist/routes/page.js +1 -1
- package/dist/routes/product-listing/index.d.ts +7 -1
- package/dist/routes/product-listing/index.d.ts.map +1 -1
- package/dist/routes/product-listing.js +27 -13
- package/dist/routes/product-listing.js.map +1 -1
- package/dist/routes/product.js +6 -6
- package/dist/routes/seo-redirects.d.ts +6 -0
- package/dist/routes/seo-redirects.d.ts.map +1 -1
- package/dist/routes/seo-redirects.js +1 -1
- package/dist/routes/testimonials.js +2 -2
- package/dist/routes/thank-you.js +1 -1
- package/dist/skeleton.js +7 -7
- package/dist/tanstack/document-class.d.ts.map +1 -1
- package/dist/tanstack/router.d.ts.map +1 -1
- package/dist/tanstack.js +2 -2
- package/dist/vite/adapters/tanstack.adapter.d.ts +0 -14
- package/dist/vite/adapters/tanstack.adapter.d.ts.map +1 -1
- package/dist/vite/index.js +45 -40
- package/dist/vite/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/OrderSinglePage-2SPAUVKK.js.map +0 -1
- package/dist/chunk-342EPVXN.js.map +0 -1
- package/dist/chunk-7KZSJQOP.js +0 -14
- package/dist/chunk-BJ5OXLWT.js.map +0 -1
- package/dist/chunk-RYFIWQ6L.js.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { wishlist } from './chunk-EUWKQJNI.js';
|
|
2
2
|
import './chunk-FSCIJ55A.js';
|
|
3
|
-
import { useMoney } from './chunk-
|
|
4
|
-
import './chunk-
|
|
3
|
+
import { useMoney } from './chunk-RJM2BTNL.js';
|
|
4
|
+
import './chunk-6EUHIP3B.js';
|
|
5
5
|
import './chunk-JKIRRMBU.js';
|
|
6
6
|
import './chunk-2JV6WZ6O.js';
|
|
7
7
|
import './chunk-F2YLRVPH.js';
|
|
@@ -28,7 +28,7 @@ import { useTranslation } from './chunk-TYNZ5B2B.js';
|
|
|
28
28
|
import './chunk-V2ZDTY6H.js';
|
|
29
29
|
import { HookSlot } from './chunk-5XDPAKF5.js';
|
|
30
30
|
import './chunk-GCPEMNSU.js';
|
|
31
|
-
import { LazyNoContent, Image } from './chunk-
|
|
31
|
+
import { LazyNoContent, Image } from './chunk-UUCMNR64.js';
|
|
32
32
|
import './chunk-AXW67SY7.js';
|
|
33
33
|
import './chunk-SKLEJJ6M.js';
|
|
34
34
|
import './chunk-BYMOPN2S.js';
|
|
@@ -489,5 +489,5 @@ function WishlistPage(props) {
|
|
|
489
489
|
}
|
|
490
490
|
|
|
491
491
|
export { WishlistPage };
|
|
492
|
-
//# sourceMappingURL=WishlistPage-
|
|
493
|
-
//# sourceMappingURL=WishlistPage-
|
|
492
|
+
//# sourceMappingURL=WishlistPage-EHJ26BHI.js.map
|
|
493
|
+
//# sourceMappingURL=WishlistPage-EHJ26BHI.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/routes/account/wishlist/WishlistShare.tsx","../src/routes/account/wishlist/WishlistPage.tsx"],"names":["SallaSocialShare","useEffect","jsxs","jsx","SallaButton","useRef","useState","useCallback","items"],"mappings":"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","file":"WishlistPage-73Q47YZ5.js","sourcesContent":["import { useCallback, useEffect, useRef, useState } from 'react';\nimport { SallaButton } from '@salla.sa/twilight-components-react/button';\n// The eager (non-deferred) export: the share dialog is opened imperatively through a ref, and the\n// deferred wrapper doesn't attach it until it has hydrated — a click before that would do nothing.\nimport { SallaSocialShareCore as SallaSocialShare } from '@salla.sa/twilight-components-react/social-share';\nimport { useTranslation } from '../../../providers/I18nProvider';\n\ntype ShareResponse = { data?: { url?: string }; url?: string } | undefined;\ntype SocialShareElement = HTMLElement & {\n url?: string;\n refresh?: () => Promise<void>;\n open?: () => Promise<void>;\n close?: () => Promise<void>;\n};\n\n/**\n * Share state for the wishlist page: the \"Share\" dropdown (share the whole list / share\n * specific items), the selection used by \"specific items\", and the share request itself.\n * Mirrors what the SDK's `<salla-wishlist-actions>` does, but drives the page's own React\n * list — that component needs a sibling `<salla-products-list>`, which this page doesn't render.\n */\nexport function useWishlistShare() {\n const [menuOpen, setMenuOpen] = useState(false);\n const [selecting, setSelecting] = useState(false);\n const [selectedIds, setSelectedIds] = useState<number[]>([]);\n const [sharing, setSharing] = useState(false);\n const [shareUrl, setShareUrl] = useState('');\n /** Ids of every product currently rendered (later cursor pages included), for \"select all\". */\n const loadedIdsRef = useRef<number[]>([]);\n const socialShareRef = useRef<SocialShareElement | null>(null);\n\n const share = useCallback(async (ids: number[], selectAll: boolean) => {\n if (!window.salla?.wishlist?.share) return;\n setSharing(true);\n try {\n const response = (await window.salla.wishlist.share(ids, selectAll)) as ShareResponse;\n const url = response?.data?.url || response?.url || '';\n if (!url) return;\n setShareUrl(url);\n const element = socialShareRef.current;\n if (element) {\n element.url = url;\n await element.refresh?.();\n await element.open?.();\n }\n } catch {\n // The SDK reports a failed share itself (notification); nothing to recover here.\n } finally {\n setSharing(false);\n }\n }, []);\n\n const shareAll = useCallback(() => {\n setMenuOpen(false);\n void share([], true);\n }, [share]);\n\n const shareSelected = useCallback(() => {\n if (selectedIds.length) void share(selectedIds, false);\n }, [share, selectedIds]);\n\n const startSelecting = useCallback(() => {\n setMenuOpen(false);\n setSelecting(true);\n }, []);\n\n const cancelSelecting = useCallback(() => {\n setSelecting(false);\n setSelectedIds([]);\n setShareUrl('');\n void socialShareRef.current?.close?.();\n }, []);\n\n const toggleSelected = useCallback((id: number) => {\n setShareUrl('');\n setSelectedIds((current) =>\n current.includes(id) ? current.filter((existing) => existing !== id) : [...current, id]\n );\n }, []);\n\n const selectedIdsRef = useRef(selectedIds);\n useEffect(() => {\n selectedIdsRef.current = selectedIds;\n }, [selectedIds]);\n\n const deselect = useCallback((id: number) => {\n if (!selectedIdsRef.current.includes(id)) return;\n // A link built for the old selection would still offer the removed product.\n setShareUrl('');\n const element = socialShareRef.current;\n if (element) {\n element.url = undefined;\n void element.close?.();\n }\n setSelectedIds((current) => current.filter((existing) => existing !== id));\n }, []);\n\n const toggleAll = useCallback(() => {\n setShareUrl('');\n setSelectedIds((current) =>\n current.length && current.length === loadedIdsRef.current.length\n ? []\n : [...loadedIdsRef.current]\n );\n }, []);\n\n return {\n menuOpen,\n setMenuOpen,\n selecting,\n selectedIds,\n sharing,\n shareUrl,\n loadedIdsRef,\n socialShareRef,\n shareAll,\n shareSelected,\n startSelecting,\n cancelSelecting,\n toggleSelected,\n toggleAll,\n deselect,\n };\n}\n\nexport type WishlistShareState = ReturnType<typeof useWishlistShare>;\n\n/** The bar above the wishlist: the \"Share\" dropdown, or — while picking products — the selection controls. */\nexport function WishlistShareBar({\n state,\n hasProducts,\n}: {\n state: WishlistShareState;\n hasProducts: boolean;\n}) {\n const { t } = useTranslation();\n const rootRef = useRef<HTMLDivElement>(null);\n const { menuOpen, setMenuOpen } = state;\n\n // Close the dropdown on an outside click or Escape.\n useEffect(() => {\n if (!menuOpen) return;\n const onPointerDown = (event: MouseEvent) => {\n if (!rootRef.current?.contains(event.target as Node)) setMenuOpen(false);\n };\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') setMenuOpen(false);\n };\n document.addEventListener('mousedown', onPointerDown);\n document.addEventListener('keydown', onKeyDown);\n return () => {\n document.removeEventListener('mousedown', onPointerDown);\n document.removeEventListener('keydown', onKeyDown);\n };\n }, [menuOpen, setMenuOpen]);\n\n const selectedCount = state.selectedIds.length;\n const allSelected = selectedCount > 0 && selectedCount === state.loadedIdsRef.current.length;\n\n return (\n <div ref={rootRef} className=\"s-wishlist-actions\">\n <div className=\"s-wishlist-actions-bar flex items-center justify-end gap-3 mb-3\">\n {state.selecting ? (\n <div className=\"s-wishlist-actions-selection flex items-center gap-3\">\n <label className=\"s-wishlist-actions-select-all inline-flex items-center gap-2 text-sm\">\n <input\n type=\"checkbox\"\n checked={allSelected}\n ref={(input) => {\n if (input) input.indeterminate = selectedCount > 0 && !allSelected;\n }}\n onChange={state.toggleAll}\n />\n {t('pages.wishlist.select_all', 'Select all')}\n </label>\n <SallaButton\n color=\"primary\"\n disabled={selectedCount === 0 || state.sharing}\n onClick={state.shareSelected}\n >\n {t('pages.wishlist.share', 'Share')}\n {selectedCount > 0 ? ` (${selectedCount})` : ''}\n </SallaButton>\n <SallaButton fill=\"outline\" color=\"light\" onClick={state.cancelSelecting}>\n {t('common.elements.cancel', 'Cancel')}\n </SallaButton>\n </div>\n ) : (\n <div className=\"s-wishlist-actions-dropdown relative\">\n <SallaButton\n color=\"primary\"\n fill=\"outline\"\n disabled={!hasProducts || state.sharing}\n aria-haspopup=\"true\"\n aria-expanded={menuOpen}\n onClick={() => setMenuOpen(!menuOpen)}\n >\n <span className=\"flex items-center justify-center gap-2\">\n <i className=\"sicon-share-alt\" aria-hidden=\"true\" />\n {t('pages.wishlist.share', 'Share')}\n <i className=\"sicon-keyboard_arrow_down\" aria-hidden=\"true\" />\n </span>\n </SallaButton>\n {menuOpen && (\n <ul\n role=\"menu\"\n className=\"s-wishlist-actions-menu absolute z-10 mt-2 min-w-48 rounded-md bg-white py-2 shadow-default rtl:right-0 ltr:left-0\"\n >\n <li role=\"none\">\n <button\n type=\"button\"\n role=\"menuitem\"\n className=\"s-wishlist-actions-item block w-full px-4 py-2 text-start text-sm text-gray-700 hover:bg-gray-50\"\n onClick={state.shareAll}\n >\n {t('pages.wishlist.share_all', 'Share the list')}\n </button>\n </li>\n <li role=\"none\">\n <button\n type=\"button\"\n role=\"menuitem\"\n className=\"s-wishlist-actions-item block w-full px-4 py-2 text-start text-sm text-gray-700 hover:bg-gray-50\"\n onClick={state.startSelecting}\n >\n {t('pages.wishlist.share_specific', 'Share specific items')}\n </button>\n </li>\n </ul>\n )}\n </div>\n )}\n </div>\n {/* Same setup as the SDK's <salla-wishlist-actions>: the centered modal variant, opened by the\n dropdown rather than by the component's own round share button, so the default\n `widget` slot (that button) is replaced by an empty anchor. */}\n <SallaSocialShare\n ref={state.socialShareRef as never}\n url={state.shareUrl || undefined}\n mode=\"modal\"\n modalTitle={t('pages.wishlist.share_list_title', 'Share wishlist')}\n className=\"s-wishlist-actions-social\"\n >\n <span slot=\"widget\" className=\"s-wishlist-actions-social-anchor\" aria-hidden=\"true\" />\n </SallaSocialShare>\n </div>\n );\n}\n","import { useCallback, useEffect, useMemo, useRef, useState, type CSSProperties } from 'react';\nimport { useQueryClient } from '@tanstack/react-query';\nimport { ItemsList } from '@salla.sa/twilight-components-react';\nimport { SallaAddProductButton } from '@salla.sa/twilight-components-react/add-product-button';\nimport { SallaButton } from '@salla.sa/twilight-components-react/button';\nimport { wishlist } from '../../../api/wishlist';\nimport type { Product } from '../../../types';\nimport { HookSlot, useWishlist, useMoney } from '../../../hooks';\nimport { useTranslation } from '../../../providers/I18nProvider';\nimport type { WishlistPageProps } from './types';\nimport { WishlistShareBar, useWishlistShare } from './WishlistShare';\nimport { NoContent, Image } from '../../../components/common';\nimport { useLocation } from '../../../providers/NavigationProvider';\nimport { onSallaEvent } from '../../../utils/sdk-helpers';\n\ninterface WishlistCardSelection {\n /** \"Share specific items\" mode: the card shows a checkbox and toggles on click. */\n selecting: boolean;\n selected: boolean;\n onToggle: (id: number) => void;\n}\n\n// The loaded component copies host attributes (not properties) onto its inner salla-button.\nconst setAddButtonAttributes = (el: HTMLElement | null) => {\n el?.setAttribute('loader-position', 'center');\n el?.setAttribute('fill', 'outline');\n};\n\nconst REMOVING_MS = 300;\n\nconst REMOVING_STYLE: CSSProperties = {\n opacity: 0,\n transform: 'scale(0.95)',\n transition: `opacity ${REMOVING_MS}ms ease-in-out, transform ${REMOVING_MS}ms ease-in-out`,\n};\n\nfunction WishlistCard({\n product: prod,\n selection,\n removing,\n onRemoved,\n}: {\n product: Product;\n selection?: WishlistCardSelection;\n /** Fades the card out, then calls `onRemoved` once the fade ends. */\n removing?: boolean;\n onRemoved?: (id: number) => void;\n}) {\n const { remove } = useWishlist();\n const { format } = useMoney();\n\n // Drops the card even when `transitionend` never fires (hidden tab, overridden styles).\n useEffect(() => {\n if (!removing) return;\n const timer = setTimeout(() => onRemoved?.(Number(prod.id)), REMOVING_MS + 50);\n return () => clearTimeout(timer);\n }, [removing, onRemoved, prod.id]);\n\n const handleRemove = () => {\n if (prod.id) {\n remove(Number(prod.id));\n }\n };\n\n const displayPrice = prod.sale_price ?? prod.price;\n const regularPrice = prod.regular_price;\n\n return (\n <div\n id={`wishlist-product-${prod.id}`}\n className={`product-entry product-entry--wishlist${selection?.selected ? ' is-selected' : ''}`}\n style={removing ? REMOVING_STYLE : undefined}\n onTransitionEnd={(event) => {\n if (removing && event.target === event.currentTarget && event.propertyName === 'opacity') {\n onRemoved?.(Number(prod.id));\n }\n }}\n >\n {selection?.selecting && (\n <input\n type=\"checkbox\"\n className=\"s-wishlist-select shrink-0 rtl:ml-4 ltr:mr-4\"\n aria-label={prod.name}\n checked={selection.selected}\n onChange={() => selection.onToggle(Number(prod.id))}\n />\n )}\n <div className=\"flex items-center mb-4 sm:mb-0\">\n <a href={prod.url} className=\"product-entry__image\">\n <Image\n className=\"object-cover w-full h-full\"\n src={prod.image?.url}\n alt={prod.image?.alt ?? prod.name}\n aspectRatio=\"1/1\"\n />\n </a>\n <div className=\"flex-1 rtl:pr-5 ltr:pl-5\">\n <h3 className=\"text-sm text-gray-800 leading-6 mb-1.5 rtl:pl-5 ltr:pr-5 rtl:md:pl-8 ltr:md:pr-8 line-clamp-1\">\n <a href={prod.url}>{prod.name}</a>\n </h3>\n <div className=\"w-full center-between\">\n {prod.is_on_sale && regularPrice ? (\n <div className=\"space-x-1 rtl:space-x-reverse\">\n <h4 className=\"inline-block text-sm font-bold text-red-400\">\n {format(displayPrice)}\n </h4>\n <span className=\"text-sm text-gray-500 line-through\">{format(regularPrice)}</span>\n </div>\n ) : (\n <h4 className=\"text-sm font-bold\">{format(displayPrice)}</h4>\n )}\n </div>\n </div>\n </div>\n <div className=\"flex items-center space-x-4 rtl:space-x-reverse\">\n <SallaAddProductButton\n ref={setAddButtonAttributes}\n productStatus={prod.status}\n productId={prod.id}\n productType={prod.type}\n loaderPosition=\"center\"\n fill=\"outline\"\n className=\"flex-grow w-full sm:grow-0 md:w-40\"\n />\n <SallaButton\n loaderPosition=\"center\"\n shape=\"icon\"\n size=\"small\"\n color=\"danger\"\n className=\"btn--delete\"\n onClick={handleRemove}\n >\n <i className=\"sicon-cancel\" />\n </SallaButton>\n </div>\n </div>\n );\n}\n\n/** The loaded wishlist pages, reloaded from the server once every loaded card is removed (like Twig). */\nfunction useWishlistItems(\n { query, products, pagination }: WishlistPageProps,\n onRemoved: (id: number) => void\n) {\n const queryClient = useQueryClient();\n // Track the next page to load (starts at page 2 since page 1 is SSR)\n const nextPageRef = useRef(query.page + 1);\n const [removedIds, setRemovedIds] = useState<ReadonlySet<number>>(() => new Set());\n const [removingIds, setRemovingIds] = useState<ReadonlySet<number>>(() => new Set());\n const [reloaded, setReloaded] = useState<{\n items: Product[];\n next: string | null;\n generation: number;\n } | null>(null);\n const loadedRef = useRef({\n ids: products.map((prod) => Number(prod.id)),\n hasMore: !!pagination?.next,\n });\n\n // A `?page=` navigation keeps this instance, so drop what the previous page removed or reloaded.\n const [loadedProducts, setLoadedProducts] = useState(products);\n if (loadedProducts !== products) {\n setLoadedProducts(products);\n setRemovedIds(new Set());\n setRemovingIds(new Set());\n setReloaded(null);\n }\n\n useEffect(() => {\n nextPageRef.current = query.page + 1;\n loadedRef.current = {\n ids: products.map((prod) => Number(prod.id)),\n hasMore: !!pagination?.next,\n };\n }, [products, query.page, pagination?.next]);\n\n useEffect(() => {\n const handleRemoved = (_response: unknown, id: unknown) => {\n const reduceMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n (reduceMotion ? setRemovedIds : setRemovingIds)((current) =>\n new Set(current).add(Number(id))\n );\n onRemoved(Number(id));\n };\n\n return onSallaEvent('wishlist::removed', handleRemoved);\n }, [onRemoved]);\n\n useEffect(() => {\n const { ids, hasMore } = loadedRef.current;\n if (!ids.length || !ids.every((id) => removedIds.has(id))) return;\n\n const reset = (items: Product[], next: string | null) => {\n nextPageRef.current = query.page + 1;\n loadedRef.current = { ids: items.map((prod) => Number(prod.id)), hasMore: !!next };\n setRemovedIds(new Set());\n setRemovingIds(new Set());\n setReloaded((current) => ({ items, next, generation: (current?.generation ?? 0) + 1 }));\n };\n\n if (!hasMore) {\n reset([], null);\n return;\n }\n\n let cancelled = false;\n queryClient\n .fetchQuery({ ...wishlist.queries.list({ page: query.page }), staleTime: 0 })\n .then((result) => {\n if (!cancelled) reset(result.items, result.next);\n })\n // A failed reload keeps the list as it is; later pages still load on scroll.\n .catch(() => undefined);\n return () => {\n cancelled = true;\n };\n }, [removedIds, query.page, products, queryClient]);\n\n const loader = async () => {\n const pageToLoad = nextPageRef.current;\n const result = await wishlist.list({ page: pageToLoad });\n\n nextPageRef.current = pageToLoad + 1;\n loadedRef.current = {\n ids: [...loadedRef.current.ids, ...result.items.map((prod) => Number(prod.id))],\n hasMore: !!result.next,\n };\n\n return {\n items: result.items,\n next: result.next,\n };\n };\n\n const finishRemoving = useCallback((id: number) => {\n setRemovedIds((current) => (current.has(id) ? current : new Set(current).add(id)));\n }, []);\n\n return {\n items: reloaded ? reloaded.items : products,\n next: reloaded ? reloaded.next : pagination?.next,\n generation: reloaded?.generation ?? 0,\n removedIds,\n removingIds,\n finishRemoving,\n loader,\n };\n}\n\nexport function WishlistPage(props: WishlistPageProps) {\n const { t } = useTranslation();\n const { pathname, searchStr } = useLocation();\n const shareState = useWishlistShare();\n const selectedIdSet = useMemo(() => new Set(shareState.selectedIds), [shareState.selectedIds]);\n const { items, next, generation, removedIds, removingIds, finishRemoving, loader } =\n useWishlistItems(props, shareState.deselect);\n const hasRemaining = items.some((prod) => !removedIds.has(Number(prod.id)));\n\n return (\n <div className=\"space-y-5\" id=\"wishlist\">\n <HookSlot name=\"customer:wishlist.items.start\" />\n <WishlistShareBar state={shareState} hasProducts={hasRemaining || !!next} />\n <ItemsList<Product>\n key={generation}\n items={items}\n loader={loader}\n mode={next ? 'infinite' : 'static'}\n pageUrl={pathname + searchStr}\n className=\"s-products-list\"\n itemsClassName=\"s-products-list-wrapper s-products-list-row-cards\"\n empty={\n <div className=\"text-center py-16\">\n <NoContent\n icon=\"sicon-heart\"\n message={t('common.errors.no_wishlist', \"You don't have any wishes\")}\n actionLabel={t('pages.offer.continue_shopping', 'Continue shopping')}\n actionUrl=\"/\"\n />\n </div>\n }\n t={(key, fallback) => t(key, fallback || key)}\n >\n {(items) => {\n const remaining = items.filter((item) => !removedIds.has(Number(item.id)));\n shareState.loadedIdsRef.current = remaining.map((item) => Number(item.id));\n return remaining.map((prod) => (\n <WishlistCard\n key={prod.id}\n product={prod}\n removing={removingIds.has(Number(prod.id))}\n onRemoved={finishRemoving}\n selection={{\n selecting: shareState.selecting,\n selected: selectedIdSet.has(Number(prod.id)),\n onToggle: shareState.toggleSelected,\n }}\n />\n ));\n }}\n </ItemsList>\n <HookSlot name=\"customer:wishlist.items.end\" />\n </div>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/routes/account/wishlist/WishlistShare.tsx","../src/routes/account/wishlist/WishlistPage.tsx"],"names":["SallaSocialShare","useEffect","jsxs","jsx","SallaButton","useRef","useState","useCallback","items"],"mappings":"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","file":"WishlistPage-EHJ26BHI.js","sourcesContent":["import { useCallback, useEffect, useRef, useState } from 'react';\nimport { SallaButton } from '@salla.sa/twilight-components-react/button';\n// The eager (non-deferred) export: the share dialog is opened imperatively through a ref, and the\n// deferred wrapper doesn't attach it until it has hydrated — a click before that would do nothing.\nimport { SallaSocialShareCore as SallaSocialShare } from '@salla.sa/twilight-components-react/social-share';\nimport { useTranslation } from '../../../providers/I18nProvider';\n\ntype ShareResponse = { data?: { url?: string }; url?: string } | undefined;\ntype SocialShareElement = HTMLElement & {\n url?: string;\n refresh?: () => Promise<void>;\n open?: () => Promise<void>;\n close?: () => Promise<void>;\n};\n\n/**\n * Share state for the wishlist page: the \"Share\" dropdown (share the whole list / share\n * specific items), the selection used by \"specific items\", and the share request itself.\n * Mirrors what the SDK's `<salla-wishlist-actions>` does, but drives the page's own React\n * list — that component needs a sibling `<salla-products-list>`, which this page doesn't render.\n */\nexport function useWishlistShare() {\n const [menuOpen, setMenuOpen] = useState(false);\n const [selecting, setSelecting] = useState(false);\n const [selectedIds, setSelectedIds] = useState<number[]>([]);\n const [sharing, setSharing] = useState(false);\n const [shareUrl, setShareUrl] = useState('');\n /** Ids of every product currently rendered (later cursor pages included), for \"select all\". */\n const loadedIdsRef = useRef<number[]>([]);\n const socialShareRef = useRef<SocialShareElement | null>(null);\n\n const share = useCallback(async (ids: number[], selectAll: boolean) => {\n if (!window.salla?.wishlist?.share) return;\n setSharing(true);\n try {\n const response = (await window.salla.wishlist.share(ids, selectAll)) as ShareResponse;\n const url = response?.data?.url || response?.url || '';\n if (!url) return;\n setShareUrl(url);\n const element = socialShareRef.current;\n if (element) {\n element.url = url;\n await element.refresh?.();\n await element.open?.();\n }\n } catch {\n // The SDK reports a failed share itself (notification); nothing to recover here.\n } finally {\n setSharing(false);\n }\n }, []);\n\n const shareAll = useCallback(() => {\n setMenuOpen(false);\n void share([], true);\n }, [share]);\n\n const shareSelected = useCallback(() => {\n if (selectedIds.length) void share(selectedIds, false);\n }, [share, selectedIds]);\n\n const startSelecting = useCallback(() => {\n setMenuOpen(false);\n setSelecting(true);\n }, []);\n\n const cancelSelecting = useCallback(() => {\n setSelecting(false);\n setSelectedIds([]);\n setShareUrl('');\n void socialShareRef.current?.close?.();\n }, []);\n\n const toggleSelected = useCallback((id: number) => {\n setShareUrl('');\n setSelectedIds((current) =>\n current.includes(id) ? current.filter((existing) => existing !== id) : [...current, id]\n );\n }, []);\n\n const selectedIdsRef = useRef(selectedIds);\n useEffect(() => {\n selectedIdsRef.current = selectedIds;\n }, [selectedIds]);\n\n const deselect = useCallback((id: number) => {\n if (!selectedIdsRef.current.includes(id)) return;\n // A link built for the old selection would still offer the removed product.\n setShareUrl('');\n const element = socialShareRef.current;\n if (element) {\n element.url = undefined;\n void element.close?.();\n }\n setSelectedIds((current) => current.filter((existing) => existing !== id));\n }, []);\n\n const toggleAll = useCallback(() => {\n setShareUrl('');\n setSelectedIds((current) =>\n current.length && current.length === loadedIdsRef.current.length\n ? []\n : [...loadedIdsRef.current]\n );\n }, []);\n\n return {\n menuOpen,\n setMenuOpen,\n selecting,\n selectedIds,\n sharing,\n shareUrl,\n loadedIdsRef,\n socialShareRef,\n shareAll,\n shareSelected,\n startSelecting,\n cancelSelecting,\n toggleSelected,\n toggleAll,\n deselect,\n };\n}\n\nexport type WishlistShareState = ReturnType<typeof useWishlistShare>;\n\n/** The bar above the wishlist: the \"Share\" dropdown, or — while picking products — the selection controls. */\nexport function WishlistShareBar({\n state,\n hasProducts,\n}: {\n state: WishlistShareState;\n hasProducts: boolean;\n}) {\n const { t } = useTranslation();\n const rootRef = useRef<HTMLDivElement>(null);\n const { menuOpen, setMenuOpen } = state;\n\n // Close the dropdown on an outside click or Escape.\n useEffect(() => {\n if (!menuOpen) return;\n const onPointerDown = (event: MouseEvent) => {\n if (!rootRef.current?.contains(event.target as Node)) setMenuOpen(false);\n };\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') setMenuOpen(false);\n };\n document.addEventListener('mousedown', onPointerDown);\n document.addEventListener('keydown', onKeyDown);\n return () => {\n document.removeEventListener('mousedown', onPointerDown);\n document.removeEventListener('keydown', onKeyDown);\n };\n }, [menuOpen, setMenuOpen]);\n\n const selectedCount = state.selectedIds.length;\n const allSelected = selectedCount > 0 && selectedCount === state.loadedIdsRef.current.length;\n\n return (\n <div ref={rootRef} className=\"s-wishlist-actions\">\n <div className=\"s-wishlist-actions-bar flex items-center justify-end gap-3 mb-3\">\n {state.selecting ? (\n <div className=\"s-wishlist-actions-selection flex items-center gap-3\">\n <label className=\"s-wishlist-actions-select-all inline-flex items-center gap-2 text-sm\">\n <input\n type=\"checkbox\"\n checked={allSelected}\n ref={(input) => {\n if (input) input.indeterminate = selectedCount > 0 && !allSelected;\n }}\n onChange={state.toggleAll}\n />\n {t('pages.wishlist.select_all', 'Select all')}\n </label>\n <SallaButton\n color=\"primary\"\n disabled={selectedCount === 0 || state.sharing}\n onClick={state.shareSelected}\n >\n {t('pages.wishlist.share', 'Share')}\n {selectedCount > 0 ? ` (${selectedCount})` : ''}\n </SallaButton>\n <SallaButton fill=\"outline\" color=\"light\" onClick={state.cancelSelecting}>\n {t('common.elements.cancel', 'Cancel')}\n </SallaButton>\n </div>\n ) : (\n <div className=\"s-wishlist-actions-dropdown relative\">\n <SallaButton\n color=\"primary\"\n fill=\"outline\"\n disabled={!hasProducts || state.sharing}\n aria-haspopup=\"true\"\n aria-expanded={menuOpen}\n onClick={() => setMenuOpen(!menuOpen)}\n >\n <span className=\"flex items-center justify-center gap-2\">\n <i className=\"sicon-share-alt\" aria-hidden=\"true\" />\n {t('pages.wishlist.share', 'Share')}\n <i className=\"sicon-keyboard_arrow_down\" aria-hidden=\"true\" />\n </span>\n </SallaButton>\n {menuOpen && (\n <ul\n role=\"menu\"\n className=\"s-wishlist-actions-menu absolute z-10 mt-2 min-w-48 rounded-md bg-white py-2 shadow-default rtl:right-0 ltr:left-0\"\n >\n <li role=\"none\">\n <button\n type=\"button\"\n role=\"menuitem\"\n className=\"s-wishlist-actions-item block w-full px-4 py-2 text-start text-sm text-gray-700 hover:bg-gray-50\"\n onClick={state.shareAll}\n >\n {t('pages.wishlist.share_all', 'Share the list')}\n </button>\n </li>\n <li role=\"none\">\n <button\n type=\"button\"\n role=\"menuitem\"\n className=\"s-wishlist-actions-item block w-full px-4 py-2 text-start text-sm text-gray-700 hover:bg-gray-50\"\n onClick={state.startSelecting}\n >\n {t('pages.wishlist.share_specific', 'Share specific items')}\n </button>\n </li>\n </ul>\n )}\n </div>\n )}\n </div>\n {/* Same setup as the SDK's <salla-wishlist-actions>: the centered modal variant, opened by the\n dropdown rather than by the component's own round share button, so the default\n `widget` slot (that button) is replaced by an empty anchor. */}\n <SallaSocialShare\n ref={state.socialShareRef as never}\n url={state.shareUrl || undefined}\n mode=\"modal\"\n modalTitle={t('pages.wishlist.share_list_title', 'Share wishlist')}\n className=\"s-wishlist-actions-social\"\n >\n <span slot=\"widget\" className=\"s-wishlist-actions-social-anchor\" aria-hidden=\"true\" />\n </SallaSocialShare>\n </div>\n );\n}\n","import { useCallback, useEffect, useMemo, useRef, useState, type CSSProperties } from 'react';\nimport { useQueryClient } from '@tanstack/react-query';\nimport { ItemsList } from '@salla.sa/twilight-components-react';\nimport { SallaAddProductButton } from '@salla.sa/twilight-components-react/add-product-button';\nimport { SallaButton } from '@salla.sa/twilight-components-react/button';\nimport { wishlist } from '../../../api/wishlist';\nimport type { Product } from '../../../types';\nimport { HookSlot, useWishlist, useMoney } from '../../../hooks';\nimport { useTranslation } from '../../../providers/I18nProvider';\nimport type { WishlistPageProps } from './types';\nimport { WishlistShareBar, useWishlistShare } from './WishlistShare';\nimport { NoContent, Image } from '../../../components/common';\nimport { useLocation } from '../../../providers/NavigationProvider';\nimport { onSallaEvent } from '../../../utils/sdk-helpers';\n\ninterface WishlistCardSelection {\n /** \"Share specific items\" mode: the card shows a checkbox and toggles on click. */\n selecting: boolean;\n selected: boolean;\n onToggle: (id: number) => void;\n}\n\n// The loaded component copies host attributes (not properties) onto its inner salla-button.\nconst setAddButtonAttributes = (el: HTMLElement | null) => {\n el?.setAttribute('loader-position', 'center');\n el?.setAttribute('fill', 'outline');\n};\n\nconst REMOVING_MS = 300;\n\nconst REMOVING_STYLE: CSSProperties = {\n opacity: 0,\n transform: 'scale(0.95)',\n transition: `opacity ${REMOVING_MS}ms ease-in-out, transform ${REMOVING_MS}ms ease-in-out`,\n};\n\nfunction WishlistCard({\n product: prod,\n selection,\n removing,\n onRemoved,\n}: {\n product: Product;\n selection?: WishlistCardSelection;\n /** Fades the card out, then calls `onRemoved` once the fade ends. */\n removing?: boolean;\n onRemoved?: (id: number) => void;\n}) {\n const { remove } = useWishlist();\n const { format } = useMoney();\n\n // Drops the card even when `transitionend` never fires (hidden tab, overridden styles).\n useEffect(() => {\n if (!removing) return;\n const timer = setTimeout(() => onRemoved?.(Number(prod.id)), REMOVING_MS + 50);\n return () => clearTimeout(timer);\n }, [removing, onRemoved, prod.id]);\n\n const handleRemove = () => {\n if (prod.id) {\n remove(Number(prod.id));\n }\n };\n\n const displayPrice = prod.sale_price ?? prod.price;\n const regularPrice = prod.regular_price;\n\n return (\n <div\n id={`wishlist-product-${prod.id}`}\n className={`product-entry product-entry--wishlist${selection?.selected ? ' is-selected' : ''}`}\n style={removing ? REMOVING_STYLE : undefined}\n onTransitionEnd={(event) => {\n if (removing && event.target === event.currentTarget && event.propertyName === 'opacity') {\n onRemoved?.(Number(prod.id));\n }\n }}\n >\n {selection?.selecting && (\n <input\n type=\"checkbox\"\n className=\"s-wishlist-select shrink-0 rtl:ml-4 ltr:mr-4\"\n aria-label={prod.name}\n checked={selection.selected}\n onChange={() => selection.onToggle(Number(prod.id))}\n />\n )}\n <div className=\"flex items-center mb-4 sm:mb-0\">\n <a href={prod.url} className=\"product-entry__image\">\n <Image\n className=\"object-cover w-full h-full\"\n src={prod.image?.url}\n alt={prod.image?.alt ?? prod.name}\n aspectRatio=\"1/1\"\n />\n </a>\n <div className=\"flex-1 rtl:pr-5 ltr:pl-5\">\n <h3 className=\"text-sm text-gray-800 leading-6 mb-1.5 rtl:pl-5 ltr:pr-5 rtl:md:pl-8 ltr:md:pr-8 line-clamp-1\">\n <a href={prod.url}>{prod.name}</a>\n </h3>\n <div className=\"w-full center-between\">\n {prod.is_on_sale && regularPrice ? (\n <div className=\"space-x-1 rtl:space-x-reverse\">\n <h4 className=\"inline-block text-sm font-bold text-red-400\">\n {format(displayPrice)}\n </h4>\n <span className=\"text-sm text-gray-500 line-through\">{format(regularPrice)}</span>\n </div>\n ) : (\n <h4 className=\"text-sm font-bold\">{format(displayPrice)}</h4>\n )}\n </div>\n </div>\n </div>\n <div className=\"flex items-center space-x-4 rtl:space-x-reverse\">\n <SallaAddProductButton\n ref={setAddButtonAttributes}\n productStatus={prod.status}\n productId={prod.id}\n productType={prod.type}\n loaderPosition=\"center\"\n fill=\"outline\"\n className=\"flex-grow w-full sm:grow-0 md:w-40\"\n />\n <SallaButton\n loaderPosition=\"center\"\n shape=\"icon\"\n size=\"small\"\n color=\"danger\"\n className=\"btn--delete\"\n onClick={handleRemove}\n >\n <i className=\"sicon-cancel\" />\n </SallaButton>\n </div>\n </div>\n );\n}\n\n/** The loaded wishlist pages, reloaded from the server once every loaded card is removed (like Twig). */\nfunction useWishlistItems(\n { query, products, pagination }: WishlistPageProps,\n onRemoved: (id: number) => void\n) {\n const queryClient = useQueryClient();\n // Track the next page to load (starts at page 2 since page 1 is SSR)\n const nextPageRef = useRef(query.page + 1);\n const [removedIds, setRemovedIds] = useState<ReadonlySet<number>>(() => new Set());\n const [removingIds, setRemovingIds] = useState<ReadonlySet<number>>(() => new Set());\n const [reloaded, setReloaded] = useState<{\n items: Product[];\n next: string | null;\n generation: number;\n } | null>(null);\n const loadedRef = useRef({\n ids: products.map((prod) => Number(prod.id)),\n hasMore: !!pagination?.next,\n });\n\n // A `?page=` navigation keeps this instance, so drop what the previous page removed or reloaded.\n const [loadedProducts, setLoadedProducts] = useState(products);\n if (loadedProducts !== products) {\n setLoadedProducts(products);\n setRemovedIds(new Set());\n setRemovingIds(new Set());\n setReloaded(null);\n }\n\n useEffect(() => {\n nextPageRef.current = query.page + 1;\n loadedRef.current = {\n ids: products.map((prod) => Number(prod.id)),\n hasMore: !!pagination?.next,\n };\n }, [products, query.page, pagination?.next]);\n\n useEffect(() => {\n const handleRemoved = (_response: unknown, id: unknown) => {\n const reduceMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n (reduceMotion ? setRemovedIds : setRemovingIds)((current) =>\n new Set(current).add(Number(id))\n );\n onRemoved(Number(id));\n };\n\n return onSallaEvent('wishlist::removed', handleRemoved);\n }, [onRemoved]);\n\n useEffect(() => {\n const { ids, hasMore } = loadedRef.current;\n if (!ids.length || !ids.every((id) => removedIds.has(id))) return;\n\n const reset = (items: Product[], next: string | null) => {\n nextPageRef.current = query.page + 1;\n loadedRef.current = { ids: items.map((prod) => Number(prod.id)), hasMore: !!next };\n setRemovedIds(new Set());\n setRemovingIds(new Set());\n setReloaded((current) => ({ items, next, generation: (current?.generation ?? 0) + 1 }));\n };\n\n if (!hasMore) {\n reset([], null);\n return;\n }\n\n let cancelled = false;\n queryClient\n .fetchQuery({ ...wishlist.queries.list({ page: query.page }), staleTime: 0 })\n .then((result) => {\n if (!cancelled) reset(result.items, result.next);\n })\n // A failed reload keeps the list as it is; later pages still load on scroll.\n .catch(() => undefined);\n return () => {\n cancelled = true;\n };\n }, [removedIds, query.page, products, queryClient]);\n\n const loader = async () => {\n const pageToLoad = nextPageRef.current;\n const result = await wishlist.list({ page: pageToLoad });\n\n nextPageRef.current = pageToLoad + 1;\n loadedRef.current = {\n ids: [...loadedRef.current.ids, ...result.items.map((prod) => Number(prod.id))],\n hasMore: !!result.next,\n };\n\n return {\n items: result.items,\n next: result.next,\n };\n };\n\n const finishRemoving = useCallback((id: number) => {\n setRemovedIds((current) => (current.has(id) ? current : new Set(current).add(id)));\n }, []);\n\n return {\n items: reloaded ? reloaded.items : products,\n next: reloaded ? reloaded.next : pagination?.next,\n generation: reloaded?.generation ?? 0,\n removedIds,\n removingIds,\n finishRemoving,\n loader,\n };\n}\n\nexport function WishlistPage(props: WishlistPageProps) {\n const { t } = useTranslation();\n const { pathname, searchStr } = useLocation();\n const shareState = useWishlistShare();\n const selectedIdSet = useMemo(() => new Set(shareState.selectedIds), [shareState.selectedIds]);\n const { items, next, generation, removedIds, removingIds, finishRemoving, loader } =\n useWishlistItems(props, shareState.deselect);\n const hasRemaining = items.some((prod) => !removedIds.has(Number(prod.id)));\n\n return (\n <div className=\"space-y-5\" id=\"wishlist\">\n <HookSlot name=\"customer:wishlist.items.start\" />\n <WishlistShareBar state={shareState} hasProducts={hasRemaining || !!next} />\n <ItemsList<Product>\n key={generation}\n items={items}\n loader={loader}\n mode={next ? 'infinite' : 'static'}\n pageUrl={pathname + searchStr}\n className=\"s-products-list\"\n itemsClassName=\"s-products-list-wrapper s-products-list-row-cards\"\n empty={\n <div className=\"text-center py-16\">\n <NoContent\n icon=\"sicon-heart\"\n message={t('common.errors.no_wishlist', \"You don't have any wishes\")}\n actionLabel={t('pages.offer.continue_shopping', 'Continue shopping')}\n actionUrl=\"/\"\n />\n </div>\n }\n t={(key, fallback) => t(key, fallback || key)}\n >\n {(items) => {\n const remaining = items.filter((item) => !removedIds.has(Number(item.id)));\n shareState.loadedIdsRef.current = remaining.map((item) => Number(item.id));\n return remaining.map((prod) => (\n <WishlistCard\n key={prod.id}\n product={prod}\n removing={removingIds.has(Number(prod.id))}\n onRemoved={finishRemoving}\n selection={{\n selecting: shareState.selecting,\n selected: selectedIdSet.has(Number(prod.id)),\n onToggle: shareState.toggleSelected,\n }}\n />\n ));\n }}\n </ItemsList>\n <HookSlot name=\"customer:wishlist.items.end\" />\n </div>\n );\n}\n"]}
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import { lazy } from 'react';
|
|
2
2
|
|
|
3
3
|
// src/components/layout/lazy.ts
|
|
4
|
-
var LazyHeader = lazy(() => import('./Header-
|
|
5
|
-
var LazyFooter = lazy(() => import('./Footer-
|
|
4
|
+
var LazyHeader = lazy(() => import('./Header-PMFY3IDC.js').then((m) => ({ default: m.Header })));
|
|
5
|
+
var LazyFooter = lazy(() => import('./Footer-JGDLKYDB.js').then((m) => ({ default: m.Footer })));
|
|
6
6
|
var LazyCopyright = lazy(
|
|
7
|
-
() => import('./Copyright-
|
|
7
|
+
() => import('./Copyright-RZXDW5DC.js').then((m) => ({ default: m.Copyright }))
|
|
8
8
|
);
|
|
9
9
|
var LazyMasterLayout = lazy(
|
|
10
|
-
() => import('./MasterLayout-
|
|
10
|
+
() => import('./MasterLayout-3QNCTTQT.js').then((m) => ({ default: m.MasterLayout }))
|
|
11
11
|
);
|
|
12
12
|
var LazyWidgetHead = lazy(
|
|
13
13
|
() => import('./WidgetHead-BCRIXIJQ.js').then((m) => ({ default: m.WidgetHead }))
|
|
14
14
|
);
|
|
15
15
|
var LazyCustomerLayout = lazy(
|
|
16
|
-
() => import('./CustomerLayout-
|
|
16
|
+
() => import('./CustomerLayout-6UKHOOZK.js').then((m) => ({ default: m.CustomerLayout }))
|
|
17
17
|
);
|
|
18
18
|
|
|
19
19
|
export { LazyCopyright, LazyCustomerLayout, LazyFooter, LazyHeader, LazyMasterLayout, LazyWidgetHead };
|
|
20
|
-
//# sourceMappingURL=chunk-
|
|
21
|
-
//# sourceMappingURL=chunk-
|
|
20
|
+
//# sourceMappingURL=chunk-66YVVUDG.js.map
|
|
21
|
+
//# sourceMappingURL=chunk-66YVVUDG.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/layout/lazy.ts"],"names":[],"mappings":";;;AAMO,IAAM,UAAA,GAAa,IAAA,CAAK,MAAM,OAAO,sBAAU,CAAA,CAAE,IAAA,CAAK,CAAC,CAAA,MAAO,EAAE,OAAA,EAAS,CAAA,CAAE,MAAA,GAAS,CAAC;AAErF,IAAM,UAAA,GAAa,IAAA,CAAK,MAAM,OAAO,sBAAU,CAAA,CAAE,IAAA,CAAK,CAAC,CAAA,MAAO,EAAE,OAAA,EAAS,CAAA,CAAE,MAAA,GAAS,CAAC;AAErF,IAAM,aAAA,GAAgB,IAAA;AAAA,EAAK,MAChC,OAAO,yBAAa,CAAA,CAAE,IAAA,CAAK,CAAC,CAAA,MAAO,EAAE,OAAA,EAAS,CAAA,CAAE,SAAA,EAAU,CAAE;AAC9D;AAEO,IAAM,gBAAA,GAAmB,IAAA;AAAA,EAAK,MACnC,OAAO,4BAAgB,CAAA,CAAE,IAAA,CAAK,CAAC,CAAA,MAAO,EAAE,OAAA,EAAS,CAAA,CAAE,YAAA,EAAa,CAAE;AACpE;AAEO,IAAM,cAAA,GAAiB,IAAA;AAAA,EAAK,MACjC,OAAO,0BAAc,CAAA,CAAE,IAAA,CAAK,CAAC,CAAA,MAAO,EAAE,OAAA,EAAS,CAAA,CAAE,UAAA,EAAW,CAAE;AAChE;AAEO,IAAM,kBAAA,GAAqB,IAAA;AAAA,EAAK,MACrC,OAAO,8BAAkB,CAAA,CAAE,IAAA,CAAK,CAAC,CAAA,MAAO,EAAE,OAAA,EAAS,CAAA,CAAE,cAAA,EAAe,CAAE;AACxE","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/components/layout/lazy.ts"],"names":[],"mappings":";;;AAMO,IAAM,UAAA,GAAa,IAAA,CAAK,MAAM,OAAO,sBAAU,CAAA,CAAE,IAAA,CAAK,CAAC,CAAA,MAAO,EAAE,OAAA,EAAS,CAAA,CAAE,MAAA,GAAS,CAAC;AAErF,IAAM,UAAA,GAAa,IAAA,CAAK,MAAM,OAAO,sBAAU,CAAA,CAAE,IAAA,CAAK,CAAC,CAAA,MAAO,EAAE,OAAA,EAAS,CAAA,CAAE,MAAA,GAAS,CAAC;AAErF,IAAM,aAAA,GAAgB,IAAA;AAAA,EAAK,MAChC,OAAO,yBAAa,CAAA,CAAE,IAAA,CAAK,CAAC,CAAA,MAAO,EAAE,OAAA,EAAS,CAAA,CAAE,SAAA,EAAU,CAAE;AAC9D;AAEO,IAAM,gBAAA,GAAmB,IAAA;AAAA,EAAK,MACnC,OAAO,4BAAgB,CAAA,CAAE,IAAA,CAAK,CAAC,CAAA,MAAO,EAAE,OAAA,EAAS,CAAA,CAAE,YAAA,EAAa,CAAE;AACpE;AAEO,IAAM,cAAA,GAAiB,IAAA;AAAA,EAAK,MACjC,OAAO,0BAAc,CAAA,CAAE,IAAA,CAAK,CAAC,CAAA,MAAO,EAAE,OAAA,EAAS,CAAA,CAAE,UAAA,EAAW,CAAE;AAChE;AAEO,IAAM,kBAAA,GAAqB,IAAA;AAAA,EAAK,MACrC,OAAO,8BAAkB,CAAA,CAAE,IAAA,CAAK,CAAC,CAAA,MAAO,EAAE,OAAA,EAAS,CAAA,CAAE,cAAA,EAAe,CAAE;AACxE","file":"chunk-66YVVUDG.js","sourcesContent":["import { lazy } from 'react';\n\n/**\n * Lazy-loaded layout components\n * Use these for code-splitting layout sections\n */\nexport const LazyHeader = lazy(() => import('./Header').then((m) => ({ default: m.Header })));\n\nexport const LazyFooter = lazy(() => import('./Footer').then((m) => ({ default: m.Footer })));\n\nexport const LazyCopyright = lazy(() =>\n import('./Copyright').then((m) => ({ default: m.Copyright }))\n);\n\nexport const LazyMasterLayout = lazy(() =>\n import('./MasterLayout').then((m) => ({ default: m.MasterLayout }))\n);\n\nexport const LazyWidgetHead = lazy(() =>\n import('./WidgetHead').then((m) => ({ default: m.WidgetHead }))\n);\n\nexport const LazyCustomerLayout = lazy(() =>\n import('./CustomerLayout').then((m) => ({ default: m.CustomerLayout }))\n);\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useIsHome } from './chunk-VPPSRRGK.js';
|
|
2
2
|
import { useTranslation } from './chunk-TYNZ5B2B.js';
|
|
3
3
|
import { HookSlot } from './chunk-5XDPAKF5.js';
|
|
4
|
-
import { Image } from './chunk-
|
|
4
|
+
import { Image } from './chunk-UUCMNR64.js';
|
|
5
5
|
import { useTwilight } from './chunk-DF6FBKDN.js';
|
|
6
6
|
import { lazy, useState } from 'react';
|
|
7
7
|
import { SallaAdvertisement } from '@salla.sa/twilight-components-react/advertisement';
|
|
@@ -13,9 +13,9 @@ import { SallaSearch } from '@salla.sa/twilight-components-react/search';
|
|
|
13
13
|
import { SallaUserMenu } from '@salla.sa/twilight-components-react/user-menu';
|
|
14
14
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
15
15
|
|
|
16
|
-
var LazyMainMenu = lazy(() => import('./MainMenu-
|
|
16
|
+
var LazyMainMenu = lazy(() => import('./MainMenu-QFR5Y5GO.js').then((m) => ({ default: m.MainMenu })));
|
|
17
17
|
var LazyMobileMenu = lazy(
|
|
18
|
-
() => import('./MobileMenu-
|
|
18
|
+
() => import('./MobileMenu-Q6TQ6KB3.js').then((m) => ({ default: m.MobileMenu }))
|
|
19
19
|
);
|
|
20
20
|
function Header(_props) {
|
|
21
21
|
const { currency, theme, store } = useTwilight();
|
|
@@ -120,5 +120,5 @@ function Header(_props) {
|
|
|
120
120
|
}
|
|
121
121
|
|
|
122
122
|
export { Header };
|
|
123
|
-
//# sourceMappingURL=chunk-
|
|
124
|
-
//# sourceMappingURL=chunk-
|
|
123
|
+
//# sourceMappingURL=chunk-6EUHIP3B.js.map
|
|
124
|
+
//# sourceMappingURL=chunk-6EUHIP3B.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/navigation/lazy.ts","../src/components/layout/Header.tsx"],"names":[],"mappings":"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","file":"chunk-6OC3LPYW.js","sourcesContent":["import { lazy } from 'react';\n\n/**\n * Lazy-loaded navigation components\n * Use these for code-splitting navigation sections\n */\nexport const LazyMainMenu = lazy(() => import('./MainMenu').then((m) => ({ default: m.MainMenu })));\n\nexport const LazyMobileMenu = lazy(() =>\n import('./MobileMenu').then((m) => ({ default: m.MobileMenu }))\n);\n","import { useState } from 'react';\nimport { useIsHome } from '../../providers/NavigationProvider';\nimport { SallaAdvertisement } from '@salla.sa/twilight-components-react/advertisement';\nimport { SallaCartSummary } from '@salla.sa/twilight-components-react/cart-summary';\nimport { SallaContacts } from '@salla.sa/twilight-components-react/contacts';\nimport { SallaLocalizationModal } from '@salla.sa/twilight-components-react/localization-modal';\nimport { SallaMenu } from '@salla.sa/twilight-components-react/menu';\nimport { SallaSearch } from '@salla.sa/twilight-components-react/search';\nimport { SallaUserMenu } from '@salla.sa/twilight-components-react/user-menu';\nimport { useTwilight } from '../../providers/twilight-context';\nimport { useTranslation } from '../../providers/I18nProvider';\nimport { HookSlot } from '../../hooks/HookSlot';\nimport { MainMenu, MobileMenu } from '../navigation';\nimport { Image } from '../common';\nimport type { Cart } from '../../types';\n\ninterface HeaderProps {\n cart?: Cart;\n}\n\nexport function Header(_props: HeaderProps) {\n const { currency, theme, store } = useTwilight();\n const { locale, languageName } = useTranslation();\n const settings = theme?.settings || {};\n const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false);\n\n // Check if we're on homepage\n const isHomepage = useIsHome();\n\n const StoreTitle = isHomepage ? 'h1' : 'span';\n\n return (\n <header className=\"store-header\" suppressHydrationWarning>\n <HookSlot name=\"header:start\" />\n <div className=\"advertisement-slot\">\n <SallaAdvertisement />\n </div>\n {/* Top Nav */}\n <div className={`top-navbar${settings.topnav_is_dark ? ' top-navbar--dark' : ''}`}>\n <div className=\"container flex justify-between\">\n <div className=\"flex-1 flex items-center gap-2\">\n {/* Footer Menu */}\n {settings.important_links && <SallaMenu source=\"footer\" topnav />}\n\n {/* Language & Currency */}\n <div className=\"header-buttons\">\n {(store?.settings?.is_multilingual || store?.settings?.currencies_enabled) && (\n <>\n <button\n type=\"button\"\n onClick={() => window.salla?.event.dispatch('localization::open')}\n className=\"btn--rounded-gray basis-0\"\n >\n <span>{languageName}</span>\n <span className=\"mx-1.5\">|</span>\n <span className={`flag iti__flag iti__${store?.country.toLowerCase()}`}></span>\n\n <span>\n {store?.settings?.use_sar_symbol && currency?.code === 'SAR' ? (\n <i className=\"sicon-sar\"></i>\n ) : (\n <>{currency?.symbol}</>\n )}\n </span>\n </button>\n {/* TODO:: support switch the lang without hit the web API, by set it in the sdk and local storage */}\n {/* TODO:: Support switch the curency without hit the web API, by set it in the sdk and local storage */}\n <SallaLocalizationModal\n language={locale}\n currency={currency?.code || 'SAR'}\n suppressHydrationWarning\n />\n </>\n )}\n </div>\n\n {/* Scopes / Branches */}\n {store?.scope && (\n <button\n type=\"button\"\n className=\"btn--rounded-gray\"\n onClick={() =>\n window.salla?.event.dispatch('scopes::open', {\n mode: 'default',\n })\n }\n >\n <i className=\"sicon-location rtl:ml-1 ltr:mr-1\"></i>\n {store.scope.name}\n </button>\n )}\n\n {/* Search bar */}\n <div className=\"header-search flex-1\">\n {/* todo:: use a search icon insted with open the search popup */}\n <SallaSearch inline oval height={36} />\n </div>\n </div>\n\n <SallaContacts contacts={store?.contacts} contactsTitle=\"N/A\" isHeader />\n </div>\n </div>\n\n {/* Main Nav */}\n <div\n id=\"mainnav\"\n className={`main-nav-container shadow-default bg-white flex items-center relative z-50${settings.header_is_sticky ? ' sticky top-0' : ''}`}\n >\n <div className=\"inner bg-inherit w-full\">\n <div className=\"container\">\n <div className=\"flex items-stretch justify-between relative\">\n <div className=\"flex items-center\">\n <a\n className=\"lg:hidden mburger mburger--collapse leading-none rtl:ml-4 ltr:mr-4\"\n href=\"#mobile-menu\"\n aria-label=\"Open-menu\"\n onClick={(e) => {\n e.preventDefault();\n setIsMobileMenuOpen(true);\n }}\n >\n <i className=\"sicon-menu text-primary text-2xl\"></i>\n </a>\n <a className=\"navbar-brand\" href={store?.url || '/'}>\n <div className=\"logo-wrapper\">\n <Image\n src={store?.logo}\n alt={`${store?.name || 'Store'} logo`}\n priority\n width={120}\n height={48}\n />\n </div>\n <StoreTitle className=\"sr-only\">{store?.name || 'Store'}</StoreTitle>\n </a>\n <MainMenu />\n </div>\n <div className=\"flex items-center justify-end my-2.5\">\n <SallaUserMenu avatarOnly showHeader className=\"header-btn\" />\n <SallaCartSummary className=\"ml-4 rtl:ml-[unset] rtl:mr-4\">\n <i slot=\"icon\" className=\"header-btn__icon icon sicon-shopping-bag\"></i>\n </SallaCartSummary>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n {/* Mobile Menu */}\n <MobileMenu isOpen={isMobileMenuOpen} onClose={() => setIsMobileMenuOpen(false)} />\n <HookSlot name=\"header:end\" />\n </header>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/navigation/lazy.ts","../src/components/layout/Header.tsx"],"names":[],"mappings":"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","file":"chunk-6EUHIP3B.js","sourcesContent":["import { lazy } from 'react';\n\n/**\n * Lazy-loaded navigation components\n * Use these for code-splitting navigation sections\n */\nexport const LazyMainMenu = lazy(() => import('./MainMenu').then((m) => ({ default: m.MainMenu })));\n\nexport const LazyMobileMenu = lazy(() =>\n import('./MobileMenu').then((m) => ({ default: m.MobileMenu }))\n);\n","import { useState } from 'react';\nimport { useIsHome } from '../../providers/NavigationProvider';\nimport { SallaAdvertisement } from '@salla.sa/twilight-components-react/advertisement';\nimport { SallaCartSummary } from '@salla.sa/twilight-components-react/cart-summary';\nimport { SallaContacts } from '@salla.sa/twilight-components-react/contacts';\nimport { SallaLocalizationModal } from '@salla.sa/twilight-components-react/localization-modal';\nimport { SallaMenu } from '@salla.sa/twilight-components-react/menu';\nimport { SallaSearch } from '@salla.sa/twilight-components-react/search';\nimport { SallaUserMenu } from '@salla.sa/twilight-components-react/user-menu';\nimport { useTwilight } from '../../providers/twilight-context';\nimport { useTranslation } from '../../providers/I18nProvider';\nimport { HookSlot } from '../../hooks/HookSlot';\nimport { MainMenu, MobileMenu } from '../navigation';\nimport { Image } from '../common';\nimport type { Cart } from '../../types';\n\ninterface HeaderProps {\n cart?: Cart;\n}\n\nexport function Header(_props: HeaderProps) {\n const { currency, theme, store } = useTwilight();\n const { locale, languageName } = useTranslation();\n const settings = theme?.settings || {};\n const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false);\n\n // Check if we're on homepage\n const isHomepage = useIsHome();\n\n const StoreTitle = isHomepage ? 'h1' : 'span';\n\n return (\n <header className=\"store-header\" suppressHydrationWarning>\n <HookSlot name=\"header:start\" />\n <div className=\"advertisement-slot\">\n <SallaAdvertisement />\n </div>\n {/* Top Nav */}\n <div className={`top-navbar${settings.topnav_is_dark ? ' top-navbar--dark' : ''}`}>\n <div className=\"container flex justify-between\">\n <div className=\"flex-1 flex items-center gap-2\">\n {/* Footer Menu */}\n {settings.important_links && <SallaMenu source=\"footer\" topnav />}\n\n {/* Language & Currency */}\n <div className=\"header-buttons\">\n {(store?.settings?.is_multilingual || store?.settings?.currencies_enabled) && (\n <>\n <button\n type=\"button\"\n onClick={() => window.salla?.event.dispatch('localization::open')}\n className=\"btn--rounded-gray basis-0\"\n >\n <span>{languageName}</span>\n <span className=\"mx-1.5\">|</span>\n <span className={`flag iti__flag iti__${store?.country.toLowerCase()}`}></span>\n\n <span>\n {store?.settings?.use_sar_symbol && currency?.code === 'SAR' ? (\n <i className=\"sicon-sar\"></i>\n ) : (\n <>{currency?.symbol}</>\n )}\n </span>\n </button>\n {/* TODO:: support switch the lang without hit the web API, by set it in the sdk and local storage */}\n {/* TODO:: Support switch the curency without hit the web API, by set it in the sdk and local storage */}\n <SallaLocalizationModal\n language={locale}\n currency={currency?.code || 'SAR'}\n suppressHydrationWarning\n />\n </>\n )}\n </div>\n\n {/* Scopes / Branches */}\n {store?.scope && (\n <button\n type=\"button\"\n className=\"btn--rounded-gray\"\n onClick={() =>\n window.salla?.event.dispatch('scopes::open', {\n mode: 'default',\n })\n }\n >\n <i className=\"sicon-location rtl:ml-1 ltr:mr-1\"></i>\n {store.scope.name}\n </button>\n )}\n\n {/* Search bar */}\n <div className=\"header-search flex-1\">\n {/* todo:: use a search icon insted with open the search popup */}\n <SallaSearch inline oval height={36} />\n </div>\n </div>\n\n <SallaContacts contacts={store?.contacts} contactsTitle=\"N/A\" isHeader />\n </div>\n </div>\n\n {/* Main Nav */}\n <div\n id=\"mainnav\"\n className={`main-nav-container shadow-default bg-white flex items-center relative z-50${settings.header_is_sticky ? ' sticky top-0' : ''}`}\n >\n <div className=\"inner bg-inherit w-full\">\n <div className=\"container\">\n <div className=\"flex items-stretch justify-between relative\">\n <div className=\"flex items-center\">\n <a\n className=\"lg:hidden mburger mburger--collapse leading-none rtl:ml-4 ltr:mr-4\"\n href=\"#mobile-menu\"\n aria-label=\"Open-menu\"\n onClick={(e) => {\n e.preventDefault();\n setIsMobileMenuOpen(true);\n }}\n >\n <i className=\"sicon-menu text-primary text-2xl\"></i>\n </a>\n <a className=\"navbar-brand\" href={store?.url || '/'}>\n <div className=\"logo-wrapper\">\n <Image\n src={store?.logo}\n alt={`${store?.name || 'Store'} logo`}\n priority\n width={120}\n height={48}\n />\n </div>\n <StoreTitle className=\"sr-only\">{store?.name || 'Store'}</StoreTitle>\n </a>\n <MainMenu />\n </div>\n <div className=\"flex items-center justify-end my-2.5\">\n <SallaUserMenu avatarOnly showHeader className=\"header-btn\" />\n <SallaCartSummary className=\"ml-4 rtl:ml-[unset] rtl:mr-4\">\n <i slot=\"icon\" className=\"header-btn__icon icon sicon-shopping-bag\"></i>\n </SallaCartSummary>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n {/* Mobile Menu */}\n <MobileMenu isOpen={isMobileMenuOpen} onClose={() => setIsMobileMenuOpen(false)} />\n <HookSlot name=\"header:end\" />\n </header>\n );\n}\n"]}
|
|
@@ -55,9 +55,9 @@ async function orderSingleLoader({
|
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
// src/routes/account/orders/index.tsx
|
|
58
|
-
var LazyOrdersPage = lazy(() => import('./OrdersPage-
|
|
58
|
+
var LazyOrdersPage = lazy(() => import('./OrdersPage-D5OLTSXX.js').then((m) => ({ default: m.OrdersPage })));
|
|
59
59
|
var LazyOrderSinglePage = lazy(
|
|
60
|
-
() => import('./OrderSinglePage-
|
|
60
|
+
() => import('./OrderSinglePage-SF4DJHJY.js').then((m) => ({ default: m.OrderSinglePage }))
|
|
61
61
|
);
|
|
62
62
|
var OrdersPage = LazyOrdersPage;
|
|
63
63
|
var OrderSinglePage = LazyOrderSinglePage;
|
|
@@ -104,5 +104,5 @@ var OrderSingle = {
|
|
|
104
104
|
};
|
|
105
105
|
|
|
106
106
|
export { OrderSingle, OrderSinglePage, Orders, OrdersPage, orderSingleLoader, ordersLoader };
|
|
107
|
-
//# sourceMappingURL=chunk-
|
|
108
|
-
//# sourceMappingURL=chunk-
|
|
107
|
+
//# sourceMappingURL=chunk-7Q3YWTWT.js.map
|
|
108
|
+
//# sourceMappingURL=chunk-7Q3YWTWT.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/routes/account/orders/loader.ts","../src/routes/account/orders/index.tsx"],"names":[],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/routes/account/orders/loader.ts","../src/routes/account/orders/index.tsx"],"names":[],"mappings":"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","file":"chunk-7Q3YWTWT.js","sourcesContent":["import { order } from '../../../api/order';\nimport { getTwilightContext } from '../../../twilight/context';\nimport { RouteId } from '../../../router/route-ids';\nimport { orThrow, orUnauthorized, unauthorized } from '../../../providers/NavigationProvider';\nimport { getAuthToken } from '../../../api/client';\nimport type { OrdersPageProps, OrderSinglePageProps, OrdersQuery } from './types';\nimport type { IdParams } from '../../types';\n\nexport async function ordersLoader(\n ctx: { query?: OrdersQuery; with_items?: boolean | number },\n extend?: (\n data: OrdersPageProps,\n ctx: { params: Record<string, never> }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<OrdersPageProps> {\n if (!getAuthToken()) throw unauthorized();\n const query = ctx.query;\n const isPending = query?.status === 'pending';\n const response = await orUnauthorized(\n order.list({\n // Only decides the empty state; <salla-orders> applies its own review filter (`?tab=waiting`).\n status: query?.status,\n ...(ctx.with_items ? { with_items: ctx.with_items } : {}),\n })\n );\n const i18n = getTwilightContext().i18n;\n const pageData: OrdersPageProps = {\n page: {\n title: isPending ? i18n.t('common.titles.pending_orders') : i18n.t('common.titles.orders'),\n slug: RouteId.CUSTOMER_ORDERS_INDEX,\n },\n orders: response.data,\n cursor: response.cursor,\n query,\n };\n\n if (extend) {\n const extra = await extend(pageData, { params: {} });\n return { ...pageData, ...extra } as OrdersPageProps;\n }\n return pageData;\n}\n\nexport async function orderSingleLoader({\n params,\n}: {\n params: IdParams;\n}): Promise<OrderSinglePageProps> {\n if (!getAuthToken()) throw unauthorized();\n const [data, componentsOrder] = await Promise.all([\n order.findOrThrow(params.id),\n orThrow(orUnauthorized(order.findForComponents(params.id))),\n ]);\n const i18n = getTwilightContext().i18n;\n return {\n page: {\n slug: RouteId.CUSTOMER_ORDERS_SINGLE,\n id: String(params.id),\n title: i18n\n .t('pages.orders.order_details')\n .replace(':id', String(data.order.reference_id ?? params.id)),\n },\n order: data.order,\n componentsOrder,\n };\n}\n","import type { HeadDescriptor } from '../../../utils/head';\nimport { buildHreflangAlternates } from '../../../utils/baseHead';\nimport { lazy } from 'react';\nimport { ordersLoader, orderSingleLoader } from './loader';\nimport type { OrdersPageProps, OrderSinglePageProps, OrdersSearchParams } from './types';\nimport type { IdParams } from '../../types';\nimport type { TwilightContext } from '../../../twilight/context';\nimport { RouteId } from '../../../router/route-ids';\n\n// Lazy-load components for code-splitting\nconst LazyOrdersPage = lazy(() => import('./OrdersPage').then((m) => ({ default: m.OrdersPage })));\nconst LazyOrderSinglePage = lazy(() =>\n import('./OrderSinglePage').then((m) => ({ default: m.OrderSinglePage }))\n);\n\nexport const OrdersPage = LazyOrdersPage;\nexport const OrderSinglePage = LazyOrderSinglePage;\nexport { ordersLoader, orderSingleLoader } from './loader';\nexport type {\n OrdersPageProps,\n OrderSinglePageProps,\n OrdersSearchParams,\n OrdersQuery,\n} from './types';\n\nasync function ordersLoaderWithExtend(\n ctx: { search?: OrdersSearchParams; locale?: string; with_items?: boolean | number },\n extend?: (\n data: OrdersPageProps,\n ctx: { params: Record<string, never> }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<OrdersPageProps> {\n const query = ctx.search;\n // ordersLoader already merges the result of `extend`; calling it again here ran it twice.\n return ordersLoader({ query, with_items: ctx.with_items }, extend);\n}\n\nfunction ordersHead(ctx: TwilightContext, data: OrdersPageProps): HeadDescriptor {\n const isPending = data.query?.status === 'pending';\n const base: HeadDescriptor = {\n title: ctx.i18n.t(isPending ? 'common.titles.pending_orders' : 'common.titles.orders'),\n description: data.page.description,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n };\n\n return base;\n}\n\nasync function orderSingleLoaderWithExtend(\n ctx: { params: IdParams; locale?: string },\n extend?: (\n data: OrderSinglePageProps,\n ctx: { params: IdParams }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<OrderSinglePageProps> {\n const data = await orderSingleLoader({ params: ctx.params });\n\n if (extend) {\n const extra = await extend(data, ctx);\n return { ...data, ...extra } as OrderSinglePageProps;\n }\n return data;\n}\n\nfunction orderSingleHead(ctx: TwilightContext, data: OrderSinglePageProps): HeadDescriptor {\n const base: HeadDescriptor = {\n title: data.page.title,\n description: data.page.description,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n };\n\n return base;\n}\n\nexport const Orders = {\n id: RouteId.CUSTOMER_ORDERS_INDEX,\n loader: ordersLoaderWithExtend,\n head: ordersHead,\n Component: LazyOrdersPage,\n} as const;\nexport const OrderSingle = {\n id: RouteId.CUSTOMER_ORDERS_SINGLE,\n loader: orderSingleLoaderWithExtend,\n head: orderSingleHead,\n Component: LazyOrderSinglePage,\n} as const;\n"]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { registry } from './chunk-
|
|
2
|
-
import { useMoney, useNumber } from './chunk-
|
|
1
|
+
import { registry } from './chunk-Y32RHCOH.js';
|
|
2
|
+
import { useMoney, useNumber } from './chunk-RJM2BTNL.js';
|
|
3
3
|
import { useAsset } from './chunk-Z653O7MX.js';
|
|
4
4
|
import { useWishlist } from './chunk-LLQE4JAW.js';
|
|
5
5
|
import { useTranslation } from './chunk-TYNZ5B2B.js';
|
|
6
|
-
import { Image } from './chunk-
|
|
6
|
+
import { Image } from './chunk-UUCMNR64.js';
|
|
7
7
|
import { LazyImageModal } from './chunk-7V5HOZW4.js';
|
|
8
8
|
import { isNativeApp } from './chunk-F4FCETQT.js';
|
|
9
9
|
import { useTwilight } from './chunk-DF6FBKDN.js';
|
|
@@ -15,10 +15,10 @@ import { jsxs, jsx } from 'react/jsx-runtime';
|
|
|
15
15
|
import { SallaSlider } from '@salla.sa/twilight-components-react/slider';
|
|
16
16
|
|
|
17
17
|
var LazyProductDetails = lazy(
|
|
18
|
-
() => import('./ProductDetails-
|
|
18
|
+
() => import('./ProductDetails-7GTN6IYH.js').then((m) => ({ default: m.ProductDetails }))
|
|
19
19
|
);
|
|
20
20
|
var LazyAddToCartForm = lazy(
|
|
21
|
-
() => import('./AddToCartForm-
|
|
21
|
+
() => import('./AddToCartForm-ABEPCH2F.js').then((m) => ({ default: m.AddToCartForm }))
|
|
22
22
|
);
|
|
23
23
|
var PRODUCT_CARD_KEY = "product:card";
|
|
24
24
|
var PRODUCT_IMAGE_SRCSET_WIDTHS = [150, 300, 450, 600];
|
|
@@ -418,5 +418,5 @@ function ThumbSlide({ image, index }) {
|
|
|
418
418
|
}
|
|
419
419
|
|
|
420
420
|
export { LazyAddToCartForm, LazyProductDetails, ProductCard, ProductGallery };
|
|
421
|
-
//# sourceMappingURL=chunk-
|
|
422
|
-
//# sourceMappingURL=chunk-
|
|
421
|
+
//# sourceMappingURL=chunk-CXKIU34R.js.map
|
|
422
|
+
//# sourceMappingURL=chunk-CXKIU34R.js.map
|