@inkeep/cxkit-primitives 0.0.0-dev-20250304224156 → 0.0.0-dev-20250305004041
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/embedded-search/use-inkeep-search.cjs +1 -1
- package/dist/components/embedded-search/use-inkeep-search.d.cts +1 -1
- package/dist/components/embedded-search/use-inkeep-search.d.ts +1 -1
- package/dist/components/embedded-search/use-inkeep-search.js +22 -18
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react"),W=require("../../providers/config-provider.cjs"),G=require("../../hooks/use-media-query.cjs"),J=require("./search-query.graphql.cjs"),V=require("./transform-results.cjs"),X=require("../../providers/search-events-provider.cjs"),Y=require("../../hooks/use-instant-update.cjs"),Z=require("../../utils/graphql-client.cjs"),ee=()=>{const{baseSettings:_,searchSettings:j}=W.useInkeepConfig(),{apiKey:p,aiApiBaseUrl:L,userAuthToken:l}=_,{maxResults:
|
|
1
|
+
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react"),W=require("../../providers/config-provider.cjs"),G=require("../../hooks/use-media-query.cjs"),J=require("./search-query.graphql.cjs"),V=require("./transform-results.cjs"),X=require("../../providers/search-events-provider.cjs"),Y=require("../../hooks/use-instant-update.cjs"),Z=require("../../utils/graphql-client.cjs"),ee=()=>{const{baseSettings:_,searchSettings:j}=W.useInkeepConfig(),{apiKey:p,aiApiBaseUrl:L,userAuthToken:l}=_,{maxResults:S,placeholder:R,defaultQuery:N,debounceTimeMs:Q,onQueryChange:O,searchFunctionsRef:x}=j,{logEvent:q}=X.useSearchEvents(),[c,C]=t.useState(N),T=t.useRef(null),[k,v]=t.useState(!1),[B,i]=t.useState(null),[F,a]=t.useState("NONE"),H=t.useCallback(e=>{a(e)},[]),[h,d]=t.useState([]),s=V.useTransformResults(h,c),[f,E]=t.useState("All"),{disableTransition:M,disabled:$}=Y.useInstantUpdate(),z=t.useCallback(e=>{M(),E(e);const r=s[e][0].id;setTimeout(()=>{a(r)},0)},[s,M]);t.useEffect(()=>{let e=f in s?f:Object.keys(s)[0];if(!s[e]?.length){const n=Object.keys(s).find(u=>s[u]?.length);n?e=n:e="All"}if(!e)return;E(e);const r=s[e]?.[0];r&&a(r.id)},[s]);const y=G.useMediaQuery("(max-width: 768px)"),o=t.useRef({}),b=t.useRef(null),m=t.useRef(null);t.useImperativeHandle(x,()=>({updateQuery(e){C(e)},focusInput:()=>{T.current?.focus()}}));const w=`${L}/graphql`,A=t.useMemo(()=>({Authorization:`Bearer ${p}`,"Content-Type":"application/json",...l?{"User-Token":l}:{}}),[p,l]),I=t.useCallback(async e=>{b.current&&b.current.abort();const r=new AbortController;b.current=r;try{v(!0),i(null);const u=(await Z.graphqlRequest(w,J.default,{searchInput:e},A))?.search.searchHits;o.current[e.searchQuery]=u,d(u)}catch(n){if(n.name==="AbortError")return;i("Failed to fetch search results. Please try again.")}v(!1)},[w,A]),P=t.useCallback(e=>{const r=o.current[e.searchQuery];q({eventName:"search_query_response_received",properties:{searchQuery:e.searchQuery,totalResults:r?.length}})},[]),U=t.useCallback(e=>{if(m.current&&window.clearTimeout(m.current),!e.searchQuery){d([]),i(null);return}m.current=window.setTimeout(()=>{q({eventName:"search_query_submitted",properties:{searchQuery:e.searchQuery}}),o.current[e.searchQuery]?(d(o.current[e.searchQuery]),P(e)):I(e).then(()=>{P(e)})},Q)},[Q,I]),g=t.useMemo(()=>({searchQuery:c,filters:{limit:S}}),[c,S]);t.useEffect(()=>{O?.(g.searchQuery),U(g)},[U,g]);const D=t.useCallback(e=>C(e.target.value),[]),K=t.useMemo(()=>R||(y?"Search...":"Search for anything..."),[R,y]);return{results:s,resultsList:h,hasContent:h.length>0||k,loading:k,error:B,query:c,onInput:D,placeholder:K,tab:f,onTabChange:z,selectedItem:F,setSelectedItem:a,onSelectedItemChange:H,transitionsDisabled:$,inputRef:T,isMobile:y}};exports.useInkeepSearch=ee;
|
|
@@ -11,7 +11,7 @@ export declare const useInkeepSearch: () => {
|
|
|
11
11
|
onInput: (e: React.ChangeEvent<HTMLTextAreaElement>) => void;
|
|
12
12
|
placeholder: string;
|
|
13
13
|
tab: string;
|
|
14
|
-
onTabChange: (
|
|
14
|
+
onTabChange: (newTab: string) => void;
|
|
15
15
|
selectedItem: string | undefined;
|
|
16
16
|
setSelectedItem: Dispatch<SetStateAction<string | undefined>>;
|
|
17
17
|
onSelectedItemChange: (value: string) => void;
|
|
@@ -11,7 +11,7 @@ export declare const useInkeepSearch: () => {
|
|
|
11
11
|
onInput: (e: React.ChangeEvent<HTMLTextAreaElement>) => void;
|
|
12
12
|
placeholder: string;
|
|
13
13
|
tab: string;
|
|
14
|
-
onTabChange: (
|
|
14
|
+
onTabChange: (newTab: string) => void;
|
|
15
15
|
selectedItem: string | undefined;
|
|
16
16
|
setSelectedItem: Dispatch<SetStateAction<string | undefined>>;
|
|
17
17
|
onSelectedItemChange: (value: string) => void;
|
|
@@ -12,29 +12,33 @@ const me = () => {
|
|
|
12
12
|
maxResults: S,
|
|
13
13
|
placeholder: C,
|
|
14
14
|
defaultQuery: H,
|
|
15
|
-
debounceTimeMs:
|
|
15
|
+
debounceTimeMs: v,
|
|
16
16
|
onQueryChange: P,
|
|
17
17
|
searchFunctionsRef: $
|
|
18
|
-
} = B, { logEvent:
|
|
18
|
+
} = B, { logEvent: k } = re(), [c, w] = s(H), A = l(null), [q, E] = s(!1), [z, f] = s(null), [D, a] = s("NONE"), K = n((e) => {
|
|
19
19
|
a(e);
|
|
20
|
-
}, []), [m, d] = s([]), t = te(m, c), [p,
|
|
20
|
+
}, []), [m, d] = s([]), t = te(m, c), [p, I] = s("All"), { disableTransition: _, disabled: W } = se(), G = n(
|
|
21
21
|
(e) => {
|
|
22
|
-
|
|
22
|
+
_(), I(e);
|
|
23
|
+
const r = t[e][0].id;
|
|
24
|
+
setTimeout(() => {
|
|
25
|
+
a(r);
|
|
26
|
+
}, 0);
|
|
23
27
|
},
|
|
24
|
-
[t,
|
|
28
|
+
[t, _]
|
|
25
29
|
);
|
|
26
30
|
j(() => {
|
|
27
31
|
let e = p in t ? p : Object.keys(t)[0];
|
|
28
32
|
if (!t[e]?.length) {
|
|
29
|
-
const o = Object.keys(t).find((
|
|
33
|
+
const o = Object.keys(t).find((i) => t[i]?.length);
|
|
30
34
|
o ? e = o : e = "All";
|
|
31
35
|
}
|
|
32
36
|
if (!e) return;
|
|
33
|
-
|
|
37
|
+
I(e);
|
|
34
38
|
const r = t[e]?.[0];
|
|
35
39
|
r && a(r.id);
|
|
36
40
|
}, [t]);
|
|
37
|
-
const y = Z("(max-width: 768px)"),
|
|
41
|
+
const y = Z("(max-width: 768px)"), u = l({}), b = l(null), g = l(null);
|
|
38
42
|
X($, () => ({
|
|
39
43
|
updateQuery(e) {
|
|
40
44
|
w(e);
|
|
@@ -43,7 +47,7 @@ const me = () => {
|
|
|
43
47
|
A.current?.focus();
|
|
44
48
|
}
|
|
45
49
|
}));
|
|
46
|
-
const
|
|
50
|
+
const x = `${F}/graphql`, L = R(
|
|
47
51
|
() => ({
|
|
48
52
|
Authorization: `Bearer ${T}`,
|
|
49
53
|
"Content-Type": "application/json",
|
|
@@ -57,8 +61,8 @@ const me = () => {
|
|
|
57
61
|
b.current = r;
|
|
58
62
|
try {
|
|
59
63
|
E(!0), f(null);
|
|
60
|
-
const
|
|
61
|
-
|
|
64
|
+
const i = (await ne(x, ee, { searchInput: e }, L))?.search.searchHits;
|
|
65
|
+
u.current[e.searchQuery] = i, d(i);
|
|
62
66
|
} catch (o) {
|
|
63
67
|
if (o.name === "AbortError")
|
|
64
68
|
return;
|
|
@@ -66,10 +70,10 @@ const me = () => {
|
|
|
66
70
|
}
|
|
67
71
|
E(!1);
|
|
68
72
|
},
|
|
69
|
-
[
|
|
73
|
+
[x, L]
|
|
70
74
|
), N = n((e) => {
|
|
71
|
-
const r =
|
|
72
|
-
|
|
75
|
+
const r = u.current[e.searchQuery];
|
|
76
|
+
k({
|
|
73
77
|
eventName: "search_query_response_received",
|
|
74
78
|
properties: {
|
|
75
79
|
searchQuery: e.searchQuery,
|
|
@@ -83,17 +87,17 @@ const me = () => {
|
|
|
83
87
|
return;
|
|
84
88
|
}
|
|
85
89
|
g.current = window.setTimeout(() => {
|
|
86
|
-
|
|
90
|
+
k({
|
|
87
91
|
eventName: "search_query_submitted",
|
|
88
92
|
properties: {
|
|
89
93
|
searchQuery: e.searchQuery
|
|
90
94
|
}
|
|
91
|
-
}),
|
|
95
|
+
}), u.current[e.searchQuery] ? (d(u.current[e.searchQuery]), N(e)) : M(e).then(() => {
|
|
92
96
|
N(e);
|
|
93
97
|
});
|
|
94
|
-
},
|
|
98
|
+
}, v);
|
|
95
99
|
},
|
|
96
|
-
[
|
|
100
|
+
[v, M]
|
|
97
101
|
), Q = R(
|
|
98
102
|
() => ({
|
|
99
103
|
searchQuery: c,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@inkeep/cxkit-primitives",
|
|
3
|
-
"version": "0.0.0-dev-
|
|
3
|
+
"version": "0.0.0-dev-20250305004041",
|
|
4
4
|
"description": "",
|
|
5
5
|
"license": "Inkeep, Inc. Customer License (IICL) v1.1",
|
|
6
6
|
"homepage": "",
|
|
@@ -54,9 +54,9 @@
|
|
|
54
54
|
"react-textarea-autosize": "8.5.7",
|
|
55
55
|
"rehype-raw": "7.0.0",
|
|
56
56
|
"unist-util-visit": "^5.0.0",
|
|
57
|
-
"@inkeep/cxkit-color-mode": "0.0.0-dev-
|
|
58
|
-
"@inkeep/cxkit-theme": "0.0.0-dev-
|
|
59
|
-
"@inkeep/cxkit-types": "0.0.0-dev-
|
|
57
|
+
"@inkeep/cxkit-color-mode": "0.0.0-dev-20250305004041",
|
|
58
|
+
"@inkeep/cxkit-theme": "0.0.0-dev-20250305004041",
|
|
59
|
+
"@inkeep/cxkit-types": "0.0.0-dev-20250305004041"
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|
|
62
62
|
"@biomejs/biome": "1.9.4",
|