Require at least 3 characters for queries.

This commit is contained in:
Mario Zechner 2023-06-18 19:24:07 +02:00
parent be0516fca6
commit 887c72be64
4 changed files with 6 additions and 4 deletions

View File

@ -7,10 +7,10 @@
Noch keine Produkte im Warenkorb.<br />
Produkte suchen und mit '+' zum Warenkorb hinzufügen.
</div>
<items-filter x-id="cartFilter" stores nochartclear class="hidden" placeholder="Filtern..."></items-filter>
<items-filter x-id="cartFilter" stores nochartclear class="hidden" placeholder="Filtern... (min. 3 Zeichen)"></items-filter>
<items-list x-id="linkedCartList" chart json nosort class="hidden"></items-list>
<items-list x-id="cartList" chart json nosort remove updown class="hidden"></items-list>
<items-filter x-id="productsFilter" class="hidden" stores misc nochartclear placeholder="Produkt hinzufügen..."></items-filter>
<items-filter x-id="productsFilter" class="hidden" stores misc nochartclear placeholder="Produkt hinzufügen... (min. 3 Zeichen)"></items-filter>
<items-list x-id="productsList" class="hidden" add></items-list>
%%_templates/_loader.html%%
</div>

View File

@ -2,7 +2,7 @@
<div class="w-full relative px-4 flex-1">
<h1 class="text-2xl font-bold pb-2 pt-8 text-center">Preisänderungen</h1>
<items-filter x-id="items-filter" pricechanges pricedirection stores misc placeholder="Filtern..."></items-filter>
<items-filter x-id="items-filter" pricechanges pricedirection stores misc placeholder="Filtern... (min. 3 Zeichen)"></items-filter>
<items-list chart></items-list>
%%_templates/_loader.html%%
</div>

View File

@ -137,6 +137,8 @@ exports.queryItemsAlasql = (query, items) => {
};
exports.queryItems = (query, items, exactWord) => {
query = query.trim();
if (query.length < 3) return [];
let tokens = query.split(/\s+/).map((token) => token.toLowerCase().replace(",", "."));
// Find quantity/unit query

View File

@ -18,7 +18,7 @@ class ItemsFilter extends View {
const hidePriceDirection = this._filterByPriceDirection ? "" : "hidden";
const hideStores = this._filterByStores ? "" : "hidden";
const hideMisc = this._filterByMisc ? "" : "hidden";
const placeholder = this.hasAttribute("placeholder") ? this.getAttribute("placeholder") : "Produkte suchen...";
const placeholder = this.hasAttribute("placeholder") ? this.getAttribute("placeholder") : "Produkte suchen... (min. 3 Zeichen)";
this.innerHTML = /*html*/ `
<input x-id="query" x-state x-input-debounce class="rounded-lg px-2 py-1 w-full" type="text" placeholder="${placeholder}" />