@gfed-medusa/sf-lib-common 3.3.3 → 3.3.7
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/components/breadcrumbs/index.d.ts +2 -2
- package/dist/components/cart-mismatch-banner/index.d.ts +2 -2
- package/dist/components/cart-mismatch-banner/index.js +6 -2
- package/dist/components/cart-mismatch-banner/index.js.map +1 -1
- package/dist/components/delete-button/index.d.ts +2 -2
- package/dist/components/error-message/index.d.ts +2 -2
- package/dist/components/error-message/index.d.ts.map +1 -1
- package/dist/components/free-shipping-price-nudge/index.d.ts +2 -2
- package/dist/components/interactive-link/index.d.ts +9 -6
- package/dist/components/interactive-link/index.d.ts.map +1 -1
- package/dist/components/interactive-link/index.js +6 -6
- package/dist/components/interactive-link/index.js.map +1 -1
- package/dist/components/line-item-options/index.d.ts +2 -2
- package/dist/components/line-item-price/index.d.ts +2 -2
- package/dist/components/line-item-price/index.d.ts.map +1 -1
- package/dist/components/localized-client-link/index.d.ts +2 -2
- package/dist/components/modal/index.d.ts +2 -2
- package/dist/components/modal/index.d.ts.map +1 -1
- package/dist/components/modal/index.js +6 -8
- package/dist/components/modal/index.js.map +1 -1
- package/dist/components/preview-price/index.d.ts +2 -2
- package/dist/components/preview-price/index.d.ts.map +1 -1
- package/dist/components/product-card/index.d.ts +2 -2
- package/dist/components/product-card/index.js +1 -1
- package/dist/components/product-card/index.js.map +1 -1
- package/dist/components/product-preview/index.d.ts +10 -5
- package/dist/components/product-preview/index.d.ts.map +1 -1
- package/dist/components/product-preview/index.js +4 -2
- package/dist/components/product-preview/index.js.map +1 -1
- package/dist/components/submit-button/index.d.ts +2 -2
- package/dist/components/thumbnail/index.d.ts +2 -0
- package/dist/components/thumbnail/index.d.ts.map +1 -1
- package/dist/components/thumbnail/index.js +7 -3
- package/dist/components/thumbnail/index.js.map +1 -1
- package/dist/lib/config/medusa.js +1 -1
- package/dist/lib/context/apollo-context.d.ts +2 -2
- package/dist/lib/context/modal-context.d.ts +2 -2
- package/dist/lib/context/modal-context.d.ts.map +1 -1
- package/dist/lib/data/categories.d.ts +4 -15
- package/dist/lib/data/categories.d.ts.map +1 -1
- package/dist/lib/data/categories.js +5 -2
- package/dist/lib/data/categories.js.map +1 -1
- package/dist/lib/data/context.d.ts +2 -2
- package/dist/lib/data/context.d.ts.map +1 -1
- package/dist/lib/data/cookies-actions.d.ts.map +1 -1
- package/dist/lib/data/cookies-actions.js +8 -4
- package/dist/lib/data/cookies-actions.js.map +1 -1
- package/dist/lib/data/home-banner.d.ts +7 -0
- package/dist/lib/data/home-banner.d.ts.map +1 -0
- package/dist/lib/data/home-banner.js +16 -0
- package/dist/lib/data/home-banner.js.map +1 -0
- package/dist/lib/gql/fragments/cart.d.ts +9 -9
- package/dist/lib/gql/fragments/cart.d.ts.map +1 -1
- package/dist/lib/gql/fragments/customer.d.ts +3 -3
- package/dist/lib/gql/fragments/customer.d.ts.map +1 -1
- package/dist/lib/gql/fragments/product.d.ts +9 -10
- package/dist/lib/gql/fragments/product.d.ts.map +1 -1
- package/dist/lib/gql/fragments/product.js +1 -10
- package/dist/lib/gql/fragments/product.js.map +1 -1
- package/dist/lib/gql/mutations/cart.d.ts +6 -6
- package/dist/lib/gql/queries/cart.d.ts +2 -2
- package/dist/lib/gql/queries/collections.d.ts +3 -3
- package/dist/lib/gql/queries/customer.d.ts +2 -2
- package/dist/lib/gql/queries/footer.d.ts +3 -3
- package/dist/lib/gql/queries/home-banner.d.ts +7 -0
- package/dist/lib/gql/queries/home-banner.d.ts.map +1 -0
- package/dist/lib/gql/queries/home-banner.js +46 -0
- package/dist/lib/gql/queries/home-banner.js.map +1 -0
- package/dist/lib/gql/queries/order.d.ts +4 -4
- package/dist/lib/gql/queries/order.d.ts.map +1 -1
- package/dist/lib/gql/queries/order.js +1 -0
- package/dist/lib/gql/queries/order.js.map +1 -1
- package/dist/lib/gql/queries/product.d.ts +3 -4
- package/dist/lib/gql/queries/product.d.ts.map +1 -1
- package/dist/lib/gql/queries/product.js +4 -23
- package/dist/lib/gql/queries/product.js.map +1 -1
- package/dist/lib/gql/queries/regions.d.ts +3 -3
- package/dist/lib/utils/get-product-price.d.ts +3 -2
- package/dist/lib/utils/get-product-price.d.ts.map +1 -1
- package/dist/lib/utils/get-product-price.js.map +1 -1
- package/dist/lib/utils/imagekit.d.ts +0 -4
- package/dist/lib/utils/imagekit.d.ts.map +1 -1
- package/dist/lib/utils/imagekit.js +3 -8
- package/dist/lib/utils/imagekit.js.map +1 -1
- package/dist/types/cms.d.ts +27 -1
- package/dist/types/cms.d.ts.map +1 -1
- package/dist/types/graphql.d.ts +94 -38
- package/dist/types/graphql.d.ts.map +1 -1
- package/dist/types/graphql.js +258 -289
- package/dist/types/graphql.js.map +1 -1
- package/package.json +4 -4
- package/dist/lib/data/search.d.ts +0 -9
- package/dist/lib/data/search.d.ts.map +0 -1
- package/dist/lib/data/search.js +0 -23
- package/dist/lib/data/search.js.map +0 -1
- package/dist/lib/hooks/use-search.d.ts +0 -22
- package/dist/lib/hooks/use-search.d.ts.map +0 -1
- package/dist/lib/hooks/use-search.js +0 -69
- package/dist/lib/hooks/use-search.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gfed-medusa/sf-lib-common",
|
|
3
|
-
"version": "3.3.
|
|
3
|
+
"version": "3.3.7",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
41
|
"@apollo/client": "^4.0.9",
|
|
42
|
-
"@gfed-medusa/sf-lib-ui": "^1.2.
|
|
42
|
+
"@gfed-medusa/sf-lib-ui": "^1.2.3",
|
|
43
43
|
"@headlessui/react": "^2.2.9",
|
|
44
44
|
"@medusajs/icons": "^2.12.1",
|
|
45
45
|
"@medusajs/js-sdk": "^2.12.1",
|
|
@@ -73,8 +73,8 @@
|
|
|
73
73
|
"madge": "^8.0.0",
|
|
74
74
|
"tsdown": "^0.17.3",
|
|
75
75
|
"typescript": "^5",
|
|
76
|
-
"@packages/jest-config": "0.0.0",
|
|
77
76
|
"@packages/eslint-config": "0.0.0",
|
|
77
|
+
"@packages/jest-config": "0.0.0",
|
|
78
78
|
"@packages/prettier-config": "0.0.0",
|
|
79
79
|
"@packages/typescript-config": "0.0.0"
|
|
80
80
|
},
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
"tailwindcss": "^4.1.18"
|
|
87
87
|
},
|
|
88
88
|
"scripts": {
|
|
89
|
-
"build": "tsdown",
|
|
89
|
+
"build": "tsdown --env.NODE_ENV=production",
|
|
90
90
|
"codegen": "graphql-codegen --config codegen.ts",
|
|
91
91
|
"codegen:watch": "graphql-codegen --config codegen.ts --watch",
|
|
92
92
|
"dev": "tsdown --watch",
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { ProductHit, SearchSuggestionsQueryVariables } from "../../types/graphql.js";
|
|
2
|
-
|
|
3
|
-
//#region src/lib/data/search.d.ts
|
|
4
|
-
declare const searchSuggestions: (params: SearchSuggestionsQueryVariables) => Promise<{
|
|
5
|
-
items: ProductHit[];
|
|
6
|
-
}>;
|
|
7
|
-
//#endregion
|
|
8
|
-
export { searchSuggestions };
|
|
9
|
-
//# sourceMappingURL=search.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"search.d.ts","names":[],"sources":["../../../src/lib/data/search.ts"],"sourcesContent":[],"mappings":";;;cAUa,4BACH,oCACP;SAAiB;AAFpB,CAAA,CAAA"}
|
package/dist/lib/data/search.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
'use server';
|
|
2
|
-
|
|
3
|
-
import { graphqlFetch } from "../gql/apollo-client.js";
|
|
4
|
-
import { SEARCH_SUGGESTIONS_QUERY } from "../gql/queries/product.js";
|
|
5
|
-
|
|
6
|
-
//#region src/lib/data/search.ts
|
|
7
|
-
const searchSuggestions = async (params) => {
|
|
8
|
-
try {
|
|
9
|
-
const response = await graphqlFetch({
|
|
10
|
-
query: SEARCH_SUGGESTIONS_QUERY,
|
|
11
|
-
variables: { query: params.query }
|
|
12
|
-
});
|
|
13
|
-
if (!response?.searchProducts) throw new Error("No search results returned");
|
|
14
|
-
return response.searchProducts;
|
|
15
|
-
} catch (error) {
|
|
16
|
-
console.error("Search error:", error);
|
|
17
|
-
throw new Error(`Failed to search suggestions: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
18
|
-
}
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
//#endregion
|
|
22
|
-
export { searchSuggestions };
|
|
23
|
-
//# sourceMappingURL=search.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","names":[],"sources":["../../../src/lib/data/search.ts"],"sourcesContent":["'use server';\n\nimport { graphqlFetch } from '@/lib/gql/apollo-client';\nimport { SEARCH_SUGGESTIONS_QUERY } from '@/lib/gql/queries/product';\nimport {\n ProductHit,\n SearchSuggestionsQuery,\n SearchSuggestionsQueryVariables,\n} from '@/types/graphql';\n\nexport const searchSuggestions = async (\n params: SearchSuggestionsQueryVariables\n): Promise<{ items: ProductHit[] }> => {\n try {\n const response = await graphqlFetch<\n SearchSuggestionsQuery,\n SearchSuggestionsQueryVariables\n >({\n query: SEARCH_SUGGESTIONS_QUERY,\n variables: {\n query: params.query,\n },\n });\n\n if (!response?.searchProducts) {\n throw new Error('No search results returned');\n }\n\n return response.searchProducts;\n } catch (error) {\n console.error('Search error:', error);\n throw new Error(\n `Failed to search suggestions: ${error instanceof Error ? error.message : 'Unknown error'}`\n );\n }\n};\n"],"mappings":";;;;;;AAUA,MAAa,oBAAoB,OAC/B,WACqC;AACrC,KAAI;EACF,MAAM,WAAW,MAAM,aAGrB;GACA,OAAO;GACP,WAAW,EACT,OAAO,OAAO,OACf;GACF,CAAC;AAEF,MAAI,CAAC,UAAU,eACb,OAAM,IAAI,MAAM,6BAA6B;AAG/C,SAAO,SAAS;UACT,OAAO;AACd,UAAQ,MAAM,iBAAiB,MAAM;AACrC,QAAM,IAAI,MACR,iCAAiC,iBAAiB,QAAQ,MAAM,UAAU,kBAC3E"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { ProductHit } from "../../types/graphql.js";
|
|
2
|
-
|
|
3
|
-
//#region src/lib/hooks/use-search.d.ts
|
|
4
|
-
type UseSearchOptions = {
|
|
5
|
-
hitsPerPage?: number;
|
|
6
|
-
debounceMs?: number;
|
|
7
|
-
};
|
|
8
|
-
type SearchResult = {
|
|
9
|
-
items: ProductHit[];
|
|
10
|
-
};
|
|
11
|
-
declare const useSearch: () => {
|
|
12
|
-
query: string;
|
|
13
|
-
setQuery: (newQuery: string) => void;
|
|
14
|
-
results: SearchResult | null;
|
|
15
|
-
loading: boolean;
|
|
16
|
-
error: string | null;
|
|
17
|
-
search: (searchQuery: string) => Promise<void>;
|
|
18
|
-
isTyping: boolean;
|
|
19
|
-
};
|
|
20
|
-
//#endregion
|
|
21
|
-
export { SearchResult, UseSearchOptions, useSearch };
|
|
22
|
-
//# sourceMappingURL=use-search.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-search.d.ts","names":[],"sources":["../../../src/lib/hooks/use-search.tsx"],"sourcesContent":[],"mappings":";;;KAOY,gBAAA;;EAAA,UAAA,CAAA,EAAA,MAAgB;AAK5B,CAAA;AAMa,KAND,YAAA,GA4FX;SA3FQ;;cAKI;;;WAsFZ;;;mCAjD6B"}
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
|
|
3
|
-
import { searchSuggestions } from "../data/search.js";
|
|
4
|
-
import { useCallback, useEffect, useState } from "react";
|
|
5
|
-
|
|
6
|
-
//#region src/lib/hooks/use-search.tsx
|
|
7
|
-
const DEBOUNCE_MS = 500;
|
|
8
|
-
const useSearch = () => {
|
|
9
|
-
const [query, setQuery] = useState("");
|
|
10
|
-
const [results, setResults] = useState(null);
|
|
11
|
-
const [loading, setLoading] = useState(false);
|
|
12
|
-
const [error, setError] = useState(null);
|
|
13
|
-
const [isTyping, setIsTyping] = useState(false);
|
|
14
|
-
const [debounceTimer, setDebounceTimer] = useState(null);
|
|
15
|
-
const performSearch = useCallback(async (searchQuery) => {
|
|
16
|
-
if (!searchQuery.trim()) {
|
|
17
|
-
setResults(null);
|
|
18
|
-
return;
|
|
19
|
-
}
|
|
20
|
-
setLoading(true);
|
|
21
|
-
setError(null);
|
|
22
|
-
try {
|
|
23
|
-
setResults(await searchSuggestions({
|
|
24
|
-
query: searchQuery,
|
|
25
|
-
hitsPerPage: 20
|
|
26
|
-
}));
|
|
27
|
-
} catch (err) {
|
|
28
|
-
setError(err instanceof Error ? err.message : "Search failed");
|
|
29
|
-
console.error("Search error:", err);
|
|
30
|
-
} finally {
|
|
31
|
-
setLoading(false);
|
|
32
|
-
}
|
|
33
|
-
}, []);
|
|
34
|
-
const search = useCallback(async (searchQuery) => {
|
|
35
|
-
await performSearch(searchQuery);
|
|
36
|
-
}, [performSearch]);
|
|
37
|
-
const handleQueryChange = useCallback((newQuery) => {
|
|
38
|
-
setQuery(newQuery);
|
|
39
|
-
if (debounceTimer) clearTimeout(debounceTimer);
|
|
40
|
-
if (newQuery.trim()) setIsTyping(true);
|
|
41
|
-
else {
|
|
42
|
-
setIsTyping(false);
|
|
43
|
-
setResults(null);
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
|
-
setDebounceTimer(setTimeout(() => {
|
|
47
|
-
setIsTyping(false);
|
|
48
|
-
performSearch(newQuery);
|
|
49
|
-
}, DEBOUNCE_MS));
|
|
50
|
-
}, [debounceTimer, performSearch]);
|
|
51
|
-
useEffect(() => {
|
|
52
|
-
return () => {
|
|
53
|
-
if (debounceTimer) clearTimeout(debounceTimer);
|
|
54
|
-
};
|
|
55
|
-
}, [debounceTimer]);
|
|
56
|
-
return {
|
|
57
|
-
query,
|
|
58
|
-
setQuery: handleQueryChange,
|
|
59
|
-
results,
|
|
60
|
-
loading,
|
|
61
|
-
error,
|
|
62
|
-
search,
|
|
63
|
-
isTyping
|
|
64
|
-
};
|
|
65
|
-
};
|
|
66
|
-
|
|
67
|
-
//#endregion
|
|
68
|
-
export { useSearch };
|
|
69
|
-
//# sourceMappingURL=use-search.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-search.js","names":[],"sources":["../../../src/lib/hooks/use-search.tsx"],"sourcesContent":["'use client';\n\nimport { useCallback, useEffect, useState } from 'react';\n\nimport { searchSuggestions } from '@/lib/data/search';\nimport { ProductHit } from '@/types/graphql';\n\nexport type UseSearchOptions = {\n hitsPerPage?: number;\n debounceMs?: number;\n};\n\nexport type SearchResult = {\n items: ProductHit[];\n};\n\nconst DEBOUNCE_MS = 500;\n\nexport const useSearch = () => {\n const [query, setQuery] = useState('');\n const [results, setResults] = useState<SearchResult | null>(null);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState<string | null>(null);\n const [isTyping, setIsTyping] = useState(false);\n const [debounceTimer, setDebounceTimer] = useState<NodeJS.Timeout | null>(\n null\n );\n\n const performSearch = useCallback(async (searchQuery: string) => {\n if (!searchQuery.trim()) {\n setResults(null);\n return;\n }\n\n setLoading(true);\n setError(null);\n\n try {\n const searchParams = {\n query: searchQuery,\n hitsPerPage: 20,\n };\n\n const searchResults = await searchSuggestions(searchParams);\n setResults(searchResults);\n } catch (err) {\n const errorMessage = err instanceof Error ? err.message : 'Search failed';\n setError(errorMessage);\n console.error('Search error:', err);\n } finally {\n setLoading(false);\n }\n }, []);\n\n const search = useCallback(\n async (searchQuery: string) => {\n await performSearch(searchQuery);\n },\n [performSearch]\n );\n\n const handleQueryChange = useCallback(\n (newQuery: string) => {\n setQuery(newQuery);\n\n if (debounceTimer) {\n clearTimeout(debounceTimer);\n }\n\n if (newQuery.trim()) {\n setIsTyping(true);\n } else {\n setIsTyping(false);\n setResults(null);\n return;\n }\n\n const timer = setTimeout(() => {\n setIsTyping(false);\n performSearch(newQuery);\n }, DEBOUNCE_MS);\n\n setDebounceTimer(timer);\n },\n [debounceTimer, performSearch]\n );\n\n useEffect(() => {\n return () => {\n if (debounceTimer) {\n clearTimeout(debounceTimer);\n }\n };\n }, [debounceTimer]);\n\n return {\n query,\n setQuery: handleQueryChange,\n results,\n loading,\n error,\n search,\n isTyping,\n };\n};\n"],"mappings":";;;;;;AAgBA,MAAM,cAAc;AAEpB,MAAa,kBAAkB;CAC7B,MAAM,CAAC,OAAO,YAAY,SAAS,GAAG;CACtC,MAAM,CAAC,SAAS,cAAc,SAA8B,KAAK;CACjE,MAAM,CAAC,SAAS,cAAc,SAAS,MAAM;CAC7C,MAAM,CAAC,OAAO,YAAY,SAAwB,KAAK;CACvD,MAAM,CAAC,UAAU,eAAe,SAAS,MAAM;CAC/C,MAAM,CAAC,eAAe,oBAAoB,SACxC,KACD;CAED,MAAM,gBAAgB,YAAY,OAAO,gBAAwB;AAC/D,MAAI,CAAC,YAAY,MAAM,EAAE;AACvB,cAAW,KAAK;AAChB;;AAGF,aAAW,KAAK;AAChB,WAAS,KAAK;AAEd,MAAI;AAOF,cADsB,MAAM,kBALP;IACnB,OAAO;IACP,aAAa;IACd,CAE0D,CAClC;WAClB,KAAK;AAEZ,YADqB,eAAe,QAAQ,IAAI,UAAU,gBACpC;AACtB,WAAQ,MAAM,iBAAiB,IAAI;YAC3B;AACR,cAAW,MAAM;;IAElB,EAAE,CAAC;CAEN,MAAM,SAAS,YACb,OAAO,gBAAwB;AAC7B,QAAM,cAAc,YAAY;IAElC,CAAC,cAAc,CAChB;CAED,MAAM,oBAAoB,aACvB,aAAqB;AACpB,WAAS,SAAS;AAElB,MAAI,cACF,cAAa,cAAc;AAG7B,MAAI,SAAS,MAAM,CACjB,aAAY,KAAK;OACZ;AACL,eAAY,MAAM;AAClB,cAAW,KAAK;AAChB;;AAQF,mBALc,iBAAiB;AAC7B,eAAY,MAAM;AAClB,iBAAc,SAAS;KACtB,YAAY,CAEQ;IAEzB,CAAC,eAAe,cAAc,CAC/B;AAED,iBAAgB;AACd,eAAa;AACX,OAAI,cACF,cAAa,cAAc;;IAG9B,CAAC,cAAc,CAAC;AAEnB,QAAO;EACL;EACA,UAAU;EACV;EACA;EACA;EACA;EACA;EACD"}
|