Skip to content

Commit dff74db

Browse files
committed
feat(trieve): improve loading time to prevent flashing of old component
1 parent b53d08f commit dff74db

File tree

2 files changed

+54
-11
lines changed

2 files changed

+54
-11
lines changed

Diff for: fern/assets/styles.css

+29
Original file line numberDiff line numberDiff line change
@@ -178,4 +178,33 @@
178178

179179
html.dark button[data-highlighted] .fern-api-property-meta {
180180
color: var(--accent-contrast) !important;
181+
}
182+
183+
#trieve-search-modal:not(.dark) {
184+
background-color: #fffaea !important;
185+
186+
.chat-footer-wrapper {
187+
background-color: #fffaea !important;
188+
189+
.input-wrapper form input.chat {
190+
background-color: #fffaea !important;
191+
}
192+
}
193+
194+
.trieve-footer {
195+
background-color: #fffaea !important;
196+
}
197+
198+
.input-wrapper .input-flex input {
199+
background-color: #fffaea !important;
200+
}
201+
202+
.trieve-elements-docs {
203+
.item {
204+
background-color: #fffaea !important;
205+
&:hover, &:focus {
206+
background-color: #f8f4e6 !important;
207+
}
208+
}
209+
}
181210
}

Diff for: fern/assets/trieve-user-script.js

+25-11
Original file line numberDiff line numberDiff line change
@@ -20,19 +20,26 @@ const removeAllClickListeners = (element) => {
2020
};
2121

2222
const makeDefaultSearchTrieve = async () => {
23+
let defaultSearchBar = null;
2324
try {
24-
let defaultSearchBar = null;
2525
let retries = 0;
2626
while (!defaultSearchBar && retries < 10) {
2727
for (const el of document.querySelectorAll("*")) {
28-
if (el.querySelector('[aria-label="Search"]')) {
29-
defaultSearchBar = el.querySelector('[aria-label="Search"]');
28+
if (el.querySelector('[aria-label="Search"], #fern-search-button')) {
29+
defaultSearchBar = el.querySelector(
30+
'[aria-label="Search"], #fern-search-button'
31+
);
3032
break;
33+
} else {
34+
console.log("Default search bar not found");
3135
}
3236
}
3337
retries++;
3438
await new Promise((resolve) => setTimeout(resolve, 10));
3539
}
40+
if (defaultSearchBar?.hasAttribute("disabled")) {
41+
defaultSearchBar.removeAttribute("disabled");
42+
}
3643
defaultSearchBar = removeAllClickListeners(defaultSearchBar);
3744

3845
defaultSearchBar.onclick = () => {
@@ -44,16 +51,23 @@ const makeDefaultSearchTrieve = async () => {
4451
} catch (e) {
4552
console.error(e);
4653
}
54+
55+
return !!defaultSearchBar;
4756
};
57+
4858
try {
49-
await makeDefaultSearchTrieve();
50-
setTimeout(makeDefaultSearchTrieve, 50);
51-
setTimeout(makeDefaultSearchTrieve, 100);
52-
setTimeout(makeDefaultSearchTrieve, 250);
53-
setTimeout(makeDefaultSearchTrieve, 500);
54-
setTimeout(makeDefaultSearchTrieve, 1000);
55-
setTimeout(makeDefaultSearchTrieve, 2000);
56-
setTimeout(makeDefaultSearchTrieve, 3000);
59+
let defaultSearchBar = null;
60+
let retries = 0;
61+
let sleepTime = 50;
62+
while (!retries < 10) {
63+
defaultSearchBar = await makeDefaultSearchTrieve();
64+
if (defaultSearchBar) {
65+
break;
66+
}
67+
await new Promise((resolve) => setTimeout(resolve, sleepTime));
68+
sleepTime = Math.min(sleepTime * 2, 500);
69+
retries++;
70+
}
5771
} catch (e) {
5872
console.error(e);
5973
}

0 commit comments

Comments
 (0)