PluginProbe ʕ •ᴥ•ʔ
Starter Sites & Templates by Neve / 1.4.1
Starter Sites & Templates by Neve v1.4.1
1.4.1 1.4.0 1.3.0 1.2.29 1.2.28 1.2.6 1.2.7 1.2.8 1.2.9 trunk 1.0.10 1.0.11 1.0.7 1.0.8 1.0.9 1.1.0 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.2 1.1.20 1.1.21 1.1.22 1.1.23 1.1.24 1.1.25 1.1.26 1.1.27 1.1.28 1.1.29 1.1.3 1.1.30 1.1.31 1.1.32 1.1.33 1.1.34 1.1.35 1.1.36 1.1.37 1.1.38 1.1.39 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.2.0 1.2.1 1.2.10 1.2.11 1.2.12 1.2.13 1.2.14 1.2.15 1.2.16 1.2.17 1.2.18 1.2.19 1.2.2 1.2.20 1.2.21 1.2.22 1.2.23 1.2.24 1.2.25 1.2.26 1.2.27 1.2.3 1.2.4 1.2.5
templates-patterns-collection / onboarding / src / utils / search.js
templates-patterns-collection / onboarding / src / utils Last commit date
common.js 1 day ago rest.js 2 weeks ago search.js 3 weeks ago site-import.js 2 years ago svg.js 2 weeks ago
search.js
41 lines
1 import Fuse from 'fuse.js/dist/fuse.min';
2
3 const SEARCH_KEYS = [
4 { name: 'title', weight: 0.5 },
5 { name: 'category', weight: 0.35 },
6 { name: 'slug', weight: 0.3 },
7 { name: 'site_description', weight: 0.25 },
8 { name: 'description', weight: 0.25 },
9 { name: 'keywords', weight: 0.2 },
10 ];
11
12 const SEARCH_THRESHOLD = 0.3;
13
14 export const searchCatalog = ( items, query ) => {
15 const q = ( query || '' ).trim();
16 if ( ! q || ! Array.isArray( items ) || ! items.length ) {
17 return [];
18 }
19
20 return new Fuse( items, {
21 includeScore: true,
22 threshold: SEARCH_THRESHOLD,
23 keys: SEARCH_KEYS,
24 } )
25 .search( q )
26 .map( ( result ) => result.item )
27 .filter( Boolean );
28 };
29
30 export const matchesCategory = ( site, cat ) => {
31 if ( 'free' === cat ) {
32 return ! site.upsell;
33 }
34
35 if ( cat && 'all' !== cat ) {
36 return Array.isArray( site.keywords ) && site.keywords.includes( cat );
37 }
38
39 return true;
40 };
41