Skip to content

Commit 17ed405

Browse files
committed
reset search input
1 parent 83b5feb commit 17ed405

3 files changed

Lines changed: 34 additions & 28 deletions

File tree

src/livecodes/UI/selectors.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -490,6 +490,9 @@ export const getStarterTemplatesList = /* @__PURE__ */ (templatesContainer: HTML
490490
export const getUserTemplatesScreen = /* @__PURE__ */ (templatesContainer: HTMLElement) =>
491491
templatesContainer.querySelector('#templates-user .modal-screen') as HTMLElement;
492492

493+
export const getTemplatesSearchInput = /* @__PURE__ */ (templatesContainer: HTMLElement) =>
494+
templatesContainer.querySelector('#templates-search-input') as HTMLInputElement;
495+
493496
export const getBulkImportButton = /* @__PURE__ */ (listContainer: HTMLElement) =>
494497
listContainer.querySelector('#bulk-import-button') as HTMLElement;
495498

src/livecodes/UI/templates.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { templatesScreen } from '../html';
22
import type { EventsManager, Template } from '../models';
33
import { debounce } from '../utils/utils';
4+
import { getTemplatesSearchInput } from './selectors';
45

56
export const createTemplatesContainer = (eventsManager: EventsManager) => {
67
const div = document.createElement('div');
@@ -59,7 +60,7 @@ export const noUserTemplates = () => `
5960
`;
6061

6162
export const setupTemplatesSearch = (container: HTMLElement) => {
62-
const input = container.querySelector('#templates-search-input');
63+
const input = getTemplatesSearchInput(container);
6364
if (!input) return;
6465

6566
const filterTemplates = (query: string) => {

src/livecodes/core.ts

Lines changed: 29 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -3255,38 +3255,40 @@ const handleNew = () => {
32553255
});
32563256
};
32573257

3258-
let starterTemplatesCache: Template[];
32593258
const createTemplatesUI = async () => {
32603259
const starterTemplatesList = UI.getStarterTemplatesList(templatesContainer);
3260+
if (!starterTemplatesList) return;
3261+
starterTemplatesList.innerHTML = '';
3262+
const searchInput = UI.getTemplatesSearchInput(templatesContainer);
3263+
if (searchInput) {
3264+
searchInput.value = '';
3265+
}
32613266
const loadingText = starterTemplatesList?.firstElementChild;
3262-
if (!starterTemplatesCache) {
3263-
getTemplates()
3264-
.then((starterTemplates) => {
3265-
starterTemplatesCache = starterTemplates;
3266-
loadingText?.remove();
3267-
starterTemplates.forEach((template) => {
3268-
const link = createStarterTemplateLink(template, starterTemplatesList, baseUrl);
3269-
eventsManager.addEventListener(
3270-
link,
3271-
'click',
3272-
(event) => {
3273-
event.preventDefault();
3274-
loadStarterTemplate(template.name, /* checkSaved= */ false);
3275-
},
3276-
false,
3277-
);
3278-
});
3279-
})
3280-
.catch(() => {
3281-
loadingText?.remove();
3282-
notifications.error(
3283-
window.deps.translateString(
3284-
'core.error.failedToLoadTemplates',
3285-
'Failed loading starter templates',
3286-
),
3267+
getTemplates()
3268+
.then((starterTemplates) => {
3269+
loadingText?.remove();
3270+
starterTemplates.forEach((template) => {
3271+
const link = createStarterTemplateLink(template, starterTemplatesList, baseUrl);
3272+
eventsManager.addEventListener(
3273+
link,
3274+
'click',
3275+
(event) => {
3276+
event.preventDefault();
3277+
loadStarterTemplate(template.name, /* checkSaved= */ false);
3278+
},
3279+
false,
32873280
);
32883281
});
3289-
}
3282+
})
3283+
.catch(() => {
3284+
loadingText?.remove();
3285+
notifications.error(
3286+
window.deps.translateString(
3287+
'core.error.failedToLoadTemplates',
3288+
'Failed loading starter templates',
3289+
),
3290+
);
3291+
});
32903292

32913293
loadUserTemplates();
32923294
requestAnimationFrame(() => UI.getStarterTemplatesTab(templatesContainer)?.click());

0 commit comments

Comments
 (0)