@salla.sa/twilight-theme-engine 1.0.72 → 1.0.74
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-5KE3LZSE.js → AddToCartForm-H2PRWRO7.js} +8 -6
- package/dist/AddToCartForm-H2PRWRO7.js.map +1 -0
- package/dist/{BlogAuthorPage-ZE2H4IIQ.js → BlogAuthorPage-QDGBWGGT.js} +22 -22
- package/dist/{BlogAuthorPage-ZE2H4IIQ.js.map → BlogAuthorPage-QDGBWGGT.js.map} +1 -1
- package/dist/{BlogCategoryPage-Y5GBZV2E.js → BlogCategoryPage-BK4OL6T4.js} +22 -22
- package/dist/{BlogCategoryPage-Y5GBZV2E.js.map → BlogCategoryPage-BK4OL6T4.js.map} +1 -1
- package/dist/{BlogPage-WJ46QFWA.js → BlogPage-5LLIKUOQ.js} +20 -20
- package/dist/{BlogPage-WJ46QFWA.js.map → BlogPage-5LLIKUOQ.js.map} +1 -1
- package/dist/{BlogSinglePage-TWAW5FYE.js → BlogSinglePage-3BDXSFTY.js} +20 -20
- package/dist/{BlogSinglePage-TWAW5FYE.js.map → BlogSinglePage-3BDXSFTY.js.map} +1 -1
- package/dist/{BlogTagPage-GDSNBEUM.js → BlogTagPage-S77JPNEZ.js} +22 -22
- package/dist/{BlogTagPage-GDSNBEUM.js.map → BlogTagPage-S77JPNEZ.js.map} +1 -1
- package/dist/{BrandsPage-S5J5LPBJ.js → BrandsPage-2TJALMEG.js} +21 -21
- package/dist/{BrandsPage-S5J5LPBJ.js.map → BrandsPage-2TJALMEG.js.map} +1 -1
- package/dist/{Breadcrumb-JID6FMRH.js → Breadcrumb-SXC43X3D.js} +20 -20
- package/dist/{Breadcrumb-JID6FMRH.js.map → Breadcrumb-SXC43X3D.js.map} +1 -1
- package/dist/{CartItem-65SS67V5.js → CartItem-R6BYAM4O.js} +20 -20
- package/dist/{CartItem-65SS67V5.js.map → CartItem-R6BYAM4O.js.map} +1 -1
- package/dist/{CartSummary-N4JVOPO5.js → CartSummary-YQ2RMHID.js} +20 -20
- package/dist/{CartSummary-N4JVOPO5.js.map → CartSummary-YQ2RMHID.js.map} +1 -1
- package/dist/{Copyright-KMWFNZEF.js → Copyright-5VLQICDY.js} +3 -3
- package/dist/{Copyright-KMWFNZEF.js.map → Copyright-5VLQICDY.js.map} +1 -1
- package/dist/{CustomerLayout-RFFISOFD.js → CustomerLayout-DUT7BEKW.js} +20 -20
- package/dist/{CustomerLayout-RFFISOFD.js.map → CustomerLayout-DUT7BEKW.js.map} +1 -1
- package/dist/{Footer-NDSP2GVD.js → Footer-J2KXYFB3.js} +20 -20
- package/dist/{Footer-NDSP2GVD.js.map → Footer-J2KXYFB3.js.map} +1 -1
- package/dist/{Header-524EF77Y.js → Header-GZQINLEQ.js} +7 -7
- package/dist/{Header-524EF77Y.js.map → Header-GZQINLEQ.js.map} +1 -1
- package/dist/{LoyaltyPage-4BTICEVT.js → LoyaltyPage-IXLUF6MF.js} +20 -20
- package/dist/{LoyaltyPage-4BTICEVT.js.map → LoyaltyPage-IXLUF6MF.js.map} +1 -1
- package/dist/{LoyaltyPointsPage-D6S4DMGL.js → LoyaltyPointsPage-RDNXI5VY.js} +3 -3
- package/dist/{LoyaltyPointsPage-D6S4DMGL.js.map → LoyaltyPointsPage-RDNXI5VY.js.map} +1 -1
- package/dist/{MainMenu-KXNWUVAF.js → MainMenu-KNJDJFJX.js} +7 -7
- package/dist/{MainMenu-KXNWUVAF.js.map → MainMenu-KNJDJFJX.js.map} +1 -1
- package/dist/{MasterLayout-4PV6RJJN.js → MasterLayout-MFL2NYPF.js} +20 -20
- package/dist/{MasterLayout-4PV6RJJN.js.map → MasterLayout-MFL2NYPF.js.map} +1 -1
- package/dist/{MobileMenu-VJJ7BG56.js → MobileMenu-RXLYUAWL.js} +21 -21
- package/dist/{MobileMenu-VJJ7BG56.js.map → MobileMenu-RXLYUAWL.js.map} +1 -1
- package/dist/{NotificationsPage-PCWYS2WC.js → NotificationsPage-QSF7S2PD.js} +20 -20
- package/dist/{NotificationsPage-PCWYS2WC.js.map → NotificationsPage-QSF7S2PD.js.map} +1 -1
- package/dist/{OrderSinglePage-6MS5Q5GD.js → OrderSinglePage-CWBHU2C6.js} +28 -23
- package/dist/OrderSinglePage-CWBHU2C6.js.map +1 -0
- package/dist/{OrdersPage-UBGWPLRU.js → OrdersPage-L76IEAXR.js} +20 -20
- package/dist/{OrdersPage-UBGWPLRU.js.map → OrdersPage-L76IEAXR.js.map} +1 -1
- package/dist/{PageSingle-YFIFFSON.js → PageSingle-BUAZBPIQ.js} +6 -6
- package/dist/{PageSingle-YFIFFSON.js.map → PageSingle-BUAZBPIQ.js.map} +1 -1
- package/dist/{ProductDetails-PYWNF2YH.js → ProductDetails-MPNSWRTQ.js} +15 -7
- package/dist/ProductDetails-MPNSWRTQ.js.map +1 -0
- package/dist/{ProfilePage-F72TLSO5.js → ProfilePage-I72265CD.js} +20 -20
- package/dist/{ProfilePage-F72TLSO5.js.map → ProfilePage-I72265CD.js.map} +1 -1
- package/dist/ReviewsPage-M5GNHNZG.js +18 -0
- package/dist/ReviewsPage-M5GNHNZG.js.map +1 -0
- package/dist/{SeoCartWidget-TK2BVDFT.js → SeoCartWidget-KV3T3BO7.js} +20 -20
- package/dist/{SeoCartWidget-TK2BVDFT.js.map → SeoCartWidget-KV3T3BO7.js.map} +1 -1
- package/dist/{SettingsPage-4W5YIWPU.js → SettingsPage-3F5HZNXX.js} +20 -20
- package/dist/{SettingsPage-4W5YIWPU.js.map → SettingsPage-3F5HZNXX.js.map} +1 -1
- package/dist/{StoreClosedNotification-IV2JTVDU.js → StoreClosedNotification-65QIOIAM.js} +21 -21
- package/dist/{StoreClosedNotification-IV2JTVDU.js.map → StoreClosedNotification-65QIOIAM.js.map} +1 -1
- package/dist/{TestimonialsPage-YOQJQ2HD.js → TestimonialsPage-5U7PH4TT.js} +6 -6
- package/dist/{TestimonialsPage-YOQJQ2HD.js.map → TestimonialsPage-5U7PH4TT.js.map} +1 -1
- package/dist/{ThankYouPage-CRSSRVY7.js → ThankYouPage-HFUTJCRT.js} +20 -20
- package/dist/{ThankYouPage-CRSSRVY7.js.map → ThankYouPage-HFUTJCRT.js.map} +1 -1
- package/dist/{WalletPage-26HBCIHR.js → WalletPage-KURO6WSP.js} +21 -21
- package/dist/{WalletPage-26HBCIHR.js.map → WalletPage-KURO6WSP.js.map} +1 -1
- package/dist/{WishlistPage-AZ3DGIYV.js → WishlistPage-RLUK4JRD.js} +22 -22
- package/dist/{WishlistPage-AZ3DGIYV.js.map → WishlistPage-RLUK4JRD.js.map} +1 -1
- package/dist/api/apps.js +4 -4
- package/dist/api/blog.js +6 -6
- package/dist/api/brands.js +6 -6
- package/dist/api/cart.d.ts +1 -1
- package/dist/api/cart.d.ts.map +1 -1
- package/dist/api/cart.js +6 -6
- package/dist/api/category.js +6 -6
- package/dist/api/client.d.ts +6 -0
- package/dist/api/client.d.ts.map +1 -1
- package/dist/api/client.js +3 -3
- package/dist/api/home.js +4 -4
- package/dist/api/loyalty.js +6 -6
- package/dist/api/menu.js +4 -4
- package/dist/api/notification.js +4 -4
- package/dist/api/order.js +6 -6
- package/dist/api/page.js +6 -6
- package/dist/api/product.d.ts +20 -0
- package/dist/api/product.d.ts.map +1 -1
- package/dist/api/product.js +6 -6
- package/dist/api/profile.js +3 -3
- package/dist/api/store.d.ts +3 -1
- package/dist/api/store.d.ts.map +1 -1
- package/dist/api/store.js +4 -4
- package/dist/api/translations.js +4 -4
- package/dist/api/user.js +4 -4
- package/dist/api/wallet.js +4 -4
- package/dist/api/wishlist.js +7 -7
- package/dist/{chunk-3EE62REP.js → chunk-2OYXPNCE.js} +3 -3
- package/dist/{chunk-3EE62REP.js.map → chunk-2OYXPNCE.js.map} +1 -1
- package/dist/{chunk-YLSG4MEK.js → chunk-2ZQKAGSZ.js} +4 -4
- package/dist/{chunk-YLSG4MEK.js.map → chunk-2ZQKAGSZ.js.map} +1 -1
- package/dist/{chunk-RO6KBURF.js → chunk-3EBAXWBJ.js} +7 -6
- package/dist/chunk-3EBAXWBJ.js.map +1 -0
- package/dist/{chunk-4S3XHNUG.js → chunk-3EHECJ7M.js} +7 -6
- package/dist/chunk-3EHECJ7M.js.map +1 -0
- package/dist/{chunk-VFYT2VWC.js → chunk-3QT7JMAD.js} +13 -4
- package/dist/chunk-3QT7JMAD.js.map +1 -0
- package/dist/{chunk-OYP5CGHU.js → chunk-3TJKB3WR.js} +3 -3
- package/dist/{chunk-OYP5CGHU.js.map → chunk-3TJKB3WR.js.map} +1 -1
- package/dist/{chunk-WSXRUOI2.js → chunk-4VWWIA4M.js} +4 -4
- package/dist/{chunk-WSXRUOI2.js.map → chunk-4VWWIA4M.js.map} +1 -1
- package/dist/{chunk-DIVEHHMD.js → chunk-4YVGMXG7.js} +3 -3
- package/dist/{chunk-DIVEHHMD.js.map → chunk-4YVGMXG7.js.map} +1 -1
- package/dist/{chunk-5AFTFN72.js → chunk-5NUDOT33.js} +3 -3
- package/dist/{chunk-5AFTFN72.js.map → chunk-5NUDOT33.js.map} +1 -1
- package/dist/{chunk-MEPYG77L.js → chunk-6I4LWF5Y.js} +3 -3
- package/dist/{chunk-MEPYG77L.js.map → chunk-6I4LWF5Y.js.map} +1 -1
- package/dist/{chunk-JZ7BOB4G.js → chunk-6KVB2WHE.js} +4 -4
- package/dist/{chunk-JZ7BOB4G.js.map → chunk-6KVB2WHE.js.map} +1 -1
- package/dist/{chunk-BVSJPBJ6.js → chunk-6WI7R2BD.js} +14 -3
- package/dist/chunk-6WI7R2BD.js.map +1 -0
- package/dist/{chunk-BD4V56PZ.js → chunk-BLWLKRKH.js} +59 -28
- package/dist/chunk-BLWLKRKH.js.map +1 -0
- package/dist/{chunk-J427UFSZ.js → chunk-CJDAZQV6.js} +6 -6
- package/dist/{chunk-J427UFSZ.js.map → chunk-CJDAZQV6.js.map} +1 -1
- package/dist/{chunk-OGVUFMLX.js → chunk-D2T6246Q.js} +3 -3
- package/dist/{chunk-OGVUFMLX.js.map → chunk-D2T6246Q.js.map} +1 -1
- package/dist/chunk-E5O5ICIY.js +40 -0
- package/dist/chunk-E5O5ICIY.js.map +1 -0
- package/dist/{chunk-RSVAPXXI.js → chunk-E7EBWXCA.js} +23 -15
- package/dist/chunk-E7EBWXCA.js.map +1 -0
- package/dist/{chunk-LOMFLRJI.js → chunk-FIFNYC7B.js} +7 -7
- package/dist/{chunk-LOMFLRJI.js.map → chunk-FIFNYC7B.js.map} +1 -1
- package/dist/{chunk-7VYI6EF4.js → chunk-FVDUTMH6.js} +4 -4
- package/dist/{chunk-7VYI6EF4.js.map → chunk-FVDUTMH6.js.map} +1 -1
- package/dist/{chunk-L5K7VBOH.js → chunk-GFSTJ2PF.js} +3 -3
- package/dist/{chunk-L5K7VBOH.js.map → chunk-GFSTJ2PF.js.map} +1 -1
- package/dist/{chunk-MFR2WJBJ.js → chunk-IDY6OEXA.js} +8 -8
- package/dist/{chunk-MFR2WJBJ.js.map → chunk-IDY6OEXA.js.map} +1 -1
- package/dist/{chunk-EXBH6RGD.js → chunk-IK57LAIA.js} +19 -5
- package/dist/chunk-IK57LAIA.js.map +1 -0
- package/dist/{chunk-B5FDWE4U.js → chunk-JAPH535M.js} +4 -4
- package/dist/{chunk-B5FDWE4U.js.map → chunk-JAPH535M.js.map} +1 -1
- package/dist/{chunk-3IHFA2X5.js → chunk-JEG5WPNT.js} +3 -3
- package/dist/{chunk-3IHFA2X5.js.map → chunk-JEG5WPNT.js.map} +1 -1
- package/dist/{chunk-34VXOUQT.js → chunk-JHCLU3PS.js} +8 -8
- package/dist/{chunk-34VXOUQT.js.map → chunk-JHCLU3PS.js.map} +1 -1
- package/dist/{chunk-N56EGFBC.js → chunk-JNZLH2OR.js} +58 -9
- package/dist/chunk-JNZLH2OR.js.map +1 -0
- package/dist/{chunk-3CYIB6BL.js → chunk-KO3HG5GQ.js} +3 -3
- package/dist/{chunk-3CYIB6BL.js.map → chunk-KO3HG5GQ.js.map} +1 -1
- package/dist/{chunk-MISI3T6V.js → chunk-M6BXZTRK.js} +3 -3
- package/dist/{chunk-MISI3T6V.js.map → chunk-M6BXZTRK.js.map} +1 -1
- package/dist/{chunk-NZOXKPCW.js → chunk-MEMB7JYJ.js} +4 -4
- package/dist/{chunk-NZOXKPCW.js.map → chunk-MEMB7JYJ.js.map} +1 -1
- package/dist/{chunk-SDIQHTDG.js → chunk-OKNJFS44.js} +4 -4
- package/dist/{chunk-SDIQHTDG.js.map → chunk-OKNJFS44.js.map} +1 -1
- package/dist/{chunk-WNGLJJVH.js → chunk-OQA2MKZA.js} +30 -17
- package/dist/chunk-OQA2MKZA.js.map +1 -0
- package/dist/{chunk-ZGHRSRDO.js → chunk-OUW6WESU.js} +3 -2
- package/dist/chunk-OUW6WESU.js.map +1 -0
- package/dist/{chunk-YKFGUVF7.js → chunk-P2YAPWMS.js} +5 -4
- package/dist/chunk-P2YAPWMS.js.map +1 -0
- package/dist/{chunk-QVJDYSCT.js → chunk-P4GOLSA2.js} +3 -3
- package/dist/{chunk-QVJDYSCT.js.map → chunk-P4GOLSA2.js.map} +1 -1
- package/dist/{chunk-5DPR7GWH.js → chunk-PNM4NP4U.js} +3 -3
- package/dist/{chunk-5DPR7GWH.js.map → chunk-PNM4NP4U.js.map} +1 -1
- package/dist/{chunk-52ETYODY.js → chunk-R72Q5Z6M.js} +4 -4
- package/dist/{chunk-52ETYODY.js.map → chunk-R72Q5Z6M.js.map} +1 -1
- package/dist/{chunk-HBTIZWT2.js → chunk-RYSJOCHI.js} +3 -3
- package/dist/{chunk-HBTIZWT2.js.map → chunk-RYSJOCHI.js.map} +1 -1
- package/dist/{chunk-XVNXXF67.js → chunk-TWVTIAMO.js} +3 -3
- package/dist/{chunk-XVNXXF67.js.map → chunk-TWVTIAMO.js.map} +1 -1
- package/dist/{chunk-2ALN2BPM.js → chunk-VYCNB6VN.js} +3 -3
- package/dist/{chunk-2ALN2BPM.js.map → chunk-VYCNB6VN.js.map} +1 -1
- package/dist/chunk-WG47KLHH.js +14 -0
- package/dist/{chunk-DRMTTDZU.js.map → chunk-WG47KLHH.js.map} +1 -1
- package/dist/{chunk-IO77BQGI.js → chunk-WHGOO4A2.js} +6 -6
- package/dist/{chunk-IO77BQGI.js.map → chunk-WHGOO4A2.js.map} +1 -1
- package/dist/{chunk-25FWAL3O.js → chunk-WS3WQ3OL.js} +4 -4
- package/dist/{chunk-25FWAL3O.js.map → chunk-WS3WQ3OL.js.map} +1 -1
- package/dist/{chunk-UAY6LTWB.js → chunk-XN7TVPAU.js} +4 -4
- package/dist/{chunk-UAY6LTWB.js.map → chunk-XN7TVPAU.js.map} +1 -1
- package/dist/{chunk-LPQFTXBB.js → chunk-Y5OGXJLH.js} +10 -3
- package/dist/chunk-Y5OGXJLH.js.map +1 -0
- package/dist/{chunk-R5MZV6KW.js → chunk-YUGZDWD6.js} +4 -4
- package/dist/{chunk-R5MZV6KW.js.map → chunk-YUGZDWD6.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 +18 -18
- package/dist/components/home/ReorderProducts.d.ts +7 -0
- package/dist/components/home/ReorderProducts.d.ts.map +1 -0
- package/dist/components/home/SquarePhotos.d.ts +2 -1
- package/dist/components/home/SquarePhotos.d.ts.map +1 -1
- package/dist/components/home/index.d.ts +2 -0
- package/dist/components/home/index.d.ts.map +1 -1
- package/dist/components/home/index.js +22 -22
- package/dist/components/home/reorder-hooks.d.ts +6 -0
- package/dist/components/home/reorder-hooks.d.ts.map +1 -0
- package/dist/components/layout/index.js +1 -1
- package/dist/components/product/AddToCartForm.d.ts.map +1 -1
- package/dist/components/product/ProductDetails.d.ts.map +1 -1
- package/dist/components/product/index.js +19 -19
- package/dist/components/snippets/AppsSnippets.d.ts +2 -0
- package/dist/components/snippets/AppsSnippets.d.ts.map +1 -1
- package/dist/components/store/index.js +20 -20
- package/dist/components/toast/index.js +4 -4
- package/dist/document-class-5FTU6EZE.js +25 -0
- package/dist/{document-class-FIAXRNEM.js.map → document-class-5FTU6EZE.js.map} +1 -1
- package/dist/hooks/index.js +18 -18
- package/dist/hooks/useComments.js +3 -3
- package/dist/hooks/useCoupon.d.ts +0 -41
- package/dist/hooks/useCoupon.d.ts.map +1 -1
- package/dist/hooks/useCoupon.js +3 -1
- package/dist/hooks/useGtm.js +18 -18
- package/dist/hooks/useMoney.js +18 -18
- package/dist/hooks/useProduct.js +3 -3
- package/dist/hooks/useStore.js +18 -18
- package/dist/hooks/useUser.js +5 -5
- package/dist/hooks/useWishlist.d.ts.map +1 -1
- package/dist/hooks/useWishlist.js +4 -1
- package/dist/index.js +18 -18
- package/dist/native-app/index.js +3 -3
- package/dist/navigation-CDITJYUW.js +13 -0
- package/dist/{navigation-P3GZOWUU.js.map → navigation-CDITJYUW.js.map} +1 -1
- package/dist/{navigation-TA3I3XEC.js → navigation-WCGV6RUK.js} +5 -5
- package/dist/{navigation-TA3I3XEC.js.map → navigation-WCGV6RUK.js.map} +1 -1
- package/dist/{not-found-SCNJYKWP.js → not-found-EL2XQE5D.js} +59 -33
- package/dist/not-found-EL2XQE5D.js.map +1 -0
- package/dist/providers/index.js +18 -18
- package/dist/providers/twilight-init.d.ts.map +1 -1
- package/dist/router/route-ids.d.ts +1 -0
- package/dist/router/route-ids.d.ts.map +1 -1
- package/dist/routes/account/orders/single/OrderHeader.d.ts.map +1 -1
- package/dist/routes/account/orders.js +7 -7
- package/dist/routes/account.js +16 -16
- package/dist/routes/blog.js +11 -11
- package/dist/routes/brands.js +7 -7
- package/dist/routes/cart.js +26 -26
- package/dist/routes/home/HomePage.d.ts.map +1 -1
- package/dist/routes/home.js +23 -23
- package/dist/routes/index.d.ts +1 -1
- package/dist/routes/index.d.ts.map +1 -1
- package/dist/routes/index.js +4 -4
- package/dist/routes/loyalty.js +8 -8
- package/dist/routes/page.js +7 -7
- package/dist/routes/product/index.d.ts.map +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/types.d.ts +1 -1
- package/dist/routes/product-listing/types.d.ts.map +1 -1
- package/dist/routes/product-listing.js +205 -184
- package/dist/routes/product-listing.js.map +1 -1
- package/dist/routes/product-short-link.d.ts +9 -5
- package/dist/routes/product-short-link.d.ts.map +1 -1
- package/dist/routes/product.js +23 -23
- package/dist/routes/product.js.map +1 -1
- package/dist/routes/seo-redirects.js +4 -4
- package/dist/routes/testimonials/ReviewsPage.d.ts +3 -0
- package/dist/routes/testimonials/ReviewsPage.d.ts.map +1 -0
- package/dist/routes/testimonials/index.d.ts +15 -3
- package/dist/routes/testimonials/index.d.ts.map +1 -1
- package/dist/routes/testimonials/loader.d.ts +3 -1
- package/dist/routes/testimonials/loader.d.ts.map +1 -1
- package/dist/routes/testimonials/types.d.ts +3 -0
- package/dist/routes/testimonials/types.d.ts.map +1 -1
- package/dist/routes/testimonials.js +38 -3
- package/dist/routes/testimonials.js.map +1 -1
- package/dist/routes/thank-you.js +7 -7
- package/dist/skeleton.js +23 -23
- package/dist/tanstack/document-class.d.ts.map +1 -1
- package/dist/tanstack/router.d.ts.map +1 -1
- package/dist/tanstack.js +16 -16
- package/dist/types/index.d.ts +3 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/salla-sdk.d.ts +4 -0
- package/dist/types/salla-sdk.d.ts.map +1 -1
- package/dist/utils/cookies.d.ts +5 -0
- package/dist/utils/cookies.d.ts.map +1 -1
- package/dist/utils/index.js +5 -4
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/sdk-events.d.ts +6 -0
- package/dist/utils/sdk-events.d.ts.map +1 -1
- package/dist/vite/adapters/tanstack.adapter.d.ts.map +1 -1
- package/dist/vite/index.js +83 -8
- package/dist/vite/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/AddToCartForm-5KE3LZSE.js.map +0 -1
- package/dist/OrderSinglePage-6MS5Q5GD.js.map +0 -1
- package/dist/ProductDetails-PYWNF2YH.js.map +0 -1
- package/dist/chunk-4S3XHNUG.js.map +0 -1
- package/dist/chunk-5ZR2HKZ7.js +0 -14
- package/dist/chunk-5ZR2HKZ7.js.map +0 -1
- package/dist/chunk-BD4V56PZ.js.map +0 -1
- package/dist/chunk-BVSJPBJ6.js.map +0 -1
- package/dist/chunk-DRMTTDZU.js +0 -14
- package/dist/chunk-EXBH6RGD.js.map +0 -1
- package/dist/chunk-LPQFTXBB.js.map +0 -1
- package/dist/chunk-N56EGFBC.js.map +0 -1
- package/dist/chunk-RO6KBURF.js.map +0 -1
- package/dist/chunk-RSVAPXXI.js.map +0 -1
- package/dist/chunk-VFYT2VWC.js.map +0 -1
- package/dist/chunk-WNGLJJVH.js.map +0 -1
- package/dist/chunk-YKFGUVF7.js.map +0 -1
- package/dist/chunk-ZGHRSRDO.js.map +0 -1
- package/dist/document-class-FIAXRNEM.js +0 -25
- package/dist/navigation-P3GZOWUU.js +0 -13
- package/dist/not-found-SCNJYKWP.js.map +0 -1
package/dist/api/client.d.ts
CHANGED
|
@@ -5,6 +5,12 @@ import { type ActiveScope } from '../utils/cookies';
|
|
|
5
5
|
* see the note above) to decide whether an authenticated-only query should run.
|
|
6
6
|
*/
|
|
7
7
|
export declare const getAuthToken: () => string | null;
|
|
8
|
+
/**
|
|
9
|
+
* The currency the visitor chose, from the `s-curr` cookie the SDK writes: the API
|
|
10
|
+
* answers in the store's own currency unless the request names one.
|
|
11
|
+
*/
|
|
12
|
+
export declare function getActiveCurrency(): string | null;
|
|
13
|
+
export declare function getActiveCurrency(fallback: string): string;
|
|
8
14
|
/**
|
|
9
15
|
* The header every Salla API call is answered by store.
|
|
10
16
|
*
|
package/dist/api/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAOA,OAAO,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAOA,OAAO,EAQL,KAAK,WAAW,EACjB,MAAM,kBAAkB,CAAC;AAiC1B;;;;GAIG;AACH,eAAO,MAAM,YAAY,QAAO,MAAM,GAAG,IACc,CAAC;AAYxD;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,GAAG,IAAI,CAAC;AACnD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;AA8B5D;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,oBAA+B,CAAC;AAEpE;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,cAAc,QAAO,WAAW,GAAG,IAiB/C,CAAC;AAEF,uDAAuD;AACvD,eAAO,MAAM,gBAAgB,QAAO,MAAM,GAAG,IAAoC,CAAC;AAyBlF,eAAO,MAAM,GAAG,yBAiDd,CAAC;AAEH,eAAO,MAAM,GAAG,yBAGd,CAAC;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ,yBAGnB,CAAC"}
|
package/dist/api/client.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { STORE_IDENTIFIER_HEADER, api, cdn, filesCdn, getActiveScope, getActiveScopeId, getAuthToken } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
1
|
+
export { STORE_IDENTIFIER_HEADER, api, cdn, filesCdn, getActiveCurrency, getActiveScope, getActiveScopeId, getAuthToken } from '../chunk-IK57LAIA.js';
|
|
2
|
+
import '../chunk-P4GOLSA2.js';
|
|
3
|
+
import '../chunk-Y5OGXJLH.js';
|
|
4
4
|
import '../chunk-N2S25NXP.js';
|
|
5
5
|
import '../chunk-T72DAX7R.js';
|
|
6
6
|
import '../chunk-DGUM43GV.js';
|
package/dist/api/home.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { home } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
4
|
-
import '../chunk-
|
|
1
|
+
export { home } from '../chunk-KO3HG5GQ.js';
|
|
2
|
+
import '../chunk-IK57LAIA.js';
|
|
3
|
+
import '../chunk-P4GOLSA2.js';
|
|
4
|
+
import '../chunk-Y5OGXJLH.js';
|
|
5
5
|
import '../chunk-N2S25NXP.js';
|
|
6
6
|
import '../chunk-T72DAX7R.js';
|
|
7
7
|
import '../chunk-DGUM43GV.js';
|
package/dist/api/loyalty.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export { loyalty } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
4
|
-
import '../chunk-
|
|
5
|
-
import '../chunk-
|
|
6
|
-
import '../chunk-
|
|
1
|
+
export { loyalty } from '../chunk-WS3WQ3OL.js';
|
|
2
|
+
import '../chunk-OKNJFS44.js';
|
|
3
|
+
import '../chunk-OUW6WESU.js';
|
|
4
|
+
import '../chunk-IK57LAIA.js';
|
|
5
|
+
import '../chunk-P4GOLSA2.js';
|
|
6
|
+
import '../chunk-Y5OGXJLH.js';
|
|
7
7
|
import '../chunk-N2S25NXP.js';
|
|
8
8
|
import '../chunk-T72DAX7R.js';
|
|
9
9
|
import '../chunk-DF6FBKDN.js';
|
package/dist/api/menu.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { menu } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
4
|
-
import '../chunk-
|
|
1
|
+
export { menu } from '../chunk-VYCNB6VN.js';
|
|
2
|
+
import '../chunk-IK57LAIA.js';
|
|
3
|
+
import '../chunk-P4GOLSA2.js';
|
|
4
|
+
import '../chunk-Y5OGXJLH.js';
|
|
5
5
|
import '../chunk-N2S25NXP.js';
|
|
6
6
|
import '../chunk-T72DAX7R.js';
|
|
7
7
|
import '../chunk-DGUM43GV.js';
|
package/dist/api/notification.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { notification } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
4
|
-
import '../chunk-
|
|
1
|
+
export { notification } from '../chunk-PNM4NP4U.js';
|
|
2
|
+
import '../chunk-IK57LAIA.js';
|
|
3
|
+
import '../chunk-P4GOLSA2.js';
|
|
4
|
+
import '../chunk-Y5OGXJLH.js';
|
|
5
5
|
import '../chunk-N2S25NXP.js';
|
|
6
6
|
import '../chunk-T72DAX7R.js';
|
|
7
7
|
import '../chunk-DGUM43GV.js';
|
package/dist/api/order.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export { order } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
4
|
-
import '../chunk-
|
|
5
|
-
import '../chunk-
|
|
6
|
-
import '../chunk-
|
|
1
|
+
export { order } from '../chunk-XN7TVPAU.js';
|
|
2
|
+
import '../chunk-OKNJFS44.js';
|
|
3
|
+
import '../chunk-OUW6WESU.js';
|
|
4
|
+
import '../chunk-IK57LAIA.js';
|
|
5
|
+
import '../chunk-P4GOLSA2.js';
|
|
6
|
+
import '../chunk-Y5OGXJLH.js';
|
|
7
7
|
import '../chunk-N2S25NXP.js';
|
|
8
8
|
import '../chunk-T72DAX7R.js';
|
|
9
9
|
import '../chunk-DF6FBKDN.js';
|
package/dist/api/page.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export { page } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
4
|
-
import '../chunk-
|
|
5
|
-
import '../chunk-
|
|
6
|
-
import '../chunk-
|
|
1
|
+
export { page } from '../chunk-6KVB2WHE.js';
|
|
2
|
+
import '../chunk-OKNJFS44.js';
|
|
3
|
+
import '../chunk-OUW6WESU.js';
|
|
4
|
+
import '../chunk-IK57LAIA.js';
|
|
5
|
+
import '../chunk-P4GOLSA2.js';
|
|
6
|
+
import '../chunk-Y5OGXJLH.js';
|
|
7
7
|
import '../chunk-N2S25NXP.js';
|
|
8
8
|
import '../chunk-T72DAX7R.js';
|
|
9
9
|
import '../chunk-DF6FBKDN.js';
|
package/dist/api/product.d.ts
CHANGED
|
@@ -86,6 +86,11 @@ export declare function getProductPreview(id: string): Product | undefined;
|
|
|
86
86
|
export declare const product: {
|
|
87
87
|
find: (id: string) => Promise<Product>;
|
|
88
88
|
findOrThrow: (id: string) => Promise<Product>;
|
|
89
|
+
/** A tag's name. The list endpoint returns every product for an unknown tag; this one answers 410. */
|
|
90
|
+
tag: (id: string) => Promise<{
|
|
91
|
+
id: number;
|
|
92
|
+
name: string;
|
|
93
|
+
}>;
|
|
89
94
|
/**
|
|
90
95
|
* Fetch products list with pagination support
|
|
91
96
|
* Used by native ProductsList component for SSR loaders
|
|
@@ -103,6 +108,21 @@ export declare const product: {
|
|
|
103
108
|
} & import("@tanstack/react-query").QueryKeyWithDataTag<readonly ["products", "detail", string, {
|
|
104
109
|
readonly scope: ActiveScope | null;
|
|
105
110
|
}], Product, Error>;
|
|
111
|
+
tag: (id: string) => import("@tanstack/react-query").OmitKeyof<import("@tanstack/react-query").UseQueryOptions<{
|
|
112
|
+
id: number;
|
|
113
|
+
name: string;
|
|
114
|
+
}, Error, {
|
|
115
|
+
id: number;
|
|
116
|
+
name: string;
|
|
117
|
+
}, string[]>, "queryFn"> & {
|
|
118
|
+
queryFn?: import("@tanstack/react-query").QueryFunction<{
|
|
119
|
+
id: number;
|
|
120
|
+
name: string;
|
|
121
|
+
}, string[], never> | undefined;
|
|
122
|
+
} & import("@tanstack/react-query").QueryKeyWithDataTag<string[], {
|
|
123
|
+
id: number;
|
|
124
|
+
name: string;
|
|
125
|
+
}, Error>;
|
|
106
126
|
list: (params: Omit<ProductsListParams, "signal">) => import("@tanstack/react-query").OmitKeyof<import("@tanstack/react-query").UseQueryOptions<ProductsListResult, Error, ProductsListResult, (string | Omit<ProductsListParams, "signal"> | {
|
|
107
127
|
scope: ActiveScope | null;
|
|
108
128
|
})[]>, "queryFn"> & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product.d.ts","sourceRoot":"","sources":["../../src/api/product.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"product.d.ts","sourceRoot":"","sources":["../../src/api/product.ts"],"names":[],"mappings":"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"}
|
package/dist/api/product.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export { getProductPreview, isProductPreviewQuery, product, productDetailQueryKey, productPreviewQueryKey, rememberProductPreview, shouldDehydrateQuery } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
4
|
-
import '../chunk-
|
|
5
|
-
import '../chunk-
|
|
6
|
-
import '../chunk-
|
|
1
|
+
export { getProductPreview, isProductPreviewQuery, product, productDetailQueryKey, productPreviewQueryKey, rememberProductPreview, shouldDehydrateQuery } from '../chunk-3QT7JMAD.js';
|
|
2
|
+
import '../chunk-OKNJFS44.js';
|
|
3
|
+
import '../chunk-OUW6WESU.js';
|
|
4
|
+
import '../chunk-IK57LAIA.js';
|
|
5
|
+
import '../chunk-P4GOLSA2.js';
|
|
6
|
+
import '../chunk-Y5OGXJLH.js';
|
|
7
7
|
import '../chunk-N2S25NXP.js';
|
|
8
8
|
import '../chunk-T72DAX7R.js';
|
|
9
9
|
import '../chunk-DF6FBKDN.js';
|
package/dist/api/profile.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { api } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
1
|
+
import { api } from '../chunk-IK57LAIA.js';
|
|
2
|
+
import '../chunk-P4GOLSA2.js';
|
|
3
|
+
import '../chunk-Y5OGXJLH.js';
|
|
4
4
|
import '../chunk-N2S25NXP.js';
|
|
5
5
|
import '../chunk-T72DAX7R.js';
|
|
6
6
|
import '../chunk-DGUM43GV.js';
|
package/dist/api/store.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Store, Theme, Language } from '../types';
|
|
1
|
+
import type { Store, Theme, Language, JitsuConfig } from '../types';
|
|
2
2
|
import { resolveStoreIdentifier } from '../utils/store-identity';
|
|
3
3
|
export { resolveStoreIdentifier };
|
|
4
4
|
/** Twig's `salla.init({ user })` object; the endpoint ignores the token, so always the guest. */
|
|
@@ -42,6 +42,8 @@ export interface StoreContext {
|
|
|
42
42
|
user?: SettingsUser;
|
|
43
43
|
/** API paths the SDK sends with `s-store-api-version: swoole` */
|
|
44
44
|
swoole?: string[];
|
|
45
|
+
/** Where the SDK's analytics send events, and which ones; without it the SDK tracks nothing. */
|
|
46
|
+
jitsu?: JitsuConfig;
|
|
45
47
|
/**
|
|
46
48
|
* The scope these settings were requested with; absent when none was. Not from
|
|
47
49
|
* the API: stamped by `store.settings`, so `resolveThemeVersionId` can tell
|
package/dist/api/store.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/api/store.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/api/store.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAGjE,OAAO,EAAE,sBAAsB,EAAE,CAAC;AAiBlC,iGAAiG;AACjG,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AA0BD;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,iEAAiE;IACjE,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CACjB,MAAM,EACN;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CACrF,CAAC;IACF,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,KAAK,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,kBAAkB,EAAE,MAAM,CAAA;KAAE,CAAC;IACpD,SAAS,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,OAAO,CAAA;KAAE,CAAC;IACtD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,gGAAgG;IAChG,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAeD,eAAO,MAAM,KAAK;iCACmB,MAAM,KAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;;qCAoDzC,MAAM;;;;CAoBtC,CAAC"}
|
package/dist/api/store.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { store } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
export { resolveStoreIdentifier } from '../chunk-
|
|
4
|
-
import '../chunk-
|
|
1
|
+
export { store } from '../chunk-P2YAPWMS.js';
|
|
2
|
+
import '../chunk-IK57LAIA.js';
|
|
3
|
+
export { resolveStoreIdentifier } from '../chunk-P4GOLSA2.js';
|
|
4
|
+
import '../chunk-Y5OGXJLH.js';
|
|
5
5
|
import '../chunk-N2S25NXP.js';
|
|
6
6
|
import '../chunk-T72DAX7R.js';
|
|
7
7
|
import '../chunk-DGUM43GV.js';
|
package/dist/api/translations.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { commonTranslationsPath, storeTranslationsPath, translations } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
4
|
-
import '../chunk-
|
|
1
|
+
export { commonTranslationsPath, storeTranslationsPath, translations } from '../chunk-TWVTIAMO.js';
|
|
2
|
+
import '../chunk-IK57LAIA.js';
|
|
3
|
+
import '../chunk-P4GOLSA2.js';
|
|
4
|
+
import '../chunk-Y5OGXJLH.js';
|
|
5
5
|
import '../chunk-N2S25NXP.js';
|
|
6
6
|
import '../chunk-T72DAX7R.js';
|
|
7
7
|
import '../chunk-DGUM43GV.js';
|
package/dist/api/user.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { user } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
4
|
-
import '../chunk-
|
|
1
|
+
export { user } from '../chunk-GFSTJ2PF.js';
|
|
2
|
+
import '../chunk-IK57LAIA.js';
|
|
3
|
+
import '../chunk-P4GOLSA2.js';
|
|
4
|
+
import '../chunk-Y5OGXJLH.js';
|
|
5
5
|
import '../chunk-N2S25NXP.js';
|
|
6
6
|
import '../chunk-T72DAX7R.js';
|
|
7
7
|
import '../chunk-DGUM43GV.js';
|
package/dist/api/wallet.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { wallet } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
4
|
-
import '../chunk-
|
|
1
|
+
export { wallet } from '../chunk-5NUDOT33.js';
|
|
2
|
+
import '../chunk-IK57LAIA.js';
|
|
3
|
+
import '../chunk-P4GOLSA2.js';
|
|
4
|
+
import '../chunk-Y5OGXJLH.js';
|
|
5
5
|
import '../chunk-N2S25NXP.js';
|
|
6
6
|
import '../chunk-T72DAX7R.js';
|
|
7
7
|
import '../chunk-DGUM43GV.js';
|
package/dist/api/wishlist.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
export { wishlist } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
4
|
-
import '../chunk-
|
|
5
|
-
import '../chunk-
|
|
6
|
-
import '../chunk-
|
|
7
|
-
import '../chunk-
|
|
1
|
+
export { wishlist } from '../chunk-R72Q5Z6M.js';
|
|
2
|
+
import '../chunk-3QT7JMAD.js';
|
|
3
|
+
import '../chunk-OKNJFS44.js';
|
|
4
|
+
import '../chunk-OUW6WESU.js';
|
|
5
|
+
import '../chunk-IK57LAIA.js';
|
|
6
|
+
import '../chunk-P4GOLSA2.js';
|
|
7
|
+
import '../chunk-Y5OGXJLH.js';
|
|
8
8
|
import '../chunk-N2S25NXP.js';
|
|
9
9
|
import '../chunk-T72DAX7R.js';
|
|
10
10
|
import '../chunk-DF6FBKDN.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { user } from './chunk-
|
|
1
|
+
import { user } from './chunk-GFSTJ2PF.js';
|
|
2
2
|
import { getTwilightContext } from './chunk-N2S25NXP.js';
|
|
3
3
|
import { useQuery } from '@tanstack/react-query';
|
|
4
4
|
|
|
@@ -13,5 +13,5 @@ function useUser() {
|
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
export { useUser };
|
|
16
|
-
//# sourceMappingURL=chunk-
|
|
17
|
-
//# sourceMappingURL=chunk-
|
|
16
|
+
//# sourceMappingURL=chunk-2OYXPNCE.js.map
|
|
17
|
+
//# sourceMappingURL=chunk-2OYXPNCE.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/hooks/useUser.ts"],"names":[],"mappings":";;;;AAUO,SAAS,OAAA,GAAyB;AACvC,EAAA,MAAM,KAAA,GAAQ,oBAAmB,CAAE,SAAA;AAEnC,EAAA,MAAM,QAAQ,QAAA,CAAS;AAAA,IACrB,GAAG,IAAA,CAAK,OAAA,CAAQ,OAAA,EAAQ;AAAA,IACxB,OAAA,EAAS,CAAC,CAAC,KAAA;AAAA,IACX,eAAA,EAAiB;AAAA,GAClB,CAAA;AAED,EAAA,OAAO,EAAE,GAAG,KAAA,EAAO,UAAA,EAAY,CAAC,CAAC,KAAA,EAAM;AACzC","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/hooks/useUser.ts"],"names":[],"mappings":";;;;AAUO,SAAS,OAAA,GAAyB;AACvC,EAAA,MAAM,KAAA,GAAQ,oBAAmB,CAAE,SAAA;AAEnC,EAAA,MAAM,QAAQ,QAAA,CAAS;AAAA,IACrB,GAAG,IAAA,CAAK,OAAA,CAAQ,OAAA,EAAQ;AAAA,IACxB,OAAA,EAAS,CAAC,CAAC,KAAA;AAAA,IACX,eAAA,EAAiB;AAAA,GAClB,CAAA;AAED,EAAA,OAAO,EAAE,GAAG,KAAA,EAAO,UAAA,EAAY,CAAC,CAAC,KAAA,EAAM;AACzC","file":"chunk-2OYXPNCE.js","sourcesContent":["import { useQuery, type UseQueryResult } from '@tanstack/react-query';\nimport { getTwilightContext } from '../twilight/context';\nimport { user } from '../api/user';\nimport type { User } from '../types';\n\nexport type UseUserReturn = UseQueryResult<User | null> & {\n /** True when an auth token exists (regardless of query state). */\n isLoggedIn: boolean;\n};\n\nexport function useUser(): UseUserReturn {\n const token = getTwilightContext().authToken;\n\n const query = useQuery({\n ...user.queries.current(),\n enabled: !!token,\n placeholderData: null,\n });\n\n return { ...query, isLoggedIn: !!token };\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { orThrow } from './chunk-
|
|
2
|
-
import { getActiveScope, api } from './chunk-
|
|
1
|
+
import { orThrow } from './chunk-OKNJFS44.js';
|
|
2
|
+
import { getActiveScope, api } from './chunk-IK57LAIA.js';
|
|
3
3
|
import { queryOptions } from '@tanstack/react-query';
|
|
4
4
|
|
|
5
5
|
var category = {
|
|
@@ -26,5 +26,5 @@ var category = {
|
|
|
26
26
|
};
|
|
27
27
|
|
|
28
28
|
export { category };
|
|
29
|
-
//# sourceMappingURL=chunk-
|
|
30
|
-
//# sourceMappingURL=chunk-
|
|
29
|
+
//# sourceMappingURL=chunk-2ZQKAGSZ.js.map
|
|
30
|
+
//# sourceMappingURL=chunk-2ZQKAGSZ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/api/category.ts"],"names":[],"mappings":";;;;AAKO,IAAM,QAAA,GAAW;AAAA,EACtB,IAAA,EAAM,OAAO,EAAA,KAAkC;AAC7C,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,GAAA,CAAI,IAAI,CAAA,WAAA,EAAc,EAAE,CAAA,CAAE,CAAA,CAAE,IAAA,EAAyB;AAC5E,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAAA,EAEA,aAAa,CAAC,EAAA,KAAkC,QAAQ,QAAA,CAAS,IAAA,CAAK,EAAE,CAAC,CAAA;AAAA,EAEzE,MAAM,YAAiC;AACrC,IAAA,MAAM,EAAE,MAAK,GAAI,MAAM,IAAI,GAAA,CAAI,YAAY,EAAE,IAAA,EAA2B;AACxE,IAAA,OAAO,QAAQ,EAAC;AAAA,EAClB,CAAA;AAAA,EAEA,OAAA,EAAS;AAAA,IACP,MAAA,EAAQ,CAAC,EAAA,KACP,YAAA,CAAa;AAAA,MACX,QAAA,EAAU,CAAC,YAAA,EAAc,QAAA,EAAU,EAAE,CAAA;AAAA,MACrC,OAAA,EAAS,MAAM,QAAA,CAAS,IAAA,CAAK,EAAE;AAAA,KAChC,CAAA;AAAA,IAEH,IAAA,EAAM,MACJ,YAAA,CAAa;AAAA;AAAA,MAEX,QAAA,EAAU,CAAC,YAAA,EAAc,MAAA,EAAQ,EAAE,KAAA,EAAO,cAAA,IAAkB,CAAA;AAAA,MAC5D,OAAA,EAAS,MAAM,QAAA,CAAS,IAAA;AAAK,KAC9B;AAAA;AAEP","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/api/category.ts"],"names":[],"mappings":";;;;AAKO,IAAM,QAAA,GAAW;AAAA,EACtB,IAAA,EAAM,OAAO,EAAA,KAAkC;AAC7C,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,GAAA,CAAI,IAAI,CAAA,WAAA,EAAc,EAAE,CAAA,CAAE,CAAA,CAAE,IAAA,EAAyB;AAC5E,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAAA,EAEA,aAAa,CAAC,EAAA,KAAkC,QAAQ,QAAA,CAAS,IAAA,CAAK,EAAE,CAAC,CAAA;AAAA,EAEzE,MAAM,YAAiC;AACrC,IAAA,MAAM,EAAE,MAAK,GAAI,MAAM,IAAI,GAAA,CAAI,YAAY,EAAE,IAAA,EAA2B;AACxE,IAAA,OAAO,QAAQ,EAAC;AAAA,EAClB,CAAA;AAAA,EAEA,OAAA,EAAS;AAAA,IACP,MAAA,EAAQ,CAAC,EAAA,KACP,YAAA,CAAa;AAAA,MACX,QAAA,EAAU,CAAC,YAAA,EAAc,QAAA,EAAU,EAAE,CAAA;AAAA,MACrC,OAAA,EAAS,MAAM,QAAA,CAAS,IAAA,CAAK,EAAE;AAAA,KAChC,CAAA;AAAA,IAEH,IAAA,EAAM,MACJ,YAAA,CAAa;AAAA;AAAA,MAEX,QAAA,EAAU,CAAC,YAAA,EAAc,MAAA,EAAQ,EAAE,KAAA,EAAO,cAAA,IAAkB,CAAA;AAAA,MAC5D,OAAA,EAAS,MAAM,QAAA,CAAS,IAAA;AAAK,KAC9B;AAAA;AAEP","file":"chunk-2ZQKAGSZ.js","sourcesContent":["import { queryOptions } from '@tanstack/react-query';\nimport { api, getActiveScope } from './client';\nimport type { Category } from '../types';\nimport { orThrow } from '../providers/NavigationProvider';\n\nexport const category = {\n find: async (id: string): Promise<Category> => {\n const { data } = await api.get(`categories/${id}`).json<{ data: Category }>();\n return data;\n },\n\n findOrThrow: (id: string): Promise<Category> => orThrow(category.find(id)),\n\n list: async (): Promise<Category[]> => {\n const { data } = await api.get('categories').json<{ data: Category[] }>();\n return data ?? [];\n },\n\n queries: {\n detail: (id: string) =>\n queryOptions({\n queryKey: ['categories', 'detail', id],\n queryFn: () => category.find(id),\n }),\n\n list: () =>\n queryOptions({\n // Scope (branch) varies the API response — key must include it.\n queryKey: ['categories', 'list', { scope: getActiveScope() }],\n queryFn: () => category.list(),\n }),\n },\n};\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { orThrow } from './chunk-
|
|
2
|
-
import { api } from './chunk-
|
|
3
|
-
import { getSallaSDK } from './chunk-
|
|
1
|
+
import { orThrow } from './chunk-OKNJFS44.js';
|
|
2
|
+
import { api } from './chunk-IK57LAIA.js';
|
|
3
|
+
import { getSallaSDK } from './chunk-P4GOLSA2.js';
|
|
4
4
|
import { queryOptions } from '@tanstack/react-query';
|
|
5
5
|
|
|
6
6
|
function normalizeCartResponse(data) {
|
|
@@ -8,7 +8,8 @@ function normalizeCartResponse(data) {
|
|
|
8
8
|
return {
|
|
9
9
|
...data.cart,
|
|
10
10
|
loyalty: data.loyalty ?? null,
|
|
11
|
-
|
|
11
|
+
// The API sends `gift` inside `cart`.
|
|
12
|
+
gift: data.gift ?? data.cart.gift ?? null
|
|
12
13
|
};
|
|
13
14
|
}
|
|
14
15
|
var cart = {
|
|
@@ -43,5 +44,5 @@ var cart = {
|
|
|
43
44
|
};
|
|
44
45
|
|
|
45
46
|
export { cart };
|
|
46
|
-
//# sourceMappingURL=chunk-
|
|
47
|
-
//# sourceMappingURL=chunk-
|
|
47
|
+
//# sourceMappingURL=chunk-3EBAXWBJ.js.map
|
|
48
|
+
//# sourceMappingURL=chunk-3EBAXWBJ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/api/cart.ts"],"names":[],"mappings":";;;;;AAaA,SAAS,sBAAsB,IAAA,EAAoC;AACjE,EAAA,IAAI,CAAC,IAAA,CAAK,IAAA,EAAM,OAAO,IAAA;AACvB,EAAA,OAAO;AAAA,IACL,GAAG,IAAA,CAAK,IAAA;AAAA,IACR,OAAA,EAAS,KAAK,OAAA,IAAW,IAAA;AAAA;AAAA,IAEzB,IAAA,EAAM,IAAA,CAAK,IAAA,IAAQ,IAAA,CAAK,KAAK,IAAA,IAAQ;AAAA,GACvC;AACF;AAEO,IAAM,IAAA,GAAO;AAAA,EAClB,GAAA,EAAK,OAAO,MAAA,KAAyC;AACnD,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,GAAA,CAAI,IAAI,CAAA,KAAA,EAAQ,MAAM,CAAA,CAAE,CAAA,CAAE,IAAA,EAAgC;AACjF,IAAA,OAAO,sBAAsB,IAAI,CAAA;AAAA,EACnC,CAAA;AAAA,EAEA,YAAY,CAAC,MAAA,KAAyC,QAAQ,IAAA,CAAK,GAAA,CAAI,MAAM,CAAC,CAAA;AAAA;AAAA,EAG9E,cAAc,YAAoC;AAChD,IAAA,MAAM,QAAQ,WAAA,EAAY;AAC1B,IAAA,IAAI,CAAC,OAAO,OAAO,IAAA;AAEnB,IAAA,MAAM,KAAA,CAAM,OAAA,EAAQ,CAAE,KAAA,CAAM,MAAM,MAAS,CAAA;AAC3C,IAAA,OAAO,KAAA,CAAM,IAAA,CAAK,GAAA,CAAI,gBAAA,EAAiB;AAAA,EACzC,CAAA;AAAA,EAEA,OAAA,EAAS;AAAA,IACP,MAAA,EAAQ,CAAC,MAAA,KACP,YAAA,CAAa;AAAA,MACX,QAAA,EAAU,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,MACzB,OAAA,EAAS,MAAM,IAAA,CAAK,GAAA,CAAI,MAAM,CAAA;AAAA;AAAA,MAE9B,SAAA,EAAW,CAAA;AAAA,MACX,MAAA,EAAQ;AAAA,KACT,CAAA;AAAA,IACH,SAAA,EAAW,MACT,YAAA,CAAa;AAAA,MACX,QAAA,EAAU,CAAC,MAAA,EAAQ,YAAY,CAAA;AAAA,MAC/B,OAAA,EAAS,MAAM,IAAA,CAAK,YAAA,EAAa;AAAA;AAAA,MAEjC,SAAA,EAAW,CAAA;AAAA,MACX,MAAA,EAAQ;AAAA,KACT;AAAA;AAEP","file":"chunk-3EBAXWBJ.js","sourcesContent":["import { queryOptions } from '@tanstack/react-query';\nimport { api } from './client';\nimport type { Cart } from '../types';\nimport { orThrow } from '../providers/NavigationProvider';\nimport { getSallaSDK } from '../utils/sdk-helpers';\n\nexport interface CartApiResponse {\n /** Absent once the cart was turned into an order (the body then carries a top-level `redirect`). */\n cart?: Omit<Cart, 'loyalty'>;\n loyalty?: Cart['loyalty'];\n gift?: Cart['gift'];\n}\n\nfunction normalizeCartResponse(data: CartApiResponse): Cart | null {\n if (!data.cart) return null;\n return {\n ...data.cart,\n loyalty: data.loyalty ?? null,\n // The API sends `gift` inside `cart`.\n gift: data.gift ?? data.cart.gift ?? null,\n } as Cart;\n}\n\nexport const cart = {\n get: async (cartId: number): Promise<Cart | null> => {\n const { data } = await api.get(`cart/${cartId}`).json<{ data: CartApiResponse }>();\n return normalizeCartResponse(data);\n },\n\n getOrThrow: (cartId: number): Promise<Cart | null> => orThrow(cart.get(cartId)),\n\n /** The visitor's cart id, which only the Salla SDK knows; `null` outside the browser. */\n getCurrentId: async (): Promise<number | null> => {\n const salla = getSallaSDK();\n if (!salla) return null;\n // The app bundle can run before the SDK module, when `salla` is still the head stub.\n await salla.onReady().catch(() => undefined);\n return salla.cart.api.getCurrentCartId();\n },\n\n queries: {\n detail: (cartId: number) =>\n queryOptions({\n queryKey: ['cart', cartId],\n queryFn: () => cart.get(cartId),\n // The SDK changes the cart from any page, so a cached copy is never safe to show.\n staleTime: 0,\n gcTime: 0,\n }),\n currentId: () =>\n queryOptions({\n queryKey: ['cart', 'current-id'],\n queryFn: () => cart.getCurrentId(),\n // Completing an order starts a new cart, so an earlier id is never reused.\n staleTime: 0,\n gcTime: 0,\n }),\n },\n};\n"]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { buildHreflangAlternates } from './chunk-TZ3E5BN4.js';
|
|
2
|
-
import { HomeComponentRenderer } from './chunk-
|
|
3
|
-
import { home } from './chunk-
|
|
2
|
+
import { HomeComponentRenderer, ReorderProducts } from './chunk-JNZLH2OR.js';
|
|
3
|
+
import { home } from './chunk-KO3HG5GQ.js';
|
|
4
4
|
import { useDevHomeComponentOverrides } from './chunk-2JV6WZ6O.js';
|
|
5
|
-
import { RouteId } from './chunk-
|
|
5
|
+
import { RouteId } from './chunk-OUW6WESU.js';
|
|
6
6
|
import { HookSlot } from './chunk-5XDPAKF5.js';
|
|
7
7
|
import { getTwilightContext } from './chunk-N2S25NXP.js';
|
|
8
8
|
import { memo } from 'react';
|
|
@@ -46,7 +46,8 @@ var HomePage = memo(function HomePage2({ components = [] }) {
|
|
|
46
46
|
// of that block. Platform blocks send null. Position is unique.
|
|
47
47
|
/* @__PURE__ */ jsx(HomeComponentRenderer, { data, index }, index)
|
|
48
48
|
)),
|
|
49
|
-
/* @__PURE__ */ jsx(HookSlot, { name: "home:end" })
|
|
49
|
+
/* @__PURE__ */ jsx(HookSlot, { name: "home:end" }),
|
|
50
|
+
/* @__PURE__ */ jsx(ReorderProducts, {})
|
|
50
51
|
] });
|
|
51
52
|
});
|
|
52
53
|
|
|
@@ -84,5 +85,5 @@ function head(ctx) {
|
|
|
84
85
|
var Home = { id: RouteId.INDEX, loader, head, Component: HomePage };
|
|
85
86
|
|
|
86
87
|
export { Home, HomeSkeleton, homeLoader };
|
|
87
|
-
//# sourceMappingURL=chunk-
|
|
88
|
-
//# sourceMappingURL=chunk-
|
|
88
|
+
//# sourceMappingURL=chunk-3EHECJ7M.js.map
|
|
89
|
+
//# sourceMappingURL=chunk-3EHECJ7M.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/routes/home/loader.ts","../src/routes/home/HomePage.tsx","../src/routes/home/index.tsx"],"names":["HomeSkeleton","HomePage"],"mappings":"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","file":"chunk-3EHECJ7M.js","sourcesContent":["import { getTwilightContext } from '../../twilight/context';\nimport { home } from '../../api/home';\nimport type { HomeComponentData } from '../../types';\nimport { RouteId } from '../../router/route-ids';\n\nexport interface HomeLoaderData {\n locale: string;\n components: HomeComponentData[];\n page: { slug: string };\n}\n\nexport async function homeLoader(ctx?: { locale?: string }): Promise<HomeLoaderData> {\n const { queryClient } = getTwilightContext();\n const components = await queryClient.ensureQueryData(home.queries.components());\n const result = {\n locale: ctx?.locale || 'ar',\n components: components.map((comp) => ({\n ...comp,\n path: comp.path?.replace('home.', '') || comp.path,\n })),\n page: { slug: RouteId.INDEX },\n };\n return result;\n}\n","import { memo } from 'react';\nimport { useDevHomeComponentOverrides } from '../../dev/dev-settings-store';\nimport { HookSlot } from '../../hooks';\nimport { HomeComponentRenderer, ReorderProducts } from '../../components/home';\nimport type { HomePageProps } from './types';\nimport { Pulse } from '@salla.sa/twilight-components-react';\n\nexport const HomeSkeleton = memo(function HomeSkeleton() {\n return (\n <>\n <div className=\"s-block container skeleton-block-hero\">\n <Pulse className=\"h-64 sm:h-80 rounded-md\" />\n </div>\n <div className=\"s-block container skeleton-block-products\">\n <Pulse className=\"h-10 w-48 mb-4\" />\n <div className=\"grid grid-cols-2 sm:grid-cols-4 gap-4\">\n {[1, 2, 3, 4].map((i) => (\n <Pulse key={i} className=\"h-56\" />\n ))}\n </div>\n </div>\n <div className=\"s-block container skeleton-block-products\">\n <Pulse className=\"h-10 w-48 mb-4\" />\n <div className=\"grid grid-cols-2 sm:grid-cols-4 gap-4\">\n {[1, 2, 3, 4].map((i) => (\n <Pulse key={i} className=\"h-56\" />\n ))}\n </div>\n </div>\n </>\n );\n});\n\nexport const HomePage = memo(function HomePage({ components = [] }: HomePageProps) {\n // Dev-mode only: overlay DevSettingsWidget component-field overrides onto the\n // blocks so edits render live. No-op passthrough in production builds.\n const renderedComponents = useDevHomeComponentOverrides(components);\n return (\n <>\n <HookSlot name=\"home:start\" />\n <HookSlot name=\"home:content\" />\n {renderedComponents.map((data, index) => (\n // `data.key` is the twilight.json catalog id, shared by every placement\n // of that block. Platform blocks send null. Position is unique.\n <HomeComponentRenderer key={index} data={data} index={index} />\n ))}\n <HookSlot name=\"home:end\" />\n <ReorderProducts />\n </>\n );\n});\n\nexport { HomePage as default };\n","import type { HeadDescriptor } from '../../utils/head';\nimport { buildHreflangAlternates } from '../../utils/baseHead';\nimport type { HomeLoaderData } from './loader';\nimport { homeLoader } from './loader';\nimport type { TwilightContext } from '../../twilight/context';\nimport { HomePage } from './HomePage';\nimport { RouteId } from '../../router/route-ids';\n\nexport { HomeSkeleton } from './HomePage';\nexport { registerHomeComponents, DefaultHomeComponents } from '../../components/home/register';\nexport { registerHomeComponentConfig } from '../../components/home';\nexport type { HomePageProps } from './types';\nexport type { HomeLoaderData } from './loader';\nexport type {\n HomeComponentsProps,\n AnyHomeComponent,\n HomeComponentConfig,\n} from '../../components/home';\n\nfunction loader(_ctx?: { locale?: string }): Promise<HomeLoaderData> {\n return homeLoader({ locale: _ctx?.locale });\n}\n\nfunction head(ctx: TwilightContext): HeadDescriptor {\n const store = ctx.settings?.store;\n if (!store) return {};\n\n const title = store.meta?.title ?? store.name;\n const description = store.meta?.description ?? store.description;\n const keywords = store.meta?.keywords;\n\n return {\n title,\n description,\n keywords,\n canonical: store.url,\n openGraph: {\n type: 'website',\n title,\n description,\n images: store.logo,\n url: store.url,\n },\n twitter: {\n card: 'summary_large_image',\n title,\n description,\n images: store.logo,\n },\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n };\n}\n\nexport const Home = { id: RouteId.INDEX, loader, head, Component: HomePage } as const;\n\nexport { homeLoader };\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { orThrow } from './chunk-
|
|
2
|
-
import { getActiveScope, api } from './chunk-
|
|
1
|
+
import { orThrow } from './chunk-OKNJFS44.js';
|
|
2
|
+
import { getActiveScope, api } from './chunk-IK57LAIA.js';
|
|
3
3
|
import { getTwilightContext } from './chunk-N2S25NXP.js';
|
|
4
4
|
import { defaultShouldDehydrateQuery, queryOptions } from '@tanstack/react-query';
|
|
5
5
|
|
|
@@ -107,6 +107,11 @@ var product = {
|
|
|
107
107
|
return data;
|
|
108
108
|
},
|
|
109
109
|
findOrThrow: (id) => orThrow(product.find(id)),
|
|
110
|
+
/** A tag's name. The list endpoint returns every product for an unknown tag; this one answers 410. */
|
|
111
|
+
tag: async (id) => {
|
|
112
|
+
const { tag } = await api.get(`products/tags/${id}`).json();
|
|
113
|
+
return tag;
|
|
114
|
+
},
|
|
110
115
|
/**
|
|
111
116
|
* Fetch products list with pagination support
|
|
112
117
|
* Used by native ProductsList component for SSR loaders
|
|
@@ -165,6 +170,10 @@ var product = {
|
|
|
165
170
|
// cache entry — `queryFn` still hits products/{id}/details.
|
|
166
171
|
placeholderData: () => getProductPreview(id)
|
|
167
172
|
}),
|
|
173
|
+
tag: (id) => queryOptions({
|
|
174
|
+
queryKey: ["products", "tag", id],
|
|
175
|
+
queryFn: () => product.tag(id)
|
|
176
|
+
}),
|
|
168
177
|
list: (params) => queryOptions({
|
|
169
178
|
// Scope (branch) varies product availability — key must include it.
|
|
170
179
|
queryKey: ["products", "list", params, { scope: getActiveScope() }],
|
|
@@ -174,5 +183,5 @@ var product = {
|
|
|
174
183
|
};
|
|
175
184
|
|
|
176
185
|
export { getProductPreview, isProductPreviewQuery, product, productDetailQueryKey, productPreviewQueryKey, rememberProductPreview, shouldDehydrateQuery };
|
|
177
|
-
//# sourceMappingURL=chunk-
|
|
178
|
-
//# sourceMappingURL=chunk-
|
|
186
|
+
//# sourceMappingURL=chunk-3QT7JMAD.js.map
|
|
187
|
+
//# sourceMappingURL=chunk-3QT7JMAD.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/api/product.ts"],"names":["product"],"mappings":"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","file":"chunk-3QT7JMAD.js","sourcesContent":["import { queryOptions, defaultShouldDehydrateQuery } from '@tanstack/react-query';\nimport { api, getActiveScope } from './client';\nimport type { Product } from '../types';\nimport type { Pagination, PaginatedResult } from './types';\nimport { orThrow } from '../providers/NavigationProvider';\nimport { getTwilightContext } from '../twilight/context';\nimport type { ActiveScope } from '../utils/cookies';\n\n// ===== Filter Types =====\n\nexport interface FilterValue {\n key?: string;\n count?: number;\n value?: string;\n from?: number | '*';\n to?: number | '*';\n}\n\nexport interface Filter {\n key?: string;\n label?: string;\n type?: string;\n values?: FilterValue[];\n max?: number;\n min?: number;\n}\n\n// ===== Product List Types =====\n\nexport type ProductsListSource =\n | 'brands'\n | 'categories'\n | 'json'\n | 'landing-page'\n | 'latest'\n | 'offers'\n | 'recently'\n | 'related'\n | 'selected'\n | 'tags'\n | 'top-rated'\n | 'wishlist'\n | 'search'\n | 'sales'\n | 'reorder'\n | 'best_selling';\n\nexport interface ProductsListParams {\n /** Source type (wishlist, latest, brands, etc.) */\n source: ProductsListSource;\n /**\n * The ids the source reads, as an array: category, brand, tag or product ids\n * (`sourceValue: [708738657]`). Sent as `source_value[]`.\n */\n sourceValue?: string | number | number[] | null;\n /** The search words when `source` is `'search'`. Sent as `keyword`; other sources ignore it. */\n keyword?: string;\n /** Page number for offset-based pagination */\n page?: number;\n /** Cursor for cursor-based pagination (from previous response) */\n cursor?: string | null;\n /** Items per page (default: 15) */\n perPage?: number;\n /** Sort option */\n sort?: string;\n /** Enable filters on the response */\n filterable?: boolean;\n /** Applied `<salla-filters>` selection (the `salla-filters::changed` payload). */\n filters?: ProductListFilters;\n /** Abort signal for cancellation */\n signal?: AbortSignal;\n}\n\n/** One `<salla-filters>` value: a scalar, a list, or a nested `{ sub-key: value }` (variants). */\nexport type ProductListFilterValue =\n string | number | Array<string | number> | { [key: string]: ProductListFilterValue };\n\n/** A `<salla-filters>` selection, i.e. the `salla-filters::changed` payload. */\nexport type ProductListFilters = Record<string, ProductListFilterValue>;\n\nexport type ProductsListResult = PaginatedResult<Product> & {\n filters?: Filter[];\n};\n\nexport interface ProductsListResponse {\n data: Product[];\n cursor?: Pagination;\n filters?: Filter[];\n}\n\n// ===== List-card preview cache =====\n// List payloads are a subset of details (one `image`, no `options` / `images[]`).\n// They live on a separate query key so they can paint a sheet/quick-view without\n// being treated as a successful `products/{id}/details` fetch.\n\nfunction queryClientOrNull() {\n try {\n const queryClient = getTwilightContext().queryClient;\n return queryClient && typeof queryClient.setQueryData === 'function' ? queryClient : null;\n } catch {\n return null;\n }\n}\n\nexport function productPreviewQueryKey(id: string) {\n return ['products', 'preview', String(id), { scope: getActiveScope() }] as const;\n}\n\nexport function productDetailQueryKey(id: string) {\n return ['products', 'detail', id, { scope: getActiveScope() }] as const;\n}\n\n/** True when this query is a list-card stand-in — skip it when dehydrating SSR. */\nexport function isProductPreviewQuery(query: { queryKey: readonly unknown[] }): boolean {\n return query.queryKey[0] === 'products' && query.queryKey[1] === 'preview';\n}\n\n/**\n * Default dehydrate policy (success) plus pending SSR-stream queries, minus\n * list-card stand-ins. Replacing the default wholesale would ship error states.\n */\nexport function shouldDehydrateQuery(\n query: Parameters<typeof defaultShouldDehydrateQuery>[0]\n): boolean {\n return (\n !isProductPreviewQuery(query) &&\n (defaultShouldDehydrateQuery(query) || query.state.status === 'pending')\n );\n}\n\n/**\n * Remember a list/card product so `product.queries.detail(id)` can use it as\n * `placeholderData` while details load. No-op if details for this id are already\n * cached. Themes that fetch products outside `product.list` should call this.\n */\nexport function rememberProductPreview(product: Product): void {\n const queryClient = queryClientOrNull();\n if (!queryClient || product?.id == null) return;\n const id = String(product.id);\n if (queryClient.getQueryState(productDetailQueryKey(id))?.status === 'success') return;\n queryClient.setQueryData(productPreviewQueryKey(id), product);\n}\n\nfunction scopeFromQueryKey(queryKey: readonly unknown[]): ActiveScope | null | undefined {\n const last = queryKey[queryKey.length - 1];\n if (last == null || typeof last !== 'object' || !('scope' in last)) return undefined;\n return (last as { scope: ActiveScope | null }).scope;\n}\n\nfunction isSameScope(a: ActiveScope | null | undefined, b: ActiveScope | null): boolean {\n if (a === undefined) return false;\n if (a === b) return true;\n if (a == null || b == null) return a == null && b == null;\n return (\n a.id === b.id &&\n a.type === b.type &&\n a.allocation_id === b.allocation_id &&\n a.allocation_type === b.allocation_type\n );\n}\n\nconst LIST_QUERY_PREFIXES = [\n ['products', 'list'],\n ['wishlist', 'list'],\n] as const;\n\n/**\n * Rebuild the scoped preview index from hydrated list/wishlist queries (SSR\n * dehydrate drops preview keys). Subsequent lookups hit `productPreviewQueryKey`.\n */\nfunction findProductInScopedLists(\n queryClient: NonNullable<ReturnType<typeof queryClientOrNull>>,\n id: string\n): Product | undefined {\n const scope = getActiveScope();\n let found: Product | undefined;\n for (const prefix of LIST_QUERY_PREFIXES) {\n for (const [queryKey, data] of queryClient.getQueriesData<ProductsListResult>({\n queryKey: prefix,\n })) {\n if (!isSameScope(scopeFromQueryKey(queryKey), scope)) continue;\n for (const item of data?.items ?? []) {\n if (item?.id == null) continue;\n rememberProductPreview(item);\n if (!found && String(item.id) === id) found = item;\n }\n }\n }\n return found;\n}\n\n/**\n * List-card product for `placeholderData`. Prefers the preview key; if that was\n * dropped on SSR dehydrate, rebuilds it from the current-scope list/wishlist.\n */\nexport function getProductPreview(id: string): Product | undefined {\n const queryClient = queryClientOrNull();\n if (!queryClient) return undefined;\n const key = String(id);\n return (\n queryClient.getQueryData(productPreviewQueryKey(key)) ??\n findProductInScopedLists(queryClient, key)\n );\n}\n\nfunction rememberProductPreviews(items: Product[]): void {\n for (const item of items) rememberProductPreview(item);\n}\n\n/**\n * Search sends its words as `keyword` (a `sourceValue` string is still read there, as before);\n * every other source sends its ids as `source_value[]`, which the API requires as an array.\n */\nfunction appendSourceParams(\n searchParams: URLSearchParams,\n { source, sourceValue, keyword }: Pick<ProductsListParams, 'source' | 'sourceValue' | 'keyword'>\n): void {\n if (source === 'search') {\n const words = keyword ?? sourceValue;\n if (words !== undefined) searchParams.set('keyword', String(words));\n } else if (Array.isArray(sourceValue)) {\n sourceValue.forEach((val) => searchParams.append('source_value[]', String(val)));\n } else if (sourceValue !== undefined) {\n searchParams.append('source_value[]', String(sourceValue));\n }\n}\n\n/**\n * Sends an applied filter selection the way the SDK's `<salla-products-list>` does:\n * `filters[key]=v`, `filters[key][]=v` or `filters[key][sub]=v`.\n */\nfunction appendFilterParams(\n searchParams: URLSearchParams,\n filters?: Record<string, ProductListFilterValue>,\n parentKey = 'filters'\n): void {\n if (!filters) return;\n for (const [key, value] of Object.entries(filters)) {\n const fullKey = `${parentKey}[${key}]`;\n if (Array.isArray(value)) {\n value.forEach((item) => searchParams.append(`${fullKey}[]`, String(item)));\n } else if (value !== null && typeof value === 'object') {\n appendFilterParams(searchParams, value, fullKey);\n } else if (value !== undefined && value !== null) {\n searchParams.append(fullKey, String(value));\n }\n }\n}\n\n/** A `category_id` filter replaces the page's category as the list source (as in the SDK). */\nfunction categoryFilterIds(filters?: ProductListFilters): number[] | null {\n const raw = filters?.category_id;\n if (raw === undefined || raw === null) return null;\n const ids = Array.isArray(raw) ? raw : typeof raw === 'object' ? Object.values(raw) : [raw];\n return ids.map(Number);\n}\n\n// ===== API Functions =====\n\nexport const product = {\n find: async (id: string): Promise<Product> => {\n const endpoint = `products/${id}/details?with[]=images&with[]=category&with[]=rating&with[]=notify_availability&with[]=tags&with[]=brand&with[]=options&with[]=skus&with[]=skus_availability&with[]=included_products&with[]=bundle&with[]=sold_quantity`;\n const { data } = await api.get(endpoint).json<{ data: Product }>();\n return data;\n },\n\n findOrThrow: (id: string): Promise<Product> => orThrow(product.find(id)),\n\n /** A tag's name. The list endpoint returns every product for an unknown tag; this one answers 410. */\n tag: async (id: string): Promise<{ id: number; name: string }> => {\n const { tag } = await api\n .get(`products/tags/${id}`)\n .json<{ tag: { id: number; name: string } }>();\n return tag;\n },\n\n /**\n * Fetch products list with pagination support\n * Used by native ProductsList component for SSR loaders\n *\n * API pattern: GET /products?source=wishlist&page=1\n */\n list: async (params: ProductsListParams): Promise<ProductsListResult> => {\n const {\n source,\n sourceValue,\n keyword,\n page,\n cursor,\n perPage = 16,\n sort,\n filterable,\n filters,\n signal,\n } = params;\n\n // Build URL with query parameters\n const searchParams = new URLSearchParams();\n searchParams.set('source', source);\n // Only send page when explicitly provided — cursor-based callers omit it entirely\n if (page !== undefined) searchParams.set('page', String(page));\n searchParams.set('per_page', String(perPage));\n\n appendSourceParams(searchParams, {\n source,\n sourceValue: (source === 'categories' && categoryFilterIds(filters)) || sourceValue,\n keyword,\n });\n appendFilterParams(searchParams, filters);\n\n // Add filterable parameter\n if (filterable !== undefined) {\n searchParams.set('filterable', filterable ? '1' : '0');\n }\n\n // Add sort parameter\n if (sort) {\n searchParams.set('sort', sort);\n }\n\n // Add cursor for cursor-based pagination\n if (cursor) {\n searchParams.set('cursor', cursor);\n }\n\n // Make the request\n const options: Record<string, unknown> = {};\n if (signal) options.signal = signal;\n\n const response = await api\n .get(`products?${searchParams.toString()}`, options as any)\n .json<ProductsListResponse>();\n\n const items = response.data ?? [];\n rememberProductPreviews(items);\n\n return {\n items,\n next: response.cursor?.next ?? null,\n filters: response.filters,\n };\n },\n\n queries: {\n detail: (id: string) =>\n queryOptions({\n // Stock and availability are resolved per branch allocation — same as the list.\n queryKey: productDetailQueryKey(id),\n queryFn: () => product.find(id),\n // List-card product, if one was remembered. Not written as the detail\n // cache entry — `queryFn` still hits products/{id}/details.\n placeholderData: () => getProductPreview(id),\n }),\n tag: (id: string) =>\n queryOptions({\n queryKey: ['products', 'tag', id],\n queryFn: () => product.tag(id),\n }),\n list: (params: Omit<ProductsListParams, 'signal'>) =>\n queryOptions({\n // Scope (branch) varies product availability — key must include it.\n queryKey: ['products', 'list', params, { scope: getActiveScope() }],\n queryFn: ({ signal }) => product.list({ ...params, signal }),\n }),\n },\n};\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { api } from './chunk-
|
|
1
|
+
import { api } from './chunk-IK57LAIA.js';
|
|
2
2
|
import { queryOptions } from '@tanstack/react-query';
|
|
3
3
|
|
|
4
4
|
var apps = {
|
|
@@ -40,5 +40,5 @@ var apps = {
|
|
|
40
40
|
};
|
|
41
41
|
|
|
42
42
|
export { apps };
|
|
43
|
-
//# sourceMappingURL=chunk-
|
|
44
|
-
//# sourceMappingURL=chunk-
|
|
43
|
+
//# sourceMappingURL=chunk-3TJKB3WR.js.map
|
|
44
|
+
//# sourceMappingURL=chunk-3TJKB3WR.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/api/apps.ts"],"names":[],"mappings":";;;AAmCO,IAAM,IAAA,GAAO;AAAA;AAAA;AAAA;AAAA;AAAA,EAKlB,UAAU,YAAmC;AAC3C,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,GAAA,CACpB,GAAA,CAAI,eAAA,EAAiB,EAAE,OAAA,EAAS,IAAA,EAAM,CAAA,CACtC,IAAA,EAA8B;AACjC,IAAA,OAAO,QAAQ,EAAC;AAAA,EAClB,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,UAAU,YAAkC;AAC1C,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,GAAA,CACpB,GAAA,CAAI,wBAAA,EAA0B,EAAE,OAAA,EAAS,IAAA,EAAM,CAAA,CAC/C,IAAA,EAAsC;AACzC,IAAA,OAAO,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,IAAQ,EAAC,EAAE;AAAA,EAClC,CAAA;AAAA,EAEA,OAAA,EAAS;AAAA,IACP,QAAA,EAAU,MACR,YAAA,CAAa;AAAA,MACX,QAAA,EAAU,CAAC,MAAA,EAAQ,UAAU,CAAA;AAAA,MAC7B,OAAA,EAAS,MAAM,IAAA,CAAK,QAAA,EAAS;AAAA;AAAA,MAE7B,SAAA,EAAW,QAAA;AAAA;AAAA;AAAA;AAAA,MAIX,KAAA,EAAO;AAAA,KACR,CAAA;AAAA,IAEH,QAAA,EAAU,MACR,YAAA,CAAa;AAAA,MACX,QAAA,EAAU,CAAC,MAAA,EAAQ,UAAU,CAAA;AAAA,MAC7B,OAAA,EAAS,MAAM,IAAA,CAAK,QAAA,EAAS;AAAA;AAAA,MAE7B,SAAA,EAAW,QAAA;AAAA,MACX,KAAA,EAAO;AAAA,KACR;AAAA;AAEP","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/api/apps.ts"],"names":[],"mappings":";;;AAmCO,IAAM,IAAA,GAAO;AAAA;AAAA;AAAA;AAAA;AAAA,EAKlB,UAAU,YAAmC;AAC3C,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,GAAA,CACpB,GAAA,CAAI,eAAA,EAAiB,EAAE,OAAA,EAAS,IAAA,EAAM,CAAA,CACtC,IAAA,EAA8B;AACjC,IAAA,OAAO,QAAQ,EAAC;AAAA,EAClB,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,UAAU,YAAkC;AAC1C,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,GAAA,CACpB,GAAA,CAAI,wBAAA,EAA0B,EAAE,OAAA,EAAS,IAAA,EAAM,CAAA,CAC/C,IAAA,EAAsC;AACzC,IAAA,OAAO,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,IAAQ,EAAC,EAAE;AAAA,EAClC,CAAA;AAAA,EAEA,OAAA,EAAS;AAAA,IACP,QAAA,EAAU,MACR,YAAA,CAAa;AAAA,MACX,QAAA,EAAU,CAAC,MAAA,EAAQ,UAAU,CAAA;AAAA,MAC7B,OAAA,EAAS,MAAM,IAAA,CAAK,QAAA,EAAS;AAAA;AAAA,MAE7B,SAAA,EAAW,QAAA;AAAA;AAAA;AAAA;AAAA,MAIX,KAAA,EAAO;AAAA,KACR,CAAA;AAAA,IAEH,QAAA,EAAU,MACR,YAAA,CAAa;AAAA,MACX,QAAA,EAAU,CAAC,MAAA,EAAQ,UAAU,CAAA;AAAA,MAC7B,OAAA,EAAS,MAAM,IAAA,CAAK,QAAA,EAAS;AAAA;AAAA,MAE7B,SAAA,EAAW,QAAA;AAAA,MACX,KAAA,EAAO;AAAA,KACR;AAAA;AAEP","file":"chunk-3TJKB3WR.js","sourcesContent":["import { queryOptions } from '@tanstack/react-query';\nimport { api } from './client';\n\nexport interface AppSnippetRow {\n place: string;\n content: string;\n url?: string | null;\n /**\n * Raw snippet id, emitted as `data-snippet-id`. Present only on CDN rows — the\n * inline branch of the backend's snippet parser omits the key entirely.\n */\n id?: number;\n /** `{{customer.x}}` placeholders in `content` to substitute from SDK config `user.*` keys. */\n customer_parameters?: string[];\n}\n\nexport interface AppSnippet {\n service: string;\n app_id: string;\n /** Encoded app id (`getRouteKey()`): the scope id its snippets bind to via `data-scope-id`,\n * and its settings-bucket key. Absent on payloads predating the settings API. */\n id?: string;\n app_slug: string;\n status: string;\n snippets: AppSnippetRow[];\n}\n\n/**\n * Per-app public `app.*` buckets for CDN snippets, keyed by encoded app id (== `AppSnippet.id`,\n * the `Salla.appScope` scope id). One isolated bucket per app; reads within a scope are bare `app.*`.\n */\nexport interface AppSettings {\n apps: Record<string, Record<string, unknown>>;\n}\n\nexport const apps = {\n /**\n * Installed apps' snippets (scripts/HTML to inject). Timeout-bounded because it's awaited in\n * rootBeforeLoad (SSR/TTFB): a slow response degrades to no CDN tags, never stalls the page.\n */\n snippets: async (): Promise<AppSnippet[]> => {\n const { data } = await api\n .get('apps/snippets', { timeout: 2500 })\n .json<{ data?: AppSnippet[] }>();\n return data ?? [];\n },\n\n /**\n * Per-app public `app.*` buckets, keyed by encoded app id. Timeout-bounded (SSR-awaited):\n * a slow response degrades to empty buckets (fail-open), never strands injection.\n */\n settings: async (): Promise<AppSettings> => {\n const { data } = await api\n .get('apps/snippets/settings', { timeout: 2500 })\n .json<{ data?: Partial<AppSettings> }>();\n return { apps: data?.apps ?? {} };\n },\n\n queries: {\n snippets: () =>\n queryOptions({\n queryKey: ['apps', 'snippets'],\n queryFn: () => apps.snippets(),\n // Snippets are static per session; one fetch per page load is enough.\n staleTime: Infinity,\n // No retry: this is awaited in rootBeforeLoad, so the router's default `retry: 1` would\n // make the SSR wait 2 x the 2500ms timeout (plus backoff) before failing open. The\n // 2500ms timeout must be the whole budget; the client fallback query does the retrying.\n retry: 0,\n }),\n\n settings: () =>\n queryOptions({\n queryKey: ['apps', 'settings'],\n queryFn: () => apps.settings(),\n // Encoded app ids and their buckets are stable per page; one fetch is enough.\n staleTime: Infinity,\n retry: 0,\n }),\n },\n};\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { orThrow } from './chunk-
|
|
2
|
-
import { api } from './chunk-
|
|
1
|
+
import { orThrow } from './chunk-OKNJFS44.js';
|
|
2
|
+
import { api } from './chunk-IK57LAIA.js';
|
|
3
3
|
import { queryOptions } from '@tanstack/react-query';
|
|
4
4
|
|
|
5
5
|
var brand = {
|
|
@@ -25,5 +25,5 @@ var brand = {
|
|
|
25
25
|
};
|
|
26
26
|
|
|
27
27
|
export { brand };
|
|
28
|
-
//# sourceMappingURL=chunk-
|
|
29
|
-
//# sourceMappingURL=chunk-
|
|
28
|
+
//# sourceMappingURL=chunk-4VWWIA4M.js.map
|
|
29
|
+
//# sourceMappingURL=chunk-4VWWIA4M.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/api/brands.ts"],"names":[],"mappings":";;;;AAMO,IAAM,KAAA,GAAQ;AAAA,EACnB,IAAA,EAAM,OAAO,IAAA,KAAmD;AAC9D,IAAA,MAAM,EAAE,IAAA,EAAM,MAAA,EAAO,GAAI,MAAM,GAAA,CAC5B,GAAA,CAAI,IAAA,GAAO,CAAA,YAAA,EAAe,IAAI,CAAA,CAAA,GAAK,QAAQ,EAC3C,IAAA,EAAoD;AACvD,IAAA,OAAO,EAAE,OAAO,IAAA,IAAQ,IAAI,IAAA,EAAM,MAAA,EAAQ,QAAQ,IAAA,EAAK;AAAA,EACzD,CAAA;AAAA,EAEA,IAAA,EAAM,OAAO,EAAA,KAA+B;AAC1C,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,GAAA,CAAI,IAAI,CAAA,OAAA,EAAU,EAAE,CAAA,CAAE,CAAA,CAAE,IAAA,EAAsB;AACrE,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAAA,EAEA,aAAa,CAAC,EAAA,KAA+B,QAAQ,KAAA,CAAM,IAAA,CAAK,EAAE,CAAC,CAAA;AAAA,EAEnE,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,CAAC,IAAA,KACL,YAAA,CAAa;AAAA,MACX,QAAA,EAAU,CAAC,QAAA,EAAU,MAAA,EAAQ,QAAQ,CAAC,CAAA;AAAA,MACtC,OAAA,EAAS,MAAM,KAAA,CAAM,IAAA,CAAK,IAAI;AAAA,KAC/B,CAAA;AAAA,IACH,MAAA,EAAQ,CAAC,EAAA,KACP,YAAA,CAAa;AAAA,MACX,QAAA,EAAU,CAAC,QAAA,EAAU,QAAA,EAAU,EAAE,CAAA;AAAA,MACjC,OAAA,EAAS,MAAM,KAAA,CAAM,IAAA,CAAK,EAAE;AAAA,KAC7B;AAAA;AAEP","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/api/brands.ts"],"names":[],"mappings":";;;;AAMO,IAAM,KAAA,GAAQ;AAAA,EACnB,IAAA,EAAM,OAAO,IAAA,KAAmD;AAC9D,IAAA,MAAM,EAAE,IAAA,EAAM,MAAA,EAAO,GAAI,MAAM,GAAA,CAC5B,GAAA,CAAI,IAAA,GAAO,CAAA,YAAA,EAAe,IAAI,CAAA,CAAA,GAAK,QAAQ,EAC3C,IAAA,EAAoD;AACvD,IAAA,OAAO,EAAE,OAAO,IAAA,IAAQ,IAAI,IAAA,EAAM,MAAA,EAAQ,QAAQ,IAAA,EAAK;AAAA,EACzD,CAAA;AAAA,EAEA,IAAA,EAAM,OAAO,EAAA,KAA+B;AAC1C,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,GAAA,CAAI,IAAI,CAAA,OAAA,EAAU,EAAE,CAAA,CAAE,CAAA,CAAE,IAAA,EAAsB;AACrE,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAAA,EAEA,aAAa,CAAC,EAAA,KAA+B,QAAQ,KAAA,CAAM,IAAA,CAAK,EAAE,CAAC,CAAA;AAAA,EAEnE,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,CAAC,IAAA,KACL,YAAA,CAAa;AAAA,MACX,QAAA,EAAU,CAAC,QAAA,EAAU,MAAA,EAAQ,QAAQ,CAAC,CAAA;AAAA,MACtC,OAAA,EAAS,MAAM,KAAA,CAAM,IAAA,CAAK,IAAI;AAAA,KAC/B,CAAA;AAAA,IACH,MAAA,EAAQ,CAAC,EAAA,KACP,YAAA,CAAa;AAAA,MACX,QAAA,EAAU,CAAC,QAAA,EAAU,QAAA,EAAU,EAAE,CAAA;AAAA,MACjC,OAAA,EAAS,MAAM,KAAA,CAAM,IAAA,CAAK,EAAE;AAAA,KAC7B;AAAA;AAEP","file":"chunk-4VWWIA4M.js","sourcesContent":["import { queryOptions } from '@tanstack/react-query';\nimport { api } from './client';\nimport type { Brand } from '../routes/brands/types';\nimport type { PaginatedResult, Pagination } from './types';\nimport { orThrow } from '../providers/NavigationProvider';\n\nexport const brand = {\n list: async (page?: number): Promise<PaginatedResult<Brand>> => {\n const { data, cursor } = await api\n .get(page ? `brands?page=${page}` : 'brands')\n .json<{ data: Brand[] | null; cursor?: Pagination }>();\n return { items: data ?? [], next: cursor?.next ?? null };\n },\n\n find: async (id: string): Promise<Brand> => {\n const { data } = await api.get(`brands/${id}`).json<{ data: Brand }>();\n return data;\n },\n\n findOrThrow: (id: string): Promise<Brand> => orThrow(brand.find(id)),\n\n queries: {\n list: (page?: number) =>\n queryOptions({\n queryKey: ['brands', 'list', page ?? 1],\n queryFn: () => brand.list(page),\n }),\n detail: (id: string) =>\n queryOptions({\n queryKey: ['brands', 'detail', id],\n queryFn: () => brand.find(id),\n }),\n },\n};\n"]}
|