@wix/headless-stores 0.0.9 → 0.0.11
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/cjs/dist/enums/index.d.ts +2 -0
- package/cjs/dist/enums/index.js +18 -0
- package/cjs/dist/enums/social-platform-enums.d.ts +25 -0
- package/cjs/dist/enums/social-platform-enums.js +30 -0
- package/cjs/dist/enums/sort-enums.d.ts +17 -0
- package/cjs/dist/enums/sort-enums.js +21 -0
- package/cjs/dist/react/BuyNow.d.ts +2 -4
- package/cjs/dist/react/Category.d.ts +15 -0
- package/cjs/dist/react/Category.js +22 -0
- package/cjs/dist/react/Collection.d.ts +151 -0
- package/cjs/dist/react/Collection.js +209 -0
- package/cjs/dist/react/FilteredCollection.d.ts +95 -0
- package/cjs/dist/react/FilteredCollection.js +150 -0
- package/cjs/dist/react/PayNow.d.ts +2 -4
- package/cjs/dist/react/Product.d.ts +43 -0
- package/cjs/dist/react/Product.js +35 -0
- package/cjs/dist/react/ProductActions.d.ts +42 -0
- package/cjs/dist/react/ProductActions.js +83 -0
- package/cjs/dist/react/ProductModifiers.d.ts +164 -0
- package/cjs/dist/react/ProductModifiers.js +168 -0
- package/cjs/dist/react/ProductVariantSelector.d.ts +153 -0
- package/cjs/dist/react/ProductVariantSelector.js +138 -0
- package/cjs/dist/react/RelatedProducts.d.ts +64 -0
- package/cjs/dist/react/RelatedProducts.js +73 -0
- package/cjs/dist/react/SelectedVariant.d.ts +66 -0
- package/cjs/dist/react/SelectedVariant.js +52 -0
- package/cjs/dist/react/SocialSharing.d.ts +112 -0
- package/cjs/dist/react/SocialSharing.js +86 -0
- package/cjs/dist/react/Sort.d.ts +14 -0
- package/cjs/dist/react/Sort.js +17 -0
- package/cjs/dist/react/index.d.ts +11 -0
- package/cjs/dist/react/index.js +34 -0
- package/cjs/dist/services/buy-now-service.js +2 -2
- package/cjs/dist/services/catalog-options-service.d.ts +30 -0
- package/cjs/dist/services/catalog-options-service.js +156 -0
- package/cjs/dist/services/catalog-price-range-service.d.ts +23 -0
- package/cjs/dist/services/catalog-price-range-service.js +97 -0
- package/cjs/dist/services/category-service.d.ts +26 -0
- package/cjs/dist/services/category-service.js +71 -0
- package/cjs/dist/services/collection-service.d.ts +37 -0
- package/cjs/dist/services/collection-service.js +569 -0
- package/cjs/dist/services/filter-service.d.ts +56 -0
- package/cjs/dist/services/filter-service.js +147 -0
- package/cjs/dist/services/product-media-gallery-service.d.ts +25 -0
- package/cjs/dist/services/product-media-gallery-service.js +105 -0
- package/cjs/dist/services/product-modifiers-service.d.ts +34 -0
- package/cjs/dist/services/product-modifiers-service.js +111 -0
- package/cjs/dist/services/product-service.d.ts +28 -0
- package/cjs/dist/services/product-service.js +68 -0
- package/cjs/dist/services/related-products-service.d.ts +25 -0
- package/cjs/dist/services/related-products-service.js +54 -0
- package/cjs/dist/services/selected-variant-service.d.ts +59 -0
- package/cjs/dist/services/selected-variant-service.js +541 -0
- package/cjs/dist/services/social-sharing-service.d.ts +41 -0
- package/cjs/dist/services/social-sharing-service.js +141 -0
- package/cjs/dist/services/sort-service.d.ts +20 -0
- package/cjs/dist/services/sort-service.js +32 -0
- package/cjs/dist/utils/url-params.d.ts +5 -0
- package/cjs/dist/utils/url-params.js +50 -0
- package/dist/enums/index.d.ts +2 -0
- package/dist/enums/index.js +2 -0
- package/dist/enums/social-platform-enums.d.ts +25 -0
- package/dist/enums/social-platform-enums.js +27 -0
- package/dist/enums/sort-enums.d.ts +17 -0
- package/dist/enums/sort-enums.js +18 -0
- package/dist/react/BuyNow.d.ts +2 -4
- package/dist/react/Category.d.ts +15 -0
- package/dist/react/Category.js +18 -0
- package/dist/react/Collection.d.ts +151 -0
- package/dist/react/Collection.js +201 -0
- package/dist/react/FilteredCollection.d.ts +95 -0
- package/dist/react/FilteredCollection.js +140 -0
- package/dist/react/PayNow.d.ts +2 -4
- package/dist/react/Product.d.ts +43 -0
- package/dist/react/Product.js +30 -0
- package/dist/react/ProductActions.d.ts +42 -0
- package/dist/react/ProductActions.js +79 -0
- package/dist/react/ProductModifiers.d.ts +164 -0
- package/dist/react/ProductModifiers.js +160 -0
- package/dist/react/ProductVariantSelector.d.ts +153 -0
- package/dist/react/ProductVariantSelector.js +130 -0
- package/dist/react/RelatedProducts.d.ts +64 -0
- package/dist/react/RelatedProducts.js +65 -0
- package/dist/react/SelectedVariant.d.ts +66 -0
- package/dist/react/SelectedVariant.js +46 -0
- package/dist/react/SocialSharing.d.ts +112 -0
- package/dist/react/SocialSharing.js +77 -0
- package/dist/react/Sort.d.ts +14 -0
- package/dist/react/Sort.js +14 -0
- package/dist/react/index.d.ts +11 -0
- package/dist/react/index.js +11 -0
- package/dist/services/buy-now-service.js +2 -2
- package/dist/services/catalog-options-service.d.ts +30 -0
- package/dist/services/catalog-options-service.js +152 -0
- package/dist/services/catalog-price-range-service.d.ts +23 -0
- package/dist/services/catalog-price-range-service.js +93 -0
- package/dist/services/category-service.d.ts +26 -0
- package/dist/services/category-service.js +67 -0
- package/dist/services/collection-service.d.ts +37 -0
- package/dist/services/collection-service.js +532 -0
- package/dist/services/filter-service.d.ts +56 -0
- package/dist/services/filter-service.js +144 -0
- package/dist/services/product-media-gallery-service.d.ts +25 -0
- package/dist/services/product-media-gallery-service.js +101 -0
- package/dist/services/product-modifiers-service.d.ts +34 -0
- package/dist/services/product-modifiers-service.js +107 -0
- package/dist/services/product-service.d.ts +28 -0
- package/dist/services/product-service.js +64 -0
- package/dist/services/related-products-service.d.ts +25 -0
- package/dist/services/related-products-service.js +50 -0
- package/dist/services/selected-variant-service.d.ts +59 -0
- package/dist/services/selected-variant-service.js +538 -0
- package/dist/services/social-sharing-service.d.ts +41 -0
- package/dist/services/social-sharing-service.js +137 -0
- package/dist/services/sort-service.d.ts +20 -0
- package/dist/services/sort-service.js +29 -0
- package/dist/utils/url-params.d.ts +5 -0
- package/dist/utils/url-params.js +46 -0
- package/package.json +8 -1
- package/dist/astro/BuyNowServiceContext.d.ts +0 -2
- package/dist/astro/BuyNowServiceContext.js +0 -6
- package/dist/astro/ManagerProviderContext.d.ts +0 -2
- package/dist/astro/ManagerProviderContext.js +0 -7
- package/dist/astro/withBuyButtonService.d.ts +0 -2
- package/dist/astro/withBuyButtonService.js +0 -16
- package/dist/react/CurrentCartServiceProvider.d.ts +0 -5
- package/dist/react/CurrentCartServiceProvider.js +0 -12
- package/dist/react/VariantSelectorServiceProvider.d.ts +0 -7
- package/dist/react/VariantSelectorServiceProvider.js +0 -22
- package/dist/react/hookim/index.d.ts +0 -5
- package/dist/react/hookim/index.js +0 -22
- package/dist/services/CurrentCartService.d.ts +0 -18
- package/dist/services/CurrentCartService.js +0 -9
- package/dist/services/VariantSelectorServices.d.ts +0 -8
- package/dist/services/VariantSelectorServices.js +0 -20
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { Signal } from '../../Signal';
|
|
2
|
+
import { type Category } from '@wix/auto_sdk_categories_categories';
|
|
3
|
+
export interface CategoryServiceAPI {
|
|
4
|
+
selectedCategory: Signal<string | null>;
|
|
5
|
+
categories: Signal<Category[]>;
|
|
6
|
+
setSelectedCategory: (categoryId: string | null) => void;
|
|
7
|
+
loadCategories: () => Promise<void>;
|
|
8
|
+
}
|
|
9
|
+
export declare const CategoryServiceDefinition: string & {
|
|
10
|
+
__api: CategoryServiceAPI;
|
|
11
|
+
__config: {};
|
|
12
|
+
isServiceDefinition?: boolean;
|
|
13
|
+
} & CategoryServiceAPI;
|
|
14
|
+
export interface CategoryServiceConfig {
|
|
15
|
+
categories: Category[];
|
|
16
|
+
initialCategoryId?: string | null;
|
|
17
|
+
onCategoryChange?: (categoryId: string | null, category: Category | null) => void;
|
|
18
|
+
}
|
|
19
|
+
export declare const CategoryService: import("@wix/services-definitions").ServiceFactory<string & {
|
|
20
|
+
__api: CategoryServiceAPI;
|
|
21
|
+
__config: {};
|
|
22
|
+
isServiceDefinition?: boolean;
|
|
23
|
+
} & CategoryServiceAPI, CategoryServiceConfig, import("@wix/services-definitions").ThreadMode.MAIN>;
|
|
24
|
+
export declare function loadCategoriesConfig(): Promise<{
|
|
25
|
+
categories: Category[];
|
|
26
|
+
}>;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CategoryService = exports.CategoryServiceDefinition = void 0;
|
|
4
|
+
exports.loadCategoriesConfig = loadCategoriesConfig;
|
|
5
|
+
const services_definitions_1 = require("@wix/services-definitions");
|
|
6
|
+
const signals_1 = require("@wix/services-definitions/core-services/signals");
|
|
7
|
+
const auto_sdk_categories_categories_1 = require("@wix/auto_sdk_categories_categories");
|
|
8
|
+
exports.CategoryServiceDefinition = (0, services_definitions_1.defineService)('category-service');
|
|
9
|
+
exports.CategoryService = services_definitions_1.implementService.withConfig()(exports.CategoryServiceDefinition, ({ getService, config }) => {
|
|
10
|
+
const signalsService = getService(signals_1.SignalsServiceDefinition);
|
|
11
|
+
const selectedCategory = signalsService.signal((config.initialCategoryId || null));
|
|
12
|
+
const categories = signalsService.signal(config.categories);
|
|
13
|
+
const loadCategories = async () => {
|
|
14
|
+
const { categories: loadedCategories } = await loadCategoriesConfig();
|
|
15
|
+
categories.set(loadedCategories);
|
|
16
|
+
};
|
|
17
|
+
// Track if this is the initial load to prevent navigation on service creation
|
|
18
|
+
let isInitialLoad = true;
|
|
19
|
+
const setSelectedCategory = (categoryId) => {
|
|
20
|
+
selectedCategory.set(categoryId);
|
|
21
|
+
};
|
|
22
|
+
// Subscribe to category changes and handle navigation as a side effect
|
|
23
|
+
selectedCategory.subscribe(categoryId => {
|
|
24
|
+
// Skip navigation on initial load (when service is first created)
|
|
25
|
+
if (isInitialLoad) {
|
|
26
|
+
isInitialLoad = false;
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
// If a navigation handler is provided, use it
|
|
30
|
+
if (config.onCategoryChange) {
|
|
31
|
+
const category = categoryId
|
|
32
|
+
? config.categories.find(cat => cat._id === categoryId) || null
|
|
33
|
+
: null;
|
|
34
|
+
config.onCategoryChange(categoryId, category);
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
return {
|
|
38
|
+
selectedCategory,
|
|
39
|
+
categories,
|
|
40
|
+
setSelectedCategory,
|
|
41
|
+
loadCategories,
|
|
42
|
+
};
|
|
43
|
+
});
|
|
44
|
+
async function loadCategoriesConfig() {
|
|
45
|
+
try {
|
|
46
|
+
const categoriesResponse = await (0, auto_sdk_categories_categories_1.queryCategories)({
|
|
47
|
+
treeReference: {
|
|
48
|
+
appNamespace: '@wix/stores',
|
|
49
|
+
treeKey: null,
|
|
50
|
+
},
|
|
51
|
+
})
|
|
52
|
+
.eq('visible', true)
|
|
53
|
+
.find();
|
|
54
|
+
const fetchedCategories = categoriesResponse.items || [];
|
|
55
|
+
// Sort categories to put "all-products" first, keep the rest in original order
|
|
56
|
+
const allProductsCategory = fetchedCategories.find(cat => cat.slug === 'all-products');
|
|
57
|
+
const otherCategories = fetchedCategories.filter(cat => cat.slug !== 'all-products');
|
|
58
|
+
const allCategories = allProductsCategory
|
|
59
|
+
? [allProductsCategory, ...otherCategories]
|
|
60
|
+
: fetchedCategories;
|
|
61
|
+
return {
|
|
62
|
+
categories: allCategories,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
console.warn('Failed to load categories:', error);
|
|
67
|
+
return {
|
|
68
|
+
categories: [],
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { type ServiceFactoryConfig } from '@wix/services-definitions';
|
|
2
|
+
import type { Signal } from '../../Signal';
|
|
3
|
+
import { type V3Product } from '@wix/auto_sdk_stores_products-v-3';
|
|
4
|
+
import { type Filter } from './filter-service';
|
|
5
|
+
import { type SortBy } from './sort-service';
|
|
6
|
+
export interface CollectionServiceAPI {
|
|
7
|
+
products: Signal<V3Product[]>;
|
|
8
|
+
isLoading: Signal<boolean>;
|
|
9
|
+
error: Signal<string | null>;
|
|
10
|
+
totalProducts: Signal<number>;
|
|
11
|
+
hasProducts: Signal<boolean>;
|
|
12
|
+
hasMoreProducts: Signal<boolean>;
|
|
13
|
+
loadMore: () => Promise<void>;
|
|
14
|
+
refresh: () => Promise<void>;
|
|
15
|
+
}
|
|
16
|
+
export declare const CollectionServiceDefinition: string & {
|
|
17
|
+
__api: CollectionServiceAPI;
|
|
18
|
+
__config: {};
|
|
19
|
+
isServiceDefinition?: boolean;
|
|
20
|
+
} & CollectionServiceAPI;
|
|
21
|
+
export declare const CollectionService: import("@wix/services-definitions").ServiceFactory<string & {
|
|
22
|
+
__api: CollectionServiceAPI;
|
|
23
|
+
__config: {};
|
|
24
|
+
isServiceDefinition?: boolean;
|
|
25
|
+
} & CollectionServiceAPI, {
|
|
26
|
+
initialProducts?: V3Product[];
|
|
27
|
+
pageSize?: number;
|
|
28
|
+
initialCursor?: string;
|
|
29
|
+
initialHasMore?: boolean;
|
|
30
|
+
categories?: any[];
|
|
31
|
+
}, import("@wix/services-definitions").ThreadMode.MAIN>;
|
|
32
|
+
export declare function loadCollectionServiceConfig(categoryId?: string, searchParams?: URLSearchParams, preloadedCategories?: any[]): Promise<ServiceFactoryConfig<typeof CollectionService> & {
|
|
33
|
+
initialCursor?: string;
|
|
34
|
+
initialHasMore?: boolean;
|
|
35
|
+
initialSort?: SortBy;
|
|
36
|
+
initialFilters?: Filter;
|
|
37
|
+
}>;
|